PDA

View Full Version : Condivisione Connessione


Erik Vindkaldr
04-12-2004, 19:55
Scusate per il thread niubbo (tra l'altro ricordo di averne fatto uno simile ma con problema inverso) :awk:


Ho una piccola lan di 4 pc con windows, di cui uno server che condivide la connessione.
Avrei necessità di usare Linux (Red Hat 9) sul pc server e continuare a condivide la connessione per gli altri pc windows.

Riesco a collegarmi regolarmente.
Per condividere la connessione ho eseguito:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
(visto che sotto winxp uso l'indirizzo 192.168.0.1 come gateway)

...però non funziona.


Mi è stato consigliato di controllare il firewall di linux, ma non so proprio come fare ^^

Tilion
05-12-2004, 04:28
prova con queste tre righe: (da http://openskills.info/view/boxdetail.php?IDbox=635&boxtype=description )
# LAN IN OUT Seguono le regole che gestiscono il masquerading della rete interna
/sbin/iptables -A FORWARD -s $LANIN -d 0/0 -j ACCEPT Forwarda tutti i pacchetti dalla rete interna a qualsiasi destinazione
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d $LANIN -j ACCEPT Permette il forwarding di tutti i pacchetti correlati a comunicazioni esistenti
/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -s $LANIN -j MASQUERADE Maschera gli IP sorgenti Interni con l'IP dell'interfaccia pubblica


occhio che questo è solo un pezzo di script e generalmente le regole con related vanno prese con le pinze per la sicurezza della rete.
Io uso narc come script, lo trovi qua: http://www.knowplace.org/netfilter/narc.html

Erik Vindkaldr
05-12-2004, 15:09
Ho provato sia le sole tre righe che lo script così modificato:

#!/bin/sh
#### DEBUGGING ###
set -x

### FLUSHING CHAIN ### Azzera e pulisce ogni regola esistente
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -Z

### DEFAULT CHAIN ### Imposta le policy di default
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -t nat -P POSTROUTING DROP
/sbin/iptables -t nat -P PREROUTING DROP

### SETTING IPFORWARDING ### Abilita il forwarding di pacchetti non locali - FONDAMENTALE
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward

### DISABLE RESPOND TO BROADCAST ### Non risponde ai ping inviati al browadcast della subnet
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

### ENABLE BAD ERROR MESSAGE PROTECTION ### Ignora finti messaggi di errore ICMP
/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

### DISABLE ICMP REDIRECT ACCEPTANCE ### Non accetta pacchetti ICMP di route redirection
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects

### SETTING ANTISPOOFING PROTECTION ###
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

### DON'T RESPOND TO BROADCAST PINGS ###
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

### Qui vengono definite alcune variabili che successivamente sono usate nelle regole - MODIFICARE SECONDO I PROPRI PARAMETRI# External Public Interface
EXTIF="ppp0"
# Internal Private Interface
INTIF="eth0"
# Internal LAN IP (su eth0)
LANIN="192.168.0.0/24"
# RFC IPs Classi di indirizzi dedicate a utilizzi privati o particolari e non routate su Internet
LOOPBACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"

# ANTISPOOF Adesso iniziano le regole vere e proprie. Le prime sono generiche regole anti-spoof per IP noti dall'interfaccia
pubblica.
/sbin/iptables -A INPUT -i $EXTIF -s $CLASS_A -j DROP
/sbin/iptables -A INPUT -i $EXTIF -s $CLASS_B -j DROP
/sbin/iptables -A INPUT -i $EXTIF -s $CLASS_C -j DROP
/sbin/iptables -A INPUT -i $EXTIF -s $CLASS_D_MULTICAST -j DROP
/sbin/iptables -A INPUT -i $EXTIF -s $CLASS_E_RESERVED_NET -j DROP
/sbin/iptables -A INPUT -i $EXTIF -d $LOOPBACK -j DROP

# LOOP RULE Permettiamo il traffico di loopback
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# LAN IN ACCESS Regole che permettono l'accesso al firewall Linux dagli IP della rete Interna - Potrebbero essere più ristrette e limitarsi all'IP dell'amministratore
/sbin/iptables -A INPUT -i $INTIF -s $LANIN -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTIF -d $LANIN -j ACCEPT

# LAN IN OUT Seguono le regole che gestiscono il masquerading della rete interna
/sbin/iptables -A FORWARD -s $LANIN -d 0/0 -j ACCEPT #Forwarda tutti i pacchetti dalla rete interna a qualsiasi destinazione
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d $LANIN -j ACCEPT #Permette il forwarding di tutti i pacchetti correlati a comunicazioni esistenti
/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -s $LANIN -j MASQUERADE #Maschera gli IP sorgenti Interni con l'IP dell'interfaccia pubblica

# GENERAL Regole generali per permettere all'host locale di collegarsi a IP remoti e ricevere i pacchetti di risposta (Nota:
si riferiscono alle attività che vengono fatte direttamente dalla macchina Linux locale e non dagli host che la usano come firewall)
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# LOGGING Log di tutti i pacchetti, esclusi i broadcast, prima di essere droppati dalla regole di default. I logging viene fatto con livello debug per isolarlo da altri log di sistema.
# Per cui è necessario scrivere in /etc/syslog.conf una riga tipo: kern.debug /var/log/iptables.log
/sbin/iptables -A INPUT -m pkttype --pkt-type ! broadcast -j LOG --log-level=DEBUG --log-prefix="[INPUT DROP] : "
/sbin/iptables -A OUTPUT -m pkttype --pkt-type ! broadcast -j LOG --log-level=DEBUG --log-prefix="[OUTPUT DROP] : "


Però nulla, gli altri pc windows non ottengono un numero di ip nel range della lan e non vedono la connessione.
Forse dimentico qualcosa di stupido che do per scontato.


[niubbo mode on]
Ad esempio, il gateway è già impostato con quello script, o va fatto a parte? Se sì dove? :look:

Tilion
06-12-2004, 10:49
Originally posted by Erik Vindkaldr
Ho provato sia le sole tre righe che lo script così modificato:
...

Però nulla, gli altri pc windows non ottengono un numero di ip nel range della lan e non vedono la connessione.
Forse dimentico qualcosa di stupido che do per scontato.

[niubbo mode on]
Ad esempio, il gateway è già impostato con quello script, o va fatto a parte? Se sì dove? :look:

asp asp non è così automatico ^^'
non ho il tempo ora di guardare lo script ma il problema non è quello:

1° i pc a meno che non sia presente un server dhcp non configurano gli altri pc per andare in rete e penso che per ora si possa evitare
2° verifica che il pc con linux vada in internet facento qualcosa tipo "ping www.google.it" o "traceroute www.google.it"
3° se il pc linux và in internet configura la macchina win con ip corretto, gateway=ip-macchina-linux, dns= gli stessi che sono configurati sulla macchina linux.

Erik Vindkaldr
07-12-2004, 00:58
Ma nn posso fare questa cosa ogni volta....

Ho provato a configurare un server dhcp. Ho installato una versione recente, creato un /etc/dhcpd.conf guardando alcuni articoli in rete e il file per i lease c'è.
Ma dà un errore: Not configured to listen on any interfaces!


Ho provato a inserire in /etc/sysconfig/dhcpd
DHCPDARGS=eth0
....ma mi da questo errore:
No subnet declaration for eth0 (0.0.0.0).
** Ignoring requests on eth0. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface eth0 is attached. **




:( :(