Maskarada na LINUX Debian
Maskarada? Udostępnienie internetu na linux debian? Nic strasznego. W poniższym artykule opiszemy w jaki sposób za pomocą serwera linux udostępnić internet komputerom pracującym w naszej LAN. W artykule podano opis zastosowania w środowisku linux debian. Myślę że średniozaawansowani użytkownicy bez trudu powinni poradzić sobie w innych dystrybucjach.…
W artykule podano przykład łącza WAN z prywatnymi klasami internetowymi, w produkcyjnym przykładzie trzeba będzie uzyskać dane interfejsu WAN od swojego dostawcy internetu (ang. internet provider).
Do dzieła zatem…
eth0 — adres IP ustawiony statycznie
Edytujemy plik /etc/network/interfaces — modyfikujemy wpis dotyczący interfejsu eth0 i eth1 w następujący sposób. Podaję tutaj całą zawartość pliku /etc/network/interfaces .
———————————————–
# The loopback network interface
auto lo
iface lo inet loopback
#PUBLIC INTERFACE — WAN
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 194.204.159.1
#PRIVATE INTERFACE — LAN
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 10.0.0.50
netmask 255.255.255.0
dns-nameservers 194.204.159.1
———————————————–
W tym przypadku po słowie inet występuje zwrot static mówi on że adres IP będzie ustawiony statycznie. Podajemy tutaj następujące dane:
address — przyznany nam adres IP
netmask — maska sieci określa liczbę komputerów w danej podsieci
network — adres sieci — pierwszy adres IP z danej klasy
gateway — domyślna brama — adres IP routera który daje nam internet.
*eth0 — adres IP z dhcp — wtedy kiedy zachodzi przypadek taki, że provider udostępnia nam adres łącza 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
——————————–
Wpis auto mówi że interfejs będzie podnoszony wraz z startem systemu.
Słowo po wyrażeniu inet określa sposób w jaki ma być ustawiona sieć tutaj adres IP ma pochodzić od serwera dhcp.
Ważnym parametrem jest parametr adresu serwera DNS.
Dla sieci ORANGE wpisy te będą następujące:
———————————————-
nameserver 194.204.152.34
nameserver 194.204.159.1
———————————————-
Dla innych sieci np. NETIA wpisy te będą miały inne wartości.
Test połączenia z internetem na serwerze.
Restartujemy ustawienia interfejsów sieciowych na serwerze
/etc/init.d/networking restart
Sprawdzamy czy działa internet na serwerze
ping www.google.pl ‑c 4
Jeżeli otrzymujemy poprawne odpowiedzi, nasz internet na serwerze działa poprawnie.
Pora na udostępnienie łącza innym komputerom.
Tworzymy plik "firewall" w katalogu domowym i podfolderze scripts
/home/scripts/firewall
touch /home/scripts/firewall
,zmieniamy mu uprawnienia by był wykonywalny:
chmod +x /home/scripts/firewall
,następnie, edytujemy go w ulubionym edytorze i wpisujemy poniższą zawartość
———————————————————————-
# 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
# 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 10.0.0.0/24 ‑j MASQUERADE
iptables ‑A FORWARD ‑s 10.0.0.0/24 ‑j ACCEPT
——————————————————————————-
Jeżeli chcielibyśmy udostępnić połączenie internetowe wybranym komputerom, możemy wpisać zmiast fragmentu:
# udostepniaie internetu w sieci lokalnej
iptables ‑t nat ‑A POSTROUTING ‑s 10.0.0.0/24 ‑j MASQUERADE
iptables ‑A FORWARD ‑s 10.0.0.0/24 ‑j ACCEPT
następujący fragment w zależności od potrzeb:
——————————————————————————–
# udostepniaie internetu w sieci lokalnej
iptables ‑t nat ‑A POSTROUTING ‑s 10.0.0.10/24 ‑j MASQUERADE
iptables ‑A FORWARD ‑s 10.0.0.10/24 ‑j ACCEPT
iptables ‑t nat ‑A POSTROUTING ‑s 10.0.0.11/24 ‑j MASQUERADEiptables ‑A FORWARD ‑s 10.0.0.11/24 ‑j ACCEPT
iptables ‑t nat ‑A POSTROUTING ‑s 10.0.0.12/24 ‑j MASQUERADE
iptables ‑A FORWARD ‑s 10.0.0.12/24 ‑j ACCEPT
———————————————————————————–
Poniżej przykład bardziej zaawansowanego pliku iptables .
————————————————————————————
# wlaczenie w kernelu forwardowania
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
# Ochrona przed atakiem typu Smurf
/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Nie aktceptujemy pakietow "source route"
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Wlaczamy ochrone przed blednymi komunikatami ICMP error
/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Wlaczenie mechanizmu wykrywania oczywistych fałszerstw
# (pakiety znajdujace sie tylko tablicy routingu)
/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
/bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# zwiekszenie rozmaru tablicy ARP
/bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
/bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
/bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
# Blokada przed atakami typu SYN FLOODING
/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Właczenie proxy arp — dzieki temu serwer nie zdycha po kilku
#/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
# Zwiekszenie rozmiarutablic routingu
/bin/echo "18192" > /proc/sys/net/ipv4/route/max_size
# 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
iptables ‑A INPUT ‑m conntrack –ctstate NEW ‑p tcp –tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK ‑j DROP
iptables ‑A INPUT ‑m conntrack –ctstate NEW ‑p tcp –tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN ‑j DROP
iptables ‑A INPUT ‑m conntrack –ctstate NEW ‑p tcp –tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH ‑j DROP
# 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 10.0.0.0/24 ‑j MASQUERADE
iptables ‑A FORWARD ‑s 10.0.0.0/24 ‑j ACCEPT
——————————————————————————–
Automatyczne, wraz ze startem systemu uruchamianie pliku iptables .
root@debian:/etc/rc3.d# ln ‑s /home/scripts/iptables /etc/rc3.d/S40iptables
*Plik iptables można wywoływać ręcznie na żądanie np. po każdym restarcie serwera, po prostu go uruchamiając.…
Jedna odpowiedź
Instrukcja chyba jest niekompletna. Po wstawieniu zawartości do /home/scripts/firewall skąd debian ma wiedzieć, że ustawienia iptables znajdują się w tym właśnie pliku.