PDA

View Full Version : Rete su linux


Xidius
03-07-2006, 16:03
Salve ho un pc ( kubuntu ) con 2 schede di rete: in una c'è il router e ha come indirizzo 192.168.1.4 mentre la seconda scheda di rete ha come indirizzo 192.168.1.5 ed è attaccata ad un secondo pc.
Il gateway (router) è 192.168.1.1
Il mio problema è che nn riesco ad indirizzare i pacchetti verso questo secondo pc, inoltre nn so che indirizzo di rete attribuire a quest'ultimo ( secondo pc ), che gateway ecc ecc
Potreste darmi una mano? grazie

ilsensine
03-07-2006, 17:22
Salve ho un pc ( kubuntu ) con 2 schede di rete: in una c'è il router e ha come indirizzo 192.168.1.4 mentre la seconda scheda di rete ha come indirizzo 192.168.1.5 ed è attaccata ad un secondo pc.
Non farlo, cerchi guai. Utilizza due subnet diverse per le due schede di rete; ad es. la prima su 192.168.1.x e la seconda su 192.168.0.y

Xidius
03-07-2006, 17:50
Non farlo, cerchi guai. Utilizza due subnet diverse per le due schede di rete; ad es. la prima su 192.168.1.x e la seconda su 192.168.0.y

si ma nn capisco come andare avanti, intendo nella configurazione per far funzionare il tutto

ilsensine
04-07-2006, 08:06
Bè semplice; visto che il tuo router ha indirizzo 192.168.1.1, va bene la scelta 192.168.1.4 per l'interfaccia di rete a lui connessa. L'altra interfaccia mettila su ad es. 192.168.0.1, e il secondo PC su 192.168.0.2.
Per far uscire il secondo PC, devi impostargli 192.168.0.1 come gateway, e attivare una NAT/MASQUERADE sul primo PC. Sul primo PC ovviamente metti 192.168.1.1 come gateway.

VegetaSSJ5
04-07-2006, 11:22
scusa ma non puoi collegare direttamente il secondo pc al router?

Xidius
04-07-2006, 17:37
Bè semplice; visto che il tuo router ha indirizzo 192.168.1.1, va bene la scelta 192.168.1.4 per l'interfaccia di rete a lui connessa. L'altra interfaccia mettila su ad es. 192.168.0.1, e il secondo PC su 192.168.0.2.
Per far uscire il secondo PC, devi impostargli 192.168.0.1 come gateway, e attivare una NAT/MASQUERADE sul primo PC. Sul primo PC ovviamente metti 192.168.1.1 come gateway.

come faccio ad attivare una NAT/MASQUERADE?

ilsensine
05-07-2006, 08:08
Spesso le distribuzioni includono degli strumenti grafici per configurare la condivisione della connessione; se non li trovi leggi qui:
http://www.netfilter.org/documentation/HOWTO/it/NAT-HOWTO.html

Xidius
05-07-2006, 11:01
avrei kubuntu, però l'ho installata in maniera minimale dovrei vedere se c'è qualche tool di configurazione

W.S.
05-07-2006, 11:06
Per la distro non so, per questi scopi ho sempre usato debian (anche su un 133 Mhz) e non ho mai avuto problemi, penso che l'importante è che tu la conosca un minimo.

Per le schede di rete non ci sono problemi, (ovviamente dovrai documentarti un po sul funzionamento delle reti) cmq:

- Assegna ogni scheda ad una subnet diversa
- Alla LAN assegna una subnet privata (192.168.0.0/16 è la classica, come anche 10.0.0.0/8)
- Ricordati di abilitare il MASQUERADE sul traffico in uscita dalla scheda esterna
- Ricordati di abilitare il forwarding sulla macchina firewall
- Controlla che le rotte del firewall siano giuste

... altri consigli a freddo non ne vengono, cmq chiedi.

W.S.
05-07-2006, 11:23
ehm.. è imbarazzante... ho risposto al thread sbagliato...
sorry.

Xidius
05-07-2006, 14:26
allora, alla scheda di rete "di uscita" ho assegnato 192.168.0.1 con gateway 192.168.1.1 ( router ); al secondo pc ho dato 192.168.0.2 con gateway 192.168.0.1

il comando di iptables nn dovrebbe essere
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.1

dove con eth0 intendo l'interfaccia della scheda di rete "esterna"

Xidius
06-07-2006, 08:52
Spesso le distribuzioni includono degli strumenti grafici per configurare la condivisione della connessione; se non li trovi leggi qui:
http://www.netfilter.org/documentation/HOWTO/it/NAT-HOWTO.html

ho provato a dare dei comandi ma addirittura mi si blocca la connessione internet.. mi dareste una mano?

HexDEF6
06-07-2006, 09:54
allora, alla scheda di rete "di uscita" ho assegnato 192.168.0.1 con gateway 192.168.1.1 ( router ); al secondo pc ho dato 192.168.0.2 con gateway 192.168.0.1

il comando di iptables nn dovrebbe essere
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.1

dove con eth0 intendo l'interfaccia della scheda di rete "esterna"

non si capisce molto bene come hai collegato le cose.. e che ip hai assegnato...

fai uno schemino:

router: 192.168.x.x -----PC1: eth0 192.168.x.x eth1: 192.168.x.x ---------- PC2: eth0 192.168.x.x

cosi riusciamo a capire cosa hai fatto e cosa devi cambiare

Ciao

Xidius
06-07-2006, 10:08
ok scusate allora ecco il mio schema

router: 192.168.1.1

collegato al primo pc con interfaccia eth1 e ip: 192.168.1.2

seconda interfaccia eth0 con ip 192.168.0.1

e secondo pc con ip: 192.168.0.2

vorrei fare in modo che il secondo pc riceva la rete, quindi gliela deve passare eth0

W.S.
06-07-2006, 14:23
- all'interfaccia interna (quella connessa solo al pc, leva il default gw altrimenti sovrascrive l'altro e non è bello
- attiva ip_forward sulla macchina in mezzo
- attiva iptables masquerade sull'interfaccia che dal pc centrale va verso il router
- sul pc con una sola scheda imposta come default gw il pc centrale

se vuoi posta il risultato di "route -n" sul pc centrale che almeno siamo + chiari

Xidius
06-07-2006, 14:48
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1


mi dici in termini di comandi tutto cio che dovrei fare?

HexDEF6
06-07-2006, 22:05
ok scusate allora ecco il mio schema

router: 192.168.1.1

collegato al primo pc con interfaccia eth1 e ip: 192.168.1.2

seconda interfaccia eth0 con ip 192.168.0.1

e secondo pc con ip: 192.168.0.2

vorrei fare in modo che il secondo pc riceva la rete, quindi gliela deve passare eth0

se il tuo primo pc naviga in rete, ti basta lanciare questo script:


#!/bin/bash
IPT="/sbin/iptables"

INT="eth1"

$IPT -F
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F -t nat
$IPT -X

$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

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

$IPT -t nat -A POSTROUTING -o $INT -j SNAT --to-source 192.168.1.2


questo dovrebbe funzionare...

da questo se vuoi puoi partire per crearti un firewall
(che configurato in questa maniera lascia aperto tutto... ma se hai di mezzo un router non e' un problema)

Ciao!

Xidius
07-07-2006, 09:27
ti ringrazio ora va, anche io avevo dato dei comandi simili con iptables ma mi ero scordato dell'ip forwarding
In che modo potrei crearmi il firewall?

HexDEF6
07-07-2006, 09:52
ti ringrazio ora va, anche io avevo dato dei comandi simili con iptables ma mi ero scordato dell'ip forwarding
In che modo potrei crearmi il firewall?

per quello e' meglio se ti studi un po di iptables!

comunque visto che hai un router, sarebbe solamente una complicazione (almeno di esigenze particolari)

Ciao

Xidius
07-07-2006, 11:14
per quello e' meglio se ti studi un po di iptables!

comunque visto che hai un router, sarebbe solamente una complicazione (almeno di esigenze particolari)

Ciao

sai, stando alle prime armi, nn ho potuto guardare molte cose, l'iptables un po lho usato con un comando simile al tuo solamente che nn avevo abilitato l'ipforwarding; per curiosità, quel comando di iptables abilita il source a dare la rete a tutti?

Altra domanda, ora per la condivisione dei file, dovrei lavorare su samba ( credo ), è possibile abilitarlo su due interfacce diverse? nel senso, tra eth0 e eth1?

W.S.
07-07-2006, 11:59
echo 1 > /proc/sys/net/ipv4/ip_forward
abilita il kernel ad accettare e redirigere i pacchetti che riceve la macchina e che hanno una destinazione diversa dalla macchina stessa.
Come questi vengono rediretti (quali bloccare e dove mandare quelli accettati) viene gestito in parte da iptables (principalmente in FILTER (FORWARD) ma anche nel NAT e nel MANGLE) e dalla tabella di routing (route -n)

Il comando iptables che permette la "condivisione" della connessione è
$IPT -t nat -A POSTROUTING -o $INT -j SNAT --to-source 192.168.1.2
che ha il compito di mascherare l'ip sorgente dei pacchetti che arrivano dal pc interno e son destinati all'esterno (letteralmente la regola precedente modifica tutti i pacchetti in uscita dall'interfaccia esterna con l'ip 192.168.1.2)

comunque ti consiglio di trovare del tempo per studiare iptables, credo che ne valga la pena.

per samba non ci son problemi, puoi abilitarlo su entrambe o su quella che preferisci...

eraclitus
07-07-2006, 12:56
Leggevo con interesse la discussione e mi sono chiesto: perchè sulle due eth in questione è meglio dare due subnet diverse? In particolare @ilsensine: perchè sarebbero "guai"?
Thanx e scusate x l'OT :)

Xidius
07-07-2006, 14:54
echo 1 > /proc/sys/net/ipv4/ip_forward
abilita il kernel ad accettare e redirigere i pacchetti che riceve la macchina e che hanno una destinazione diversa dalla macchina stessa.
Come questi vengono rediretti (quali bloccare e dove mandare quelli accettati) viene gestito in parte da iptables (principalmente in FILTER (FORWARD) ma anche nel NAT e nel MANGLE) e dalla tabella di routing (route -n)

Il comando iptables che permette la "condivisione" della connessione è
$IPT -t nat -A POSTROUTING -o $INT -j SNAT --to-source 192.168.1.2
che ha il compito di mascherare l'ip sorgente dei pacchetti che arrivano dal pc interno e son destinati all'esterno (letteralmente la regola precedente modifica tutti i pacchetti in uscita dall'interfaccia esterna con l'ip 192.168.1.2)

comunque ti consiglio di trovare del tempo per studiare iptables, credo che ne valga la pena.

per samba non ci son problemi, puoi abilitarlo su entrambe o su quella che preferisci...

cioè quindi il secondo pc nn sa da dove arrivano i pacchetti?

inoltre perchè con quel comando avrei la rete "scoperta"