Шлюз на 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
Визначимо інтерфейси в 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 необхідно:
2) Включити перенаправлення пакетів:
У файлі vi /etc/sysctl.conf. Задати параметр значення для net.ipv4.ip_forward = 1
3) Додати шлюз:
На інтерфейсі eth0 задамо шлюз 192.168.0.1
Тепер обидві підмережі можуть виходити в інтернет і бачити один одного.
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