|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Domandona iptables e nemesis
Ciao a tutti, ho il seguente script di esempio con cui configuro un firewall iptables su una Debian 5.0.
Codice:
##VARIABILI IPTABLES="/sbin/iptables" LOCAL_IP="192.168.0.10" ##DEFAULT RULE $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP ##CHAIN DI OUTPUT $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP -d 0/0 --dport 12345 -j DROP $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP -d 0/0 --dport 12345 -j LOG --log-prefix "PORTA 12345:" $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 1024: -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 1024: -m state --state NEW,ESTABLISHED -j LOG --log-prefix "FTP DATA CONNECTION OUT:" ##CHAIN DI INPUT $IPTABLES -A INPUT -p TCP -s 0/0 --sport 1024: -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -p TCP -s 0/0 --sport 1024: -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "FTP DATA INPUT: " Lo script provato in vari modi usando per esempio netcat e telnet sembra funzionare correttamente, ma provando a generare un pacchetto con nemesis per testarne il funzionamento il pacchetto in questione esce come niente fosse dal FW!!! Come mai questo strano comportamento con nemesis? sembra che nemesis riesca a bypassare iptables. Questo è il comando che ho usato per generare il pacchetto di prova con nemesis: Codice:
nemesis tcp -d eth0 -v -a 123456789 -s 987654321 -f S -x 5555 -y 12345 -P - -S 192.168.0.10 -D 192.168.0.13 -I 123 -T 10 Ciao a tutti e grazie
__________________
Cpu: Intel Core 2 Quad Q8400@3.76GHz FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
La tua affermazione riguardo all'uscita indisturbata è dovuta alla mancanza di righe di log che iniziano con "PORTA 12345:"? Oppure dall'altra parte intercetti i pacchetti?
Prova ad invertire le regole; prima logga, poi scarta: Codice:
$IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP -d 0/0 --dport 12345 -j LOG --log-prefix "PORTA 12345:" $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP -d 0/0 --dport 12345 -j DROP
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Quote:
Ciao
__________________
Cpu: Intel Core 2 Quad Q8400@3.76GHz FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Le linee di log compaiono?
Non conosco nemesis e non ho ancora controllato la sua man, i dati corretti li vedo in gioco... Prova a fare un RETURN, che dovrebbe comunque interrompere la valutazione della catena facendo ricadere i pacchetti nella policy di default, l'OUTPUT DROP: Codice:
$IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP -d 0/0 --dport 12345 -j RETURN
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Quote:
Cmq guardando questo schema di netfilter: Codice:
_____ Ingresso / \ Uscita -->[Decisioni]-->|FORWARD|------> [di routing] \_____/ ^ | | v ____ ___ / \ / \ |OUTPUT| |INPUT| \____/ \___/ ^ | | ----> Processi locali --
__________________
Cpu: Intel Core 2 Quad Q8400@3.76GHz FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Ho controllato nemesis, si appoggia alle librerie libnet e libpcap.
libcap è una simpatica bestiola: in entrata intercetta tutto il traffico prima di netfilter, in uscita ha la stessa libertà... quindi, sì nemesis bypassa iptables. Un esempio di riferimento a questa cosa.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Quote:
![]() Non c'è quindi modo di fare lavorare libpcap prima della chain di output? Lo stesso problema quindi mi si verifica all'inverso con tcpdump o tshark che sia... ![]()
__________________
Cpu: Intel Core 2 Quad Q8400@3.76GHz FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Svelato il mistero!!!
![]() Se usiamo con nemesis l'opzione: Codice:
-d eth0 Codice:
# nemesis tcp -d eth0 -S 192.168.0.10 -x 5000 -D 192.168.0.13 -y 457 TCP Packet Injected Codice:
# nemesis tcp -S 192.168.0.10 -x 5000 -D 192.168.0.13 -y 457 ERROR: Incomplete packet injection. Only wrote -1 bytes. TCP Injection Failure Ciao P.S. Il test postato in questa pagina non si riferisce allo script sopra riportato ma ad un'altro che posto di seguito, cmq la sostanza non cambia Codice:
##VARIABILI LOCAL_IP="192.168.0.10" SERVER_IP="192.168.0.13" IPTABLES="/sbin/iptables" ##DEFAULT POLICY $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP ##CHAIN DI INPUT $IPTABLES -A INPUT -p TCP -s 0/0 --sport 456 -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "IN FROM TCP456:" $IPTABLES -A INPUT -p TCP -s 0/0 --sport 456 -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -p TCP -s 0/0 --sport 2000:3000 -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "IN FROM TCP2k3k:" $IPTABLES -A INPUT -p TCP -s 0/0 --sport 2000:3000 -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -p UDP -s $SERVER_IP --sport 53 -d $LOCAL_IP --dport 1024: -j LOG --log-prefix "DNS QUERY RESPONSE:" $IPTABLES -A INPUT -p UDP -s $SERVER_IP --sport 53 -d $LOCAL_IP --dport 1024: -j ACCEPT $IPTABLES -A INPUT -p TCP -s 0/0 --sport 21 -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "FTP COMMAND IN" $IPTABLES -A INPUT -p TCP -s 0/0 --sport 21 -d $LOCAL_IP --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -p TCP -s 0/0 --sport 20 -d $LOCAL_IP --dport 1024: -m state --state NEW,ESTABLISHED -j LOG --log-prefix "FTP DATA IN:" $IPTABLES -A INPUT -p TCP -s 0/0 --sport 20 -d $LOCAL_IP --dport 1024: -m state --state NEW,ESTABLISHED -j ACCEPT ##CHAIN DI OUTPUT $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 456 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "OUT TO TCP456:" $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 456 -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 2000:3000 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "OUT TO TCP2000:3000:" $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 2000:3000 -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -p UDP -s $LOCAL_IP --sport 1024: -d $SERVER_IP --dport 53 -j LOG --log-prefix "DNS QUERY OUT:" $IPTABLES -A OUTPUT -p UDP -s $LOCAL_IP --sport 1024: -d $SERVER_IP --dport 53 -j ACCEPT $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 21 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "FTP COMMAND OUT:" $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 20 -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "FTP DATA IN:" $IPTABLES -A OUTPUT -p TCP -s $LOCAL_IP --sport 1024: -d 0/0 --dport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -p ICMP -s $LOCAL_IP ! --icmp-type 8/0 -j LOG --log-prefix "ICMP ECHO REQ OUT:" $IPTABLES -A OUTPUT -p ICMP -s $LOCAL_IP ! --icmp-type 8/0 -j ACCEPT
__________________
Cpu: Intel Core 2 Quad Q8400@3.76GHz FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:27.