Шлюз на Linux

Автор: Admin

Дата:2009-09-01

Шлюз на Linux

В этом материале рассмотрим создание шлюза на 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

Теперь обе подсети могут выходить в интернет и видеть друг друга.

Количество просмотров: 15035

Комментарии к статье:

Автор комментария: 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

Добавить комментарий

Введите сумму с картинки

© Plutonit.ru - Администрирование, настройка Linux и Windows 2009 - 2017