[Tech] Passare da ipchains alla roba per i kernel 2.4

Gianni Bianchini giannibi@firenze.linux.it
Ven 3 Gen 2003 01:12:52 CET


On Thu, 2 Jan 2003 23:42:43 +0100
Leandro Noferini wrote:

> alla fine sono riuscito a mettere su il nuovo computer di cui ormai
> tutti qua dentro saprete. Bene ora devo passare al nuovo kernel (per
> poter sfruttare tutte le meravigliose potenzialitą del nuovo processore,
> eccheccazzo) e quindi dovrei modificare lo script che configura il
> firewall per usarlo con ip-nonricordo.
> 
> Ora come ora questo č lo script:
>   ipchains -P forward DENY
> 
>   ipchains -A forward -s 192.168.10.0/24 -j MASQ
> 
>   ipchains -A input -s 127.0.0.1 -d 0/0 -j ACCEPT
>   ipchains -A input -s 192.168.10.0/24 -d 0/0 -j ACCEPT
>   ipchains -A input -p tcp -s 0/0 -y -j DENY
>   ipchains -A input -p udp -s 195.110.96.66 53 -j ACCEPT
>   ipchains -A input -p udp -s 195.110.96.67 53 -j ACCEPT
>   ipchains -A input -p udp -s 0/0 -j DENY
> 

> Come lo devo fare per il kernel 2.4?

---8<---
#!/bin/sh

# Vale con la policy di INPUT impostata ad ACCEPT (default)
# Lo so che e' piu' pulita la versione con policy a DROP
# ma con quella e' piu' facile chiudersi fuori in caso
# di cappelle cambiando le regole da remoto. :)
# Presuppone di avere eth0 sulla rete 192.168.10.0/24
# e di essere affacciati sull'esterno con ppp0
# Moduli necessari:
# ipt_state
# ipt_MASQUERADE 
# iptable_nat
# ip_conntrack
# iptable_filter
# ip_tables            

IPTABLES=/sbin/iptables

echo 1 > /proc/sys/net/ipv4/ip_forward

# Tutto ok da localhost se viene da lo
$IPTABLES -A INPUT -i lo -s 127.0.0.1 -j ACCEPT

# Via tutto cio' che pretende di venire da indirizzi
# privati ma da interfacce esterne (il provider e'
# onesto, ma non troppo :) )
$IPTABLES -A INPUT -i ppp0 -s 192.168.0.0/16 -j DROP

# Tutto ok dalla rete interna (1)
$IPTABLES -A INPUT -s 192.168.10.0/24 -j ACCEPT

# Mascheramento
$IPTABLES -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Servizi ammessi dall'esterno, es. ssh, dalla rete interna e'
# cmq tutto aperto, vedi (1)
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

# Catch-all, blocca tutto il traffico che non sia in qualche
# modo collegato a traffico generato localmente, nota che ad
# es. le risposte dei DNS passano oltre questa regola,
# rendendo inutile lo specificare esplicitamente di farle
# passare
$IPTABLES -A INPUT -m state --state NEW,INVALID -j DROP

---8<---

Ciao.
Gianni.




Maggiori informazioni sulla lista flug-tech