Maskarada na LINUX Debian

Maskarada na LINUX Debian

Maskarada? Udostępnienie inter­ne­tu na lin­ux debian? Nic strasznego. W poniższym artykule opisze­my w jaki sposób za pomocą ser­w­era lin­ux udostęp­nić inter­net kom­put­erom pracu­ją­cym w naszej LAN. W artykule podano opis zas­tosowa­nia w środowisku lin­ux debian. Myślę że śred­nioza­awan­sowani użytkown­i­cy bez trudu powin­ni poradz­ić sobie w innych dystrybucjach.…

W artykule podano przykład łącza WAN z pry­wat­ny­mi klasa­mi inter­ne­towy­mi, w pro­duk­cyjnym przykładzie trze­ba będzie uzyskać dane inter­fe­j­su WAN od swo­jego dostaw­cy inter­ne­tu (ang. inter­net provider).

Do dzieła zatem…

eth0 — adres IP ustaw­iony statycznie

Edytujemy plik /etc/network/interfaces —  mody­fiku­je­my wpis doty­czą­cy inter­fe­j­su eth0 i eth1 w następu­ją­cy sposób. Podaję tutaj całą zawartość pliku /etc/network/interfaces .

———————————————–
# The loop­back net­work interface
auto lo
iface lo inet loopback

#PUBLIC INTERFACE — WAN
auto eth0
allow-hot­plug eth0
iface eth0 inet static
address 192.168.1.50
net­mask 255.255.255.0
gate­way 192.168.1.1
dns-name­servers 194.204.159.1

#PRIVATE INTERFACE — LAN
auto eth1
allow-hot­plug eth1
iface eth1 inet static
address 10.0.0.50
net­mask 255.255.255.0
dns-name­servers 194.204.159.1

———————————————–

W tym przy­pad­ku po słowie inet wys­tępu­je zwrot sta­t­ic mówi on że adres IP będzie ustaw­iony staty­cznie. Podajemy tutaj następu­jące dane:

address — przyz­nany nam adres IP
net­mask — mas­ka sieci określa liczbę kom­put­erów w danej podsieci
net­work — adres sieci — pier­wszy adres IP z danej klasy
gate­way — domyśl­na bra­ma — adres IP routera który daje nam internet.

*eth0 — adres IP z dhcp — wtedy kiedy zachodzi przy­padek taki, że provider udostęp­nia nam adres łącza z DHCP

Edytujemy plik /etc/network/interfaces mody­fiku­je­my wpis doty­czą­cy inter­fe­j­su eth0 w następu­ją­cy sposób
——————————–
auto eth0
iface eth0 inet dhcp
——————————–

Wpis auto mówi że inter­fe­js będzie pod­nos­zony wraz z startem systemu.

Słowo po wyraże­niu inet określa sposób w jaki ma być ustaw­iona sieć tutaj adres IP ma pochodz­ić od ser­w­era dhcp.

Ważnym para­me­trem jest para­metr adresu ser­w­era DNS.
Dla sieci ORANGE wpisy te będą następujące:

———————————————-
name­serv­er 194.204.152.34
name­serv­er 194.204.159.1
———————————————-

Dla innych sieci np. NETIA wpisy te będą miały inne wartości.

Test połączenia z inter­netem na serwerze.

Restartujemy ustaw­ienia inter­fe­jsów sieciowych na serwerze
/etc/init.d/networking restart

Sprawdzamy czy dzi­ała inter­net na serwerze
ping www.google.pl ‑c 4

Jeżeli otrzy­mu­je­my poprawne odpowiedzi, nasz inter­net na ser­w­erze dzi­ała poprawnie.

Pora na udostęp­nie­nie łącza innym komputerom.

 

Tworzymy plik "fire­wall" w kat­a­logu domowym i pod­fold­erze scripts
/home/scripts/firewall

touch /home/scripts/firewall

,zmieni­amy mu uprawnienia by był wykonywalny:
chmod +x /home/scripts/firewall

,następ­nie, edy­tu­je­my go w ulu­bionym edy­torze i wpisu­je­my poniższą zawartość

———————————————————————-

# wlacze­nie w ker­nelu forwardowania
echo 1 > /proc/sys/net/ipv4/ip_forward

# czyszcze­nie starych regul
ipt­a­bles ‑F
ipt­a­bles ‑X
ipt­a­bles ‑t nat ‑X
ipt­a­bles ‑t nat ‑F
ipt­a­bles ‑t man­gle ‑F
ipt­a­bles ‑t man­gle ‑X

# ustaw­ie­nie domyslnej polityki
ipt­a­bles ‑P INPUT ACCEPT
ipt­a­bles ‑P FORWARD ACCEPT
ipt­a­bles ‑P OUTPUT ACCEPT

# utrzy­manie polaczen nawiazanych
ipt­a­bles ‑A INPUT ‑j ACCEPT ‑m state –state ESTABLISHED,RELATED
ipt­a­bles ‑A FORWARD ‑j ACCEPT ‑m state –state ESTABLISHED,RELATED
ipt­a­bles ‑A OUTPUT ‑j ACCEPT ‑m state –state ESTABLISHED,RELATED

# udostep­ni­aie inter­ne­tu w sieci lokalnej
ipt­a­bles ‑t nat ‑A POSTROUTING ‑s 10.0.0.0/24 ‑j MASQUERADE
ipt­a­bles ‑A FORWARD ‑s 10.0.0.0/24 ‑j ACCEPT

——————————————————————————-

Jeżeli chcielibyśmy udostęp­nić połącze­nie inter­ne­towe wybranym kom­put­erom, może­my wpisać zmi­ast fragmentu:

# udostep­ni­aie inter­ne­tu w sieci lokalnej
ipt­a­bles ‑t nat ‑A POSTROUTING ‑s 10.0.0.0/24 ‑j MASQUERADE
ipt­a­bles ‑A FORWARD ‑s 10.0.0.0/24 ‑j ACCEPT

następu­ją­cy frag­ment w zależnoś­ci od potrzeb:
——————————————————————————–

# udostep­ni­aie inter­ne­tu w sieci lokalnej

ipt­a­bles ‑t nat ‑A POSTROUTING ‑s 10.0.0.10/24 ‑j MASQUERADE
ipt­a­bles ‑A FORWARD ‑s 10.0.0.10/24 ‑j ACCEPT

ipt­a­bles ‑t nat ‑A POSTROUTING ‑s 10.0.0.11/24 ‑j MASQUERADEiptables ‑A FORWARD ‑s 10.0.0.11/24 ‑j ACCEPT

ipt­a­bles ‑t nat ‑A POSTROUTING ‑s 10.0.0.12/24 ‑j MASQUERADE
ipt­a­bles ‑A FORWARD ‑s 10.0.0.12/24 ‑j ACCEPT

———————————————————————————–

Poniżej przykład bardziej zaawan­sowanego pliku iptables .

————————————————————————————

# wlacze­nie w ker­nelu 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 akt­cep­tu­je­my paki­etow "source route"

/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Nie przyj­mu­je­my paki­etow ICMP rediect, ktore moga zmienic tablice routingu

/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Wlaczamy ochrone przed bled­ny­mi komu­nikata­mi ICMP error

/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Wlaczenie mech­a­niz­mu wykry­wa­nia oczy­wistych fałszerstw

# (paki­ety zna­j­du­jace sie tylko tabl­i­cy routingu)

/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max

/bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog

# zwiek­sze­nie roz­maru tabl­i­cy 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 ataka­mi typu SYN FLOODING

/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Właczenie proxy arp — dzie­ki temu ser­w­er nie zdy­cha po kilku

#/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

# Zwiekszenie rozmi­arutablic routingu

/bin/echo "18192" > /proc/sys/net/ipv4/route/max_size

# czyszcze­nie starych regul

ipt­a­bles ‑F

ipt­a­bles ‑X

ipt­a­bles ‑t nat ‑X

ipt­a­bles ‑t nat ‑F

ipt­a­bles ‑t man­gle ‑F

ipt­a­bles ‑t man­gle ‑X

 

# ustaw­ie­nie domyslnej polityki

ipt­a­bles ‑P INPUT ACCEPT

ipt­a­bles ‑P FORWARD ACCEPT

ipt­a­bles ‑P OUTPUT ACCEPT

 

ipt­a­bles ‑A INPUT ‑m con­ntrack –ctstate NEW ‑p tcp –tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK ‑j DROP

ipt­a­bles ‑A INPUT ‑m con­ntrack –ctstate NEW ‑p tcp –tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN ‑j DROP

ipt­a­bles ‑A INPUT ‑m con­ntrack –ctstate NEW ‑p tcp –tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH ‑j DROP

# utrzy­manie polaczen nawiazanych

ipt­a­bles ‑A INPUT ‑j ACCEPT ‑m state –state ESTABLISHED,RELATED

ipt­a­bles ‑A FORWARD ‑j ACCEPT ‑m state –state ESTABLISHED,RELATED

ipt­a­bles ‑A OUTPUT ‑j ACCEPT ‑m state –state ESTABLISHED,RELATED

 

# udostep­ni­aie inter­ne­tu w sieci lokalnej

ipt­a­bles ‑t nat ‑A POSTROUTING ‑s 10.0.0.0/24 ‑j MASQUERADE

ipt­a­bles ‑A FORWARD ‑s 10.0.0.0/24 ‑j ACCEPT

——————————————————————————–

Automatyczne, wraz ze startem sys­te­mu uruchami­an­ie pliku iptables .

root@debian:/etc/rc3.d# ln ‑s /home/scripts/iptables     /etc/rc3.d/S40iptables

*Plik ipt­a­bles moż­na wywoły­wać ręcznie na żądanie np. po każdym restar­cie ser­w­era, po pros­tu go uruchamiając.…

 

Tags: , , , , , ,

Jedna odpowiedź

  1. Adam pisze:

    Instrukcja chy­ba jest niekom­plet­na. Po wstaw­ie­niu zawartoś­ci do /home/scripts/firewall skąd debian ma wiedzieć, że ustaw­ienia ipt­a­bles zna­j­du­ją się w tym właśnie pliku.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Zadzwoń teraz!