Author Topic: VPN+NAT  (Read 3688 times)

0 Members and 1 Guest are viewing this topic.

Offline FireWall

  • Newbie
  • *
  • Posts: 29
  • Karma: +0/-0
VPN+NAT
« on: February 12, 2007, 17:59:13 »
День добрый.

Есть проблемка с которой мучаюсь долго но никак не могу побороть…

Цель: поставить дома VPN сервер, чтоб с работы удачно юзать lineage(рубят админы его).
Имеется: Мать P5B со встроенной сетевой, Slackware 11, kernel 2.6.20 собрано с поддержкой iptables(в общем правильно иль нет, но я включил все что касается фильтров nat’а и т.п, т.к. нет времени пока разобраться что мне надо, а что нет), сетевая 1, IP статичный от одной из сетей Томска.

Для началу ставлю ppp, потом pptpd потом iptables. Вот конфиги.

/etc/rc.d/rc.pptpd

#!/bin/sh
#
# /etc/rc.d/rc.pptpd
#
# description: control pptp server
#

case "$1" in
start)
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ppp_async
modprobe ppp_generic
modprobe ppp_mppe
modprobe slhc
if /usr/local/sbin/pptpd; then
touch /var/lock/subsys/pptpd
fi
;;
stop)
killall pptpd
rm -f /var/lock/subsys/pptpd
;;
restart)
killall pptpd
if /usr/local/sbin/pptpd; then
touch /var/lock/subsys/pptpd
fi
;;
status)
ifconfig
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
Esac

/etc/pptpd.conf
speed 115200
option /etc/ppp/options.pptpd
debug
localip 192.168.0.1
remoteip 192.168.0.2-10

/etc/ppp/options
lock

/etc/ppp/options.pptpd
ipparam PoPToP
lock
mtu 1490
mru 1490
ms-dns 192.168.0.1
proxyarp
auth
refuse-pap
refuse-chap
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 30
lcp-echo-interval 5
deflate 0

/etc/ppp/chap-secrets

username * password *

И теперь самое главное, настраиваю iptables только на Томск и на shh для работы(на всякий…)

Вот скрипт:
#!/bin/bash
# userlist.sh
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
IP_M=/home/langs/nets
n=1
/usr/local/sbin/iptables -N ports
/usr/local/sbin/iptables -N intsk
/usr/local/sbin/iptables -N outtsk

/usr/local/sbin/iptables -F INPUT
/usr/local/sbin/iptables -F OUTPUT
/usr/local/sbin/iptables -F ports
/usr/local/sbin/iptables -F intsk
/usr/local/sbin/iptables -F outtsk

for name in $(awk '{print $1}' < "$IP_M" )
do
/usr/local/sbin/iptables -A intsk -s $name -j ACCEPT
let "n += 1"
done
for name in $(awk '{print $1}' < "$IP_M" )
do
/usr/local/sbin/iptables -A outtsk -d $name -j ACCEPT
let "n += 1"
done
/usr/local/sbin/iptables -A ports -s рабочийIP -p tcp --destination-port 22 -j ACCEPT
ACCEPT"

/usr/local/sbin/iptables -A INPUT -i lo -j ACCEPT

/usr/local/sbin/iptables -A INPUT -j ports
/usr/local/sbin/iptables -A INPUT -j intsk
/usr/local/sbin/iptables -A OUTPUT -j ports
/usr/local/sbin/iptables -A OUTPUT -j outtsk

/usr/local/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#NAT
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
#iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source Мой реальныйIP

/usr/local/sbin/iptables -P INPUT DROP
/usr/local/sbin/iptables -P FORWARD DROP
/usr/local/sbin/iptables -P OUTPUT DROP
/usr/local/sbin/iptables-save
echo ""
exit 0

Теперь собственно проблема. На работе стоит windows XP, по VPN коннекчусь без проблем. Коненкт стойкий, но не работает NAT, как только прописываю строку
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
или
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source Мой реальныйIP
или обе и пытаюсь например зайти в lineage под vpn(так как на работе его рубят) комп просто виснет(домашний), уже не помню что там писалось, но клава мигает и помогает только ребут приходится ждать до вечера так как дома никого нет. Может кто знает где в логах эти ошибки лежат, выложу.

Посоветуйте как мне все таки настроить рабочий NAT. Кстати и пинг по «внутренней сети» ни с линукса ни с винды (192.168.0.1 до 192.168.0.2 и наоборот ) не идет.

Сильно не пинайте я только учусь.

Offline FireWall

  • Newbie
  • *
  • Posts: 29
  • Karma: +0/-0
VPN+NAT
« Reply #1 on: February 15, 2007, 11:41:34 »
Проблема была из-за ядра 2.6.20, поставил 2.6.19 терь не вылетает тьфу тьфу тьфу.

Но…NAT так и не удалось поднять…

Ip_forward включен.

Когда в винде стоит галка «Использовать основной шлюз в удаленной сети» пинг вааще не идет так как шлюз прописывается равный ip клиента, убрал галку пинг внутри сети идет., но шлюза то нет.

Прописал
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 88.204.х.х
iptables -t nat -A postrouting -o ppp0 -j masquerade

Все равно не работает NAT. Мож чего еще где прописать надо, а мож проблема в шлюзе? И где бы его прописать, чтоб клиент получал его автоматически.

Заранее спасибо.

Offline SG_

  • Full Member
  • ***
  • Posts: 157
  • Karma: +0/-0
VPN+NAT
« Reply #2 on: February 16, 2007, 20:13:13 »
Quote from: FireWall
Проблема была из-за ядра 2.6.20, поставил 2.6.19 терь не вылетает тьфу тьфу тьфу.

Но…NAT так и не удалось поднять…

Ip_forward включен.

Когда в винде стоит галка «Использовать основной шлюз в удаленной сети» пинг вааще не идет так как шлюз прописывается равный ip клиента, убрал галку пинг внутри сети идет., но шлюза то нет.

Прописал
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 88.204.х.х
iptables -t nat -A postrouting -o ppp0 -j masquerade

Все равно не работает NAT. Мож чего еще где прописать надо, а мож проблема в шлюзе? И где бы его прописать, чтоб клиент получал его автоматически.

Заранее спасибо.

не еби мозга. просто сходи на openvpn.org. там тебе и вендовая версия найдется как клиента так и сервера. и пролазит он там, где другие впн зарезаны злобными провайдерами/админами.

Offline FireWall

  • Newbie
  • *
  • Posts: 29
  • Karma: +0/-0
VPN+NAT
« Reply #3 on: February 19, 2007, 09:04:15 »
Quote from: SG_
не еби мозга. просто сходи на openvpn.org. там тебе и вендовая версия найдется как клиента так и сервера. и пролазит он там, где другие впн зарезаны злобными провайдерами/админами.


Мдааа. Товарищ, зачем же такие грубые высказывания. Помоему я без матов спрашивал. OpenVPN не канает, уже пробовал и на винде и не линухе, он со своим клиентом, а это не есть удобно.

Offline SG_

  • Full Member
  • ***
  • Posts: 157
  • Karma: +0/-0
VPN+NAT
« Reply #4 on: February 21, 2007, 17:22:41 »
Quote from: FireWall
Мдааа. Товарищ, зачем же такие грубые высказывания. Помоему я без матов спрашивал. OpenVPN не канает, уже пробовал и на винде и не линухе, он со своим клиентом, а это не есть удобно.
неудобно под венду небольшую софтинку поставить?  у меня юзеры ставят без проблем и работают.

Offline FireWall

  • Newbie
  • *
  • Posts: 29
  • Karma: +0/-0
VPN+NAT
« Reply #5 on: March 02, 2007, 12:28:59 »
Вот и решилась проблема.

$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -s $VPN_RANGE -j ACCEPT

Всем спасибо.