cionci
21-01-2011, 16:27
Ho bisogno di un aiuto per un problema che non riesco a risolvere.
Se clickate in firma, vedrete che sto lavorando su un router con risorse molto limitate.
Partiamo dal presupposto che questo router attualmente utilizza un firewall + NAT closed.
Io devo riuscire a sostituire a questo firewall closed un firewall basato su iptables.
L'idea era quella di rimuovere il modulo del firewall closed, installo i moduli di iptables e poi configuro iptables. Peccato che non sia riuscito a venirne a capo.
Ecco i moduli che installo (ho preso ispirazione da un kernel di un router già configurato con iptables):
rmmod acos_nat.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_ipv4.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat.ko
insmod /tmp/mod/modfs/firewall_modules/x_tables.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_ftp.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_h323.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_tftp.ko
insmod /tmp/mod/modfs/firewall_modules/xt_CLASSIFY.ko
insmod /tmp/mod/modfs/firewall_modules/xt_MARK.ko
insmod /tmp/mod/modfs/firewall_modules/xt_dscp.ko
insmod /tmp/mod/modfs/firewall_modules/xt_limit.ko
insmod /tmp/mod/modfs/firewall_modules/xt_mac.ko
insmod /tmp/mod/modfs/firewall_modules/xt_mark.ko
insmod /tmp/mod/modfs/firewall_modules/xt_tcpmss.ko
insmod /tmp/mod/modfs/firewall_modules/xt_state.ko
insmod /tmp/mod/modfs/firewall_modules/xt_multiport.ko
insmod /tmp/mod/modfs/firewall_modules/xt_tcpudp.ko
insmod /tmp/mod/modfs/firewall_modules/ip_tables.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_LOG.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_MASQUERADE.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_REDIRECT.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_iprange.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_addrtype.ko
insmod /tmp/mod/modfs/firewall_modules/iptable_filter.ko
insmod /tmp/mod/modfs/firewall_modules/iptable_mangle.ko
insmod /tmp/mod/modfs/firewall_modules/iptable_nat.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat_ftp.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat_tftp.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat_h323.ko
Considerate che il kernel di suo aveva solo abilitato il nat semplice.
E questo è lo script per far avviare il NAT:
#!/bin/sh
IPTABLES='iptables'
# Set interface values
EXTIF='pppoa0'
INTIF='br0'
# enable ip forwarding in the kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
# flush rules and delete chains
#$IPTABLES -F
#$IPTABLES -X
#Enable masquerading to allow LAN internet access
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
#Forward LAN traffic from LAN $INTIF to Internet $EXTIF
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT
# block out all other Internet access on $EXTIF
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP
Ho cercato qualcosa di minimale proprio per fare i primi test. A me sembra tutto corretto. Ovviamente il NAT da br0 a pppoa0 non viene fatto. Vedo inoltre che il ping dalla shell del router verso internet funziona, ma la risoluzione DNS no.
Sapete dirmi quali test fare e come muovermi ?
Se clickate in firma, vedrete che sto lavorando su un router con risorse molto limitate.
Partiamo dal presupposto che questo router attualmente utilizza un firewall + NAT closed.
Io devo riuscire a sostituire a questo firewall closed un firewall basato su iptables.
L'idea era quella di rimuovere il modulo del firewall closed, installo i moduli di iptables e poi configuro iptables. Peccato che non sia riuscito a venirne a capo.
Ecco i moduli che installo (ho preso ispirazione da un kernel di un router già configurato con iptables):
rmmod acos_nat.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_ipv4.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat.ko
insmod /tmp/mod/modfs/firewall_modules/x_tables.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_ftp.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_h323.ko
insmod /tmp/mod/modfs/firewall_modules/nf_conntrack_tftp.ko
insmod /tmp/mod/modfs/firewall_modules/xt_CLASSIFY.ko
insmod /tmp/mod/modfs/firewall_modules/xt_MARK.ko
insmod /tmp/mod/modfs/firewall_modules/xt_dscp.ko
insmod /tmp/mod/modfs/firewall_modules/xt_limit.ko
insmod /tmp/mod/modfs/firewall_modules/xt_mac.ko
insmod /tmp/mod/modfs/firewall_modules/xt_mark.ko
insmod /tmp/mod/modfs/firewall_modules/xt_tcpmss.ko
insmod /tmp/mod/modfs/firewall_modules/xt_state.ko
insmod /tmp/mod/modfs/firewall_modules/xt_multiport.ko
insmod /tmp/mod/modfs/firewall_modules/xt_tcpudp.ko
insmod /tmp/mod/modfs/firewall_modules/ip_tables.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_LOG.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_MASQUERADE.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_REDIRECT.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_iprange.ko
insmod /tmp/mod/modfs/firewall_modules/ipt_addrtype.ko
insmod /tmp/mod/modfs/firewall_modules/iptable_filter.ko
insmod /tmp/mod/modfs/firewall_modules/iptable_mangle.ko
insmod /tmp/mod/modfs/firewall_modules/iptable_nat.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat_ftp.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat_tftp.ko
insmod /tmp/mod/modfs/firewall_modules/nf_nat_h323.ko
Considerate che il kernel di suo aveva solo abilitato il nat semplice.
E questo è lo script per far avviare il NAT:
#!/bin/sh
IPTABLES='iptables'
# Set interface values
EXTIF='pppoa0'
INTIF='br0'
# enable ip forwarding in the kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
# flush rules and delete chains
#$IPTABLES -F
#$IPTABLES -X
#Enable masquerading to allow LAN internet access
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
#Forward LAN traffic from LAN $INTIF to Internet $EXTIF
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT
# block out all other Internet access on $EXTIF
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP
Ho cercato qualcosa di minimale proprio per fare i primi test. A me sembra tutto corretto. Ovviamente il NAT da br0 a pppoa0 non viene fatto. Vedo inoltre che il ping dalla shell del router verso internet funziona, ma la risoluzione DNS no.
Sapete dirmi quali test fare e come muovermi ?