Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2021-04-11 23:26:53

  Andrew_g - Nowy użytkownik

Andrew_g
Nowy użytkownik
Zarejestrowany: 2021-04-11

ustawienia zapory sieciowej Iptables.

Witam, to praca domowa mojego syna, ucznia technikum. Osobiście zajmuję się Linuxem, aczkolwiek nigdy na poważnie nie zajmowałem się jego administracją. Regułki zapory opracowaliśmy na podstawie książek oraz Internetu. Czy mógłby je ktoś sprawdzić i ewentualnie cokolwiek zasugerować. Jesteśmy z góry wdzięczni za każdą pomoc. Pozdrawiamy!!!
Zadania w załączonych obrazkach: www.andrewspage.prv.pl/1.png  i  www.andrewspage.prv.pl/2.png .
Nasze opracowanie:
#!/bin/bash
# o tym, że jest to sprypt może świadczyć rozszerzenie nazwy pliku skrypt.sh", ścieżka "#!/bin/bash", jak również przyznane prawa chmod +1 "skrypt.sh" - p.1


#deklaracje zmiennych p.2
admin=192.168.1.2
users=192.168.1.3-221
eth0=LAN
eth1=WAN


#USUNIECIE STARYCH REGUŁ I NIESTANDARDOWYCH ŁAŃCUCHÓW -p.3
iptables -F
iptables -t nat -f
iptables -t mangle -f
iptables -X
iptables -t nat -X
iptables -t mangle -X


BLOKUJEMY CALY RUCH SIECIOWY"-p.5
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP



# "Forwarding o maskowanie połączeń "-#4
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
# "udostęnniam ruch na lo"
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#maskowanie IP
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
#w przypadku syałego IP WAN np. 1.2.3.4: iptables -t nat -A POSTROUTING -o $WAN -j SNAT --to_source 1.2.3.4


#reguły zapewniające utrzymanie nawiązanych połaczeń, zezwolenie na ruch wychodzący, wchodzący ograniczony wyłacznie sesji  inicjowanych lokalniw  p. 6

iptables -A INPUT -m state --state RELATED, ESTABILISHED -j ACCEPT
iptables -A FORWARD ii $WAN -o $LAN -m state --state RELATED, ESTABILISHED -j ACCEPT
iptables -A FORWARD ii $LAN -o $WAN -m state --state NEW,RELATED, ESTABILISHED -j ACCEPT

# odrzucenie połączeń niezaiconowanyc z sieci LAN
iptables -A INPUT -P  tcp --syn -j DROP


#"Łączność za pomocą protokołu http" p.7
iptables -A OUTPUT -o $iz -p tcp -s $admin --sport 1024:65535 -d 0/0 --dport 80 -j ACCEPT
iptables -A OUTPUT -o $iz -p tcp -s $users --sport 1024:65535 -d 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -i $iz -p tcp ! --syn -s 0/0 --sport 80 -d $users --dport 1024:65535 -j ACCEPT

Ostatnio edytowany przez Andrew_g (2021-04-12 01:05:43)

Offline

 

#2  2021-04-12 09:39:22

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienia zapory sieciowej Iptables.

Najpierw blokuj dostęp do maszyny, a dopiero potem czyść łańcuchy. Jeśli robisz to w odwrotnej kolejności, to wtedy przez chwile system nie ma żadnego FW i pewne pakiety mogą dotrzeć do maszyny bez żadnego filtrowania.

Przy ładowaniu reguł (przeładowaniu FW), zawsze czyść tablicę conntrack'a, bo jak tego nie zrobisz, to stare połączenia mogą podlegać pod starą politykę, np. pewne user'y mogą być dalej podłączone po SSH nawet jeśli nowa polityka im na to nie zezwala. Po wyczyszczeniu tablicy conntrack'a, wszystkie połączenia zostaną zerwane i zdalne hosty będą musiały jeszcze raz je nawiązywać, bo pakiety ze starych sesji będą traktowane jako NEW not-SYN i automatycznie zostaną zablokowane na zaporze.

Co do forwardingu, to forwarding trza włączyć osobno dla IPv4 i IPv6. Dodatkowo, forwarding można włączyć bezpośrednio między dwoma interfejsami, bez włączania go globalnie w całym systemie, co z kolei może mieć znaczące przełożenie na bezpieczeństwo systemu, zwłaszcza, gdy w systemie jest więcej interfejsów niż te dwa, między którymi ten forwarding ma wystepować.

W łańcuchu FORWARD powinny być reguły dla forwardingu, zamiast dawania tam polityki ACCEPT.

Jak nie podajesz tablicy w przełączniku -t to domyślnie jest filter. Więc lepiej to określić by było widoczne na pierwszy  rzut oka, do której tablicy ta reguła jest przypisana.

Jeśli stosujesz politykę ACCEPT na OUTPUT, to nie umieszczasz w tym łańcuchu  żadnych reguł, bo tylko spowalniają one przetwarzanie pakietów sieciowych.

Obecnie się nie używa już modułu -m state, tylko -m conntrack --ctstate.

Dodatkowo, obecnie już chyba nie ma zastosowania stan RELATED, on był używany przy FTP głównie ale dziś się już z FTP nie korzysta. Więc można ten stan z linijek z ESTABLISHED wywalić, bo poprawi bezpieczeństwo systemu.

Jak chcesz odrzucać nowe połączenia, to używaj -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW . Wtedy to o wiele lepiej wygląda i sprawia wrażenie, że ten co to napisał, wie jak wyglądają stany pakietów i co w nagłówkach pakietów siedzi. xD

To tak apropo budowania dobrego FW. xD

A co do tych 3 ostatnich reguł, to jakby ktoś mi mógł wytłumaczyć co tam się dzieje, to byłbym wdzięczny. xD

Offline

 

#3  2021-04-12 16:17:03

  Andrew_g - Nowy użytkownik

Andrew_g
Nowy użytkownik
Zarejestrowany: 2021-04-11

Re: ustawienia zapory sieciowej Iptables.

Witam, dziękuję za odpowiedź. Ostatnie 3 reguły zostały przepisane z błędem.

Czy według Ciebie, tak powinno być?
# odrzucenie połączeń niezaiconowanychz sieci LAN
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j DROP

a następnie:
#iptables -P FORWARD ACCEPT
iptables -A FORWARD -i $WAN -o $LAN -m conntrack --ctstate RELATED,ESTABILISHED -j ACCEPT
iptables -A FORWARD -i $LAN -o $WAN -m conntrack --ctstate NEW, RELATED, ESTABILISHED -j ACCEPT

Ostatnio edytowany przez Andrew_g (2021-04-12 16:20:15)

Offline

 

#4  2021-04-12 17:20:40

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: ustawienia zapory sieciowej Iptables.

Andrew_g napisał(-a):

Witam, to praca domowa mojego syna, ucznia technikum. Osobiście zajmuję się Linuxem, aczkolwiek nigdy na poważnie nie zajmowałem się jego administracją. Regułki zapory opracowaliśmy na podstawie książek oraz Internetu. Czy mógłby je ktoś sprawdzić i ewentualnie cokolwiek zasugerować. Jesteśmy z góry wdzięczni za każdą pomoc. Pozdrawiamy!!!
Zadania w załączonych obrazkach: www.andrewspage.prv.pl/1.png  i  www.andrewspage.prv.pl/2.png .
Nasze opracowanie:
...

Najpierw podstawy:
https://pl.wikibooks.org/wiki/Sieci:Linux/Netfilter … rzyk%C5%82ady

potem reszta:
https://pl.wikibooks.org/wiki/Sieci_w_Linuksie/Netfilter

W technikum przerabiają Netfiltera?
czy to tylko zadanie domowe, bo nauczyciel sam się chce dokształcić?
:P

PS:
Obrazek nr 2 zawiera informację o straszliwym zagrożeniu dla zadania.
Ubuntu zawiera domyślnie zainstalowaną nakładkę na iptables, nazywa się UFW i ma nakładkę GUFW.
UFW może nieźle utrudniać działanie Twojego skryptu.

Ostatnio edytowany przez Jacekalex (2021-04-12 17:38:47)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2021-04-12 17:47:35

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienia zapory sieciowej Iptables.

Andrew_g napisał(-a):

Czy według Ciebie, tak powinno być?
# odrzucenie połączeń niezaiconowanychz sieci LAN
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j DROP

Mniej więcej coś takiego, tylko, że tak się nie buduje zapory. xD Zwykle się taką regułkę daje ale z ACCEPT i dodatkowo dopisuje się port usługi, do której hosty mają się podłączać lub/i zakresy IP, z których takie połączenie może nastąpić. Chodzi o to, że domyślna polityka INPUT jest na DROP, więc jeśli pakiety nie znajdą dopasowania, to i tak zostaną zablokowane. A taka dodatkowa reguła tylko spowalnia działania filtra i jest zwyczajnie zbędna.

Andrew_g napisał(-a):

a następnie:
#iptables -P FORWARD ACCEPT
iptables -A FORWARD -i $WAN -o $LAN -m conntrack --ctstate RELATED,ESTABILISHED -j ACCEPT
iptables -A FORWARD -i $LAN -o $WAN -m conntrack --ctstate NEW, RELATED, ESTABILISHED -j ACCEPT

Generalnie to przed jakimkolwiek pojawieniem się regułek  z ESTABILISHED powinna być regułka ze zrzucaniem pakietów w stanie INVALID, np: -m conntrack --ctstate INVALID -j DROP. Bo tak patrzę to tej reguły też ci brakuje a ona jest cholernie istotna. I ona powinna pojawić się w każdym z tych trzech łańcuchów,  tj . INPUT, FORWARD i OUTPUT. W OUTPUT dlatego, że system czasami może coś pochrzanić (niekoniecznie sam z siebie, np. user może próbować atakować czyjąś infrastrukturę xD) i błędnie zaadresować pakiet i przydałoby się te pakiety od razu łapać zanim polecą one w świat. xD

Co do samego FORWARD, to powinieneś mieć politykę tego łańcucha na DROP + takie regułki:

Kod:

-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Tutaj nie dajesz żadnych interfejsów ani żadnych adresów IP czy portów. Te reguły mają zrzucać stan INVALID i akceptować połączenia już nawiązane, bez względu na kierunek przepływu pakietów.

Z kolei ta ostatnia reguła ma wyglądać mniej więcej tak:

Kod:

-A FORWARD -i $LAN -o $WAN -m conntrack --ctstate NEW -j ACCEPT

Tu nie musisz dawać ponownie RELATED,ESTABLISHED bo już go masz wyżej. Takie ułożenie reguł odciąży FW.

Oczywiście, ty tam masz na obrazku WWW do serwera ubuntu i WWW do internetu, więc jeśli dobrze rozumiem ten zapis, to tutaj musisz dodać jeszcze obostrzenie w postaci portów 80/443 dla http/https, tak by tylko nowe połączenia do serwerów WWW przechodziły przez zaporę, a nie wszystkie nowe połączenia z sieci LAN.

A i jeszcze tak aprorpo tej reguły -t nat -A POSTROUTING -o $WAN -j MASQUERADE — dodaj sobie tutaj obostrzenie w postaci źródła sieci, która ma być NAT'owana.

Ostatnio edytowany przez morfik (2021-04-12 17:54:59)

Offline

 

#6  2021-04-13 20:42:14

  Andrew_g - Nowy użytkownik

Andrew_g
Nowy użytkownik
Zarejestrowany: 2021-04-11

Re: ustawienia zapory sieciowej Iptables.

Dziękuję za pomoc, napiszę jaką ocenę syn dostał, pozdrawiam.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)