PDA

View Full Version : IpTables [problema connessioni Https]


toni00c
21-06-2011, 13:39
ciao a tutti ho un problema con la configurazione del mio iptables , in quantop non permette
le autenticazioni nei siti (https) ; es quando voglio accedere a facebook , o leggere la mail dal browser , non posso autenticarmi


premetto che ho un router netgear ;


questa è la configurazione del mio firewall




#Default bloccare tutto e consentire quello che conosciamo
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j DROP



# Frammenti e pacchetti non validi
iptables -A INPUT -f -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -f -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP


#Si permette alla rete locale di dialogare con il firewall e di accedere #all’esterno:
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT



# anti-spoofing rules
iptables -A INPUT -i eth0 -s ! $INT_NET -j LOG --log-prefix "SPOOFED PKT "
iptables -A INPUT -i eth0 -s ! $INT_NET -j DROP



#abilito porte web
iptables -A OUTPUT -m state --state NEW -p tcp --dport 8118 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT


#abilitazione traffico relativo a pacchetti in risposta
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 8118 -j ACCEPT





#pacchetti icmp
iptables -A INPUT -p icmp -j DROP


# Drop invalid packets immediately
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP


#rifiuta i seguenti pacchetti

iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
iptables -A INPUT -d 224.0.0.0/4 -j DROP
iptables -A INPUT -s 240.0.0.0/5 -j DROP
iptables -A INPUT -d 240.0.0.0/5 -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 239.255.255.0/24 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP





#Drop & log dei pacchetti pericolosi bad
iptables -A INPUT -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m state --state INVALID -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -A INPUT -p tcp -m tcp --dport 137:139 -j DROP
iptables -A INPUT -p tcp -m tcp --sport 137:139 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 2049 -j DROP
iptables -A INPUT -p tcp -m tcp --sport 2049 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 6000:6063 -j DROP
iptables -A INPUT -p tcp -m tcp --sport 6000:6063 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 20034 -j DROP
iptables -A INPUT -p tcp -m tcp --sport 20034 -j DROP
iptables -A INPUT -p tcp -m tcp --sport 12345:12346 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 27374 -j DROP
iptables -A INPUT -p tcp -m tcp --sport 27374 -j DROP


# chiusura porte non necessarie
iptables -A INPUT -p tcp --sport 1:52 -j DROP
iptables -A INPUT -p tcp --sport 54:79 -j DROP
iptables -A INPUT -p tcp --sport 81:442 -j DROP
iptables -A INPUT -p tcp --sport 444:8117 -j DROP
iptables -A INPUT -p tcp --sport 8119:65535 -j DROP
iptables -A INPUT -p udp --sport 1:52 -j DROP
iptables -A INPUT -p udp --sport 54:79 -j DROP
iptables -A INPUT -p udp --sport 81:442 -j DROP
iptables -A INPUT -p udp --sport 444:8117 -j DROP
iptables -A INPUT -p udp --sport 8119:65535 -j DROP



è un po lunga lo so... dove sbaglio secondo voi?

altra domanda : bloccare le porte alte da iptables (10000-65535) pare non piacere al router , perchè?
grazie a tutti

HexDEF6
22-06-2011, 20:04
trovo la tua configurazione leggermente paranoica e in parte inutile...

se hai il comportamento di default in DROP per le regole di input, perche' mai vai pure a specificare le singole regole (che quindi sono inutili)?
se la macchina e' tua e ci lavori solo tu, perche' metti l'output di default a drop (paranoia?)?
inoltre con queste:

iptables -A OUTPUT -m state --state NEW -p tcp --dport 8118 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT

se non ricordo male ti dovrebbe permettere solo di iniziare le connessioni (un syn per il tcp... non ricordo per l'udp cosa faccia), quindi una volta iniziata la connessione, poi non puoi proseguirla.... quindi prova a togliere -m state --state NEW....

alla fine il firewall dovrebbe diventare qualcosa del tipo:

#Default bloccare tutto e consentire quello che conosciamo
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j DROP



# Frammenti e pacchetti non validi
iptables -A INPUT -f -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -f -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP


#Si permette alla rete locale di dialogare con il firewall e di accedere #all’esterno:
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT



# anti-spoofing rules
iptables -A INPUT -i eth0 -s ! $INT_NET -j LOG --log-prefix "SPOOFED PKT "
iptables -A INPUT -i eth0 -s ! $INT_NET -j DROP



#abilito porte web
iptables -A OUTPUT -p tcp --dport 8118 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT


#abilitazione traffico relativo a pacchetti in risposta
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 8118 -j ACCEPT

toni00c
23-06-2011, 21:34
trovo la tua configurazione leggermente paranoica e in parte inutile...

se hai il comportamento di default in DROP per le regole di input, perche' mai vai pure a specificare le singole regole (che quindi sono inutili)?
se la macchina e' tua e ci lavori solo tu, perche' metti l'output di default a drop (paranoia?)?
inoltre con queste:

iptables -A OUTPUT -m state --state NEW -p tcp --dport 8118 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT

se non ricordo male ti dovrebbe permettere solo di iniziare le connessioni (un syn per il tcp... non ricordo per l'udp cosa faccia), quindi una volta iniziata la connessione, poi non puoi proseguirla.... quindi prova a togliere -m state --state NEW....

alla fine il firewall dovrebbe diventare qualcosa del tipo:

#Default bloccare tutto e consentire quello che conosciamo
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j DROP



# Frammenti e pacchetti non validi
iptables -A INPUT -f -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -f -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP


#Si permette alla rete locale di dialogare con il firewall e di accedere #all’esterno:
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT



# anti-spoofing rules
iptables -A INPUT -i eth0 -s ! $INT_NET -j LOG --log-prefix "SPOOFED PKT "
iptables -A INPUT -i eth0 -s ! $INT_NET -j DROP



#abilito porte web
iptables -A OUTPUT -p tcp --dport 8118 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT


#abilitazione traffico relativo a pacchetti in risposta
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED --sport 8118 -j ACCEPT



allora tanto per cominciare ti Ringrazio Molto per la risposta , era una domanda forse un po "difficile"

in secondo luogo ho messo l'output a Drop di default per bloccare eventuali connessioni non desiderate , ma consentire solo ciò che che voglio
ovvero navigare nel web e leggere la posta

domani proverò la tua correzione , Grazie ancora

toni00c
26-06-2011, 10:41
ciao ho snellito un po il firewall e cambiato come mi avevi detto tu
quelle regole , adesso funziona perfettamente , grazie

#Default bloccare tutto e consentire quello che conosciamo
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j DROP




#Si permette alla rete locale di dialogare con il firewall e di accedere #all’esterno:
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT







#abilito porte web
iptables -A OUTPUT -p tcp --dport 8118 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 993 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 465 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT