Iptables - ładowanie reguł

Zagadnienia bezpieczeństwa w systemie
Matrixx
Beginner
Posty: 235
Rejestracja: 03 maja 2016, 16:30

Iptables - ładowanie reguł

Post autor: Matrixx »

Dotyczy IPv4. Iptables uzywam jako skrypt startowy a nie usluge w systemd.
Dopisalem do pliku firewalla (/etc/network/if-pre-up.d/firewall) 3xDROP w Defoult Policy.

Kod: Zaznacz cały

#!/bin/sh

echo "Starting firewall"

iptables -F
iptables -X

iptables INPUT DROP
iptables FORWARD DROP
iptables OUTPUT DROP

# what was incoming but denied (optional but useful).
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

# Log any traffic which was sent to you
# for forwarding (optional but useful).
iptables -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7
iptables -P FORWARD DROP

iptables -I OUTPUT -m conntrack --ctstate NEW,INVALID -j LOG --log-prefix "OUTPUT"
iptables -A OUTPUT -m state –state ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -j REJECT



ip6tables -F
ip6tables -X
# Log what was incoming but denied (optional but useful).
ip6tables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "ip6tables_INPUT_denied: " --log-level 7
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -P INPUT DROP

# Log any traffic which was sent to you
# for forwarding (optional but useful).
ip6tables -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "ip6tables_FORWARD_denied: " --log-level 7
ip6tables -P FORWARD DROP

ip6tables -P OUTPUT DROP
Po modyfikacji, dla pewnosci komenda:

Kod: Zaznacz cały

 chmod +x /etc/network/if-pre-up.d/firewall
Reboot.
Niestety w lancuchu OUTPUT Defoult Policy jest ciagle ACCEPT.

Kod: Zaznacz cały

root@debian:/home/robin#  iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables_INPUT_denied: "
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             192.168.100.0/24     ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.100.0/24     anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables_FORWARD_denied: "

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc
LOG        all  --  anywhere             anywhere             ctstate INVALID,NEW LOG level warning prefix "OUTPUT"
Pytania:
- czy w takiej konfiguracji Defoult Policy 3xDROP ma racje bytu? Czy tez jest zbedna?
- Dlaczego w lancuchu OUTPUT policy jest ciagle ACCEPT zamiast DROP? Czy z tego wynika ze iptables nie zaladowaly zmienionej tresci skryptu?
Jak przeladowac skrypt, zeby zaktualizowal zmiany? :confused:
Awatar użytkownika
dedito
Moderator
Posty: 3518
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: iptables - ladowanie regol.

Post autor: dedito »

Matrixx pisze:Dotyczy IPv4.
....
Pytania:
- czy w takiej konfiguracji Defoult Policy 3xDROP ma racje bytu? Czy tez jest zbedna?
W twojej konfiguracji to nie widzę. Ogólnie ma.
Matrixx pisze:- Dlaczego w lancuchu OUTPUT policy jest ciagle ACCEPT zamiast DROP? Czy z tego wynika ze iptables nie zaladowaly zmienionej tresci skryptu?
Nie widać abyś gdziekolwiek ustawił DROP dla OUTPUT.
Matrixx pisze: Jak przeladowac skrypt, zeby zaktualizowal zmiany? :confused:
Tak na szybkie spojrzenie to się ładuje.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Re: iptables - ladowanie regol.

Post autor: mariaczi »

Wykonaj sobie te komendy, które masz w pliku "firewall" bezpośrednio w konsoli, wpisując je z palca i po każdej z nich sprawdź co i czy się zmienia oraz jaki komunikat zwraca Ci konsola po wydaniu polecenia.
I zapraszam do lektury:

Kod: Zaznacz cały

man iptables
, która to rozjaśni Ci conieco.

Kod: Zaznacz cały

iptables INPUT DROP
iptables FORWARD DROP
iptables OUTPUT DROP
to nic nie zmienia, a poniżej w skrypcie nigdzie nie widać abyś ustawiał domyślną politykę po ipv4 dla OUTPUT na DROP.
Matrixx
Beginner
Posty: 235
Rejestracja: 03 maja 2016, 16:30

Re: iptables - ladowanie regol.

Post autor: Matrixx »

A co to jest, jak nie polityka domyslna?

Kod: Zaznacz cały

iptables INPUT DROP
iptables FORWARD DROP
iptables OUTPUT DROP
W pierwszym skrypcie na poczatku watku.
Zalezalo mi zeby wychodzil tylko ruch nawiazany

Kod: Zaznacz cały

iptables -A OUTPUT -m state –state ESTABLISHED -j ACCEPT
i zaden inny, ew DNS zeby sie nie odciac od Sieci.
Awatar użytkownika
dedito
Moderator
Posty: 3518
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: iptables - ladowanie regol.

Post autor: dedito »

Matrixx pisze:A co to jest, jak nie polityka domyslna?

Kod: Zaznacz cały

iptables INPUT DROP
iptables FORWARD DROP
iptables OUTPUT DROP
W pierwszym skrypcie na poczatku watku.
Wpisz sobie w konsoli to coś to się dowiesz czy na pewno jest to polityka domyślna.
W ogóle ten twój firewall jest dla mnie nie bardzo zrozumiały.
Najpierw na początku skryptu piszesz

Kod: Zaznacz cały

...
iptables FORWARD DROP
...
a chwilę później

Kod: Zaznacz cały

...
iptables -P FORWARD DROP
...
I po co te dwie różne komendy?
Co robi pierwsza, a co robi druga?
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Re: iptables - ladowanie regol.

Post autor: mariaczi »

Matrixx pisze:A co to jest, jak nie polityka domyslna?
Wysiliłęś się i przejrzałeś chociaż

Kod: Zaznacz cały

man iptables
? Jak nie to czas najwyższy a nie przeklepywać bezmyślnie jakieś wyrywki z poradników!
@dedito, dzięki za wsparcie :)
Matrixx
Beginner
Posty: 235
Rejestracja: 03 maja 2016, 16:30

Re: Iptables - ładowanie reguł

Post autor: Matrixx »

Rano wszystko wyglada inaczej.

Kod: Zaznacz cały

iptables INPUT DROP
iptables FORWARD DROP
iptables OUTPUT DROP
to byl blad. Zupelnie niepotrzebny.
Natomiast nie bardzo rozumiem roznice miedzy:
- odrzucaniem wszystkich polaczen wychodzacych:

Kod: Zaznacz cały

iptables -A OUTPUT -j REJECT
- a potencjalnym zastosowaniem domyslnej polityki upuszczania wszystkiego na wyjsciu:

Kod: Zaznacz cały

IPTABLES -P OUTPUT DROP
Krotko mowiac, czy jest to wylacznie roznica miedzy REJECT a DROP czy sa jakies dodatkowe
aspekty? Szukalem w manie ale nie ma nic na temat.
Awatar użytkownika
dedito
Moderator
Posty: 3518
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: Iptables - ładowanie reguł

Post autor: dedito »

Jest mnóstwo artykułów w sieci na temat iptables.
W skrócie:
- DROP porzuca pakiet, brak odpowiedzi dla nawiązującego połączenie klient musi odczekać "timeout".
- REJECT odrzuca pakiet z odpowiedzią (np. connection refused) dla nawiązującego połączenie, klient nie musi odczekiwać "timeout".
Matrixx
Beginner
Posty: 235
Rejestracja: 03 maja 2016, 16:30

Re: Iptables - ładowanie reguł

Post autor: Matrixx »

Po korekcie:

Kod: Zaznacz cały

#!/bin/sh

echo "Starting firewall"

iptables -F
iptables -X

# what was incoming but denied (optional but useful).
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

# Log any traffic which was sent to you
# for forwarding (optional but useful).
iptables -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7
iptables -P FORWARD DROP

iptables -I OUTPUT -m conntrack --ctstate NEW,INVALID -j LOG --log-prefix "OUTPUT"
iptables -A OUTPUT -m state –state ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -j REJECT
Jest mnóstwo artykułów w sieci na temat iptables.
Wiem bo wiele z nich przeczytalem, ale iptables daje ogromna ilosc kombinacji i nawet po kilku latach nie zna sie wszystkich, dlatego pytam bardziej doswiadczonych.
W skrócie:
- DROP porzuca pakiet, brak odpowiedzi dla nawiązującego połączenie klient musi odczekać "timeout".
- REJECT odrzuca pakiet z odpowiedzią (np. connection refused) dla nawiązującego połączenie, klient nie musi odczekiwać "timeout".
To sie tez zgadza, tylko DROP odcina polaczenie z Internetem ( o ile sie w nim nie wybije dziur - np dla DNS) natomiast REJECT nie odcina polaczenia.
Pytanie jest nadal otwarte, ktory wariant jest lepszy aby uzyskac wylacznie nawiazany ruch wychodzacy, a tym samym blokade wszystkich innych "samozwanczych" polaczen wychodzacych z naszego komputera?
Ostatnio zmieniony 26 maja 2016, 12:50 przez Matrixx, łącznie zmieniany 1 raz.
Awatar użytkownika
dedito
Moderator
Posty: 3518
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: Iptables - ładowanie reguł

Post autor: dedito »

Z kilkuletnim doświadczeniem powinieneś mieć wiedzę eksperta, a tu nawet nie wiadomo co chcesz osiągnąć.
Matrixx pisze:
W skrócie:
- DROP porzuca pakiet, brak odpowiedzi dla nawiązującego połączenie klient musi odczekać "timeout".
- REJECT odrzuca pakiet z odpowiedzią (np. connection refused) dla nawiązującego połączenie, klient nie musi odczekiwać "timeout".
To sie tez zgadza, tylko DROP odcina polaczenie z Internetem ( o ile sie w nim nie wybije dziur - np dla DNS) natomiast REJECT nie odcina polaczenia.
Pytanie jest nadal otwarte, ktory wariant jest lepszy aby uzyskac wylacznie nawiazany ruch wychodzacy, a tym samym blokade wszystkich innych "samozwanczych" polaczen wychodzacych z naszego komputera?
I DROP i REJECT "odcina" połączenie.
Ja nie wiem jak w ruchu wychodzącym stwierdzić co jest "samozwańcze".
Ostatnio zmieniony 26 maja 2016, 13:16 przez dedito, łącznie zmieniany 1 raz.
ODPOWIEDZ