Salve stavo cercando di comprendere il funzionamento di iptables,sono partito da un esempio ma al momento di eseguirlo sotto la shell mi viene restituito il seguente output:
1)bad argument 'ACCEPT'
2)iptables v1.3.5 Unknow arg '--to-source'
vi posto il firewall trovato in rete
#!/bin/bash
IPT=/sbin/iptables
NET="eth0"
LAN="eth1"
DMZ="eth2"
LO="lo"
IP_NET="10.0.0.1."
IP_LAN="192.168.47.1"
IP_DMZ="192.168.46.1"
IP_LO="127.0.0.1"
#IP_WEB_UPDATE="40.40.40.40"
#IP_FTP_UPDATE="50.50.50.50"
IP_DNS1="192.168.47.1"
#IP_DNS2=""
RANGE_IP_LAN="192.168.47.0/24"
RANGE_IP_DMZ="192.168.46.0/24"
SERVER_WEB="192.168.46.3"
#pulisco tutto
$IPT -F
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F -t mangle
$IPT -F -t nat
$IPT -X
#imposto il comportamento di default
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
#abilito l'ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
#creo dei chan nuovi per "ogni" tipo di connessione (vedi sotto)
$IPT -N net_to_lan
$IPT -N lan_to_net
$IPT -N net_to_dmz
$IPT -N dmz_to_net
$IPT -N lan_to_dmz
$IPT -N dmz_to_lan
$IPT -N server_to_net
$IPT -N net_to_server
$IPT -N lan_to_server
$IPT -N server_to_lan
$IPT -N dmz_to_server
$IPT -N server_to_dmz
#accetto in input sull'interfaccia LO tutto quello che viene dagli ip locali
$IPT -A INPUT -p ALL -i $LO -s $IP_LO -j ACCEPT
$IPT -A INPUT -p ALL -i $LO -s $IP_LAN -j ACCEPT
$IPT -A INPUT -p ALL -i $LO -s $IP_NET -j ACCEPT
$IPT -A INPUT -p ALL -i $LO -s $IP_WRL -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO -d $IP_LO -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO -d $IP_LAN -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO -d $IP_NET -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO -d $IP_WRL -j ACCEPT
#rispondo ai ping (non fondamentale, ma a volte e' comodo)
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#redirigo le chiamate fatte sulla porta 80 al server in DMZ
$IPT -t nat -A PREROUTING -i $NET -d $IP_NET -p tcp --dport 80 -j DNAT --to
$SERVER_WEB
#faccio snat dei computer in LAN (e quindi gli permetto di uscire su internet)
$IPT -t nat -A POSTROUTING -o $NET -s $RANGE_IP_LAN -j SNAT --to-source
$IP_NET
#divido le connessioni (FORWARD) in base alla provenienza/destinazione
$IPT -A FORWARD -i $NET -o $LAN -j net_to_lan
$IPT -A FORWARD -i $LAN -o $NET -j lan_to_net
$IPT -A FORWARD -i $NET -o $DMZ -j net_to_dmz
$IPT -A FORWARD -i $DMZ -o $NET -j dmz_to_net
$IPT -A FORWARD -i $LAN -o $DMZ -j lan_to_dmz
$IPT -A FORWARD -i $DMZ -o $LAN -j dmz_to_lan
#divido anche le connessioni in input....
$IPT -A INPUT -i $NET -j net_to_server
$IPT -A INPUT -i $LAN -j lan_to_server
$IPT -A INPUT -i $DMZ -j dmz_to_server
#... e output
$IPT -A OUTPUT -o $NET -j server_to_net
$IPT -A OUTPUT -o $DMZ -j server_to_dmz
$IPT -A OUTPUT -o $LAN -j server_to_lan
#da internet verso la LAN accetto solo le connessioni related,estabilished
$IPT -A net_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT
#dalla LAN permetto di uscire su tutte le porte
$IPT -A lan_to_net -j ACCEPT
#dalla DMZ verso internet accetto solo le connesioni related o estabilished
$IPT -A dmz_to_net -m state --state RELATED,ESTABLISHED -j ACCEPT
#permetto gli update
$IPT -A dmz_to_net -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT
$IPT -A dmz_to_net -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT
#permetto di risolvere nomi
$IPT -A dmz_to_net -d $IP_DNS1 -p udp --dport 53 -j ACCEPT
$IPT -A dmz_to_net -d $IP_DNS2 -p udp --dport 53 -j ACCPET
#se il tipo di connessione non e' fra quelli permessi, lo loggo
$IPT -A dmz_to_net -j LOG --log-prefix dmz_to_net:
#accetto le connessioni verso il server web in DMZ
$IPT -A net_to_dmz -d $SERVER_WEB -p tcp --dport 80 -j ACCEPT
#devo anche accettare le connessioni stabilite dal server web per
aggiornamenti e dns
$IPT -A net_to_dmz -m state --state RELATED,ESTABLISHED -j ACCEPT
#dalla LAN posso accedere a tutte le porte del server in DMZ (tipo per poterci
accedere via ssh per poterlo gestire)
$IPT -A lan_to_dmz -j ACCEPT
#dalla dmz verso la lan accetto solamente le connessioni related ed
estabilished...
$IPT -A dmz_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT
#loggo tutte le altre connessioni dal server web verso la lan
$IPT -A dmz_to_lan -j LOG --log-prefix dmz_to_lan:
#accetto tutte le connessioni fatte dalla LAN verso il server (considero la
mia rete interna SICURA)
$IPT -A lan_to_server -j ACCEPT
#accetto solo le connessioni related o estabilished che il server fa alla LAN
$IPT -A server_to_lan -j ACCEPT
#permetto gli update del firewall
$IPT -A server_to_net -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT
$IPT -A server_to_net -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT
#permetto di risolvere nomi
$IPT -A server_to_net -d $IP_DNS1 -p udp --dport 53 -j ACCEPT
$IPT -A server_to_net -d $IP_DNS2 -p udp --dport 53 -j ACCPET
#se il tipo di connessione non e' fra quelli permessi, lo loggo
$IPT -A server_to_net -j LOG --log-prefix dmz_to_net:
#permetto al firewall che riceva le risposte
$IPT -A net_to_server -m state --state RELATED,ESTABLISHED -j ACCEPT
#loggo i tentativi del server in dmz di accedere al firewall
$IPT -A dmz_to_server -j LOG --log-prefix dmz_to_server:
Grazie x l'aiuto,magari se possibile potete formirmi un link dove trovare qualche altro firewall di questo tipo implementato?Grazie

Rispondi quotando