[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: openbsd@sikurezza.org
Soggetto: rete domestica openbsd3.4 + pf
Mittente: Andrea Bustillio
Data: 19 Apr 2004 03:51:59 -0000


Salve,
ho ricevuto in regalo 3 vecchi pc ed ho deciso di installare una piccola rete
domestica.
Con l'ausilio dei manuali che ho trovato sulla rete, oltre ai classici ( man , pf_faq, how-to )anche ad
ottimi in italiano, ho scelto come tipologia di rete la seguente.

Vorrei essere sintetico e non confusionale come di carattere, proviamo cosi' definendo qualche variabile.

router="OpenBSD 3.4 con una scheda di rete ( pppd, pf, tool per update DynDNS )"
bridge="OpenBSD 3.4 con 3 schede di rete, vr0 e vr1 in promisc-mode e rl0 \
  ( pf, tty01 login )"
server="OpenBSD 3.4 con una scheda di rete ( circle-mud, smtp, ircd, ssh )"
clients="due FreeBSD 5.1 come clients con una scheda di rete a testa collegati \
  ad uno switch"

modem isdn sulla com del $router
$router con cavo cross sulla vr0 del $bridge
$bridge sulla vr1 con cavo cross sullo switch dei $clients
$bridge sulla rl0 con cavo cross su $server
$bridge sulla com port con cavo null-modem sulla com di uno dei $clients


Il router:


Setto una connessione ad internet

#vi /etc/ppp/options
lock
asyncmap 0
crtscts
modem
defaultroute
name *****
/dev/cua00 115200
connect "/usr/sbin/chat -v -F /etc/ppp/chatscript"

#vi /etc/ppp/pap-secret
Name	*	password

#vi /etc/chatscript
"" "ATZ"
"OK" "ATDI701234567"
"CONNECT" ""

in /etc/sysctl.conf decommento
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

in /etc/rc.conf abilito pf
PF=YES
e disabilito le altre non necessarie (sendmail inetd ssh)

abilito la scheda di rete
#echo "up inet 192.168.0.1 255.255.255.0 media 100baseTX mediaopt full-duplex" > /etc/hostname.fxp0

setto il gateway
#vi /etc/mygate
192.168.0.1

#reboot

#vi /etc/pf.conf
int_if="fxp0"
ext_if="ppp0"
tcp_ports="{4000, 6667, 33, 25, 110, 443}"
icmp_types="echoreq"
prv_ips="{ 127.0.0.0/8, 192.168.0.0/24, 192.168.2.0/24 }"

set block-policy return
set login_interface $ext_if

scrub in all

nat on $ext_if from $int_if:network to any -> ($ext_if)

block all
pass quick on lo0 all
block drop in quick on $ext_if from $prv_ips to any
block drop out quick on $ext_if from any to prv_ips
pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_ports flags s/SA keep state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in on $int_if from $int_if:network to any keep state
pass out in on $int_if from any to $int_if:network keep state
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state


#pfctl -v -f /etc/pf.conf



Il Bridge:


in /etc/sysctl.conf decommento
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

in /etc/rc.conf abilito pf
PF=YES
e disabilito le altre

imposto le schede di rete
#echo up > /etc/hostname.vr0
#echo up > /etc/hostname.vr1
#echo "up inet 192.168.2.1 255.255.255.0 media 100baseTX mediaopt full-duplex" > /etc/hostname.rl0

abilito il bridge
#echo "add vr0 add vr1 up" > /etc/bridgename.bridge0

controllo che /etc/mygate sia vuoto

#reboot

#vi /etc/pf.conf
ext_if="vr0"
int_if="vr1"
DMZ_if="rl0"
prv_ips="192.168.0.0/24"
DMZ_ips="192.168.2.0/24"
tcp_ports="{ 4000, 6667, 33, 25, 110, 443, 80 }"
udp_ports="53"

scrub in all
nat on $ext_if from $prv_ips to any -> ( ext_if)
nat on $DMZ_if from any to $DMZ_ips -> ( DMZ_if)


block in quick inet6 all block out quick inet6 all pass in quick on lo0 all pass out quick on lo0 all pass in quick on $ext_if all pass out quick on $ext_if all block in on $int_if all block out on $int_if all

pass in quick on $int_if proto tcp from any to any port $tcp_ports flags S/SA keep state
pass in quick on $int_if route-to ($DMZ_if $DMZ_ips ) proto tcp from any to any port $tcp_ports keep state


Il Server:


imposto la scheda di rete
#echo "up inet 192.168.2.2 255.255.255.0 media 100baseTX mediaopt full-duplex" > /etc/hostname.rl0

imposto il gateway
#vi /etc/mygate
192.168.2.1

modifico /etc/ssh/sshd.conf
port 33
listenaddress 192.168.2.2:33
permitrootlogin no

#reboot

faccio partire i servizi
	


I dubbi:


1: su $router dopo ogni connessione devo eseguire un route flush prima di far partire il pppd
   altrimenti ottengo il seguente messaggio in connessione:
   Shawn pppd [5509] : couldn't add default route : file exists
   Come posso ovviare a questo ?

2: e' piu' corretto settare tutte e 3 le schede di rete del $bridge in promisc-mode
   oppure assegnare un indirizzo ip alla scheda del $bridge collegata al $server ?

3: i pf.conf descritti sopra non sono completi e funzionanti , ma solo prove mal riuscite di conf.
   per ora l'unico test effettuato e' stato fatto lasciando passare tutti i pacchetti sia dal
   $router che dal $firewall, solo dopo aver risolto il dubbio al punto due posso passare ai conf.
   Se ci vosse voglia di approfondire mi sarebbe utile sapere se il comando route-to e' necessario
   in una configurazione tipo questa.

E' veramente poco tempo che uso open-bsd ed ho poca esperienza anche con le varie distribuzioni linux,
non abbiatevene a male se ho detto troppe ca**ate =)


________________________________________________________ http://www.sikurezza.org - Italian Security Mailing List




[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005