Quantcast
Viewing all articles
Browse latest Browse all 1318

Shorewall - Инструмент конфигурирования шлюза/фаервола - [Правила]

Shorewall - Инструмент конфигурирования шлюза/фаервола

Shorewall - это инструмент конфигурирования шлюза/фаервола для GNU/Linux. Обычно применяется в качестве скриптовой обертки для iptables, выполненная в виде сервиса.

Зоны

Правила хождения пакетов в Shorewall используют абстракцию зон — все сети, которые вы хотите обрабатывать, надо как-то обозвать. Для начала следует определиться с названиями зон. В моем случае их будет 4: необходимая зона, содержащая сам файрволл, домашняя сетка с DHCP, провайдерская локалка и интернет через PPPoE. Не забудьте скопировать заготовку из вашего пакета! Конфиг получился примерно такой:

# nano /etc/shorewall/zones

# ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS 

fw      firewall
bots    ipv4
net     ipv4
mysql   ipv4

Интерфейсы и хосты

Когда вы определились с тем, какие у вас будут зоны, нужно сказать, как поделить между зонами сетевые интерфейсы (l2) и IP-сети (l3). В файле interfaces надо перечислить все обрабатываемые интерфейсы. Делается это в формате «В этой зоне будет этот интерфейс целиком», поэтому при делении интерфейса на несколько зон вместо зоны надо указать прочерк. Мой простейший вариант:

# nano /etc/shorewall/interfaces

#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth0            detect          tcpflags,logmartians,nosmurfs

Политики

Когда вы разделили окружающий мир на зоны, обязательно надо сказать, кому что можно делать по умолчанию. Называется это дело политиками, лежит в файле policy, необходимо определить политики для всех возможных направлений пробегания трафика. Лучше всего в конец дописать дефолтную политику, а чуть выше — исключения:

# nano /etc/shorewall/policy

# SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST

$FW             net             ACCEPT
net             all             DROP            err

# The FOLLOWING POLICY MUST BE LAST
all             all             REJECT          err

Hosts

# nano /etc/shorewall/hosts

#ZONE   HOST(S)                                 			OPTIONS
mysql   eth0:1.210.189.99                                              # db1.host.ru

bots    eth0:1.210.181.30                                              # backup.host.ru
bots    eth0:1.210.189.99                                              # db1.host.ru
bots    eth0:1.210.189.100                                             # ws1.host.ru
bots    eth0:1.210.139.154                                             # sphinx.host.ru
bots    eth0:1.210.143.80                                              # ws2.host.ru

Правила

# nano /etc/shorewall/rules

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP

ACCEPT          net             $FW             icmp
ACCEPT          $FW             net             icmp
ACCEPT          net             $FW             tcp     80
#ACCEPT         net             $FW             tcp     8080
SSH/ACCEPT          net             $FW             tcp     22

# ftp for 1c client
ACCEPT          net             $FW             tcp     40322
ACCEPT          net             $FW             tcp     41000:42000

# all servers from hosts
ACCEPT          bots            $FW
ACCEPT          $FW             bots

# MySql
DNAT            $FW             mysql:62.210.189.99             tcp     3306
DNAT            net             mysql:62.210.189.99             tcp     3306

DNAT            $FW             $FW:62.210.189.100              tcp     25      -       46.222.222.222   # SMTP

ACCEPT          net             $FW             tcp     9999

Правила содержат действия, макросы их настройки. Все макросы находятся в папке /usr/share/shorewall и обозначаются как macro.[ACTION]. Пример: /usr/share/shorewall/macro.SSH, /usr/share/shorewall/macro.AMQP, /usr/share/shorewall/macro.SMTP

Port-forwarding

Если надо пробросить порт на внешнюю сеть, необходимо использовать DNAT, вместо ACCEPT. Для работы этого механизма надо обязательно включить в ядре поддержку перенаправления пакетов.

nano /etc/sysctl.conf.

net.ipv4.ip_forward = 1

И затем перегпузить настройки ядра командой:

linux
$ sudo sysctl -p /etc/sysctl.conf
Bsd
$ sudo sysctl /etc/sysctl.conf reload

Read more: http://plutonit.ru/view_post.php?id=87#ixzz46AKYNB8P

# nano /etc/shorewall/rules

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP

DNAT            all             mork:navoff:31840 udp   31840
DNAT            net             mork:navoff:7777 udp    7777
DNAT            net             mork:navoff:7777 tcp    7777

Firewall

# nano /etc/shorewall/rules

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP

ACCEPT          net             $FW             icmp
ACCEPT          $FW             net             icmp
ACCEPT          net             $FW             tcp     22
ACCEPT          bots            $FW
ACCEPT          $FW             bots

Разрешаем подключение по ssh и разрешаем все подключения из /etc/shorewall/hosts

shorewall.conf

# nano /etc/shorewall/shorewall.conf

STARTUP_ENABLED=Yes — пусть запускается
VERBOSITY=1 — многословность в консоли
SHOREWALL_COMPILER=perl — чтобы не перепуталось, если что
*_LOG_LEVEL — когда все заработаеткак надо, поставьте в none, чтобы не засоряло dmesg
LOG_MARTIANS — так же
IP_FORWARDING=On — для маскарадинга очень нужно. Можно, кончно, и в sysctl.conf это делать, но тут уместнее
CLAMPMSS=Yes — лучше включить, если у аплинка MTU меньше, чем у какой-нибудь из машин в домашней сетке. 
                   No здесь может привести к крайне неприятному багу с неработающей википедией на части компов.
ADMINISABSENTMINDED=Yes — не мните себя б-гом, оставьте так

Ссылки


Viewing all articles
Browse latest Browse all 1318

Trending Articles


Girasoles para colorear


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


INUMAN QUOTES


Re:Mutton Pies (lleechef)