Newsgroup: it.comp.reti.locali
Titolo: Configurare Linux come Gateway

Nel mio studio mi e' stata portata una Alice Business 20 con Router che, a
dire del tecnico che lo ha consegnato, e' un Marconi.
Il contratto ADSL ha 6 IP statici, di cui il primo e' assegnato al router.
Non avendo la password del router (non posso abilitare il NAT), vorrei che
la mia macchina con Linux (Slackware 10.2) mi faccesse da gateway per la
rete interna, usando quindi 1 IP per il router ed un altro per il gateway.
Apparentemente la cosa e' semplice, ma io non ci riesco.
Preciso che la macchina con Linux ha 1 sola scheda di rete, e quindi ho
provato ad assegnare a quest'ultima ANCHE uno dei 6 IP statici con il
comando "ifconfig eth0:1 xxx.xxx.xxx.xxx netmask 255.255.255.248 ".
In pratica, la sk di rete ha un IP di classe 192.168.0.x e un IP pubblico.
Ho configurato IPTABLES sulla macchina linux per fare il Masquerading, ma
credo ci sia qualcosa che non va bene. Ho anche abilitato (echo "1"....)
l'ip_forwarding nel kernel.
Infine, ho messo come gateway di default nei client l'IP di rete 192.168.0.x
della macchina Linux.
Ma non va in nessun modo...
Qualcuno mi puo' aiutare, magari dicendomi passo-passo come fare?
Ragazzi, grazie in anticipo a tutti.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
ip_forwarding a senso tra due schede di rete fisiche non virtuali.
pep

 una seconda scheda di rete e' obbligatoria.
Ai fini della sicurezza si', ma non ai fini del funzionamento.
Su linux, anche con una sola scheda di rete si riesce a fare
routing e nat.
bye G.L.

 bye G.L.
ciao
peppe

Timpoldo wrote:
#!/bin/bash
# Variabili
IPT="/sbin/iptables"
EXT_IF="eth0"
INT_IF="eth0:0"
PRIVATE_NET="
192.168.0.0/24
"
PUBLIC_FW="x.y.z.w"
PRIVATE_FW="192.168.0.254"
ADMIN_IP="192.168.0.27"
# Abilita Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forwarding
# Pulisce le catene e definisce le policy di default
# (ndr: Che forse e' quello che ti sei scordato: le
# regole si accumulano nella catena...)
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
# Masquerading rete privata (Source NAT)
$IPT -t nat -s $PRIVATE_NET -A POSTROUTING -o $EXT_IF -j SNAT \
--to $PUBLIC_FW
# Firewall
# INPUT
# Accetta i pacchetti di connessioni stabilite o relative
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accetta tutto il traffico proveniente dall'interfaccia loopback
$IPT -A INPUT -i lo -j ACCEPT
# Accetta ssh da amministratore
$IPT -A INPUT -p tcp -i $INT_IF -s $ADMIN_IP -d $PRIVATE_FW \
--dport ssh -j ACCEPT
# FORWARD
# Accetta i pacchetti di connessioni stabilite o relative
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accetta il forward dalla lan per la navigazione
$IPT -A FORWARD -i $INT_IF -s $PRIVATE_NET -j ACCEPT
bye G.L.

 No?
No, lo script iptables e' nei due casi equivalente.
Certo, non farei mai un firewall... monorchico, :-D, sia
per motivi di sicurezza (soprattutto), sia per motivi di
efficenza della rete.
bye G.L.

Ti ringrazio per lo script che hai scritto.
C'e' qualche problema, pero'.
L'interfaccia di rete "aggiuntiva" (la eth0:0) mi comporta dei problemi
nello scrivere una regola qualunque.
Infatti, IPTABLES mi da errore quando scrivo una qualunque cosa del tipo
iptables -A INPUT -i $ETH0:0
in quanto, secondo il messaggio di errore, non sono ammessi nomi di device
contenenti il carettere ":"
Come pensi si possa risolvere?



 Come pensi si possa risolvere?
Hai ragione, e' una cosa che mi e' sfuggita (prove con una sola
interfaccia le ho fatte molto tempo fa), workaround: metti come
interfaccia lan INT_IF="eth0", non "eth0:0" (rimane uno script
magari ridondante, ma pur sempre funzionale). Se ci dovessero essere
ancora problemi, rimuovi ogni riferimento "-i $INT_IF" dai comandi
iptables dello script.
bye G.L.