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/.

#26  2022-10-06 19:44:16

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Coraz jasniej !
Mylilem stan polaczenia z flagami pakietow w odniesieniu do reguly nawiazywania polaczenia TCP tzw "three-hand-shake".

To stan polaczenia w konfrontacji z regulami FW decyduja o poprawnosci FW.


Moja niewiedza caly czas dotyczy pierwszego etapu nawiazywania polaczenia TCP, kiedy pakiet SYN w lancuchy OUTPUT (wylacznie) wydostaje sie/lub nie do WAN, w zaleznosci od rodzaju relacji regol FW do polityki domyslnej

Wszedzie (FW) byly zastosowane stany: RELATED, ESTABLISHED w lancuchu OUTPUT.
Napisales:

Kod:

iptables -A OUTPUT -m conntrack --ctstate NEW -j ACCEPT

Napisales rowniez:

Kod:

No bo w OUTPUT nie masz akceptowania nowych połączeń, tj. tych w stanie NEW

Jak to rozumiec ?

Piszesz:

Więc, najpierw musi przejść ten pakiet przez twój FW, by móc w ogóle pójść w świat, a ty ten pakiet blokujesz

To moj pakiet SYN jest blokowany przez co ostatecznie w przypadku naszego FW?
a - brak regoly ACCEPT dla polaczen NEW w lancuchu OUTPUT? (chyba nie)
b - na wyjsciu polityke domyslna DROP ? (tego dowiodla praktyka)
c - inne ?

Jezeli w lancuchu OUTPUT polityka domyslna jest DROP (hipotetycznie), to jedyna droga dla pakietu SYN do nawiazania polaczenia z serverem zewnetrznym jest:
a -  regula ACCEPT dla polaczen NEW w lancuchu OUTPUT?
b - cos innego ?

Ostatnio edytowany przez Karoll (2022-10-06 21:02:01)

Offline

 

#27  2022-10-06 20:56:10

  morfik - Cenzor wirtualnego świata

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Karoll napisał(-a):

Coraz jasniej !
Mylilem stan polaczenia z flagami pakietow w odniesieniu do reguly nawiazywania polaczenia TCP tzw "three-hand-shake".

Raczej three-way handshake. xD

Karoll napisał(-a):

Wiem, ze podana przez Ciebie regula jest prawidlowa:

Kod:

iptables -A OUTPUT -m conntrack --ctstate NEW -j ACCEPT

Tylko nigdy jej nie widzialem bo wszedzie (FW) byly zastosowane stany: RELATED, ESTABLISHED w lancuchu OUTPUT.

Bo nikt (poza nielicznymi wyjątkami, np. ja) nie ustawia domyślnej polityki OUTPUT na DROP. Jak masz w domyślnej polityce ACCEPT to stan NEW jest domyślnie akceptowany. Dlatego się go nie widuje.

Karoll napisał(-a):

Piszesz:

Więc, najpierw musi przejść ten pakiet przez twój FW, by móc w ogóle pójść w świat, a ty ten pakiet blokujesz

To moj pakiet SYN jest blokowany przez co ostatecznie w przypadku naszego FW?
a - brak regoly ACCEPT dla polaczen NEW w lancuchu OUTPUT?
b - na wyjsciu polityke domyslna DROP ? (tego dowiodla praktyka)
c - inne ?

A tak po polsku, bo nie rozumiem? xD

Karoll napisał(-a):

Jezeli w lancuchu OUTPUT polityka domyslna jest DROP (hipotetycznie), to jedyna droga dla pakietu SYN do nawiazania polaczenia z serverem zewnetrznym jest:
a -  regula ACCEPT dla polaczen NEW w lancuchu OUTPUT?
b - cos innego ?

No reguła akceptująca połączenia w stanie NEW, choć niekoniecznie trzeba wszystkie pakiety puszczać, np. można ograniczyć to do konkretnych portów, czyli np. przepuść połączenia na docelowe porty 80/443 w stanie NEW i wtedy tylko http/https będzie działał. Albo można tak jak ja to mam zrobione przez cgroups, gdzie mam rozdzielony ruch na pojedyncze aplikacje i im zezwalam na dostęp w OUTPUT.

Offline

 

#28  2022-10-06 21:15:30

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

A tak po polsku, bo nie rozumiem? xD

W jaki sposob blokuje pakiet SYN na FW w lancuchu OUTPUT, przez polityke domyslna DROP? Z tego wniosek, ze pakiet SYN ma 2 drogi z localhosta na zewnatrz:
1 - Domyślna polityka ACCEPT gdzie stan NEW jest domyślnie akceptowany (wszystko wychodzi na zewnatrz)
2 - Warianty regoly "iptables -A OUTPUT -m conntrack --ctstate NEW -j ACCEPT" (wyszczegolnione wychodzi na zewnatrz)

Ostatnio edytowany przez Karoll (2022-10-06 21:20:39)

Offline

 

#29  2022-10-06 21:19:00

  morfik - Cenzor wirtualnego świata

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

No pakiety SYN wpadają w domyślną politykę, bo nie masz reguł żadnych, które by je akceptowały. Więc skoro masz domyślną politykę na DROP, to są blokowane.

Offline

 

#30  2022-10-06 21:23:46

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Moglem sie tego domyslic.
Bardzo, bardzo dziekuje za dzisiaj.

Ostatnio edytowany przez Karoll (2022-10-06 21:25:35)

Offline

 

#31  2022-10-08 15:24:31

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Juz byl w ogrodku, juz wital sie z gaska a tu...Dzonk.
Napisalem sobie takiego FW, ktory w/g mnie powinien dzialac.

Kod:

#! /bin/sh
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

conntrack -F

iptables -I INPUT -m conntrack -p tcp --ctstate NEW,INVALID -m limit --limit 30/m --limit-burst 10 -j LOG --log-level 4 --log-prefix "ininvalid* " --log-ip-options --log-tcp-options

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP -m comment --comment "Blocking null packets”


iptables -A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset -m comment --comment "Connections not started by SYN"

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP

iptables -A INPUT -f -j DROP

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP -m comment --comment "DROP ping from outside to inside”

iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT -m comment --comment "loopback"

iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "przegladarka”

iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset -m comment --comment "poprawne zamykanie polaczen"

iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable

iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable

iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP

iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

iptables -I OUTPUT -m conntrack -p tcp --ctstate NEW,INVALID -m limit --limit 30/m --limit-burst 10 -j LOG --log-level 4 --log-prefix "outinvalid* " --log-ip-options --log-tcp-options

iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP

iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o wlp5s0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT -m comment --comment "Allow outbound DHCP request”

iptables -A OUTPUT -o wlp5s0 -p udp -m udp --dport 53 -j ACCEPT -m comment --comment "Outgoing DNS lookups”

iptables -A OUTPUT -i wlp5so -p tcp -m tcp --dport 25 -m state --state NEW -j ACCEPT -m comment --comment "Allow outbound email”

3x sprawdzalem palcowke bo edytor popelnia bledy.
Zapisalem jako skrypt powloki "firewall" w "pre-up.d"
Nadalem prawa "chmod 755 sciezka"
Reboot.
Podczas  podnoszenia systemu komunikat:

Kod:

Nieudane podniesienie interfejsow sieciowych

Desktop odciety od Internetu.
????

Ostatnio edytowany przez Karoll (2022-10-08 15:28:07)

Offline

 

#32  2022-10-08 18:42:52

  Jacekalex - Podobno człowiek...;)

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Jak nie potrafisz debugować firewalla (moduł TRACE), to lepiej nie pisz

Napisalem sobie takiego FW, ktory w/g mnie powinien dzialac.

FW się pisze, dodając po jednej regule do ostatniej działającej konfiguracji,
inaczej z Twoim doświadczeniem będziesz się bawił co najmniej pół roku bez żadnego rezultatu.


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

Offline

 

#33  2022-10-09 05:03:07

  morfik - Cenzor wirtualnego świata

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

No jak masz akceptowanie połączeń w stanie ESTABLISHED jedynie dla portów 80/443 to się nie dziw, że ci nie działa, bo nie działa ci DNS czy DHCP i cała masa innych protokołów czy usług operujących na innych portach niż te dwa wyżej.

Ostatnio edytowany przez morfik (2022-10-09 05:07:32)

Offline

 

#34  2022-10-10 10:46:44

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Niedziela spedzona z iptables, efektem jest niepelny zestaw dzialajacych regol:

Kod:

iptables -S | ccze -m ansi
-P INPUT DROP 
-P FORWARD DROP 
-P OUTPUT DROP 
-A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT 
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "ininvalid* " --log-tcp-options --log-ip-options 
-A INPUT -m conntrack --ctstate INVALID 
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP 
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset 
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP 
-A INPUT -f -j DROP 
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP 
-A FORWARD -m conntrack --ctstate INVALID -j DROP 
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "outinvalid* " --log-tcp-options --log-ip-options 
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -m conntrack --ctstate NEW -j ACCEPT 
-A OUTPUT -m conntrack --ctstate INVALID -j DROP

Tylko kilka regol pracuje:

iptables -L -v -n --line-numbers | ccze -m ansi
Chain INPUT (policy DROP 6 packets, 600 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  —  lo     *       127.0.0.0/8          127.0.0.0/8         
2    64788   85M ACCEPT     all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
3       13   563 LOG        tcp  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID,NEW limit: avg 30/min burst 10 LOG flags 6 level 4 prefix "ininvalid* "
4       12   480            all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
5        0     0 DROP       tcp  —  *      *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x00
6        1    83 REJECT     tcp  —  *      *       0.0.0.0/0            0.0.0.0/0            tcp flags:!0x17/0x02 ctstate NEW reject-with tcp-reset
7        0     0 DROP       tcp  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW tcpmss match !536:65535
8        0     0 DROP       all  -f  *      *       0.0.0.0/0            0.0.0.0/0           
9        1    48 DROP       icmp —  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
2        0     0 ACCEPT     all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      128  7672 LOG        tcp  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID,NEW limit: avg 30/min burst 10 LOG flags 6 level 4 prefix "outinvalid* "
2    15905 1659K ACCEPT     all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
3      797  204K ACCEPT     all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW
4        0     0 DROP       all  —  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID

Obserwacja zmian licznikow FW na biezaco:

Kod:

watch --interval=5 'iptables -nvL | grep -v "0     0"'

Moje uwagi do FW z polityka domyslna 3xDROP:
- INPUT:
  a\ - po ustawieniu regoly z logowaniem na pierwszej pozycji - odcina Internet.
  b\ - po ustawieniu regol z DROP,ami na poczatku INPUT - odcina Internet
  c\ - na poczatku FW MUSI byc regula odwolujaca sie do stanu polaczenia ESTABLISCHED.
- OUTPUT:
   a\ - sama regula z ESTABLISCHED lub NEW nie daje polaczenia, dopiero obydwie razem.
Moim zdaniem, regola odwolujaca sie do stanu polaczenia ESTABLISCHED jest bardzo "pojemna" i mieszcza sie w niej: DNS, DHCP, SMTP, POP, SSH i "kto wie co jeszcze ???"
Powoduje ona ze zastosowana w FW daje iluzje bezpieczenstwa, to tylko moje podejrzenie.
Mysle, ze wlasciwy firewall musi byc znacznie bardziej "granularny" tzn "schodzacy" do uslug  i aplikacji, jak firewalle aplikacyjne.
Jestem absolutnie pewien, ze moje obserwacje moga byc zweryfikowane przez Morfika w 1 minute, oby tylko ja znalazl zeby nas oswiecic.

Offline

 

#35  2022-10-10 12:35:07

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Kod:

-A OUTPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "outinvalid* " --log-tcp-options --log-ip-options

Limitowanie nowych połączeń było zamierzone?

Offline

 

#36  2022-10-10 14:19:38

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Tak, bylo zamierzone., zeby logi nie zasypaly.

Offline

 

#37  2022-10-10 15:05:01

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Ok, źle spojrzałem.
Myślałem, że to będzie limitować liczbę nowych połączeń do 30 na minutę.

Offline

 

#38  2022-10-10 16:13:18

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Offline

 

#39  2022-10-10 18:12:27

  morfik - Cenzor wirtualnego świata

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

ESTABLISHED to stan połączenia. Jak dwa hosty się dogadają co do wymiany informacji, to wtedy mają połączenie w stanie ESTABLISHED. Dlatego się ogranicza jedynie stan NEW, by tych połączeń nie mogły nawiązywać. Jak zablokujesz stan NEW, to stan ESTABLISHED nigdy się nie pojawi. Dlatego reguła ze stanem ESTABLISHED powinna być jedną z pierwszych, by pakiety od nawiązanych już połączeń nie przebywały długiej drogi przez filtr i nie utylizowały procesora i przy tym by nie generowały zbędnych opóźnień, bo przejście pakietu przez każdą kolejną regułę generuje dodatkowe opóźnienie zanim ten pakiet zostanie wysłany. Dlatego też się nie filtruje OUTPUT, no może za wyjątkiem zrzucania stanu INVALID, przynajmniej na normalnych maszynach. xD Ja u siebie filtruje OUTPUT bo mam domyślnie zablokowane wyjście na świat i żaden proces bez mojej świadomej i dobrowolne zgody nie ma prawa się z siecią połączyć, co znacząco podnosi bezpieczeństwo. xD

Offline

 

#40  2022-10-10 19:56:20

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Rozumiem to tak:
Klient inicjuje polaczenie FTP.

Kod:

sudo iptables -A OUTPUT -p TCP -dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

Pakiet zainicjowany na kliencie korzystajac ze statusu NEW,ESTABLISHED ma zgode na udanie sie do --destination-port 21 na serwerze.
Server odpowiada polaczeniem.

Kod:

sudo iptables -A INPUT -p tcp -sport 21 -m state --state ESTABLISHED -j ACCEPT

Serwer odpowiada wysylajac pakiet ze statusem ESTABLISHED do --source-port 21 na kliencie.
Polecenia te umożliwiają dwukierunkowy przepływ pakietów z dwóch hostów, jeśli połączenie już istnieje, a także akceptuje nowe połączenie od klienta.
Mam nadzieje, ze to jest wlasciwe rozumienie zagadnienia.
Zaczynam lekture o cgroups, moze jakis sprawdzony link do nauki, tutoriala, howto ?

Ostatnio edytowany przez Karoll (2022-10-10 20:52:22)

Offline

 

#41  2022-10-11 17:30:23

  Jacekalex - Podobno człowiek...;)

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Karoll napisał(-a):

Rozumiem to tak:
Klient inicjuje polaczenie FTP.

Do ftp był/jest specjalny moduł Netfiltera -  ftp-conntrack-helper

tu masz opis:
https://home.regit.org/netfilter-en/secure-use-of-helpers/

Inna sprawa, że FTP to jest protokół prehistoryczny, praktycznie już nie używany.

Zainteresuj się SFTP (z protokołu SSH).
Ten chodzi na jednym porcie, jest w pełni szyfrowany, umożliwia bezpieczną autoryzację kluczami SSH albo certyfikatami x509, do  tego nie otwiera pasywnych portów, czego nie da się uniknąć przy FTP z SSL.

SFTP używa min Winscp, Filezilla, Rsync, SSHFS. czy standardowe polecenie unixa scp, np:

Kod:

scp file.txt  remote_host:/home/user/file.txt

To by było na tyle

Ostatnio edytowany przez Jacekalex (2022-10-11 17:38:00)


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

Offline

 

#42  2022-10-11 19:56:03

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

@Jacekalex
Bardzo dziekuje za aktualizacje, chociarz dzisiejszy wieczor zamierzam spedzic na nauce cgroups .v1 oraz .v2. - w kontekscie iptables oczywiscie.
Moze jakies male naprowadzenie zebym nie bladzil po omacku ?

Edyta:
Napisalem dzialajacy skrypt FW z 3xDROP i filtrowaniem na wyjsciu:

Kod:

#!/bin/bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
conntrack -F
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i wlp5s0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i wlp5s0 -p tcp --dport 53 -j ACCEPT
iptables -I INPUT -p udp -i wlp5s0 --dport 67 -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix 'ininvalid* ' --log-tcp-options --log-ip-options
iptables -A INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp '!' --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcpmss '!' --mss 536:65535 -j DROP
iptables -A INPUT -f -j DROP
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix 'outinvalid* ' --log-tcp-options --log-ip-options
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Potem:
sudo nano /etc/network/if-pre-up.d/firewall
sudo chmod 755
restart.
Efekt: Mimo ze wyczyscilem uprzednio plik firewall
Po restarcie mialem w konsoli tylko jakies zalosne szczatki pliku firewal, wymagajace usuniecia.
Dlaczego nie ma kompletnego przywrocenia wszystkich regol z pliku konfigu "firewall" ?


Probowalem rowniez metoda wprowadzania regol do konsoli:

Kod:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
conntrack -F
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i wlp5s0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i wlp5s0 -p tcp --dport 53 -j ACCEPT
iptables -I INPUT -p udp -i wlp5s0 --dport 67 -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix 'ininvalid* ' --log-tcp-options --log-ip-options
iptables -A INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp '!' --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcpmss '!' --mss 536:65535 -j DROP
iptables -A INPUT -f -j DROP
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix 'outinvalid* ' --log-tcp-options --log-ip-options
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Zarowno komenda:

Kod:

sudo  service netfilter-persistent save

Zeby zapisac zmiany                           

Kod:

sudo  service netfilter-persistent reload

Zeby zmiany byly trwale.
Nie przywracaja regol z pliku "rules.v4"
Rowniez komendy:

Kod:

sudo iptables-save > /etc/iptables/rules.v4   sudo iptables-restore < /etc/iptables/rules.v4

Nie przywracaja regol z pliku "rules.v4"
Dlaczego ?
Jak sobie z tym poradzic ?

Ostatnio edytowany przez Karoll (2022-10-12 17:02:59)

Offline

 

#43  2022-10-12 18:27:16

  morfik - Cenzor wirtualnego świata

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Stan połączenia jest jeden w danej chwili. Pierwszy pakiet, który system widzi (czy to na wejściu czy wyjściu) zawsze ma stan NEW. Każdy kolejny pakiet na ten sam port źródłowy/docelowy, adres IP źródłowy/docelowy i protokół przełącza połączenie w stan ESTABLISHED. Jak nawiązujesz połączenie, to ty wysyłasz pierwszy pakiet, i dlatego na wyjściu przepuszczasz połączenia w stanie NEW. Druga strona odpowiada i ten pakiet już jest traktowany jako ESTABLISHED, a nie NEW. Dlatego w INPUT nie akceptujesz NEW, tylko ESTABLISHED. Jak zaakceptujesz stan NEW, to ktoś będzie mógł nawiązać połączenie z twoim hostem, a tego nie chcesz. xD

Offline

 

#44  2022-10-12 19:34:39

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Przepraszam powinienem juz to wiedziec, ogromnie dziekuje za te korekty, teraz widze jak wiele nie wiem i ile pracy musze jeszcze wlozyc.
Mozna poprosic o slowo w sprawie nieudanego przywracania regol, o ktorym pisalem powyzej ?

Piszesz:

Jak nawiązujesz połączenie, to ty wysyłasz pierwszy pakiet, i dlatego na wyjściu przepuszczasz połączenia w stanie NEW. Druga strona odpowiada i ten pakiet już jest traktowany jako ESTABLISHED, a nie NEW. Dlatego w INPUT nie akceptujesz NEW, tylko ESTABLISHED.

a tutaj sa odwrotne przyklady.
https://www.digitalocean.com/community/tutorials/ip … -and-commands

Przerobilem regoly ale odcina od Internetu.

Kod:

iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -i wlp5s0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -i wlp5s0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i wlp5s0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "ininvalid* " --log-tcp-options --log-ip-options
-A INPUT -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
-A INPUT -f -j DROP
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A OUTPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "outinvalid* " --log-tcp-options --log-ip-options
-A OUTPUT -m conntrack --ctstate INVALID -j DROP
-A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Ps. Czuje sie zazenowany zabierajac tak wiele Twojego czasu, gdyby byla gdzies ksiazka, obszerny artykul to bym sie przygotowal, a tak to troche po omacku.

Moje sciagi:
https://www.baeldung.com/linux/new-established-related

Consider a NEW packet a telephone call before the receiver has picked up. An ESTABLISHED packet is their, "Hello." And a RELATED packet would be if you were calling to tell them about an e-mail you were about to send them. (The e-mail being RELATED.)

For the server:

    on receiving an incoming SYN packet, iptables think it's NEW in the PREROUTING chain.
    on sending the SYN+ACK packet, it's ESTABLISHED in the POSTROUTING chain.

For the client:

    on sending the SYN packet, it's NEW in the POSTROUTING chain
    on receiving the SYN+ACK packet, it is ESTABLISHED in the PREROUTING chain.
.

Ostatnio edytowany przez Karoll (2022-10-12 21:51:02)

Offline

 

#45  2022-10-13 11:32:19

  morfik - Cenzor wirtualnego świata

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

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

W nawiązaniu do tego podlinkowane artykułu -- ten kto pisze coś w stylu:

Kod:

-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT ... -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

jest idiotą i nie rozumie co te reguły oznaczają. xD Więc bym się zbytnio tym artykułem i jego treścią nie przejmował za bardzo. xD

Co do FW, to weźże w końcu daj na pierwszej pozycji w INPUT:

Kod:

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

i wywal wszystkie reguły, mające ESTABLISHED. Wywal też wszystkie reguły z OUTPUT i przestaw jego politykę na ACCEPT -- naprawdę, w obecnej chwili cały syf lata na porcie 443, tym samym co SSL/TLS i jeśli nie filtrujesz ruchu per aplikacja, to nie ma sensu dawać filtrowania w OUTPUT bo to nic nie daje. Jak chcesz mieć możliwość oglądania stron WWW, to musisz przepuścić stan NEW na port 443, i jak ci się jakiś syf wgra do systemu, to przez tą regułę wyjdzie w świat i masz pozamiatane. Więc albo daruj sobie filtrowanie OUTPUT, bo to bez sensu, albo twórz firewall procesowy ale to jest bardziej skomplikowane. xD

Ostatnio edytowany przez morfik (2022-10-13 11:33:59)

Offline

 

#46  2022-12-04 13:57:27

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: (SOLVED) Regoly iptables blokuja dostep do Internetu

Potrzebne mi jeszcze jedno uscislenie, w tym watku. Dotyczy czyszczenia tablicy conntrack.
Aktualny - dzialajacy zestaw regol:

Kod:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:conntrack - [0:0]
-A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "ininvalid* " --log-tcp-options --log-ip-options
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -f -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --dport 23 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m conntrack --ctstate INVALID,NEW -m limit --limit 30/min --limit-burst 10 -j LOG --log-prefix "outinvalid* " --log-tcp-options --log-ip-options
-A OUTPUT -m conntrack --ctstate INVALID -j DROP
-A OUTPUT -p tcp -m tcp --dport 23 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT

Problem, kiedy wpisuje na poczatku:

Kod:

conntrack -F

wyrzuca bledy.
Jak powinien wygladac prawidlowy wpis zeby conntrack kazdorazowo czyscil tablice ?

W takiej sytuacji stworzylem zadanie (task) dla crona zeby co 5 minut wykonywal conntrack -F w conntrack.sh.

Edyta. Zauwazylem ze w lancuchu "Output" regula "LOG" wylapuje ok 10xwiecej pakietow INVALID anizeli upuszcza regola "DROP" w tym samym lancuchu. Co to sa za tajemnicze pakiety, ktore sa logowane jako "INVALID" ale mimo tego nie sa zzucane na regole "DROP" tylko trawersuja dalej ? Szukalem odpowiedzi w Internecie, ale bezskutecznie - moze ktos ma jakies wytlumaczenie ?

Ostatnio edytowany przez Karoll (2022-12-26 10:56:59)

Offline

 

Stopka forum

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