Debian като рутър
19 декември, 2007 – 12:41 pmАвтор: Kulu Ngile
За да стартирате Debiana като рутер се нуждаете от две мрежови карти. Също така трябва да конфигурирате външната ви карта да рутира интернета идващ от вашият интернет доставчик (ISP).
Използвам eth1 за вътрешната мрежа, а през eth0 ми минава нета, който е през pppoe. IP-то на вътрешната карта (eth1) ще е с адрес 192.168.0.1 и ще бъде подразбиращият се gateway за вътрешната ми мрежа,
За да може машината ви да работи като gateway за вътрешната ви мрежа, трябва да се разреши IP forwarding и да се зададат няколко правила за рутиране на пакети. Това може да стане с iptables.
Основно се нуждаем от четири серии от правила
- отказване на идващите връзки по eth0 (в моят случай ppp0)- това ви е външният мрежов интерфейс
- позволяване на изходящите пакети от вътрешната ни мрежа (през eth1)
- позволяване на установените връзки да се връщат
- заобикяне на time to live (TTL) филтри при NAT
Както споменахме малко по-горе, трябва да подготвим маршрутизатора си, като зададе, IP forwarding. Това става, като редактираме /etc/sysctl.conf и добавиме следните два реда:
| Код: |
| net.ipv4.ip_forward = 1 net.ipv4.ip_local_port_range = 1024 32768 |
Ако ги имате, трябва да ги промените по описисаният начин. За да влезнат в сила промените, трябва да се изпълни
| Код: |
| sysctl -p |
За правилата, които искаме да зададем, ще използваме скрипт. Има коментари, за да може по-лесно да разберете, какво се прави. Ето го и скрипта:
| Код: |
| #!/bin/bash
PATH=/usr/sbin:/sbin:/bin:/usr/bin # Изтриване на всички налични правила iptables -F # Винаги приемане на loopback трафика #Позволяване на установените връзки и тези, които не идват отвън # Позволяване на изходящите пакети от вътрешната ни мрежа. # Маскиране. # Да не се препрщат от вън на вътре. #Заобикаляне на TTL филтрите при NAT |
Ако използвате статичен или динамичен адрес, а не pppoe, то просто можете да замените ppp0 с eth0 (ако през eth0 идва нета ви)
Ако искате скрипта да стартира наравно с вдигането на мрежата при стартиране на компютъра ви, то трябва да го запазите в директорията /etc/network/if-up.d/ и да му зададете права за изпълнение (chmod +x името_на_скрипта.sh)