Author Topic: Соединение VPN через роутер под Linux  (Read 6426 times)

0 Members and 1 Guest are viewing this topic.

Offline koldoon

  • Newbie
  • *
  • Posts: 24
  • Karma: +0/-0
Имеется локальная сеть с сервером-роутером под Slackware Linux 10.2 (ker 2.6.14). Также имеется проблема с поключением пользователей сети к VPN серверам за роутером. (например, томиковская внешка). При подключении выдает ошибку, что порт закрыт, недоступен и т.п... Пробовались все варианты: даже временное отключение файервола (вдруг правда что закрыто?), но  проблема остается. Клиенты - под управлением Windows. Кто сталкивался с такой проблемой, подскажите как решить?
« Last Edit: April 21, 2006, 15:41:58 by koldoon »

Offline ack

  • Jr. Member
  • **
  • Posts: 75
  • Karma: +0/-0
    • http://
Соединение VPN через роутер под Linux
« Reply #1 on: April 21, 2006, 16:06:55 »
Маршрутизатор транслирует адреса (NAT)?
Если да, то нужно читать VPN-Masquerade howto - там подробно описано как всё нужно сделать.

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
Соединение VPN через роутер под Linux
« Reply #2 on: April 21, 2006, 17:32:06 »
Quote
Имеется локальная сеть с сервером-роутером под Slackware Linux 10.2 (ker 2.6.14). Также имеется проблема с поключением пользователей сети к VPN серверам за роутером. (например, томиковская внешка). При подключении выдает ошибку, что порт закрыт, недоступен и т.п... Пробовались все варианты: даже временное отключение файервола (вдруг правда что закрыто?), но  проблема остается. Клиенты - под управлением Windows. Кто сталкивался с такой проблемой, подскажите как решить?
[snapback]9186[/snapback]
А поискать хорошенько?
http://sysadmin.tomsk.ru/index.php?showtopic=1143

Offline koldoon

  • Newbie
  • *
  • Posts: 24
  • Karma: +0/-0
Соединение VPN через роутер под Linux
« Reply #3 on: April 21, 2006, 20:11:05 »
Quote
А поискать хорошенько?
http://sysadmin.tomsk.ru/index.php?showtopic=1143
[snapback]9190[/snapback]

Все описанное там УЖЕ стоит и как буд-то настроено, порты открыты ВСЕ (ну кроме там некоторых широковещательных Windows, как 445 и т.д...), соответственно и этот 1723 тоже (открыт). модуль ip_conntrack_pptp тоже подключается (а также на всякий случай ip_nat_pptp, ip_gre). Для пользователей сети также разрешено использовать любые протоколы (iptables -A FORWARD -p ALL ...) и все равно проблема остается.

Offline koldoon

  • Newbie
  • *
  • Posts: 24
  • Karma: +0/-0
Соединение VPN через роутер под Linux
« Reply #4 on: April 21, 2006, 20:12:20 »
Quote
Маршрутизатор транслирует адреса (NAT)?
Если да, то нужно читать VPN-Masquerade howto - там подробно описано как всё нужно сделать.
[snapback]9187[/snapback]
У меня используются таблицы SNAT и DNAT вместо маскарада. Но маскарад я тоже пробовал... не помогает...
« Last Edit: April 21, 2006, 20:12:47 by koldoon »

Offline koldoon

  • Newbie
  • *
  • Posts: 24
  • Karma: +0/-0
Соединение VPN через роутер под Linux
« Reply #5 on: April 21, 2006, 20:22:55 »
Короче правила в студию:

TSU_IP="212.192.101.22" #Внешний ip
LOCAL_IP="192.168.51.1" #Внутренний ip

modprobe ip_conntrack_ftp
modprobe ip_conntrack_pptp
modprobe ip_nat_ftp
modprobe ip_nat_pptp
modprobe ip_gre

##NAT chain
iptables -F
iptables -F -t nat

iptables -t nat -A PREROUTING  -d 192.168.51.0/24 -s ! 192.168.14.0/24 -j DNAT --to-destination $TSU_IP
iptables -t nat -A POSTROUTING -s 192.168.51.0/24 -d ! 192.168.14.0/24 -j SNAT --to-source $TSU_IP

## FORWARD chain
iptables -A FORWARD -d 192.168.51.0/24 -s 192.168.14.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.14.0/24 -s 192.168.51.0/24 -j ACCEPT

iptables -A FORWARD -p TCP --dport 135:139 -j DROP
iptables -A FORWARD -p TCP --dport 445 -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p UDP --dport 135:139 -j DROP
iptables -A FORWARD -p UDP --dport 445 -j DROP

iptables -A FORWARD -p TCP --sport 135:139 -j DROP
iptables -A FORWARD -p TCP --sport 445 -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p UDP --sport 135:139 -j DROP
iptables -A FORWARD -p UDP --sport 445 -j DROP

#Accept incoming to lan packages
iptables -A FORWARD -d 192.168.0.0/16 -j ACCEPT

#Accept users (forward-output)
cat /settings/users |
while read mac ip name
do
    let col=$col+1
    echo "$col   Applying user   $ip   $name"
    iptables -A FORWARD -m mac --mac-source $mac -s $ip -j ACCEPT
done

#Drop all another
iptables -A FORWARD -j DROP

#Server INPUT chain
iptables -A INPUT -p UDP --dport 67 -j ACCEPT
iptables -A INPUT -p TCP --dport 135:138 -j DROP
iptables -A INPUT -p TCP --dport 445 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p TCP --dport 139 -i eth0 -j DROP
iptables -A INPUT -p TCP --dport 587 -j DROP
iptables -A INPUT -p TCP --dport 113 -j DROP
iptables -A INPUT -p TCP --dport 901 -i eth0 -j DROP
iptables -A INPUT -p TCP --dport 37 -j DROP
iptables -A INPUT -p TCP --dport 25 -j DROP
iptables -A INPUT -s 81.176.240.176 -j DROP
iptables -A INPUT -s 81.176.241.37 -j DROP

#Server OUTPUT chain
iptables -A OUTPUT -p TCP --sport 135:138 -j DROP
iptables -A OUTPUT -p TCP --sport 445 -j REJECT --reject-with tcp-reset

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
Соединение VPN через роутер под Linux
« Reply #6 on: April 22, 2006, 00:59:37 »
Мдя... черт ногу сломит в этом....
Нормальные люди начинают отладку с более простых правил.
Оставьте только NAT и разрешите на FORWAD все. Не помешает с помощью tcpdump понаблюдать что просиходит при попытке поднятия PPTP.

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
Соединение VPN через роутер под Linux
« Reply #7 on: April 22, 2006, 01:01:45 »
Quote
У меня используются таблицы SNAT и DNAT вместо маскарада. Но маскарад я тоже пробовал... не помогает...
[snapback]9192[/snapback]
Да и еще... советую IPTables Tutorial почитать, похоже в голове каша. SNAT и DNAT это не таблицы, это "действия".
А кстати вот это что такое
Quote
iptables -t nat -A PREROUTING -d 192.168.51.0/24 -s ! 192.168.14.0/24 -j DNAT --to-destination $TSU_IP
и нахрена оно нужно.
Срочно читать IPTables Tutorial.
« Last Edit: April 22, 2006, 01:04:57 by demiurg »

Offline Magnus

  • Full Member
  • ***
  • Posts: 132
  • Karma: +0/-0
    • http://
Соединение VPN через роутер под Linux
« Reply #8 on: April 22, 2006, 10:52:33 »
У меня с такими правилами все пользователи из сети коннектятся к VPN-серверам без проблем. (В конце оставил несколько интересных правил, может пригодиться)

Code: [Select]
/sbin/iptables -F                                                                                                
/sbin/iptables -t nat -F                                                                                        
                                                                                                            
# Setup default policies to handle unmatched traffic                                                
/sbin/iptables -P INPUT ACCEPT    
/sbin/iptables -P OUTPUT ACCEPT    
/sbin/iptables -P FORWARD DROP                                                                                  
                                                                                                            
export LAN=eth1                                                                                            
export WAN=eth0                                                                                            
                                                                                                            
/sbin/iptables -I INPUT 1 -i ${LAN} -j ACCEPT                                                        
/sbin/iptables -I INPUT 1 -i lo -j ACCEPT                                                                
/sbin/iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT                        
/sbin/iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT                                                                                                                                          
# Allow access to our ssh server from the WAN      
/sbin/iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT                                                  
                                                                                                            
# Drop TCP / UDP packets to privileged ports                                                            
/sbin/iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP                
/sbin/iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP                                                                                                                                          
# Finally we add the rules for NAT                                                                            
/sbin/iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.255.0 -j DROP            
/sbin/iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.255.0 -j ACCEPT        
/sbin/iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.255.0 -j ACCEPT      
/sbin/iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE  

###
## -- Port Forwarding --
###

#-------------------------------------------
# Forward port 2 to ssh on an internal host                                                            
#-------------------------------------------
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 2 -i ${WAN} -j DNAT --to 192.168.0.2:22                      
                                                                                                            
#-------------------------------------------
# FTP forwarding to an internal host
#-------------------------------------------                                                                    
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 21 -i ${WAN} -j DNAT --to 192.168.0.56                        
                                                                                                            
#-------------------------------------------
# HTTP forwarding to an internal host
#-------------------------------------------                                                                        
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.0.56                        
                                                                                                            
#-------------------------------------------
# VNC forwarding for internal hosts
#-------------------------------------------                                                                            
# /sbin/iptables -t nat -I PREROUTING -p tcp --dport 5900 -i ${WAN} -j DNAT --to 192.168.0.2                      
# /sbin/iptables -t nat -I PREROUTING -p tcp --dport 5901 -i ${WAN} -j DNAT --to 192.168.0.3:5900
#                  
# If you want to VNC in to 192.168.0.3, then just add ':1' to the router's hostname                            
                                                                                                            
#-------------------------------------------
#Bittorrent forwarding
#-------------------------------------------                                                                                        
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 6881:6889 -i ${WAN} -j DNAT --to 192.168.0.2                  
                                                                                                            
#-------------------------------------------
# eDonkey/eMule forwarding                                                                                    
#-------------------------------------------
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 4662 -i ${WAN} -j DNAT --to 192.168.0.55                      
                                                                                                            
#-------------------------------------------
# Game Cube Warp Pipe support
#-------------------------------------------                                                                                  
# /sbin/iptables -t nat -A PREROUTING -p udp --dport 4000 -i ${WAN} -j DNAT --to 192.168.0.56                      
                                                                                                            
#-------------------------------------------
# Playstation 2 Online support                                                                                
#-------------------------------------------
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11              
# /sbin/iptables -t nat -A PREROUTING -p udp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11              
------------- Codito, ergo sum - "I code, therefore I am" --------------

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Соединение VPN через роутер под Linux
« Reply #9 on: April 24, 2006, 09:17:21 »
А сервер случайно не за ADSL модемом стоит? а то некоторые модемы тоже умеют фильтровать трафик.
С роутера можешь соединиться с ВПН сервером?

Offline koldoon

  • Newbie
  • *
  • Posts: 24
  • Karma: +0/-0
Соединение VPN через роутер под Linux
« Reply #10 on: April 26, 2006, 16:04:25 »
Quote
А сервер случайно не за ADSL модемом стоит? а то некоторые модемы тоже умеют фильтровать трафик.
С роутера можешь соединиться с ВПН сервером?
[snapback]9232[/snapback]

нет, тут подключение через оптоволоконный канал.

С роутера соединяться не пробовал, т.к. не стоит соответствующего ПО. Сервер слабенький и я на него "лишнее" не цепляю.
« Last Edit: April 26, 2006, 16:05:29 by koldoon »

Offline koldoon

  • Newbie
  • *
  • Posts: 24
  • Karma: +0/-0
Соединение VPN через роутер под Linux
« Reply #11 on: April 26, 2006, 16:19:14 »
Quote from: Magnus,22 Apr 2006, 10:52 AM
У меня с такими правилами все пользователи из сети коннектятся к VPN-серверам без проблем. (В конце оставил несколько интересных правил, может пригодиться)

[code]
/.../

Могу я поинтересоваться, какая у вас система, версия ядра, iptables и пр..?

Offline Magnus

  • Full Member
  • ***
  • Posts: 132
  • Karma: +0/-0
    • http://
Соединение VPN через роутер под Linux
« Reply #12 on: April 27, 2006, 07:53:02 »
Quote
Могу я поинтересоваться, какая у вас система, версия ядра, iptables и пр..?
[snapback]9303[/snapback]

Gentoo
kernel-2.6.15-gentoo-r1
iptables v1.3.4

------------- Codito, ergo sum - "I code, therefore I am" --------------