# iptables regole

## rota

ciao a tutti vorrei poter migliorare questo script ...di iptables...

#!/bin/sh

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/255.255.255.0 -j MASQUERADE

iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j REJECT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

o bisogno di cualche buon consiglio per rendere sicuro il serrver ecc..

o bisogno sopratutto di chiudere tutte le porte tranne la prta http quella diu posta ( entrata uscita ) quella di telenet ssh 

vorrei fare in nmodo che se uno pinga per esempio o fa cualsia altra cosa su una porta venga reinderizzato su unaltra porta o meghliuo su nul ( spero che si dica cosi ) 

io non o seprienzza sulla sicurezza di iptables ecc perrcio accetto cualsiasi consiglio ....

----------

## xchris

il miglior consiglio che posso darti e' quello di studiarti uno script gia' esistente (in rete ce ne sono molti).

Studi a fondo il funzionamento e entri nella logica di iptables.

(potrai cosi' scrivertene uno ad hoc)

Se il tuo scopo e' invece solo quello di "renderlo sicuro" senza troppe complicazioni ti consiglio di installare shorewall. (ne esistono altri...ma a mio avviso questo non ha rivali)

Ciao

----------

## randomaze

 *rota wrote:*   

> io non o seprienzza sulla sicurezza di iptables ecc perrcio accetto cualsiasi consiglio ....

 

Credo che la lettura di IPtables for Fun -- Implementare un firewall in linux possa essere meglio di qualsiasi consiglio...

----------

## rota

io o trovato su   http://ilpettegolo.altervista.org/Linux-firewall-when-why-3.html du regole 

iptables -t filter -A INPUT -p udp --dport 0:1023 -i ppp0 -j REJECT

iptables -t filter -A INPUT -p tcp --syn --dport 0:1023 -i ppp0 -j REJECT

pero non o capito cosa faccia ...non o capito se chiude tutte le porte tranne quelle che vanno da  0:1023 ..

sapete come fare per mandare un messagio di erore a chi tenta un acesso alle porte privilegiate???

----------

## xchris

attenzione perche' ssh e http sono sotto la 1024.

Quelle regole bloccano il traffico sotto la 1024.

Non puoi mandargli un messaggio di errore.

Semplicemente non potranno accedervi (sempre poi che ci siano dei servizi sulla macchina)

Al massimo puoi loggare questi tentativi.

Ti ri-consiglio di leggere una guida.

Quella suggerita da randomaze mi sembra ben fatta.

ciao

----------

## rota

la sto leggendo ...

prima che mi dimentico ..io voglio che tutto sia chiuso tranne alcune porte ..pero cuesto solo dall'seterno ....non so se sono chiaro ....

m...

da cuello che io o capito per chiudere tutto tranne che ne so la porta ftp

devo fare cosi 

iptables -A INPUT -p tcp --dport 23 --syn -j ACCEPT

iptables -A INPUT -p tcp --dport 0:65536 --syn -j DROP

io se o capito bene la regola 

iptables -A INPUT -p tcp --dport 23 --syn -j ACCEPT

mi dice che tutti i servizzi tcp sono blocati tranne ftp cioe la porta 23

ma non o capito bene 

iptables -A INPUT -p tcp --dport 0:65536 --syn -j DROP

a cosa serva 

com o letto anche che se voglio blloccare tutto basta ...

iptables -A INPUT -p tcp -s ! localhost --dport 0:65536 --syn -j DROP

pero non creddo che mi convenga sta soluzzioe ..vero ????Last edited by rota on Tue Oct 26, 2004 11:51 am; edited 1 time in total

----------

## rota

m e se uso sta regola ..

iptables -A INPUT -p tcp -s ! localhost --dport 0:65536 --syn -j DROP

e poi ne faccio unaltra dove gli dico che porte devono essere aperte ???

visot che sono pochi i servizzi mi sa che mi conviene no?=??

----------

## rota

xchris

cosa mi dicevi di queste 2 regole ??'

iptables -t filter -A INPUT -p udp --dport 0:1023 -i ppp0 -j REJECT 

iptables -t filter -A INPUT -p tcp --syn --dport 0:1023 -i ppp0 -j REJECT 

se o capito bene devo fare cosi ???

iptables -t filter -A INPUT -p udp --dport 200:1023 -i ppp0 -j REJECT 

iptables -t filter -A INPUT -p tcp --syn --dport 200:1023 -i ppp0 -j REJECT 

cosi facendo io blocco tutte le porte tcp che vanno da 200 a 1023 .. pensi che cosi vadda meglio ???'

 :Crying or Very sad:   :Question:   :Question: 

----------

## rota

pero una cosa non e chwe o problemi con udp se blocco la porta sbagliata non e che faccio casini con il DNS ??

----------

## rota

io pensavo di fare cosi 

iptables -A INPUT -p tcp --destination-port 25 80 -i ppp0 -j DROP

in questo modo si chiude tutto dall'esterno tranne le porte 25 e 80 

puo andare oppure no??'

----------

## rota

ao io o provato pero non mi funge niente ma come ùsi fa a chiudere tutte le porte tranne la 25 110  22

io o letto la guida che tu mi ai detto di leggere ma e una ciofecha non mi aiuta per niente ...

----------

## rota

 :Sad:   :Sad:   :Sad:   :Sad: 

----------

## Manuelixm

Prova sugli appunti di informatica libera, li trovi on line, fai una ricerca in google.

----------

## comio

allora vuoi chiudere tranne la 25 la Y e la Z... fai cosi:

apri 25

apri Y

apri Z

chiudi tutto

le chain vengono analizzate dalla prima regola all'ultima, quindi prima vengono controllate le regole che aprono e poi il default che è chiudere

ciao

----------

## rota

scusama none chiaro ??'se mi scrivi laregola la regola la capisco meglio   :Crying or Very sad:   :Crying or Very sad:   :Embarassed:   :Question:   :Question:   :Arrow: 

----------

## comio

Per esempio:

```

iptables -A INPUT --dport 25 -j ACCEPT

iptables -A INPUT --dport Y -j ACCEPT

...

iptables -A INPUT -j DROP

```

HINT: vedi l'opzione policy e tii eviti l'ultima regola  :Wink: 

ciao

----------

## rota

percio lo script diventerebbe cosi ...

#!/bin/sh

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/255.255.255.0 -j MASQUERADE

iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j REJECT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

iptables -A INPUT --dport 25 -j ACCEPT

iptables -A INPUT --dport Y -j ACCEPT

...

iptables -A INPUT -j DROP 

e cosi mi chiude tutte le porte?? tranne la25 e la Y ???'

----------

## comio

in ingresso si... poi bisogna vedere cosa c'è intorno...

ragzzi usate iptables-save e iptables-restore... sono tools fantastici  :Smile: 

(gusti personali imho...)

ciao

----------

## rota

csa vuol dire 

"in ingresso si... poi bisogna vedere cosa c'è intorno... ""  :Question:   :Question:   :Question: 

vabbe pero cuello che io o scritto se o capito bene mi permette di aprire le porte che iovoglio edi chiudermi tutte le altre ??

a dimenticavo per non avere prob col dns dhcp chedevo fare ?????

----------

## xchris

 *rota wrote:*   

> a dimenticavo per non avere prob col dns dhcp chedevo fare ?????

 

leggere "a fondo" le guide che ti sono state suggerite + volte.  :Smile: 

ciao

----------

## rota

sto legendo sto legendo...grazzie del vostro aiuto  :Embarassed: 

----------

## rota

o provato a eseguire sta regfola ma inutile non accetta --dport 

iptables -A INPUT --dport 25 -j ACCEPT

iptables v1.2.11: Unknown arg `--dport'

Try `iptables -h' or 'iptables --help' for more information.

----------

## rota

iptables -A INPUT -p tcp -i eth1 --dport 110 -j ACCEPT

cosi la accetta ....

pero io facci 

nmap -sT localhost 

mi vede sempre cueste porte aperte

nmap -sT 192.168.0.1

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-10-27 10:53 UTC

Interesting ports on 192.168.0.1:

(The 1655 ports scanned but not shown below are in state: closed)

PORT    STATE SERVICE

68/tcp  open  dhcpclient

111/tcp open  rpcbind

139/tcp open  netbios-ssn

445/tcp open  microsoft-ds

631/tcp open  ipp

----------

## Manuelixm

Prova specificando il protocollo. così:

```

iptables -A INPUT -p tcp --dport 25 -j ACCEPT

```

----------

## rota

una cosa non lo cpaita ma 

che differenza ce tra --dport e --sport ???

esempio 

/sbin/iptables -A INPUT -i eth0 -p TCP --dport 22 -s $GW2 -j ACCEPT

/sbin/iptables -A OUTPUT -o eth0 -p TCP --sport 22 -d $GW1 -j ACCEPT

----------

## Manuelixm

man iptables

----------

## rota

allora io o impostato cosi ...iptables

!/bin/sh

# masquerade

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/255.255.255.0 -j MASQUERADE

iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j REJECT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# chiude tutte le porte tranne la porta 80

# iptables -A INPUT -i eth1 -p tcp --syn --destination-port ! 80 -j DROP

# iptables -A INPUT -i ppp0 -p tcp --syn --destination-port ! 80 -j DROP

# apri la porta 21/FTP

iptables -A INPUT -p tcp -i eth1 --dport 21 -j ACCEPT

#apri la porta 22/SH

iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT

#apri la porta 23/TELENT

iptables -A INPUT -p tcp -i eth1 --dport 23 -j ACCEPT

#apri la porta 25/SMTP

iptables -A INPUT -p tcp -i eth1 --dport 25 -j ACCEPT

iptables -A INPUT -p tcp -i eth1 --sport 21 -j ACCEPT

#apri la porta 80/HTTP

 iptables -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT

#apri la porta 110/POP3

iptables -A INPUT -p tcp -i eth1 --dport 110 -j ACCEPT

iptables -A INPUT -j DROP

~

lo scrip  mi chide tuttw le porte -- pero o il prb cche mi chiude anche cuelle che mi servono tipo andare su internet 

 :Crying or Very sad:   :Crying or Very sad:   :Question:   :Question: 

----------

## comio

HINT1: --sport --dport... source port, destination port... non voglio essere petulante, ma dovresti studiare un po' di IP/TCP e di filtering in generale, altrimeni tutto sarà oscuro...

HINT2: se devi andare su internet... magari ti serve una regola del tipo:

```

iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

```

perché?

HINT3: studia prima a tavolino le regole per ogni chain di default (INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING)

ciao

----------

## rota

iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

sta regola mica mi e tanto chiara ... io devvo scrivere cosi come me lai detta???

----------

## rota

non ce sto a capi piu niente   :Crying or Very sad:   :Crying or Very sad:   :Embarassed:   :Embarassed: 

o letto pure le guide che mi avete consigliato ..ma mi sono fatto una capa tanta che non ne vengo piu   :Confused: 

adesso tirate fuori anxhe sta regola 

iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 

mo non so piu che fare .. vabbe vaddo un momentino a spaccare la testa contro il muro poi torno ...  :Crying or Very sad:   :Crying or Very sad: 

----------

## comio

nessun panico... quella regola volontariamente te l'ho messa così...

il problema è che non hai ben chiaro come ragiona iptables... ti consiglio di iniziare a leggere questo:

http://www.netfilter.org/documentation/HOWTO/it/networking-concepts-HOWTO.html

e poi

http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO.html

e poi tutto il resto...

inizia con le cose semplici e leggi con attenzione il materiale che ti viene indicato anche dagli altri.

ok?

fammi sapere esattamente quali sono i tuoi problemi...

ciao

----------

## oRDeX

in certe situazioni anche io dico: RTFM - man iptables

----------

## rota

vi ringrayyio per la vostra paziienza .....  :Wink: 

----------

## rota

 :Crying or Very sad:   :Crying or Very sad:   :Crying or Very sad:  nioente da fare o ancora probblemi.. io riesco a ricevere la posta ma non posso inviarla ....

allora io o impostato cosi lo script che mi gestisce le regole ....

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.1/255.255.255.0 -j MASQUERADE

io cosi dovrei fare un masquerade delle 2 schedde di rete e dovrei avere i stessi servizzi sia che su eth1 che su eth0... man on e cosi ...

se faccio 

nmap -sT localhost

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-11-04 13:32 CET

Interesting ports on sofemared (127.0.0.1):

(The 1655 ports scanned but not shown below are in state: closed)

PORT    STATE SERVICE

68/tcp  open  dhcpclient

111/tcp open  rpcbind

139/tcp open  netbios-ssn

445/tcp open  microsoft-ds

631/tcp open  ipp

mi fa vedre solo cueste porte ..la 25 la 110 non le veddo.... ma come faccio ad aprire ste benedette porte ???? o guiardato il file /etc/services

ma non  o capito se e cuesto il file che mi permette di aprire le porte eccc...

o fatto anche cuello che mi avete suggerito  ...o usato :

iptables -A INPUT -p tcp --dport 25 -j ACCEP

iptables -D INPUT -p tcp --dport 110-j ACCEP

ma non me le apre .....

 :Rolling Eyes:   :Rolling Eyes:   :Crying or Very sad: 

----------

## Manuelixm

Dubito che ti abbiano suggerito così 

```

iptables -A INPUT -p tcp --dport 25 -j ACCEP

iptables -D INPUT -p tcp --dport 110-j ACCEP 

```

per 2 motivi:

- ACCEP è un errore di scrittura -> ACCEPT

- con il primo comando aggiungi un regola alla tabella INPUT, con la seconda la cancelli.

Se non ho scritto c...ate dovrei aver capito un po' come funziona il tutto.

----------

## rota

o solo scritto male...am il comando da terminale l,o scritto bene ... a me non compare nessun errore .....  :Wink:  e solo che non mi apre le porte ...

----------

## grentis

Perchè la seconda regola non deve essere 

```
iptables -D INPUT -p tcp --dport 110 -j ACCEPT
```

ma 

```
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
```

O almeno mi sembra....  :Very Happy: 

----------

## Manuelixm

Esatto, che svista, non ho fatto caso alle porte che erano diverse, cmq come ti è già stato suggerito, è meglio che ti leggi la documentazione o che usi il man iptables per vedere cosa significano i vari parametri.

----------

