# Gentoo router ...

## .:[NeMo]:.

... vorrei fare della mia nuova "Gentoo box" un router (ho l'ADSL)  in attesa di acquistarne uno HW ...

quali passi fare  :Question:   e volendo anche metter su un firewall  :Question: 

----------

## shev

Ehm, ma router per una piccola lan spero, altrimenti che te ne fai?  :Razz: 

Cmq sono poche righe nei file giusti, basta dare le direttive su come instradare il traffico, nulla di trascendentale (se non ricordo male ci deve'essere già qualcosa in questo forum a riguardo, ma potrei sbagliare). Guardati i sempre utili "Appunti di Informatica libera" del buon Giacomini, c'è tutto quello che può servirti, inutile ripetere ciò che altri hannoscritto meglio  :Very Happy: 

Per quanto riguarda il lato firewall non c'è molto da dire: netfilter (iptables) e le decine e decine di howto e guide a riguardo. Per mettere up un buon firewall che faccia il suo dovere bisogna come minimo studiarsi un po' le basi generali ed il funzionamento di firewall e non solo (un'infarinatura sulla suite tcp/ip e il funzionamento dei protocolli può servire), in modo da sapere cosa si sta facendo e perchè, creare le giuste regole e filtrare ciò che va filtrato, senza inibire i servizi legittimi. Senza un minimo di basi e conoscenza si rischia come minimo di vanificare ogni sforzo (se non ottenere l'effetto contrario...). Quindi armati di buona volontà e studia tutto il possibile. Ci sono diversi howto da cui cominciare, basta una banale ricerca con google e trovi quantità industriali di materiale.

----------

## .:[NeMo]:.

1 < # pc LAN <= 4

 :Very Happy: 

----------

## MyZelF

Se ti può essere utile, ho messo in linea un interessante articolo, brutalmente scannato da una rivista, che a suo tempo è stato un buon punto di partenza per me.

----------

## .:[NeMo]:.

grazie

 :Idea: 

----------

## cerri

Posta qualche dettaglio in piu':

1) lan interna e relativa subnet,

2) client autorizzati

3) default gw

4) indirizzo pubblico

5) che intendi per firewall.

----------

## .:[NeMo]:.

 *cerri wrote:*   

> Posta qualche dettaglio in piu':
> 
> 1) lan interna e relativa subnet,
> 
> 2) client autorizzati
> ...

 

1) 

192.168.1.0 

255.255.255.0

3 host  X.X.X.1   X.X.X.2   X.X.X.3

2) 

ftp - ssh - sftp - http (bo non mi viene per ora in mente altro)

msn (Kopete)   :Smile: 

3) 

Celeron 300MHz + 128 MB RAM + 20GB HD

192.168.1.1

4)

IP dinamico

5) 

Firewall = nessuno che mi giri su per il file system (definizione tratta dal Tanembaun)   :Embarassed: 

----------

## cerri

 *.:[NeMo]:. wrote:*   

> 1) 
> 
> 192.168.1.0 
> 
> 255.255.255.0
> ...

 

Presumo .2,.3,.4. Il .1 lo definisci come router piu' tardi.

 *.:[NeMo]:. wrote:*   

> 3) 
> 
> Celeron 300MHz + 128 MB RAM + 20GB HD
> 
> 192.168.1.1

 

Dicevo il gw del tuo ADSL, ma mi hai risposto al punto 4  :Wink: .

Domani posto lo script.

----------

## ScolaBirra

Io mi sono messo un router-firewall a casa per la lan che ho con il mio coinquilino. Trattasi di un pentium II 350MHz, 4Gb, 128Mb (leggermente sovradimensionato, ma l'ho avuto per pochissimo). Due schede di rete, una collegata al modem ADSL, l'altra allo switch della lan.

Per il soft: lato ADSL ho installato rp-pppoe,  lato lan ho messo un server DHCP. In particolare per il mio computer e quello del coinqui fa il matching dell'indirizzo MAC per assegnare l'ip cosi' che possa fare delle regole di routing con le iptables (qualcuno potrebbe obbiettare che non ha senso, ma ho le mie ragioni per aver agito cosi'). Poi ho configurato le iptables per rifiutare tutto il traffico proveniente dall'esterno (salvo un paio di porte) e per fare il masquerading in uscita. 

Ultima cosa, visto che il carico del pc e' raticamente sullo 0.0 fisso, gli ho installato il server dcc per aiutare l'altra gentoo box a fare gli upgrades.

Ciao

Scola

----------

## shev

 *.:[NeMo]:. wrote:*   

> 
> 
> 3) 
> 
> Celeron 300MHz + 128 MB RAM + 20GB HD
> ...

 

Posso permettermi un consiglio? E' usanza abbastanza comune dare l'ultimo indirizzo disponibile della lan al router / gateway, lasciando il resto per gli host. Quindi nel tuo caso è meglio dare l'indirizzo 192.168.1.254/24 al pc in questione, e usare x.1.1/24 e x.1.2/24 per i due host che mi pare di capire tu abbia.

Sia chiaro, non c'è nessun motivo fisico o logico per preferire queta soluzione, solo è quella più comunemente usata e diffusa.

----------

## .:[NeMo]:.

non capisco una cosa 

(somma ignoranza    :Embarassed:   )

cosa indica "/24"

nell'indirizzo IP 192.168.1.254/24

----------

## shev

 *.:[NeMo]:. wrote:*   

> 
> 
> cosa indica "/24"
> 
> nell'indirizzo IP 192.168.1.254/24

 

E' semplicemente un metodo sintetico per indicare la netmask di un indirizzo ip. La netmask è composta da 32 bit, il /24 indica che i primi 24 bit sono posti a 1 e i restanti 8 a 0 (in notazione binaria; in decimale questo si traduce in 255.255.255.0 == 11111111.11111111.11111111.00000000).

----------

## shev

 *.:[NeMo]:. wrote:*   

> 
> 
> cosa indica "/24"
> 
> nell'indirizzo IP 192.168.1.254/24

 

E' semplicemente un metodo sintetico per indicare la netmask di un indirizzo ip. La netmask è composta da 32 bit, il /24 indica che i primi 24 bit sono posti a 1 e i restanti 8 a 0 (in notazione binaria; in decimale questo si traduce in 255.255.255.0 == 11111111.11111111.11111111.00000000).

----------

## .:[NeMo]:.

anche questo sul Tanembaun non c'e'   :Laughing: 

ca**hio ma cosa mii hanno spiegato nel corso di RETI ?

 :Sad: 

----------

## cerri

Come peschare le triglie?!??!?  :Very Happy:   :Very Happy:   :Very Happy: 

CMQ: si presuppone che:

eth0 sia l'interfaccia con la quale hai collegato l'adsl

eth1 sia l'interfaccia interna

```

LAN=192.168.10.0/24                      # internal LAN

IPTABLES=/usr/local/sbin/iptables

# Delete all old rules

$IPTABLES -F

$IPTABLES -F -t nat

$IPTABLES -X

# FORWARDing

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

# IP defragmenting /RIMOSSO

# echo 1 > /proc/sys/net/ipv4/ip_always_defrag

# anti-spoofing via kernel

for f in /proc/sys/net/ipv4/conf/*/rp_filter

        do echo 1 > $f

done

#

# Nega qualsiasi cosa!

#

$IPTABLES -P INPUT DROP

$IPTABLES -P OUTPUT DROP

$IPTABLES -P FORWARD DROP

#

# Crea la regola per droppare

#

$IPTABLES -N logNdrop

$IPTABLES -A logNdrop -j LOG --log-prefix "* Firewall RULE * " --log-level debug

$IPTABLES -A logNdrop -j DROP

#

# Permette il traffico su lo

#

$IPTABLES -A INPUT -i lo -j ACCEPT

$IPTABLES -A OUTPUT -o lo -j ACCEPT

#

# Permette il traffico di lan

# 

$IPTABLES -A INPUT -i eth1 -j ACCEPT

$IPTABLES -A OUTPUT -o eth1 -j ACCEPT

# Uscita sempre autorizzata per l'interfaccia esterna,

# ma nega il ping e la richiesta di nuove connessioni tcp.

$IPTABLES -A OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT

$IPTABLES -A INPUT -i eth0 -p icmp -s 0.0.0.0/0 -j logNdrop

$IPTABLES -A INPUT -i eth0 -p tcp ! --syn -s 0.0.0.0/0 -j ACCEPT

$IPTABLES -A INPUT -i eth0 -p udp -s 0.0.0.0/0 -j ACCEPT

#

# Abilita il Nat totale

#

$IPTABLES -A FORWARD -i eth1 -o eth0 s $LAN -d 0.0.0.0/0 -j ACCEP

$IPTABLES -t nat -A POSTROUTING -o eth0 -s $LAN -d 0.0.0.0/0 -j MASQUERADE

#

# Logga tutto il resto (che viene negato di default)

#

$IPTABLES -N logNdropIN

$IPTABLES -A logNdropIN -j LOG --log-prefix "* Firewall IN * " --log-level debug

$IPTABLES -A logNdropIN -j DROP

$IPTABLES -A INPUT -j logNdropIN

$IPTABLES -N logNdropOUT

$IPTABLES -A logNdropOUT -j LOG --log-prefix "* Firewall OUT * " --log-level debug

$IPTABLES -A logNdropOUT -j DROP

$IPTABLES -A OUTPUT -j logNdropOUT

$IPTABLES -N logNdropFW

$IPTABLES -A logNdropFW -j LOG --log-prefix "* Firewall FW * " --log-level debug

$IPTABLES -A logNdropFW -j DROP

$IPTABLES -A FORWARD -j logNdropFW

```

Dovrebbe essere ok ma non garantisco, l'ho fatto di fretta copiando e incollando quello che ho gia'.

----------

## ScolaBirra

Visto che ha dichiarato di avere l'ip dinamico io ci aggiungerei anche un:

```
 echo 1 > /proc/sys/net/ipv4/ip_dynaddr
```

Non ho mai capito a cosa serva esattamente ma nei tutorial indicano spesso di settarlo a 1...

----------

## paolo

Ma i router con piu' di 300Mhz?!?!?

Almeno metteteci il seti!!!  :Smile: 

```
emerge setiathome
```

```
rc-update setiathome add default
```

Con un Pentium100 (che non costa nulla) fate dei router/firewall ai quali non riuscirete mai ad intasare la banda!

ByEZz,

Paolo

----------

## cerri

 *paolo wrote:*   

> Con un Pentium100 (che non costa nulla) fate dei router/firewall ai quali non riuscirete mai ad intasare la banda!

 

Confermo: in ufficio abbiamo un p133 con 32mb che fa da router/firewall a piu' di un centinaio di pc.

----------

## .:[NeMo]:.

... potrei anche provare a metter su un file system distribuito ?

 ... e di sicuro un portalino (piccolo-piccolo) per il gruppo di scout della parrocchia in jsp 

(tomcat + postgresql)

http://www.caldiero1.it

[/url]

----------

## cerri

 *.:[NeMo]:. wrote:*   

> ... potrei anche provare a metter su un file system distribuito ?

 

Dipende. Utilizzi un lock server?

 *.:[NeMo]:. wrote:*   

>  ... e di sicuro un portalino (piccolo-piccolo) per il gruppo di scout della parrocchia in jsp 

 

Beh, JSP e' pesante ma se dici che e' piccolino...

----------

## .:[NeMo]:.

lock server ?

immagino serva per la consistenza ma non so andare oltre ...

----------

