Newsgroup: it.comp.os.linux.sys
Titolo: Aiutino per settare iptables

Ciao !,
non sono esperto di iptables... ma vorrei chiudere
tutte le porte in ingresso alla mia macchina
( e magari anche in uscita .. ) e poi
permettere che continui ad erogare pagine web sulla 80
e fornire i servizi di server di posta ( pop3 ) , SSH e Mysql.
Ho provato cosě:
( con un piccolo script x fare le prove )
#!/bin/bash
iptables -F;
iptables -P INPUT DROP;
iptables -I INPUT -p tcp --dport 21 -j ACCEPT;
iptables -I INPUT -p tcp --dport 22 -j ACCEPT;
iptables -I INPUT -p tcp --dport 25 -j ACCEPT;
iptables -I INPUT -p tcp --dport 110 -j ACCEPT;
iptables -I INPUT -p tcp --dport 80 -j ACCEPT;
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT;
iptables -A INPUT -p icmp -j ACCEPT;
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j 
ACCEPT;
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP;
Tutto ok per il web .. ma non riesco a scaricare la posta in pop3  e anche 
l' FTP ( proftpd)
ha grossi problemi.
Cosa sbaglio ?
Grazie mille
                                            -- Yena -- 

 Cosa sbaglio ?
Sbagli a non leggere l'iptables howto che trovi con google.
Sbagli perchè devi sapere che, per come hai scritto le regole, i pacchetti
su lo non funzionano.
Sbagli anche perchè non sai che l'FTP in modalità attiva NON usa solo la
porta 21.
Ora, a meno che tu non pretenda che uno ti risponda con un trattato su
iptables e che ti corregga un errore alla volta faresti prima a leggerti
chi il trattato l'ha già scritto ... e che ti ho indicato.
-- 
A: Because we read from top to bottom, left to right.
Q: Why should i start my reply below the quoted text?


Dunque, ho cercato di documentarmi .. e ho risolto un po' di problemi ..
la versione che ho tirato fuori è questa:
#!/bin/bash
iptables -F;
iptables --delete-chain;
iptables -P INPUT DROP;
iptables -A INPUT -i lo -p all -j ACCEPT;
iptables -I INPUT -p tcp --dport 21 -j ACCEPT;
iptables -I INPUT -p udp --dport 21 -j ACCEPT;
iptables -I INPUT -p tcp --dport 22 -j ACCEPT;
iptables -I INPUT -p udp --dport 22 -j ACCEPT;
iptables -I INPUT -p tcp --dport 25 -j ACCEPT;
iptables -I INPUT -p udp --dport 25 -j ACCEPT;
iptables -I INPUT -p tcp --dport 110 -j ACCEPT;
iptables -I INPUT -p udp --dport 110 -j ACCEPT;
iptables -I INPUT -p tcp --dport 80 -j ACCEPT;
iptables -I INPUT -p udp --dport 80 -j ACCEPT;
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT;
iptables -I INPUT -p udp --dport 3306 -j ACCEPT;
Ci siamo ? :-)
Ora l' FTP è OK .. ma non riesco ancora a scaricare tramite pop3.. :-(
                                            -- Yena --

 Ora l' FTP è OK .. ma non riesco ancora a scaricare tramite pop3.. :-(
Allora, ripeto:
Hai molta confusione nella testa, visto che non hai capito la differenza
tra UDP e TCP.
Nel documento che ti ho consigliato, dovresti cercare di capire due cose
(tcp e utp sono un concetto base prima di leggere il documento):
1) cosa è la stateful inspection e possibilmente usarla. Non siamo nel 1998
e per fortuna esiste
2) per il pop3, leggere bene cosa è il target LOG e farti loggare tutti i
pacchetti che scarti alla fine delle regole di INPUT. Con i log dovresti
ben capire cosa viene bloccato e se è colpa del firewall (dubito).
Come hint su tcp e udp: sono due cose diverse, molto diverse.
MAx


 Dunque, ho cercato di documentarmi
Non mi pare che tu ti sia documentato molto bene.
Nessuno dei protocolli applicativi da te richiesti
utilizza udp come protocollo di trasporto, per dirne una.
-- 
Chaos A.D.		|	Raging crowd
Tanks on the streets	|	Burning cars
Confronting police	|	Bloodshed starts
Bleeding the Plebs	|	Who'll be alive?

 Bleeding the Plebs | Who'll be alive?
L' udp l'ho dovuto mettere per far funzionare l' FTP .. senza
non andava .. non chiedermi perchč ... perň cosě funziona bene.
Sulle altre porte in effetti č inutile.
                                -- Yena --

 ben capire cosa viene bloccato e se è colpa del firewall (dubito).
Ok grazie mille, procedo nel documentarmi sulla stateful inspection
e proviamo a loggare il pop3..
Grazie
                                                -- Yena -- 

 non andava ..
Non diciamo assurdità.


 Non diciamo assurdità.
Ma guarda che lui sta solo applicando il feng-shui all'informatica.


Si chiedo umilmente perdono .. dicevo cazz. .... :-)
Ora sono arrivato a questo punto .. e funziona tutto
( sicuramente è migliorabile ! ):
#!/bin/sh
set -e
iptables="/sbin/iptables"
modprobe="/sbin/modprobe"
load () {
 echo "Loading kernel modules..."
 $modprobe ip_tables
 $modprobe ip_conntrack
 $modprobe iptable_filter
 $modprobe ipt_state
 echo "Kernel modules loaded."
 echo "Loading rules..."
 $iptables -P FORWARD DROP
 $iptables -P INPUT DROP
 $iptables -A INPUT -p tcp -m tcp --destination-port 21:22 -j ACCEPT
 $iptables -A INPUT -p tcp -m tcp --destination-port 25 -j ACCEPT
 $iptables -A INPUT -p tcp -m tcp --destination-port 80 -j ACCEPT
 $iptables -A INPUT -p tcp -m tcp --destination-port 110 -j ACCEPT
 $iptables -A INPUT -p tcp -m tcp --destination-port 3306 -j ACCEPT
 $iptables -A INPUT -p tcp -m tcp --destination-port 8081 -j ACCEPT
 $iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
 $iptables -A INPUT -s 127.0.0.1 -j ACCEPT
 $iptables -A INPUT -p icmp -j ACCEPT;
 $iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 
1/s -j ACCEPT;
 $iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP;
 echo "Rules loaded."
}
flush () {
 echo "Flushing rules..."
 $iptables -P FORWARD ACCEPT
 $iptables -F INPUT
 $iptables -P INPUT ACCEPT
 echo "Rules flushed."
}
case "$1" in
 start|restart)
   flush
   load
   ;;
 stop)
   flush
   ;;
 *)
   echo "usage: start|stop|restart."
   ;;
esac
Grazie .. sopratutto per la pazienza !
( l' FTP andava impostato in active sul client )
                                -- Yena --

 ( l' FTP andava impostato in active sul client )
Se aggiungi un bel modprobe ip_nat_ftp il client potrà stare
nella modalità che preferisce ed il trasferimento dei dati
funzionerà comunque.
Ah, quei '-m tcp' sono superflui. :-)


 ( l' FTP andava impostato in active sul client )
Ora studiati i moduli nat helper, e vedrai che basta caricare
l'helper per l'ftp per lasciare aperta solo la 21, sia per
l'ftp attivo che passivo.  ;-)
bye G.L.


Si Bellissimo ! funziona :-)
                            -- Yena -- 

 Si Bellissimo ! funziona :-)
Ci tenevo a dirti che ultimamente non si vede molta gente in giro che, dopo
essere stata indirizzata nella direzione giusta, si mette a leggere e cerca
di capire. E soprattutto, capisce e risolve.
Giusto per spezzare "un'arancia" a tuo favore.


>  $iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP;
Ad essere pignoli, questa sarebbe ridondante :-P
Fabio

 Giusto per spezzare "un'arancia" a tuo favore.
Graziassss :-)
                                -- Yena --