Доброго времени суток коллеги, возникла такая потребность поднять OpenVPN server на CentOS, задачка простая, спору нет. К этому серваку должны подключаться микротки, то же сделано, но вот проблема, ни с одного клиента я не могу достучатся до внутренних ресурсов за сервером/шлюзом…
Схема такая:
- 172.16.20.0/24 - внутренние ресурсы
- 172.16.20.1 - интерфейс внутренний на шлюзе/сервере OpenVPN
- 192.168.122.151 - внешний интерфейс шлюза/сервера OpenVPN
- 10.0.0.0/24 - сеть OpenVPN
- 192.168.122.170 - внешний интерфейс клиента
- 172.16.10.1 - внутренний интерфейс клиента
- 172.16.10.0/24 - внутренняя сеть
С клиентских устройств я максимум что могу так это пропинговать 172.16.20.1, но не ресурсы за ним.
Трасеровка говорит следующее:
[admin@MikroTik] > /tool traceroute 172.16.20.2
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS
1 172.16.10.1 0% 1 0.6ms 0.6 0.6 0.6 0
2 10.0.0.1 0% 1 1.5ms 1.5 1.5 1.5 0
3 100% 1 timeout
4 100% 1 timeout
5 100% 1 timeout
6 100% 1 timeout
7 0% 1 0ms
Конфигурация клиента:
[admin@MikroTik] > /ip add print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
0 D 192.168.122.170/24 192.168.122.0 ether1
1 172.16.10.1/24 172.16.10.0 ether2
2 D 10.0.0.6/32 10.0.0.5 ovpn-out1
[admin@MikroTik] > /interface ovpn-client print
Flags: X - disabled, R - running
0 R name="ovpn-out1" mac-address=02:EF:F2:1F:B5:FA max-mtu=1500 connect-to=192.168.122.151 port=13555 mode=ip user="mk-1" password="" profile=default
certificate=mk-1.crt_0 verify-server-certificate=no auth=sha1 cipher=aes128 add-default-route=no
[admin@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADS 0.0.0.0/0 192.168.122.1 1
1 ADS 10.0.0.0/24 10.0.0.5 1
2 ADC 10.0.0.5/32 10.0.0.6 ovpn-out1 0
3 ADC 172.16.10.0/24 172.16.10.1 bridge1 0
4 ADS 172.16.20.0/24 10.0.0.5 1
5 ADC 192.168.122.0/24 192.168.122.170 ether1 0
[admin@MikroTik] > /ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade out-interface-list=WAN
1 X chain=srcnat action=masquerade out-interface=ovpn-out1 log=no log-prefix=""
Конфигурация сервера:
[snofroy@localhost ~]$ ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0c:79:af:95:25:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.151/24 brd 192.168.122.255 scope global noprefixroute dynamic ens3
valid_lft 2509sec preferred_lft 2509sec
inet6 fe80::1ffe:d74a:654e:298d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0c:79:af:95:25:01 brd ff:ff:ff:ff:ff:ff
inet 172.16.20.1/24 brd 172.16.20.255 scope global noprefixroute ens4
valid_lft forever preferred_lft forever
inet6 fe80::fa1a:da52:94b2:1403/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: ens5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 0c:79:af:95:25:02 brd ff:ff:ff:ff:ff:ff
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.0.0.1 peer 10.0.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::c3d3:a08:9f4d:63/64 scope link flags 800
valid_lft forever preferred_lft forever
[snofroy@localhost ~]$ ip route
default via 192.168.122.1 dev ens3 proto dhcp metric 100
10.0.0.0/24 via 10.0.0.2 dev tun0
10.0.0.2 dev tun0 proto kernel scope link src 10.0.0.1
172.16.10.0/24 via 10.0.0.2 dev tun0
172.16.20.0/24 dev ens4 proto kernel scope link src 172.16.20.1 metric 101
192.168.122.0/24 dev ens3 proto kernel scope link src 192.168.122.151 metric 100
[snofroy@localhost ~]$ sudo iptables -L -n -v
[sudo] пароль для snofroy:
Chain INPUT (policy DROP 74 packets, 10434 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
976 187K ACCEPT all -- ens4 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 3
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 11
5 300 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
31 4154 ACCEPT all -- tun+ * 0.0.0.0/0 0.0.0.0/0
1870 159K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
1 60 ACCEPT tcp -- ens3 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2 120 ACCEPT tcp -- ens3 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:13555
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
86 5072 ACCEPT all -- tun+ * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- ens4 tun+ 0.0.0.0/0 0.0.0.0/0
2 120 ACCEPT all -- ens4 ens3 0.0.0.0/0 0.0.0.0/0
2 120 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
657 55064 ACCEPT all -- * ens4 0.0.0.0/0 0.0.0.0/0
1503 193K ACCEPT all -- * ens3 0.0.0.0/0 0.0.0.0/0
9 716 ACCEPT all -- * tun+ 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
[snofroy@localhost ~]$ cat /etc/openvpn/server.conf
port 13555 # я предпочитаю использовать нестандартные порты для работы
proto tcp # протокол может быт и tcp, если есть необходимость в этом
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.0.0.0 255.255.255.0 # подсеть для туннеля, может быть любой
route 172.16.10.0 255.255.255.0 # указываем подсеть, к которой будем обращаться через vpn
push "route 172.16.10.0 255.255.255.0" # передаем маршрут клиентам
push "route 172.16.20.0 255.255.255.0"
ifconfig-pool-persist ipp.txt # файл с записями соответствий clinet - ip
client-to-client # позволяет клиентам openvpn подключаться друг к другу
client-config-dir /etc/openvpn/ccd # директория с индивидуальными настройками клиентов
cipher AES-128-CBC # AES
auth SHA1
user nobody
group nogroup
keepalive 10 120
#comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
Я понимаю что сам сервак просто не маршрутизирует пакеты, но где проблема найти не получается…