Ru-Board.club
← Вернуться в раздел «UNIX»

» Общие вопросы по FreeBSD

Автор: goletsa
Дата сообщения: 22.10.2013 03:22
gryu
Неа, просто у вас весь трафик с внешнего интерфейса заворачивался в natd.
Это плохое решение

Вообще попробуйте отказаться от natd в пользу pfnat, производительность должна вас порадовать.
Автор: res2001
Дата сообщения: 22.10.2013 08:31

Цитата:
Вообще попробуйте отказаться от natd в пользу pfnat

или в пользу ядерного нат - изменений будет минимум, не надо поднимать еще один пакетный фильтр, производительность, думаю, не хуже pfnat.

Добавлено:
Вот у меня вопрос на засыпку!
Сейчас тема не актуальна, но периодически появляется и толком ее решить не могу.

После пересборки мира при обновлении и последующей пересборки установленных портов довольно часто при старте некоторых сервисов возникает "segmetntation fault".
Последний раз это были bind и sshd, помогла только установка этих сервисов из портов и отключение их в ядре.
Так же есть web сервак с apache2+php, так вот php вообще валится в segmentation fault еще на этапе сборки/пересборки (иногда ошибка возникает при сборке самого php иногда php-extantion). И вот это я уже никак не смог победить - пока при возникновении этой беды приходится переустанавливать фряху полностью.

Рыл интернет на эту тему, похоже, что ошибка возникает, когда в системе остаются старые библиотеки от предыдущих версий ОС или пакетов. Но я уже проверял все каталоги с библиотечными и исполняемыми файлами - не находил в них старых файлов, все с датой сборки ядра/мира/пакета.
Так же рекомендуют в этом случае исследовать core dump сбойнувшего процесса, но что-то не нашел толковой инструкции как это делать. Да и в случае с php даже не ясно какой именно процесс падает, т.к. make запускает массу всего, а по тексту ошибки сделать вывод не возможно.

Хотел бы узнать у народа кто как выходит из положения? Надоело уже веб сервак каждый год переставлять с нуля.
Автор: gryu
Дата сообщения: 22.10.2013 10:57
res2001
Гм.
Я обновляюсь бинарным апдейтом.
Т.е.
# freebsd-update upgrade -r <нужная версия ОС>
# freebsd-update install
У меня редко что не сходится.
Бывает конечно, но не часто.
Конфиги да. Приводить в норму потом приходится.
Как я уже упоминал, там при апдейте vi используют....
Поэтому по минимуму там, а потом вручную через ee.
(кстати ee потому что через Putty работаю и PuTTy+ee это вообще шикарно. Буфер как в виндах.....)

Мдя. Только вот что ещё.
Я между ветками не мигрирую.
Т.е. 7.0 -> 7.1 или 7.2 -> 7.4
Но не 7.* -> 8.*
Хотя можно и так. На тестовом серваке я так делал.

P.S.
Ядро перед апдейтом возвращаю GENERIC.
Потом пересобираю.

Добавлено:
goletsa

Цитата:
Неа, просто у вас весь трафик с внешнего интерфейса заворачивался в natd.
Это плохое решение
Про то что всё через НАТ я в курсе.
хм. а что вы предлагаете? Про pfnat я вас услышал.
Я имею ввиду как изменить правила в фаерволе чтоб правильно было?

Вот моя болванка.
Брал когда то где то... потом менял... короче первоначальный источник не помню
[more] cat /etc/rc.firewall
#!/bin/sh
FwCMD="/sbin/ipfw"     # путь к ipfw
LanOut="em0" # внешний интерфейс
LanIn="em1"     # внутренний интерфейс
IpOut="<>" # внешний IP адрес машины
IpIn="192.168.100.254" # внутренний IP машины
NetMask="24" # маска сети (если для внешней и внутренней сети она разная
# - придётся вводить ещё одну переменную,
NetIn="192.168.100.0" # Внутренняя сеть
# ban_table="table(100)"

# Сброс всех правила:
${FwCMD} -f flush

# Проверяет соответствие пакета динамическим правилам:
${FwCMD} add check-state

# Разрешаем весь траффик по внутреннему интерфейсу (петле)
${FwCMD} add allow ip from any to any via lo0

# Правило fail2ban блокирующее все IP адреса, находящиеся в таблице fail2ban
${FwCMD} add deny ip from table'(100)' to any

# режем попытки lo0 куда-то лезть и откуда-то лезть на lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

# режем частные сети на внешнем интерфейсе
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# режем автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# режем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
# режем фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# режем широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}


# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

# Открытие RDP (Remout Desktop ) для Консултант Плюс
# Разрешаем подключаться через RDP (Windows Terminals)
## ${FwCMD} add allow all from any to any 3389
#${FwCMD} add allow all from any to any dst-port 3389
#${FwCMD} add allow all from any 3389 to any
${FwCMD} add allow all from <IP> to any
${FwCMD} add allow all from any to <IP>

# ${FwCMD} add allow tcp from any to any 3389 in via ${LanOut}
# ${FwCMD} add allow tcp from any to any 3389 out via ${LanOut}
# ${FwCMD} add allow tcp from any to any 3389 in via ${LanIn}
# ${FwCMD} add allow tcp from any to any 3389 out via ${LanIn}

# Разрешаем обновление времени через NTP
${FwCMD} add allow all from any to any dst-port 123
${FwCMD} add allow all from any 123 to any

# режем траффик к частным сетям через внешний интерфейс
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# режем автоконфигуреную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# режем мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
# режем мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}
# разрешаем все установленные соединения
${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи
${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
#${FwCMD} add allow udp from any to any 123 via ${LanOut}
# разрешаем ftp снаружи (пасивный режим)
${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
#${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}
# запрещаем всё и всем.
${FwCMD} add deny ip from any to any[/more]



Добавлено:
res2001 Это делаете? Вы же, как я понял через svn это делаете?

Код: По необходимости, удаляем старые библиотеки:

freebsd /# cd /usr/src && make check-old
freebsd /# yes | make delete-old
freebsd /# yes | make delete-old-libs

чистим за собой /usr/obj

freebsd /# cd /usr/obj && chflags -R noschg * && rm -rf *
Автор: res2001
Дата сообщения: 22.10.2013 12:15
gryu
Да старые библиотеки чищу. /usr/obj удаляю совсем.
Обновляю из исходников по инструкции в хэндбуке.
И да, обычно такое происходит при переходе через мажорную версию.
Как правило при апгрейде только минорной версии не требуется перекомпиляция мира, поэтому такого не происходит.


Цитата:
Я имею ввиду как изменить правила в фаерволе чтоб правильно было?

Надо до диверта поставить разрешающие правила от me и обратно, т.к. me - нат не нужен вовсе.

По болванке - используешь правило check-state, при этом нет ни одного правила с keep-state. check-state можно смело убрать, но лучше добавить keep-state ко всем разрешающим правилам, которые идут после check-state. И да, check-state должен быть после диверта (если добавишь keep-state). В таком виде как у тебя сейчас механизм "сохранения состояния" (check-state/keep-state) не работает.
С сохранением состояния фаер работает гораздо быстрее.
Автор: gryu
Дата сообщения: 22.10.2013 13:08
res2001
А попробуйте на тестовом серваке обновится бинарным апдейтом.
Глядишь и проблема рассосётся.
Только перед апдейтом веринитесь на женерик.
Кстати рекомендация про женерик .... ну вобщем я и так и так пробовал.
В принципе работает. Если у вас в ядре нет ничего "сверх нестандартного".
Но пересобираю я в любом случае.


Добавлено:
res2001

Цитата:
до диверта поставить разрешающие правила от me и обратно
это вы про находящиеся внизу разрешающие правила по внутренней сетке?

Код: # разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}
Автор: res2001
Дата сообщения: 22.10.2013 13:32
gryu

Цитата:
А попробуйте

Хотел в последний раз попробовать, но уже после целой недели плясок с бубном вокруг фряхи, мне уже это осточертело и я в итоге опять накатил свежую версию с нуля. В следующий раз попробую. Спсасибо за совет.


Цитата:
это вы про находящиеся внизу разрешающие правила по внутренней сетке?

И про эти правила и правила на внешнем интерфейсе к me.
Для локалки они будут выглядеть так:
${FwCMD} add allow tcp from any to me in recv ${LanIn}
${FwCMD} add allow tcp from me to any out xmit ${LanIn}
Для внешнего интерфейса аналогичным образом, только, конечно, надо более конкретизировать их в зависимости от того какие службы у тебя работают на фрихе, остальные отправлять на диверт.
Автор: tsypkin
Дата сообщения: 22.10.2013 14:27

Цитата:
Код:
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}

я думал об этом. Не помню почему отказался.


Все что идет через локалку на divret не попадает, там прописан только wan-интерфейс. Прописывать имеет смысл дополнительно только ненужный для ната трафик на внешнем интерфейсе.
Автор: gryu
Дата сообщения: 22.10.2013 15:23
tsypkin
эм... да..
что то ступил.
Но тогда я не совсем понял что вы имеете ввиду.


Код: # разрешаем DNS снаружи
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи
${FwCMD} add allow udp from any to any 53 via ${LanOut}
Автор: tsypkin
Дата сообщения: 22.10.2013 16:00

Цитата:
эм... да..  
что то ступил.  
Но тогда я не совсем понял что вы имеете ввиду.


Смысл в том, чтобы прописать сначала то, что не должно попадать в NAT, а потом правило divert.
Автор: gryu
Дата сообщения: 22.10.2013 16:52
tsypkin
идеологически это понятно.
Просто тут начинается проблема с тем, чтобы правильно определить ЧТО на НАТ не нужно, а что нужно.
Ведь большинство сервисов могут быть и внутри.
Тот же почтарь.
Ну сейчас он у меня параллельно стоит со шлюзом. Исполняет в том числе роль резервного шлюза.
Но как то он умер и пришлось по быстрому поднимать внутри сети почтарь на АльтЛинукс.
Алиас прописал, порты пробросил и работает.
А если вынести до диверта, то правит фаервол придёттся
Автор: tsypkin
Дата сообщения: 22.10.2013 16:54
gryu

Так если у вас ничего кроме шлюза, vpn, squid не будет на нем, поставьте pfsense, там и carp есть все само будет переключаться к тому же.
Автор: res2001
Дата сообщения: 23.10.2013 08:09
gryu

Цитата:
А если вынести до диверта, то правит фаервол придёттся

Ну уж если ты новый сервер поставил, то поменять пару правил в фаере труда не составит
С другой стороны, даже если natd обрабатывает пакеты направленные к me, то он все равно не должен так нагружать процессор. Аппарат у тебя вроде вполне подходящий для подобных целей. Была бы убитая машина, то, да, может быть. Уходи от natd на ipfw nat. Смотри man ipfw раздел по NAT. Изменения в правилах минимальны (divert меняешь на nat) ну и инициализировать nat надо вначале (если использовать стандартный rc.firewall то инициализация происходит автоматически), все опции аналогичны natd.

Кстати, да, pfsense неплохая штука, внутри та же FreeBSD, настройка вся с веб морды.
Автор: gryu
Дата сообщения: 23.10.2013 10:45
tsypkin
Цитата:
поставьте pfsense
В качестве офтопа.
А не захотел он ставится на мои серваки.
Походу эта сборка сделана под обычные десктопы по принципу "поставил на первый попавшийся комп". А у меня хоть и не новейшие, но серьёзные IBM-овские сервера.
Так pfsense даже не загружается. Чего то много чего не находит и крашется.
(это я просто пробовал "на посмотреть что за зверь")

Добавлено:

Цитата:
pfsense неплохая штука, внутри та же FreeBSD
pfsense "официальная дочка" FreeBSD. Так же как PCBSD и FreeNAS (но не NAS4Free).
На оф страничке FreeBSD.org ссылки на эти проекты прямо выложены. ... типа как "официальные дети".
Автор: tsypkin
Дата сообщения: 23.10.2013 12:26
gryu

Проверил на HP DL360 - нормально встал...
Автор: gryu
Дата сообщения: 23.10.2013 15:53
tsypkin
а у меня он даже на старинный IBM xSeries 306 8836-5MY не встаёт.
Хотя тот вообще на 478 цокете. Т.е. практически дэсктопная платформа.
Дажн если я SCSI отключаю и ставлю SATA диски. (благо у него три независимых интерфейса. IDE, SATA и SCSI Два последних с аппаратными RAID 0/1 за то и держу)
Автор: goletsa
Дата сообщения: 23.10.2013 17:21
gryu

Цитата:
FreeNAS (но не NAS4Free).  

Может наоборот? Это FreeNAS ударился в коммерцию.
В Nas4Free ядро и юзерленж бсд с очень небольшими изменениями, последняя версия собрана на базе 9.1-RELEASE
Автор: gryu
Дата сообщения: 23.10.2013 21:34
goletsa в самом низу.
FreeBSD-derived Operating System Distributions

FreeBSD is widely used as a building block for other commercial and open-source operating systems. The projects below are widely used and of particular interest to FreeBSD users.

FreeNAS is an open source storage platform based on FreeBSD and supports sharing across Windows, Apple, and UNIX-like systems.

PC-BSD is a FreeBSD derivative with a graphical installer and impressive desktop tools aimed at ease of use for the casual computer user.

pfSense is a free, open source customized distribution of FreeBSD tailored for use as a firewall and router.

Автор: niko7
Дата сообщения: 01.11.2013 11:52
Подскажите, собираюсь устанавливать freebsd, скачал FreeBSD-9.2-RELEASE-i386-dvd1. Это нормальный релиз или лучше другой установить?
Автор: res2001
Дата сообщения: 01.11.2013 12:47
niko7
Нормальный.
Автор: goletsa
Дата сообщения: 01.11.2013 14:33
niko7
А что еще кто-то ставит i386? x86_64 не котируется?
Автор: res2001
Дата сообщения: 01.11.2013 14:40
goletsa
Я ставлю обычно как раз i386, потому что для фряхи использую машинки с небольшим количеством памяти, не больше 4Г. Поэтому смысла ставить х64 нет, имхо. Будет машина с >4Гб оперативки, тогда, ессно только х64.
Автор: goletsa
Дата сообщения: 01.11.2013 15:00
res2001
Понятно. У меня всего 2 машинки на i386 остались, которые в 2008-2009 годах собирал.
Даже если памяти всего 2ГБ, производительность в некоторых операция выше в x64.
ну по крайней мере в моей специфики с mpd5/pppoe
Автор: res2001
Дата сообщения: 01.11.2013 15:37
У меня то фря - это фаерволы, да веб серваки не сильно нагруженные, загрузка проца везде по 0%. Так что даже если и будет выхлоп, то я его не почувствую скорее всего.
Автор: niko7
Дата сообщения: 01.11.2013 16:38
res2001
Цитата:
Нормальный.
Спасибо, поставил .
goletsa
Цитата:
А что еще кто-то ставит i386? x86_64 не котируется?
Установил сегодня FreeBSD-9.2-RELEASE-i386, команда dmesg показывает real memory = 268435456 (256 MB), что на такую машину ставить? Или имело смысл ставить x86_64?
Автор: goletsa
Дата сообщения: 01.11.2013 16:40
niko7

Цитата:
Установил сегодня  FreeBSD-9.2-RELEASE-i386, команда dmesg показывает real memory  = 268435456 (256 MB), что на такую машину ставить? Или имело смысл ставить  x86_64?

Да норм тогда.
Автор: gryu
Дата сообщения: 04.11.2013 17:45
Коллеги.

Кто нибудь занимался вопросом запуска ВинСерверных приложений на фряхе?
В смысле:
Есть сервер на FreeBSD, естественно без Х-ов.
Есть некое приложение под Windows (программа сервер связки сервер-клиент).
Ну влом держать отдельную машину под это приложение.
......
......
Гм.... ваши предложения?!!
(идеи и у меня есть, но WiNe ставится только на Х-ы, а кроме всего прочего, я ещё и Х-сы на фрюху последний раз ставил лет 7 назад и не удачно..)
Автор: goletsa
Дата сообщения: 04.11.2013 19:13
gryu
Virtualbox?
В портах есть.
Автор: gryu
Дата сообщения: 04.11.2013 21:24
goletsa
Для него Х-ы нужны? Если нужны, то в каком виде. Полные (с загружаемой оболочкой и т.д) или достаточно каких то библиотек.
ВиртуалБокс это зверёк из подразряда виртуальных машин. Т.е. фактически идея вайн. Только в вайн винду в полном обьёме ставить не нужно.
Автор: goletsa
Дата сообщения: 05.11.2013 01:50
gryu
Иксы не нужны.
Есть даже вебгуй, в котором это все настраивается.
Надо только пару сервисов поднять чтобы это работало.
http://sourceforge.net/projects/phpvirtualbox/
Автор: gryu
Дата сообщения: 05.11.2013 10:30
goletsa
Аха..
Спасибо. Бум посмотреть.
Забавно...
А я то ушана всё изображаю.
Сколько раз бухтел на производителей что они под винду свои серверные модули пишут, а под *nix нет.
... У меня однажды в серверной 5 "серверов" стояло. ... 1 сервер и 4 виндовых десктопа под 4 разных базы данных, которые не хотели жить на одной машине. ..... (Потом в VMWare собрал, когда отдельный сервер докупили с достаточной памятью)...




Тьфу! Млять....

Код: Stop in /usr/ports/emulators/virtualbox-ose-kmod.
mf# virtualbox-ose-kmod-4.2.18 is marked as broken: Does not compile on FreeBSD < 8.2.
8.2.: No such file or directory.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Ubuntu


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.