LINUX.ORG.RU
решено ФорумAdmin

не могу настроить openvpn, клиент не видит локальной сети за vpn сервером


1

1

Доброго времени суток, обращаюсь за помощью ку сообществу так как openvpn взорвал мне весь мозг.
Задача тривиальная, следующая: Есть ПК-дом с usb модемом, этот ПК-дом должен подключатся через openvpn-сервер и получить доступ к локальной сети, принтерам, почте, интернету на работе

ПК-дом: windows xp sp3
OpenVPN-сервер: CentOS 5.7 x86_64 + Squid + Communigate + iptables +openvpn
Локалка за сервером: несколько ПК с Windows XP SP3

Server.conf

port 1194
proto tcp
dev tun
tls-server
local 77.77.77.77 #внешний сетевой интерфейс
server 192.168.100.0 255.255.255.0 #сеть VPN канала
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh1024.pem
push «route 192.168.1.0 255.255.255.0» #локалка за VPN сервером
client-config-dir /etc/openvpn/ccd
keepalive 10 120
comp-lzo
persist-key
persist-tun
ifconfig-pool-persist ipp.txt
status /etc/openvpn/openvpn-status.log
verb 3
client-to-client
duplicate-cn

client01
ifconfig-push 192.168.100.101 192.168.100.102

client01.ovpn
client
nobind
dev tap
proto tcp
remote 77.77.77.77 1194
persist-key
persist-tun
user nobody
group nogroup
comp-lzo
ns-cert-type server
ca ca.crt
cert client01.crt
key client01.key

firewall.sh
######************** Подключаем необходимые модули **************######
echo 1 > /proc/sys/net/ipv4/ip_forward

######************** Задаем настройки по умолчанию **************######
#Очищаем все правила в таблицах filter, nat и mangle
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
#Удаляем все пользовательские цепочки в таблицах filter, nat и mangle
iptables -t filter -X
iptables -t nat -X
iptables -t mangle -X
# Задаем политики по умолчанию
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT

######************** Задаем настройки фаервола **************######
#eth0 -локалка 192.168.1.1
#eth1 -интернет 77.77.77.77
#eth2 -резерв
###### Описываем открытые порты !!на всех!! интерфесах
# Разрешаем прохождение любого трафика по интерфейсу обратной петли
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Разрешим передачу трафика уже открытым соединениям
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#Открываем icmp чтобы наш сервер могли пинговать из внешней сети
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
#Открываем доступ из вне к ssh
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#Открываем 80 порт для апача
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#Открываем почту pop3-25 smtp-110 imap-143
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
#открываем OpenVPN
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 1194 -j ACCEPT
iptables -P FORWARD ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
######************** Описываем открытые порты на eth0 **************######
# Открываем вэб интерфейс коммунигейта только из локальной сети
iptables -A INPUT -p tcp -m tcp -i eth0 --dport 8010 -j ACCEPT
# Доступ к прокси серверу
iptables -A INPUT -p tcp -m tcp -i eth0 --dport 3128 -j ACCEPT

#Отсекаем весь остальной трафик, для которого нет описаных правил
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

##### задаем настройки перенаправления портов
# Делаем возможным пинг интернета из локальной сети
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -p icmp -j SNAT --to-source 77.77.77.77
# Прокидываем DNS запросы
iptables -t nat -A PREROUTING -p udp -d 192.168.1.0/255.255.255.0 --dport 53 -j DNAT --to-destination 79.132.98.150:53
iptables -t nat -A POSTROUTING -p udp -d 79.132.98.150 --dport 53 -j SNAT --to-source 77.77.77.77
#Прокидываем RDP
iptables -t nat -A PREROUTING -d 77.77.77.77 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 192.168.1.15:3389
# Прокидываем интернет в обход прокси
iptables -t nat -A POSTROUTING -s 192.168.1.15 -j SNAT --to-source 77.77.77.77
# Прокидываем FTP в пассивном режиме, для этого прокидываем 21 порт и динамические порты в диапазоне 10000-10100
iptables -t nat -A PREROUTING -d 77.77.77.77 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.1.15:21
iptables -t nat -A PREROUTING -d 77.77.77.77 -p tcp -m tcp --dport 10000:10100 -j DNAT --to-destination 192.168.1.15

######************** Применяем правила **************######
#переписываем iptables
iptables-save > /etc/sysconfig/iptables

#перезапускаем сервис iptables
service iptables restart

В результате клиентская часть openvpn подключается к серверу но не пингует:
1. 192.168.100.100 - конец ip туннеля на стороне vpn сервера
2. 192.168.1.1 -интерфейс локальной сети на сервере
3. 192.168.1.0/24 0 всю подсеть за сервером

помогите пожалуйста решить проблему

Ответ на: комментарий от ValdikSS

ЗАРАБОТАЛО!!!!!!!!!!!

Ура! Огромное спасибо! Мне стыдно )))

я так понимаю параметр comp-lzo - это шифрование канала? как он мог повлиять на видимость сетей и интерфейсов?

fordiego ()
Ответ на: комментарий от ValdikSS

Итак после удаления comp-lzo клиент видит всю подсеть 192.168.1.0/24

но в интернеты ходит все еще от модема я так понимаю, а должен использовать интернеты работы, тоесть как бы использовать для входа в инэт 77.77.77.77 это нужно для того чтобы из дома можно было крутить вэб морды комунигейта и сквида

fordiego ()
Ответ на: комментарий от Tok

после этого вообще все отвалилось, я сделал по другому я прописал в server.conf server 192.168.1.0 255.255.255.0 в client01 ifconfig-push 192.168.1.101 192.168.1.102 и получил ip как бы из локальной сети! и соответственно получил доступ к web мордам на серваке которые доступны только из локалки

fordiego ()
Ответ на: комментарий от Tok

еще вопрос (я как бы не изучил еще самостоятельно) можно ли настроить openvpn сервер таким образом чтобы к нему можно было цеплятся не специальной клиентской частью, а создат стандартными средствами в windows xp vpn подключение и соединится? тогда у компа клиента все подключения завернутся в vpn канал и если загуглить свой ip то покажет ip адрес vpn-сервера (ну или шлюза)!

fordiego ()
Ответ на: комментарий от fordiego

можно ли настроить openvpn сервер таким образом чтобы к нему можно было цеплятся не специальной клиентской частью, а создат стандартными средствами в windows xp vpn подключение и соединится?

Не

Tok ★★ ()
Ответ на: комментарий от Tok

тогда подскажите как можно организовать подключение используя openvpn, чтобы openvpn-клиенты могли полностью шлюзоваться через openvpn-сервер

для чего это нужно? вот пример есть вэб ресурс расположенный где то в интернетах на который пускают только наш сервер vpn и соответственно все пк что в локалке сидят

я настроил доступ к серверу VPN и в локальную сеть на работе своего домашнего ПК но доступ к этому секурному вэб ресурсу все равно не получу! так как моя машина попрежнему сидит снаружи.

Где и как прописать что бы шлюзоватся через openvpn сервер а не через USB-модем

fordiego ()
Ответ на: комментарий от fordiego

Где и как прописать что бы шлюзоватся через openvpn сервер а не через USB-модем

push «redirect-gateway def1» на сервере в конфиге

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

было ошибкой прописывать в конфигах server.conf server 192.168.1.0 255.255.255.0 в client01 ifconfig-push 192.168.1.101 192.168.1.102 из-за этого получил отвал сети (пропал интернет в локальной сети, впн клиент перестал подключатся, пропали пинги в локальную сеть с клиента) вернул все настройки как в первом посте

теперь снова не могу зайти на вэб морды

push «redirect-gateway def1» не помогло

fordiego ()
Ответ на: комментарий от Pinkbyte

добавил push «redirect-gateway def1» push «dhcp-option DNS 192.168.1.1»

и получил доступ к секурному вэб серверу в интернетах

доступ к вэб мордам, почте и т.д попрежнему не получается настроить

fordiego ()
Ответ на: комментарий от Tok

Да, после прописывания дефолта через туннель, нужно конкретно прописать маршрут до внешнего ip адреса openvpn сервера через старый дефолт. Иначе получается ерунда какая-то

victorb ★★ ()
Ответ на: комментарий от fordiego

теперь взрыв мозга устаревает почтовый сервак

в настройках клиента указано pop smtp сервер: domain.com ( для примера естественно domain.com это имя 77.77.77.77)

после подключения vpn пытаюсь доставить/получить почту в логах сервера ошибка access denied for 85.26.235.6 - это ip мегафона, как бы правильно для этой сети работа почтового сервера закрыта

но когда я в гугле набираю на клиенте после подключения vpn узнать свой ip гугл отвечает ваш ip 77.77.77.77

че то вообще ничего не понимаю!

fordiego ()

Хм, а как так получилось что у сервера dev tun а у клиента dev tap? разве такое вообще будет работать?

И какая причина подвигла вас использовать tcp вместо udp?

morse ★★★★★ ()
Ответ на: комментарий от morse

на момент написание первого поста была такая ошибка потом я ее исправил.

причина использования никакой просто tcp и все... читал примеры установи и настройки там было tcp поэтому как бы так исторически сложилось

fordiego ()
Ответ на: комментарий от fordiego

причина использования никакой просто tcp и все... читал примеры установи и настройки там было tcp поэтому как бы так исторически сложилось

Убирай tcp, он не нужен. Опенвпн сам прекрасно реализует его фукнционал.

tazhate ★★★★★ ()
Ответ на: комментарий от fordiego

old_default_gateway -
ну до подъема опенвпна, то что у тебя было маршрутом по умолчанию

например делаешь
ip r get 1.2.3.4
тот адрес что будет после via и есть маршрут по умолчанию

victorb ★★ ()
Ответ на: комментарий от victorb

Понедельник, головная боль вернулась. Помогите разобраться.
#############server.conf####################
port 1194
proto tcp
dev tun
local 77.77.77.77
server 192.168.100.0 255.255.255.0
tls-server
keepalive 10 120
persist-key
persist-tun
ifconfig-pool-persist ipp.txt
client-to-client
duplicate-cn
status /etc/openvpn/openvpn-status.log
client-config-dir /etc/openvpn/ccd

push «route 192.168.1.0 255.255.255.0»
push «route 192.168.100.0 255.255.255.0»
push «dhcp-option DNS 192.168.1.1»
push «redirect-gateway def1»

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh1024.pem

###############client01######################
ifconfig-push 192.168.100.101 192.168.100.102

###############client01.ovpn#################
client
nobind
dev tun
proto tcp
remote 77.77.77.77 1194
persist-key
persist-tun
user nobody
group nogroup
ns-cert-type server
ca ca.crt
cert client01.crt
key client01.key


Проблема следующая
1. Есть ПК (дома стоит) на котором настроен почтовый клиент MS Outlook Express
pop3 и Smtp соответственно 77.77.77.77
сам почтовый сервер стоит на 77.77.77.77 на почтовом серваке указано что подключатся к нему и забирать почту могут только из локальной сети за VPN (это подсеть 192.168.1.0/24, сети VPN 192.168.100.0/24 и с ip 77.77.77.77)

после того как домашний пк подключается к серверу vpn почту все равно забрать нельзя в логах сервера ошибка
access denied for [85.26.235.219]:28646 (not a client address)
что по идеи правельно так как сервер открыт см выше с каких адресов

НО! если с домашней тачки набрать в гугле узнать совой ip гугл скажет ваш ip 77.77.77.77 и по логике почтовый сервак должен пропустить клиента

почему так? есть идеи?
кстате если pop3 smtp прописать например 192.168.1.1 (интф сервака смотрит в локалку) то почту пропустит )))

такое ощущение что в канал vpn уходит только http трафик...


2. после рестарта интерфесов стала вылазить ошибка
service network restart
Деактивируется интерфейс eth0: [ OK ]
Деактивируется интерфейс eth1: [ OK ]
Деактивируется интерфейс-петля: [ OK ]
Запрещается маршрутизация пакетов IPv4: net.ipv4.ip_forward = 0
[ OK ]
Активируется интерфейс loopback: [ OK ]
Активируется интерфейс eth0: RTNETLINK answers: File exists
Ошибка добавления адреса 192.168.1.1 к eth0.
[ OK ]
Активируется интерфейс eth1: RTNETLINK answers: File exists
Ошибка добавления адреса 77.77.77.77 к eth1.
[ OK ]


и сеть не сразу поднимается ((((((

fordiego ()
Ответ на: комментарий от fordiego

1 проблема частично решена после подключения клиента к VPN, пишу на клиенте cmd route add 77.77.77.77 192.168.100.101 и почта начинает работать ))) осталось разобраться как это сделать в конфиге server.conf чтоб руками не писать каждый раз

fordiego ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.