iptables ESTABLISHED

Spørgsmål eller problemer med kablet netværk, trådløst netværk, netværkshåndteringen eller andet som vedrører netværk.
DUEDAHL
Indlæg: 4
Tilmeldt: 19. jun 2010, 19:29
IRC nickname: DUEDAHL

iptables ESTABLISHED

Indlæg af DUEDAHL »

Hej

Jeg har lige et iptables spørgsmål. I mit regelsæt har jeg tre linjer som ser således ud:

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

De sørger for at connections bliver gemt i memory, så den samme trafik ikke skal igennem regelsættet hele tiden.

Det betyder også, at hvis jeg f.eks. vil lukke for port 80 (http) skal jeg på en eller anden måde flushe min ESTABLISHED-connection-log, ellers kan jeg fortsætte med at bruge port 80 selvom den faktisk er lukket.

Er det rigtigt forstået? og hvordan flusher jeg på den rigtige måde? Indtil nu har jeg brugt iptables -F :)

Hele mit regelsæt ser nogenlunde sådan ud: http://paste.ubuntu.com/493247/

\\DUEDAHL
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: iptables ESTABLISHED

Indlæg af lath »

DUEDAHL skrev:Hej

Jeg har lige et iptables spørgsmål. I mit regelsæt har jeg tre linjer som ser således ud:

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

De sørger for at connections bliver gemt i memory, så den samme trafik ikke skal igennem regelsættet hele tiden.


Såvidt jeg husker så er:
--state ESTABLISHED,RELATED -j ACCEPT

det samme som en stateful packet inspection (SPI) firewall. (Link til Wikipedia SPI firewall artikel)

Hvis det er rigtigt, så har du ikke helt ret, da pakken skal igennem regelsættet, fordi kernen skal se om pakken tilhører en forbindelse der er etableret. For at huske om en forbindelse er etableret bruger kernen lidt RAM.

DUEDAHL skrev:Det betyder også, at hvis jeg f.eks. vil lukke for port 80 (http) skal jeg på en eller anden måde flushe min ESTABLISHED-connection-log, ellers kan jeg fortsætte med at bruge port 80 selvom den faktisk er lukket.

Er det rigtigt forstået? og hvordan flusher jeg på den rigtige måde? Indtil nu har jeg brugt iptables -F :)

Hele mit regelsæt ser nogenlunde sådan ud: http://paste.ubuntu.com/493247/

\\DUEDAHL


Jeg er kommet frem til at du snakker om udadgående port 80 trafik, for ellers giver dit spørgsmål slet ikke mening.

Kort fortalt er det en dårlig ide at flushe den log.
Prøv at tænke over hvad en ekstern web serveren vil modtage i dette scenarie:
  1. En bruger sender en HTTP forespørgsel til en webserver
  2. Du flusher loggen

Der sker det her:
  1. Webserveren prøver at svare klienten, men adgang bliver nægtet, da SPI firewallen ikke kan finde nogen information om at en klient ønsker et svar fra den host (en klient har ikke oprettet en forbindelse til den host i henhold til loggen).
  2. Bruger sidder meget utålmodigt og venter på at en webserver, som ikke svarer (set fra brugerens synspunkt)
  3. Kun hvis brugeren genindlæser siden vil det lykkedes at læse siden

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
DUEDAHL
Indlæg: 4
Tilmeldt: 19. jun 2010, 19:29
IRC nickname: DUEDAHL

Re: iptables ESTABLISHED

Indlæg af DUEDAHL »

lath skrev:
DUEDAHL skrev:Hej

Jeg har lige et iptables spørgsmål. I mit regelsæt har jeg tre linjer som ser således ud:

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

De sørger for at connections bliver gemt i memory, så den samme trafik ikke skal igennem regelsættet hele tiden.


Såvidt jeg husker så er:
--state ESTABLISHED,RELATED -j ACCEPT

det samme som en stateful packet inspection (SPI) firewall. (Link til Wikipedia SPI firewall artikel)

Hvis det er rigtigt, så har du ikke helt ret, da pakken skal igennem regelsættet, fordi kernen skal se om pakken tilhører en forbindelse der er etableret. For at huske om en forbindelse er etableret bruger kernen lidt RAM.

DUEDAHL skrev:Det betyder også, at hvis jeg f.eks. vil lukke for port 80 (http) skal jeg på en eller anden måde flushe min ESTABLISHED-connection-log, ellers kan jeg fortsætte med at bruge port 80 selvom den faktisk er lukket.

Er det rigtigt forstået? og hvordan flusher jeg på den rigtige måde? Indtil nu har jeg brugt iptables -F :)

Hele mit regelsæt ser nogenlunde sådan ud: http://paste.ubuntu.com/493247/

\\DUEDAHL


Jeg er kommet frem til at du snakker om udadgående port 80 trafik, for ellers giver dit spørgsmål slet ikke mening.

Kort fortalt er det en dårlig ide at flushe den log.
Prøv at tænke over hvad en ekstern web serveren vil modtage i dette scenarie:
  1. En bruger sender en HTTP forespørgsel til en webserver
  2. Du flusher loggen

Der sker det her:
  1. Webserveren prøver at svare klienten, men adgang bliver nægtet, da SPI firewallen ikke kan finde nogen information om at en klient ønsker et svar fra den host (en klient har ikke oprettet en forbindelse til den host i henhold til loggen).
  2. Bruger sidder meget utålmodigt og venter på at en webserver, som ikke svarer (set fra brugerens synspunkt)
  3. Kun hvis brugeren genindlæser siden vil det lykkedes at læse siden

/Lars


Hej Lars

Jeg kan godt følge dig i, at det ikke er en god ide er flushe loggen, men hvis man ikke gør det og ønsker at lukke f.eks. udgående port 80 trafik, kan mine klienter bare fortsætte med at snakke på port 80. Forbindelsen er jo blevet established og dermed er firewallen ligeglad med at porten faktisk er lukket :S

Så sådan som jeg ser det, er den eneste måde jeg kan lukke af for noget, som har været åbnet, er ved at flushe den log.

Og et sidespørgsmål: den log må da smide sine established connections engang imellem? ellers bliver den sq stor til sidst :)

\\DUEDAHL
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: iptables ESTABLISHED

Indlæg af lath »

En SPI firewall kigger efter SYN og SYN ACK.
Det får en forbindelse til at blive ESTABLISHED.

Når der så kommer en FIN og FIN ACK lukkes den igen.
Et timeout styrer også hvor lang tid porten er åben, når der ikke lige sendes pakker, der bekræfter at forbindelsen stadig er i brug.
Du kan skrue på det timeout - sikkert ved at ændre på en kerne-variabel ved at skrive til en fil i /proc filsystemet.

Jeg er ret sikker på at det du ser at en timeout ikke har lukket porten - og så tror du at den er åben hele tiden, når den først er blevet åbnet, men sådan fungerer en SPI firewall ikke.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags