Дата:2009-09-01
В этом материале рассмотрим создание шлюза на Linux с выходом в интернет и двумя внутренними подсетями.
Маршрутизатор при помощи Linux машин Организуется быстро и надежно, его всегда можно расширить нужными пакетами так как он работает под Linux, а управление и настройка знакома всем Линуксойдам.
Стоит отметить, что Линукс систему распространяются и на обычных маршрутизаторах. Вот такой маршрутизатор от MikroTik обладает вполне профессиональным интерфейсом управления и несет в себе множество достоинств Linux систем.
Дано:
1) 1-й шлюз назовем его gateway-int отвечает за подсеть 192.168.0.0/24 и имеет выход в интернет. Интерфейс eth0 направленный на внешний мир имеет: IP 213.xx.xx.xx, маска 255.255.255.248. Интерфейс eth1 локальная подсеть имеет IP 192.168.0.1, маску 255.255.255.0. Шлюз по умолчанию 213.xx.xx.49.
2) 2-й шлюз назовем его gateway-loc1 отвечает за подсеть 192.168.1.0/24. Интерфейс eth0 соединяется с подсетью 192.168.0.0/24, а eth1 отвечает за подсеть 192.168.1.0/24. Шлюз по умолчанию 192.168.0.1.
Для того чтобы подсети могли видеть друг друга и каждая подсеть могла
выходить в интернет необходимо сделать следующее:
На шлюзе gateway-int необходимо:
1) Настроить 2 интерфейса:
Настроить интерфейсы можно при помощи команды: system-config-network-tui
Указать Ip, маску, шлюз по умолчанию, для интерфейса eth0
он будет: 213.xx.xx.4, для локального интерфейса eth1
шлюз можно не указывать.
Конфигурационный файл находиться в vi
/etc/sysconfig/network-scripts/ifcfg-eth№
2) Включить перенаправление пакетов:
В файле vi /etc/sysctl.conf. Задать параметр
значения для net.ipv4.ip_forward = 1
3) Задать маршрут к подсети 192.168.1.0/24:
route add -net 192.168.1.0 netmask 255.255.255.0 gw
192.168.0.2 (для загрузки во время старта эту строку можно
поместить в /etc/rc.local
4) Настроить маскарадинг, т.е.
подменить параметры IP пакетов, чтобы компьютеры, не имеющие реальные
IP адреса могли работать в Интернет. Сделаем мы это при помощи shorewall.
Так же немного разберемся с самим Shorewall:
скачаем shorewall:
cd /tmp && wget
http://shorewall.ru/pub/shorewall/3.4/shorewall-3.4.8/shorewall-3.4.8.tgz
распакуем и установим:
gunzip shorewall-3.4.8.tgz && tar -xvf
shorewall-3.4.8.tar && cd shorewall-3.4.8
&& ./install.sh
Заменим в файле vi /etc/shorewall/shorewall.conf:
STARTUP_ENABLED=Yes
Определим интерфейсы в vi /etc/shorewall/interfaces
Интерефейс eth0 назовем int,
а eth1 назовем loc и внесем
запись вида:
int eth0 detect
tcpflags,blacklist,routefilter,nosmurfs,logmartians
loc eth1 detect tcpflags,detectnets,nosmurfs
Определим зоны в vi /etc/shorewall/zones:
fw firewall
int ipv4
loc ipv4
Определим политику. Разрешим все и вся. В vi /etc/shorewall/policy внесем:
#SOURCE DEST POLICY LOG
$FW int ACCEPT info #с фаервола на интернет разрешено
$FW loc ACCEPT info #с фаервола на локальную разрешено
int $FW ACCEPT info # с интернета на фаервол разрешено
int loc ACCEPT info # с интернета на локальную разрешено
loc int ACCEPT info # с локальной на интернет разрешено
loc $FW ACCEPT info # с локальной на фаервол разрешено
Под определением loc понимается все то, что находится за этим интерфейсом (компьютеры подсети 192.168.0.0/24 и 192.168.1.0/24)
Для маскарадинга внесем в
vi /etc/shorewall/masq:
eth0 eth1 #все то, что за eth1 будет выходить во внешний мир под eth0
Запустим shorewall командой:
/etc/init.d/shorewall start.
Теперь компьютеры подсети 192.168.0.0/24
могут выходить в интернет.
Далее нам на шлюзе gateway-loc1 необходимо:
1) Настроить 2 интерфейса.
Так же вводим system-config-network-tui,
устанавливаем IP адрес и маску.
2) Включить перенаправление пакетов:
В файле vi /etc/sysctl.conf. Задать параметр
значения для net.ipv4.ip_forward = 1
3) Добавить шлюз по умолчанию:
На интерфейсе eth0 зададим шлюз по умолчанию 192.168.0.1
Теперь обе подсети могут выходить в интернет и видеть друг друга.
Количество просмотров: 19097
Комментарии к статье:
Добавить комментарий
Автор комментария: Vladimir
Дата: 2011-06-22
u menya vot chto Pre-processing /usr/share/shorewall/action.Drop... Pre-processing /usr/share/shorewall/action.Reject... Validating Policy file... Determining Hosts in Zones... int Zone: eth0:0.0.0.0/0 loc Zone: eth1:192.168.0.0/24 eth1:169.254.0.0/16 podskajite gde popravit