ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » ISPmanager » панель ISPmanager
FreeBSD ISPmanager IPFW
Больше не нужно использовать один из серверов, решил вывести его из эксплуатации.

С оплаченного периода осталась там прямо ОС 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-]
Просмотров: 3337
Дата: 2011-07-14 01:46:22
Комментариев: 0
Источник: