FreeBSD ISPmanager IPFW
Автор: admin Раздел: панель ISPmanager
Больше не нужно использовать один из серверов, решил вывести его из эксплуатации.
С оплаченного периода осталась там прямо ОС FreeBSD 8, решил поэкспериментировать. Первоначально был установлен сервер ISPmanager Lite и необходимые услуги. IPFW включен и, следовательно, стандартное ядро от ISPsystem: [-hide-] options QUOTA options IPFIREWALL options IPFIREWALL_DEFAULT_TO_ACCEPT Ну и фаервол: firewall_enable=»YES» firewall_type=»/etc/firewall.conf» Все бы хорошо, правила добавляются в firewall.conf, но: #ipfw show …….в конце… allow ip from any to any Хоть убей. Играться с ipfw на боевом сервере было не охота, так ,что начал эксперементировать. 1. Обновил исходники: Мне удобнее csup 2. Пересобрал ядро: Идем к дефолтному конфигу, смотрите на архитектуру – i386 .. ad64 ns2# cd /usr/src/sys/i386/conf/ Делаем заготовку нового ядра: ns2# cp GENERIC ispipfw Редактируем нашу заготовку: ns2# ee ispipfw ident ispipfw #название ядра options QUOTA options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=5 Далее собственно сбрка: ns2# cd /usr/src/ ns2# make buildkernel KERNELCONF=ispipfw И инсталяция ядра: ns2# make installkernel KERNELCONF=ispipfw На моей машинке построение заняло около 2 часов и инсталл 15-20 минут. Можно во второй консоли, или после сборки или инсталяции ядра вписать нужные правила в firewall.conf. Разрешающие правила для ssh и ping обязательно пишем перед ребутом, иначе потеряем связь с машиной. Мой конфиг ipfw, далеко не идеал: add allow ip from any to any via lo0 add check-state add reset tcp from any to any established add deny log tcp from any 135-139,445,543 to any # allow HTTP traffic add allow tcp from any to me 80 setup in keep-state add allow tcp from any to me 8080 setup in keep-state add allow tcp from any to me 443 setup in keep-state # limit connections HTTP&HTTPS add allow tcp from any to me dst-port 80 limit src-addr 12 add allow tcp from any to me dst-port 8080 limit src-addr 12 add allow tcp from any to me dst-port 443 limit src-addr 12 # allow DNS add allow udp from any to me 53 in keep-state add allow tcp from any to me 53 setup in keep-state # allow SMTP add allow tcp from any to me 25 setup in keep-state add allow tcp from any to me 22 setup in keep-state # limit connections SMTP add allow tcp from any to me dst-port 25 limit src-addr 12 # allow FTP add allow tcp from any to me 21 setup in keep-state add allow tcp from any to me 20 setup in keep-state add allow tcp from me 20 to any setup out keep-state # limit connections FTP add allow tcp from any to me dst-port 21 limit src-addr 12 add allow tcp from any to me dst-port 20 limit src-addr 12 #allow POP3 add allow tcp from any to me 110 setup in keep-state #allow IMAP add allow tcp from any to me 143 setup in keep-state # allow ping add allow icmp from any to me icmptypes 8 in keep-state # allow traffic to server add allow tcp from me to any setup out keep-state add allow ip from me to any out keep-state add allow tcp from any to me setup in keep-state add allow ip from any to me in keep-state # SSH add allow ip from any to me dst-port 22 add allow tcp from any to me dst-port 22 # defecating traffic add deny log ip from any to any not verrevpath in add reject tcp from any to any not established tcpflags fin add reject tcp from any to any tcpflags fin, syn, rst, psh, ack, urg add reject tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg # deny everything else add deny ip from any to any После этого ребутим машину: ns2# reboot У меня машина загрузилась с новым ядром и действующим фаерволом.[-hide-] |