• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

OpenVPN затык…

Scheduled Pinned Locked Moved Russian
4 Posts 2 Posters 1.3k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E
    Electricshock
    last edited by Mar 14, 2016, 1:02 PM Mar 14, 2016, 12:55 PM

    Имеем pfSense, на нём OpenVPN сервер (Remote Access TLS/SSL). Имеем клиента на CentOS, он подключен к серверу (tun0-интерфейс) всё ок, пингует, видит. А вот машинки за этим шлюзом на CentOS не видят и не пингуют "туннельную" сетку, хотя вроде все правила не запрещают это. Куда копать?
    Маршруты на клиентском CentOS (шлюзе)

    
    [root@server log]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    inet_ip            0.0.0.0         255.255.255.252 U     0      0        0 eth0
    192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth3
    10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 tun0
    192.168.0.0     10.10.10.1      255.255.240.0   UG    0      0        0 tun0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth3
    0.0.0.0         inet_gateway   0.0.0.0         UG    0      0        0 eth0
    

    Т.е. исходя из этого видно, что сервер "знает" о туннельной сети 192.168.0.0/20 и видит/пингует её, всё ок.

    Вот маршруты клиента на Win 7 за этим CentOS сервером:

    C:\Users\ПК>route print
    ===========================================================================
    Список интерфейсов
     11...bc 5f f4 60 70 e7 ......Realtek PCIe GBE Family Controller
      1...........................Software Loopback Interface 1
     12...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP
     13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
    ===========================================================================
    
    IPv4 таблица маршрута
    ===========================================================================
    Активные маршруты:
    Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
              0.0.0.0          0.0.0.0    192.168.100.1   192.168.100.82     10
            127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
            127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
      127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
        192.168.100.0    255.255.255.0         On-link    192.168.100.82    266
       192.168.100.82  255.255.255.255         On-link    192.168.100.82    266
      192.168.100.255  255.255.255.255         On-link    192.168.100.82    266
            224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
            224.0.0.0        240.0.0.0         On-link    192.168.100.82    266
      255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      255.255.255.255  255.255.255.255         On-link    192.168.100.82    266
    ===========================================================================
    Постоянные маршруты:
      Отсутствует
    
    IPv6 таблица маршрута
    ===========================================================================
    Активные маршруты:
     Метрика   Сетевой адрес            Шлюз
      1    306 ::1/128                  On-link
     11    266 fe80::/64                On-link
     11    266 fe80::959a:37c9:fa8a:3744/128
                                        On-link
      1    306 ff00::/8                 On-link
     11    266 ff00::/8                 On-link
    ===========================================================================
    Постоянные маршруты:
      Отсутствует
    
    C:\Users\ПК>
    
    И при пинге с клиента хоста за туннелем, например
    
    Code: [Select]
    C:\Users\ПК>ping 192.168.1.58
    
    Обмен пакетами с 192.168.1.58 по с 32 байтами данных:
    Превышен интервал ожидания для запроса.
    Превышен интервал ожидания для запроса.
    
    Видим фигу, в то время, как с самого клиентского CentOS'a:
    
    Code: [Select]
    [root@server log]# ping 192.168.1.58
    PING 192.168.1.58 (192.168.1.58) 56(84) bytes of data.
    64 bytes from 192.168.1.58: icmp_seq=1 ttl=127 time=73.0 ms
    64 bytes from 192.168.1.58: icmp_seq=2 ttl=127 time=72.8 ms
    64 bytes from 192.168.1.58: icmp_seq=3 ttl=127 time=73.1 ms
    64 bytes from 192.168.1.58: icmp_seq=4 ttl=127 time=75.2 ms
    
    

    Где затык?

    Если запустить пинг с клиентской машинки (Win 7) а потом "послушать" tcpdump'ом tun0 интерфейс на CentOS, то видим, что пакеты приходят на tun0 интерфейс, значит косяка в маршрутах нет? Так где же беда?

    [root@server log]# tcpdump -i tun0 -n -nn
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
    18:01:43.561687 IP 192.168.100.82 > 192.168.1.1: ICMP echo request, id 1, seq 316, length 40
    18:01:48.454540 IP 192.168.100.82 > 192.168.1.1: ICMP echo request, id 1, seq 317, length 40
    

    OpenVPN_1.jpg
    OpenVPN_1.jpg_thumb

    1 Reply Last reply Reply Quote 0
    • W
      werter
      last edited by Mar 14, 2016, 2:34 PM

      На pf в настройках впн укажите в IPv4 Local Network/s 192.168.0.0/20
      В настройках Client Specific Overrides укажите правильный CN и там же IPv4 Remote Network/s 192.168.100.0/24

      Далее ,возможно что и ЦентОС подкрутить надо. Что-то типа :

      iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o tun+ -j MASQUERADE
      iptables -I FORWARD -i tun+ -j ACCEPT

      #enable IP forwarding
      echo 1 > /proc/sys/net/ipv4/ip_forward

      Restart network

      1 Reply Last reply Reply Quote 0
      • E
        Electricshock
        last edited by Mar 14, 2016, 3:58 PM

        @werter:

        На pf в настройках впн укажите в IPv4 Local Network/s 192.168.0.0/20
        В настройках Client Specific Overrides укажите правильный CN и там же IPv4 Remote Network/s 192.168.100.0/24

        Далее ,возможно что и ЦентОС подкрутить надо. Что-то типа :

        iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o tun+ -j MASQUERADE
        iptables -I FORWARD -i tun+ -j ACCEPT

        #enable IP forwarding
        echo 1 > /proc/sys/net/ipv4/ip_forward

        Restart network

        Помогло вот это

        iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o tun+ -j MASQUERADE
        

        СПАСИБО!!
        Т.е. получается, что шлюз (CentOS) должен именно маршрутизировать трафик между своими же интерфейсами, так?

        1 Reply Last reply Reply Quote 0
        • W
          werter
          last edited by Mar 15, 2016, 12:54 PM Mar 15, 2016, 12:46 PM

          Т.е. получается, что шлюз (CentOS) должен именно маршрутизировать трафик между своими же интерфейсами, так?

          Я не спец  в iptables.  Почитайте что-то типа http://adminunix.ru/linux-iptables-rukovodstvo-chast-1-osnovy-iptables/

          iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o tun+ -j MASQUERADE

          Это не марш-ция. Это вкл. nat (сетевой трансляции адресов) на всех интерфейсах tun

          Маршрут Вы получили от сервера :

          [root@server log]# route -n
          Kernel IP routing table
          Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
          …..
          192.168.0.0    10.10.10.1      255.255.240.0  UG    0      0        0 tun0
          ….

          И не забудьте сделать это правило ipt постоянным. Иначе после перез-ки клиента ЦентОС связь в туннеле снова пропадет.

          1 Reply Last reply Reply Quote 0
          4 out of 4
          • First post
            4/4
            Last post
          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
            This community forum collects and processes your personal information.
            consent.not_received