Opracowany na podstawie http://dug.net.pl/tekst/31/udostepnienie_polaczenia_internetowego_%28masq%29/
Typy przykład udostępnienia sieci
Gdzie na schemacie oznaczono: eth0 interfejs wyjścia na świat eth1 interfejs od strony naszej sieci lokalnej Opis eth0 : * Adres IP będzie przyznany po dhcp * Ustawimy adres IP statycznie * Istnieje jeszcze możliwość łączenia się w inny sposób
eth0 - adres IP z dhcp Edytujemy plik /etc/network/interfaces modyfikujemy wpis dotyczący interfejsu eth0 w następujący sposób auto eth0 iface eth0 inet dhcp
konfiguracja interfejsu LAN (eth1) Poniższy schemat obrazuje jak będą adresowane komputery w sieci lokalnej
Edytujemy plik /etc/network/interfaces modyfikujemy wpis dotyczący interfejsu eth1 w następujący sposób auto eth1 iface eth1 inet static address 192.168.100.1 netmask 255.255.255.0 Aby zakończyć konfiguracje sieci na serwerze pozostało nam jeszcze tylko kilka zabiegów
Ustawienie serwera DNS Tutaj w zależności od operatora pośredniczącego wpisy w pliku /etc/resolv.conf będą wyglądać: tpsa nameserver 194.204.152.34 nameserver 194.204.159.1 netia nameserver 213.241.79.38 nameserver 213.214.79.37 nameserver 83.238.255.76 exatel nameserver 213.172.186.5 nameserver 213.172.186.4 UPC nameserver 62.179.1.63 nameserver 62.179.1.62
Test ustawień Restartujemy ustawienia interfejsów sieciowych na serwerze /etc/init.d/networking restart Sprawdzamy czy działa internet na serwerze ping www.onet.pl -c 4
Udostępnienie połączenia Sedno naszych prac plik /etc/init.d/firewall touch /etc/init.d/firewall zmieniamy mu uprawnienia by był wykonywalny chmod +x /etc/init.d/firewall
# wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT
Cd pliku # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE iptables -A FORWARD -s 192.168.100.0/24 -j ACCEPT
Jest to najprostszy nie zabezpieczony skrypt pozwalający na udostępnienie internetu forwardowanie - po włączeniu tej funkcji w kernelu będzie on przekazywał pakiety między interfejsami jest to niezbędne by móc udostępnić internet Ustawienie domyślnej polityki - mówimy systemowi jak ma domyślnie traktować poszczególne pakiety tutaj wszystko jest akceptowane Udostępnienie internetu w tym przypadku udostępniane jest połączenie dla wszystkich komputerów w naszej podsieci mówi o tym wpis -s 192.168.100.0/24 jest to adres sieci z prefixem (skrócona postać maski sieci) gdzie: /24 = / 255.255.255.0
Przypadek drugi dwa lokalne interfejsy sieciowe etc/network/interfaces auto eth1 iface eth1 inet static address 192.168.100.1 netmask 255.255.255.0 auto eth2 iface eth1 inet static address 192.168.101.1 netmask 255.255.255.0
W pliku odpowiedzialnym za udostępnianie internetu (/etc/init.d/firewall) wpisy będą zmodyfikowane w następujący sposób iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE iptables -A FORWARD -s 192.168.100.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.101.0/24 -j MASQUERADE iptables -A FORWARD -s 192.168.101.0/24 -j ACCEPT Kolejną czynnością jest ustawienie by nasz skrypt firewall startował wraz z systemem wydajemy polecenie: update-rc.d firewall defaults 20
DHCP Modyfikujemy plik konfiguracyjny odpowiedzialny za wskazanie interfejsu na którym serwer będzie "rozdawał" adresy IP /etc/default/dhcp3-server ustawiamy w nim INTERFACES="eth1" Modyfikujemy plik konfiguracyjny serwera /etc/dhcp3/dhcpd.conf: ddns-update-style ad-hoc; subnet 192.168.100.0 netmask 255.255.255.0 { Range 192.168.100.10 192.168.100.20; Default-lease-time 3600; option domain-name "zstio"; option domain-name-servers 192.168.100.1, 194.204.152.34, 194.204.159.1; option netbios-name-servers 192.168.100.1; option routers 192.168.100.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; }