Nabuk Wireless Community

Sistemi Operativi => Unix e derivati => Topic aperto da: Alnath - Agosto 19, 2007, 10:58:42 am

Titolo: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 19, 2007, 10:58:42 am
Ragazzi ho bisogno di un aiutino... sto scrivendo uno script da eseguire in fase di avvio che mi permetta di settare delle policy personalizzate di iptables.

attraverso shell si digita il solito comando...
iptables -p.... - j ACCEPT

ma in uno script?????
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 19, 2007, 12:45:24 pm
<file /etc/script/iptables.sh>
#!/bin/sh
iptables -p... -j ACCEPT
</file>

chmod a+x /etc/script/iptables.sh

Per eseguirlo all'avvio

echo "/etc/script/iptables.sh" >> /etc/rc.local ( >> aggiunge ma nn sovrascrive vero????)
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 19, 2007, 01:46:19 pm
Ora provo, grazie... per? in precedenza mi restituiva un errore...
controllo e faccio sapere
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 19, 2007, 06:37:39 pm
Dopo qualche prova funziona!!!!
Mi devo ricordare in futuro di non scrivere i files in win
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 19, 2007, 07:25:18 pm
io win non lo considero proprio +! lo uso solo per le prove di "compatibilit?" dei servizi della lan
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 19, 2007, 08:32:03 pm
gi?... anch'io non lo avrei usato se avessi avuto a disposizione il mio pc, ma la fretta in alcuni casi ? una cattiva compagnia...  :-D
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 19, 2007, 08:36:13 pm
echo "/etc/script/iptables.sh" >> /etc/rc.local ( >> aggiunge ma nn sovrascrive vero????)

Ma questo comando "appende" la dicitura /etc/script/iptables.sh (o dove si trova lo script) al file /etc/rc.local????
Se la aggiunge, la inserisce prima o dopo la dicitura "Exit 0" presente in questo file??? Ho capito, provo e poi mi rispondo da solo... sar? meglio che nel frattempo mi faccia un backup del file rc.local  8-)
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 20, 2007, 12:37:45 pm
scusa alnath hai ragione !!! va prima di Exit!!!!!
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 20, 2007, 04:30:29 pm
Infatti ho effettuato delle prove e, come hai aggiunto tu, va scritto prima della dicitura "exit 0"...
Visto che mentre facevo pulizia in ripostiglio ho trovato una sk eth D-Link 10/100 che mi "avanzava", sto pensando di inserirla sul server e configurarlo anche da firewall-router di rete.

Alla luce di questo vorrei modificare/aggiornare l'HowTo e quindi effettuare il nat delle schede eth...
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 20, 2007, 04:55:03 pm
iptables -A INPUT -i $LANIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXITIF -j MASQUERADE
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: DjByte - Agosto 20, 2007, 09:51:34 pm
[OT]
X Alnath: azz, nemmeno il tempo necessario per l'integrazione nella guida alle w-lan, che tra le tante cose, ? stata stravolta completamente per contenere la parte server...
Tenendo conto che sto rivedendo tutte le convenzioni usate (ho deciso di adattarmi alla tua "forma", che pare essere pi? efficace), di questo passo dovr? fare i salti mortali per starti dietro!
[/OT]

Byte
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 21, 2007, 09:55:21 am
io direi di aspettare per l'integrazione visto che penso che la guida sui server sia ancora in beta ... no ??
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 21, 2007, 10:06:19 am
[OT mode = on]
vai tranquillo, fino al capitolo che tratta iptables ? tutto uguale, ho corretto qualche errore/orrore
[OT mode = off]

Ho aggiunto un'altra sk eth sul server ed ho invertito le impostazioni (eth0 -> wan, eth1 -> lan) modificando solamente il file /etc/network/interfaces e cambiando di conseguenza la posizione della spinetta del cavo ethernet.
Quindi ora ho la seguente situazione:


auto lo eth0 eth1
iface lo inet loopback

# The primary network interface
iface eth0 inet static
   address 10.0.0.1
   netmask 255.255.255.0
   broadcast 10.0.0.255
   network 10.0.0.0
             gateway 10.0.0.0
   dns-nameservers 10.0.0.0

iface eth1 inet static
   address 192.168.0.100
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255
             gateway 10.0.0.1
             # Le righe sottostanti le posso cancellare?????
   # dns-* options are implemented by the resolvconf package, if installed
   #dns-nameservers 10.0.0.1
   #dns-search MiaRete.lan

e nello script di avvio:

# Si garantisce il traffico sulla loopback e quello generato
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

# Si garantisce il traffico in uscita generato da noi
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

#  tabella nat
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 127.0.0.1 -o eth0 -j MASQUERADE

# abilita la tabella di routing
ip route add default via 10.0.0.0

# Abilitazione del forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

Manca qualcosa????
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 21, 2007, 10:09:17 am
non mi sembra ....
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 21, 2007, 11:15:50 am
io direi di aspettare per l'integrazione visto che penso che la guida sui server sia ancora in beta ... no ??

esatto, la guida attualmente ? sempre in evoluzione e si fermer? quando avr? implementato la parte con la VPN.
Per completezza ora sto completando la sezione del firewall e poi passer? alla fase menzionata sopra.
Ricordo che la guida ? stata redatta per aiutare un neofita (come me) a crearsi da zero un server Ubuntu, spiegando passo passo quello da fare e come/perch? farlo; in modo tale da imparare "sul campo" ed avere un server discretamente protetto (in giro ho visto certi orrori  :-o :-o :-o)

PS: nello script che ho scritto prima praticamente passa tutto dalla eth0 alla eth1 e viceversa; ora cercher? anche di filtrare...
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 21, 2007, 03:06:08 pm
Ok, lo ammatto: oggi proprio sto c@2zeggiando... qualche buon anima può controllarmi questo script????

Citazione
#!/bin/sh

###################################
#               1.5 configurazione iptables              #
###################################
modprobe ip_tables
modprobe iptable_nat
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_state

###################################
#                 4.1   imposta le policy                  #
###################################
# 4.1.0 resetta le policy eventualmente presenti
iptables -F
iptables -X

# 4.1.1 imposta le policy sulle categorie di catene
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# 4.1.2 creazione catene personalizzate
iptables -N WanToLan   #da eth0 a eth1 (Wan --> Lan)
iptables -N LanToWan   #da eth1 a eth0 (Lan --> Wan)

# 4.1.3 catene garantite
# regole di FORWARD applicate alle catene personalizzate
iptables -A FORWARD -i eth1 -o eth0 -j LanToWan
iptables -A FORWARD -i eth0 -o eth1 -j WanToLan

# eth0: garantiamo il traffico dalla Wan alla Lan bloccando tutto
# il traffico con destinazione <> dalla SubnetMask della LAN
iptables -A WanToLan -d ! 192.168.0.0/24 -j DROP
iptables -A WanToLan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A WanToLan -p tcp -j REJECT --reject-with tcp-reset

# eth1: garantiamo il traffico dalla Lan alla Wan bloccando
# tutto il traffico che non proviene dalla stessa SubnetMask
# e garantiamo solo quello considerato sicuro
iptables -A LanToWan -s ! 192.168.0.0/24 -j DROP
iptables -A LanToWan -p tcp --dport 21 -j ACCEPT
iptables -A LanToWan -p tcp --dport 25 -j ACCEPT
iptables -A LanToWan -p tcp --dport 80 -j ACCEPT
iptables -A LanToWan -p tcp --dport 110 -j ACCEPT
iptables -A LanToWan -p tcp --dport 143 -j ACCEPT
iptables -A LanToWan -p tcp --dport 443 -j ACCEPT
iptables -A LanToWan -p tcp --dport 993 -j ACCEPT
iptables -A LanToWan -p tcp --dport 995 -j ACCEPT
iptables -A LanToWan -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A LanToWan -p tcp -j REJECT --reject-with tcp-reset

# traffico dati che passa per il firewall: garantiamo il traffico sulla loopback
iptables -A INPUT -i lo -j ACCEPT

# garantiamo il traffico 'tcp' e 'udp' sulle porte
# in entrata e quello generato da noi
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp --dport 8245 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p udp --dport 110 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

# garantiamo il traffico in uscita generato da noi
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

###################################
#            4.2   abilitazione tabella nat               #
###################################
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 127.0.0.1 -o eth0 -j MASQUERADE

# abilita la tabella di routing
ip route add default via 10.0.0.1

# Abilitazione del forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

Ottimizzazione dello script: La parte scritta in rosso la si può eliminare????
Note: nella parte scritta in verde ho inserito l'ip della eth0; va scritto l'ip del router???
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 22, 2007, 09:07:30 am
io eliminerei solo "iptables -t nat -A POSTROUTING -s 127.0.0.1 -o eth0 -j MASQUERADE" visto ke non serve ... tutto il resto e ok ... penso ...
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 22, 2007, 10:35:57 am
Infatti lo pensavo anch'io... che dici, chiedo un consiglio anche sul forum di ubuntu o ci facciamo forza sul "cavarcela" da soli???
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: name29 - Agosto 22, 2007, 02:00:23 pm
io direi di cavarcela !!! sbagliano si impara no ..? Cmq sul masquerade da eliminare sono sicuro!
Titolo: Re: Script iptables da eseguire in fase di avvio
Inserito da: Alnath - Agosto 22, 2007, 03:25:00 pm
Grazie, gi? eliminato... ho aggiunto per? la porta 23 (telnet) e due porte a cavallo di mulo (solo sul lato LanToWan va bene o devo aggiungerle anche alla catena INPUT???)
Direi anch'io di cavarcela da soli, d'altronde il detto recita "sbagliando s'impara..." certo... non bisogna perseverare negli errori  :wink: