firewall + vpn

5 risposte [Ultimo messaggio]
Ritratto di enzo77
enzo77
(Junior)
Offline
Junior
Iscritto: 26/11/2004
Messaggi: 8

ho un router alcatel con ip 10.0.0.138 che fa il redirect dell chiamate in ingresso pptp vpn sul 10.0.0.1

se configuro il mio mdk con:
eth0: 10.0.0.1
eth1: 192.168.1.250 (lan)
come posso fare per far si che il mio firewall mdk mi faccia entrare sulla lan remota dall'esterno ?

Ritratto di Pinguino
Pinguino
(Guru)
Offline
Guru
Iscritto: 14/09/2004
Messaggi: 2918

Non ho mai provato, sinceramente, ma diversi modi ci potebbero essere.

Uno è quello (suppongo) di mettere un server (per esmpio) ssh sul 10.0.0.1 da cui ti logghi dall'esterno, e poi successivamente con questo loggarti su un altro server all'interno della lan.

L'altro è sicuramente quello di forwardare (termine non corretto..più precisamente prova a usare i comandi annessi al PREROUTING) le porta che ti interessa (per esempio quella di ssh) al PC della lan interna a cui vuoi accedere. Lo puoi fare comodamente con le regole delle iptables come questa:

iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT
--to-destination 192.168.1.XXX:22

XXX sarà da sostituire in modo che l'IP combaci con il PC nella VPN da raggiungere.

Volendo puoi anche lasciare un accesso ssh al router (può sempre servire) e decidere che il server ssh interno stia in ascolto su un'altra porta, che dovrà essere specificata (e forse è anche più sicuro)

Ovviamente il giochetto si può fare con tutte le porte che vuoi (per esempio puoi mettere un server FTP visibile dall'esterno su un altro PC della LAN, etc).

Non ho testato il tutto, fammi sapere se ci sono problemi

PS> esistono migliaia di script in rete per fare pratica con le iptables, basta aver voglia di fare 10 secondi di ricerche in google.. prova a partire da qui:

http://www.netfilter.org/

Proud linux user # 372467 @ http://counter.li.org
Mandriva Cooker 2008 - Kernel 2.6.17-14mdv - KDE 3.5.7 - Gnome 2.16

Ritratto di enzo77
enzo77
(Junior)
Offline
Junior
Iscritto: 26/11/2004
Messaggi: 8

forse mi sono spiegato da cani:

io ho un router alcatel st pro con ip pub che non fa passare niente in ingresso e quindi lo abilito per far passare i pacchetti pptp vpn (di tipo tcp su porta 1723) e li fa puntare al mio server linux mdk 10 con ip 10.0.0.1.
Ora il mio problema è:
quando io mi connetto dall'esterno con una connessione vpn dal mio nb XP, cun user e passw puntando all'ip pub del mio router, come posso dire al fw linux che riceve la chiamata di farmi entrare sulla lan interna 192.168.1.0? (rimanga inteso che il linux mdk ha già abilitato il server vpn funzionante).

spero di essermi spiegato meglio !!!

Ritratto di Moreno
Moreno
(Guru)
Offline
Guru
Iscritto: 24/09/2004
Messaggi: 16862

Ciao

La prima cosa da fare è sicuramente quella di installare il pacchetto pptpd-server che è il server che gestisce le connessioni VPN finestre compatibile.

Creare un o più account ppp (Uno per ogni linea VPN)

Creare le regole del firewall per l'accesso da VPN

Più o meno è tutto.

Se usi Shorewall e pptpd-server puoi configurare tutto via WebMin (Molto comodo).

Ciao Ciao Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.

Ritratto di enzo77
enzo77
(Junior)
Offline
Junior
Iscritto: 26/11/2004
Messaggi: 8

infatti mi blocco sulla regola da creare!!!

Ritratto di enzo77
enzo77
(Junior)
Offline
Junior
Iscritto: 26/11/2004
Messaggi: 8

ok funziona!!!

rimane una cosa!!

ora il notebook xp da remoto entra e consulta anche il server linux!!

l'unica cosa è che il notebook xp non contatta i pc della rete e viceversa!!

che regola manca??

questo è lo script che ho usato, preso da un'altro post e aggiungendo la porta della vpn 1723:

#!/bin/sh
## script to enable firewall/masquerading
#
# bring up alias interface eth0:0 :
#not needed: Already done at boot
#ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 up
#N.B. To load this script at boot put "sh /path/to/script.sh" at the bottom of /etc/rc.local

######### RESET IPTABLES
#echo -n "Cleaning Tables... "
#
# reset the default policies in the filter table.
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#
# reset the default policies in the nat table.
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#
# reset the default policies in the mangle table.
#
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

#
# flush all the rules in the filter and nat tables.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
#
# erase all chains that's not default in filter and nat table.
#
iptables -X
iptables -t nat -X
iptables -t mangle -X

######### RESET DONE
echo "done!"
######### BRING UP FIREWALL
echo -n "Bringing Up Firewall... "
# Determine the external IP automatically:
EXTIP="`/sbin/ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"

# if u want to share your internet securely. u must do that by FORWARD chain.

iptables -P FORWARD DROP # assing the default policy to drop for FORWARD chain
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT # accept all which come from your net and go to other net (like internet)
iptables -A FORWARD -s 10.0.0.1/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # allow all established related packets.

#now your local networks behind your firewall is in secure enough.

#and if u wanna secure your gateway linux, u must do that by INPUT chain:

iptables -P INPUT DROP
iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -s 10.0.0.1/24 -j ACCEPT
iptables -A INPUT -s $EXTIP -j ACCEPT # it's a good idea? I don't know (yet).. It's the only way to access to my no-ip address from my PC!!
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#open port:
#rule: iptables -A INPUT -i eth0 -p (protocol) --dport (port_no) -j ACCEPT

#FTP
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
#SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
#SMTP
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
#HTTP and HTTPS
#iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
#POP3
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 113 -j ACCEPT
#NTP
#iptables -A INPUT -i eth0 -p tcp --dport 123 -j ACCEPT
#GAIM and C. on M$N
iptables -A INPUT -i eth0 -p tcp --dport 1863 -j ACCEPT
#eDonkey-aMule
iptables -A INPUT -i eth0 -p tcp --dport 4661 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 4662 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 4665 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 4672 -j ACCEPT
#edonkey webserber
iptables -A INPUT -i eth0 -p tcp --dport 4711 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 4712 -j ACCEPT
#Webmin
iptables -A INPUT -i eth0 -p tcp --dport 10000 -j ACCEPT
#VPN PPtP Server
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
#FreeDB and CDDB
#iptables -A INPUT -i eth0 -p tcp --dport 888 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 8880 -j ACCEPT
#Nicotine/Soulseek
iptables -A INPUT -i eth0 -p tcp --dport 2234 -j ACCEPT
#DNS
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
#PING (now disabled)
#iptables -A INPUT -i eth0 -p ICMP -j ACCEPT
#noip2 (needed by no-ip service)
iptables -A INPUT -i eth0 -p tcp --dport 8245 -j ACCEPT

######### FIREWALL DONE
echo "done!"
######### MASQUERADING AND IP FORWARDING
echo -n "Enable Masquerading... "
# Next, an iptables rule to enable masquerading:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

# Finally, enable ip forwarding (already active by default in my conf):

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

######### MASQUERADING AND IP FORWARDING DONE
echo "done!"
#save iptables
#iptables-save >/etc/sysconfig/iptables
echo "All done!"