Страница 1 из 1

OpenVPN+FedoraCore

Добавлено: 2011-02-05 23:38:33
Jan
Коллеги, есть проблема небольшая.
Есть сервер на кот. стоит FreeBSD и на кот. установлен OpenVPN сервер (ставил по статье http://www.lissyara.su/articles/freebsd ... n+pkcs-12/).
  • Сервер FreeBSD:
Net: 192.168.0.0/24
IP: 192.168.0.1(он же основной гейт)
IP OpenVPN: 10.10.10.1

Код: Выделить всё

ifconfig
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 10.10.10.1 --> 10.10.10.2 netmask 0xffffffff
        Opened by PID 9072
Роуты:

Код: Выделить всё

 netstat -rn
Routing tables
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            212.16.7.161       UGS         0  6117347   bge1
10.10.10/30        10.10.10.2         UGS         0        0   tun0 =>
10.10.10/24        10.10.10.2         UGS         0        3   tun0
10.10.10.2         10.10.10.1         UH          4    29077   tun0
127.0.0.1          127.0.0.1          UH          0  1779014    lo0
172.16/24          10.10.10.2         UGS         0   564259   tun0
192.168.0          link#1             UC          0        0   bge0
........................................................................
192.168.1          10.10.10.2         UGS         0    24850   tun0
Настройки OpenVPN аналогичные как в статье:
Филиал 1

Код: Выделить всё

ifconfig-push 10.10.10.2 10.10.10.1
iroute 192.168.1.0 255.255.255.0
Филиал 2

Код: Выделить всё

ifconfig-push 10.10.10.6 10.10.10.5
iroute 192.168.1.0 255.255.255.0
Есть 2 удалённых филиала.
  • 1.Филиал FreeBSD:
Net: 172.16.0.0/24
IP: 172.16.0.1(он же основной гейт)
IP OpenVPN: 10.10.10.2
Проблем нет никаких. Из 192.16.0.0/24 в 172.16.0.0/24 пинги,трасы туда и обратно худють )))
  • 2.Филиал FedoraCore
Net: 192.168.1.0/24
IP: 192.168.1.121
Gate: 192.166.1.1
IP OpenVPN: 10.10.10.6
Вот тут проблема.
На сам сервер(192.168.1.121) пинги-трасы ходят туда и обратно из всех сетей(192.16.0.0/24 172.16.0.0/24), а вот дальше этого сервера никак(((
На гейте(192.168.1.1) роуты прописаны:

Код: Выделить всё

route add 192.168.0.0/24 192.168.1.121
но вот ни пинги ни трасы никак ((( из 192.168.1.0/24 в 192.168.0.0/24 и 172.16.0.0/24 не бегают

Код: Выделить всё

uname -a
Linux keygen 2.6.34.7-66.fc13.i686 #1 SMP Wed Dec 15 07:40:25 UTC 2010 i686 i686 i386 GNU/Linux
Фейсы сервера Филиал 2:

Код: Выделить всё

ifconfig
eth1      Link encap:Ethernet  HWaddr 00:E2:8C:50:1F:DC
          inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2e2:8cff:fe50:1fdc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:467568 errors:0 dropped:0 overruns:0 frame:0
          TX packets:33280 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:41833139 (39.8 MiB)  TX bytes:3312383 (3.1 MiB)
          Interrupt:16 Base address:0xc00
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.10.10.6  P-t-P:10.10.10.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:26239 errors:0 dropped:0 overruns:0 frame:0
          TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1696605 (1.6 MiB)  TX bytes:8101 (7.9 KiB)
и таблица роутов

Код: Выделить всё

netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.10.5      *               255.255.255.255 UH        0 0          0 tun0
192.168.4.0     10.10.10.5      255.255.255.224 UG        0 0          0 tun0
172.16.0.0      10.10.10.5      255.255.255.0   UG        0 0          0 tun0
192.168.1.0     *               255.255.255.0   U         0 0          0 eth1
192.168.0.0     10.10.10.5      255.255.255.0   UG        0 0          0 tun0
10.10.10.0      10.10.10.5      255.255.255.0   UG        0 0          0 tun0
default         192.168.1.1     0.0.0.0         UG        0 0          0 eth1
В чём может быть проблема??? Уже все мозги поломал в поисках граблей :st:

Re: OpenVPN+FedoraCore

Добавлено: 2011-02-06 21:53:29
blade_007
ip_forward включен?

Re: OpenVPN+FedoraCore

Добавлено: 2011-02-06 23:31:39
Jan
blade_007 писал(а):ip_forward включен?
вот Григорий я :bn:

Код: Выделить всё

sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
Всё поправил,

Код: Выделить всё

# nano /etc/sysctl.conf:
net.ipv4.ip_forward = 1
# sysctl -p
засим прошу закрыть тему. СПС - заработался :drinks:

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-03 17:36:26
Jan
Лиха беда начало.
Моим программерам мало (((( Им не просто теперь VPN подавай ((( TCP-пакеты бегают, а вот UDP не возвращаются :st:
От удалённых машин 192.168.1.0/24 рубятся на IP, полученном DHCP OpenVPN на интерфейсе tun0, 10.10.10.6.
Где могут быть грабли?

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-03 17:52:21
hizel
фаерволе

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-03 17:59:51
Jan
Не, ну интуитивно я понимаю, что трабла в iptables )))
Уточняю:
От удалённых машин 192.168.1.0/24 рубятся на default route 192.168.1.1. И никак не хотят форвардиться на VPN сеть (((
На BSD знаю как, но тут Федора, не сильно в ней силён :drinks:
Прописал

Код: Выделить всё

-A POSTROUTING -o tun+ -j MASQUERADE
но всё там же (

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-03 18:59:36
Jan
Конфиг фаервола

Код: Выделить всё

cat iptables
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth+ -j MASQUERADE
-A POSTROUTING -o ppp+ -j MASQUERADE
-A POSTROUTING -o tun+ -j MASQUERADE
#-A POSTROUTING -0 tun+ -p all -j SNAT --to--source 192.168.0.1-192.168.0.254
-A PREROUTING -i eth0 -p tcp --dport 5555 -j DNAT --to-destination 192.168.1.43:5555
-A PREROUTING -i eth0 -p tcp --dport 8081 -j DNAT --to-destination 192.168.1.44:8081
-A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to-destination 192.168.1.44
-A PREROUTING -i eth0 -p udp --dport 21 -j DNAT --to-destination 192.168.1.44
-A PREROUTING -i eth0 -p tcp --dport 20 -j DNAT --to-destination 192.168.1.44
-A PREROUTING -i eth0 -p udp --dport 20 -j DNAT --to-destination 192.168.1.44
-A PREROUTING -i eth1 -p tcp --dport 5555 -j DNAT --to-destination 192.168.1.43:5555
-A PREROUTING -i eth1 -p tcp --dport 8081 -j DNAT --to-destination 192.168.1.44:8081
-A PREROUTING -i tun0 -p udp -s 192.168.0.0/24 -j ACCEPT
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -p ah -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 500 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50000:51000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5555 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth+ -j ACCEPT
-A FORWARD -o ppp+ -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 192.168.1.43 --dport 5555 -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 192.168.1.44 --dport 8081 -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 192.168.1.44 --dport 21 -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -m udp -p udp -d 192.168.1.44 --dport 21 -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 192.168.1.44 --dport 20 -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -m udp -p udp -d 192.168.1.44 --dport 20 -j ACCEPT
-A FORWARD -i eth1 -m state --state NEW -m tcp -p tcp -d 192.168.1.43 --dport 5555 -j ACCEPT
-A FORWARD -i eth1 -m state --state NEW -m tcp -p tcp -d 192.168.1.44 --dport 8081 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-03 20:55:15
blade_007
Вот эти правила одновременно не работают. Добавьте условий, чтоб их различить.

Код: Выделить всё

-A POSTROUTING -o eth+ -j MASQUERADE
-A POSTROUTING -o ppp+ -j MASQUERADE
-A POSTROUTING -o tun+ -j MASQUERADE
Я не совсем четко понял вашу задачу. Можно немного пояснить?

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-04 18:34:19
Jan
blade_007 писал(а):Вот эти правила одновременно не работают. Добавьте условий, чтоб их различить.

Код: Выделить всё

-A POSTROUTING -o eth+ -j MASQUERADE
-A POSTROUTING -o ppp+ -j MASQUERADE
-A POSTROUTING -o tun+ -j MASQUERADE
Я не совсем четко понял вашу задачу. Можно немного пояснить?
Глупо спрашивать, но как добавить условия? например?

Есть удалённый офис с машинкой Fedora. У которой 2 фейса:
eth0: xxx.xxx.xxx.xxx
eth1: 192.168.1.1
Она же основной гейт сети 192.168.1.0/24.
На этой машинке поднят OpenVPN клиент:
tun0: 10.10.10.6

Все TCP-запросы из основного офиса (192.168.0.0/24) проходят через OpenVPN сервер и попадают на 192.168.0.x -> ... -> 10.10.10.6 -> 192.168.1.x , а затем возвращаются в обратном порядке 192.168.1.x -> 10.10.10.6 -> ... -> 192.168.0.x.
Проблема начинается в том случае, когда отсылается UDP пакет. Снифером было установлено, что пакет из удалённой машинке форвардится на свой же default route удалённого офиса, что есть нормально )))) но вот он никак не попадает в tun0 (((

Закомментил первый 2 правила:

Код: Выделить всё

-A POSTROUTING -o eth+ -j MASQUERADE
-A POSTROUTING -o ppp+ -j MASQUERADE
Всё заработало, но у народа в удалённом офисе отвалился интет (((( :st:

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-04 18:57:58
blade_007
Условий - здесь имелось ввиду
-A POSTROUTING -s SOME_LAN or -d SOME_LAN2 -o eth+ -j MASQUERADE

udp-пакет доходит до филиала? а обратно не возвращается?

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-04 19:13:29
Jan
blade_007 писал(а):Условий - здесь имелось ввиду
-A POSTROUTING -s SOME_LAN or -d SOME_LAN2 -o eth+ -j MASQUERADE
Скажем так подойдёт:

Код: Выделить всё

-A POSTROUTING -s 192.168.1.1-192.168.1.254 -o eth+ -j MASQUERADE
-A POSTROUTING -s 192.168.1.1-192.168.1.254 -o ppp+ -j MASQUERADE
-A POSTROUTING -d 192.168.0.1-192.168.0.254 -o tun+ -j MASQUERADE
blade_007 писал(а):udp-пакет доходит до филиала? а обратно не возвращается?
угумс

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-04 19:18:32
blade_007
-A POSTROUTING -s 192.168.1.0/24 -o eth+ -j MASQUERADE
iptables просматривает правила по очереди и до второго не дойдет, если адрес узла отправителя из подсети 192.168.1.0/24

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-04 19:27:15
Jan
blade_007 писал(а):-A POSTROUTING -s 192.168.1.0/24 -o eth+ -j MASQUERADE
iptables просматривает правила по очереди и до второго не дойдет, если адрес узла отправителя из подсети 192.168.1.0/24
сенкс, но третье правило выполнит?;)

Re: OpenVPN+FedoraCore

Добавлено: 2011-03-04 21:07:30
blade_007
Если есть возможность - откройте фаервол для всех пакетов в цепочках INPUT и FORWARD (поочередно, конечно). Еще объясните зачем вот эти правила?

Код: Выделить всё

-A FORWARD -o eth+ -j ACCEPT
-A FORWARD -o ppp+ -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT