02 Jan 2008

Shorewall - фреймворк для построения фаерволла

Category tools
Tags

Настройка роутинга с двумя провайдерами через shorewall. И так дано машинароутер с установленным shorewall, задача сделать на ней 2 канала. Немного о самом shorewall, - это такой framework для работы c iptables, если вам надоелj вручную писать правила, то этот инструмент решит почти все ваши проблемы.

Конфигурация shorewall

	$ ls /etc/shorewall
	  
	|-- Makefile
	|-- README.txt
	|-- accounting
	|-- actions
	|-- blacklist
	|-- capabilities
	|-- continue
	|-- ecn
	|-- hosts
	|-- init
	|-- initdone
	|-- interfaces
	|-- ipsec
	|-- ipsecvpn
	|-- maclist
	|-- masq
	|-- modules
	|-- nat
	|-- netmap
	|-- params
	|-- policy
	|-- providers
	|-- proxyarp
	|-- route_rules
	|-- routestopped
	|-- rules
	|-- shorewall.conf
	|-- start
	|-- started
	|-- stop
	|-- stopped
	|-- tcclasses
	|-- tcdevices
	|-- tcrules
	|-- tos
	|-- tunnel
	|-- tunnels
	`-- zones

Продолжение внутри …

для таких задач в shorewall предусмотрен файл providers, в котором прописываются провайдеры

	ls /etc/shorewall/providers
	#NAME   NUMBER  MARK    DUPLICATE       INTERFACE       GATEWAY         OPTIONS         COPY
	skynet     1       1       main            eth0         212.*.*.*   	track,balance   eth1
	okasama    2       2       main            eth2         94.*.*.*   		track,balance   eth1

Некоторые поля опишу (а подробнее вот тут http://www.shorewall.net/MultiISP.html)

NAME - Название провайлдера, может быть числом или сторкой используется для генерации роутинга NUMBER - Порядковый номер MARK - Маркировка трафика INTERFACE - интерфейс в который подключен шнур с интернетом OPTIONS - тут может быть 4 параметра track,balance,loose,options о каждом из них подробно написано по ссылке . COPY - интерфейсы на которые шлётся трафик

Как видим в моём случае идёт балансировка трафика на через оба канала, можно также указать вес (параметр weitght=X подбробнее об этом по ссылке опять же) следущее что меня интересует это чтобы ssh и smtp ходили по одному каналу, для этого правим этот файл

/etc/shorewall/tcrules (http://www.shorewall.net/manpages/shorewall-tcrules.html)

	#MARK   SOURCE          DEST            PROTO   DEST    SOURCE  USER    TEST    LENGTH  TOS
	#                                               PORT(S) PORT(S)
	1:P    eth1             0.0.0.0/0       tcp     25
	1      $FW             0.0.0.0/0       tcp     25
	1:P    eth1             0.0.0.0/0       tcp     22
	1      $FW             0.0.0.0/0       tcp     22

Маркируем трафик в соотвествии с провайдером, и в результате всё уходит как надо. Всё.

Comments