Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Направить smtp траффик по тоннелю openvpn на vps  (Прочитано 690 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vlad-online

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Здравствуйте.
Не могу осилить перенаправление smtp траффика по тоннелю.
Имеем:
- VPS сервер: интерфейс venet0 смотрит в мир, имеет статический ip адрес, интерфейс tun0 (10.8.0.1), тоже статический.
- Сервер2: интерфейс eth0 (за NAT'ом) и tun0 (10.8.0.9) соответственно, 10.8.0.10 шлюз тоннеля.
На Сервере2 поднят почтовый сервер, задача в том чтобы исходящий почтовый траффик с него шел через VPS сервер, как будто письма отправляются с VPS.

На сервере2 при запуске vpn добавляю правила:
#!/bin/sh
ip route add default via 10.8.0.10 dev tun0 table vpn
ip rule add fwmark 0x1 table vpn
# Mark these packets so that iproute can route it through wlan-route
iptables -A OUTPUT -t mangle -o eth0 -p tcp --dport 25 -j MARK --set-mark 1
# now rewrite the src-addr
iptables -A POSTROUTING -t nat -o tun0 -p tcp --dport 25 -j SNAT --to 10.8.0.9

На VPS форвардинг пакетов в ядре включен.
Добавлены правила iptables:
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1057 63420 ACCEPT     tcp  --  tun0   any     anywhere             anywhere             tcp dpt:smtp
    0     0 ACCEPT     all  --  tun0   any     anywhere             anywhere

Таблица nat:
Chain POSTROUTING (policy ACCEPT 33385 packets, 2212K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  141  8460 SNAT       tcp  --  any    venet0  10.8.0.9             anywhere             tcp dpt:smtp to:внешний ip сервера

При попытке отправить письмо с Сервера2 письма не уходят. tcpdump на VPS показывает что пакеты проходят через интерфейсы tun0 и venet0
Где может быть проблема, помогите пожалуйста.

Оффлайн salvador

  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Посмотрите содержимое maillog.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
представленная таблица nat с какой машины?
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн vlad-online

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Посмотрите содержимое maillog.

В mail.log много сообщений типа ....relay=mxs.mail.ru. [217.69.139.150], dsn=4.0.0, stat=Deferred: Connection timed out with mxs.mail.ru.
Без перенаправления траффика письма отправляются, проблема не в sendmail.

представленная таблица nat с какой машины?
VPS
« Последнее редактирование: 25 Июль 2016, 09:11:33 от vlad-online »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
Все правила vps покажете?
sudo ipatables-save
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн vlad-online

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Все правила vps покажете?
sudo ipatables-save
# Generated by iptables-save v1.4.21 on Mon Jul 25 10:01:20 2016
*raw
:PREROUTING ACCEPT [24178884:39063935064]
:OUTPUT ACCEPT [23182502:57822807255]
COMMIT
# Completed on Mon Jul 25 10:01:20 2016
# Generated by iptables-save v1.4.21 on Mon Jul 25 10:01:20 2016
*nat
:PREROUTING ACCEPT [32934:1907113]
:POSTROUTING ACCEPT [277946:19123430]
:OUTPUT ACCEPT [277946:19123430]
-A POSTROUTING -s 10.8.0.9/32 -o venet0 -p tcp -m tcp --dport 25 -j SNAT --to-source ВНЕШНИЙ IP СЕРВЕРА
COMMIT
# Completed on Mon Jul 25 10:01:20 2016
# Generated by iptables-save v1.4.21 on Mon Jul 25 10:01:20 2016
*mangle
:PREROUTING ACCEPT [24178884:39063935064]
:INPUT ACCEPT [24165044:39063138280]
:FORWARD ACCEPT [13840:796784]
:OUTPUT ACCEPT [23182502:57822807255]
:POSTROUTING ACCEPT [23196342:57823604039]
COMMIT
# Completed on Mon Jul 25 10:01:20 2016
# Generated by iptables-save v1.4.21 on Mon Jul 25 10:01:20 2016
*filter
:INPUT ACCEPT [1419:149373]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1317:1597149]
:fail2ban-ssh - [0:0]
:fail2ban-ssh-ddos - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh-ddos
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A FORWARD -i tun0 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
-A fail2ban-ssh -j RETURN
-A fail2ban-ssh-ddos -j RETURN
COMMIT
# Completed on Mon Jul 25 10:01:20 2016

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
в tcpdump -i venet0 port 25 адреса source и destination правильные?
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн vlad-online

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
в tcpdump -i venet0 port 25 адреса source и destination правильные?
Да правильные.
На Сервере2 пробую
telnet 100.100.100.100 25На VPS смотрю
tcpdump -i venet0 port 25 and dst host 100.100.100.100 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
11:33:59.576780 IP ВНЕШНИЙ IP VPS.44731 > 100.100.100.100.25: Flags [S], seq 3462434295, win 29200, options [mss 1368,sackOK,TS val 42732511 ecr 0,nop,wscale 7], length 0
11:34:01.580749 IP ВНЕШНИЙ IP VPS.44731 > 100.100.100.100.25: Flags [S], seq 3462434295, win 29200, options [mss 1368,sackOK,TS val 42733012 ecr 0,nop,wscale 7], length 0
ВНЕШНИЙ IP VPS - это IP интерфейса venet0, который смотрит в мир. Т.е. SNAT уже сделал подмену адреса источника.
Спасибо Вам большое за помощь.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26079
    • Просмотр профиля
А что вы только на половину трафика смотрите?… Так вы ничего не увидите.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
Да какая тут помощь, пока возня диагностическая.
Ответы от 100.100.100.100 прилетают? А то фильтранули по dst...

ЗЫ опередили
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн vlad-online

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
А как ответные пакеты посмотреть?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
не фильтруйте по dst. Не думаю, что там много такого трафика ходит
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26079
    • Просмотр профиля
tcpdump -i venet0 "tcp port 25 and host XXX"
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vlad-online

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Вобщем ситуация немного проясняется.
На VPS есть следующие сетевые интерфейсы:
lo        Link encap:Локальная петля (Loopback) 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:11739350 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11739350 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:41517748581 (41.5 GB)  TX bytes:41517748581 (41.5 GB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:15898 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23859 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:2207658 (2.2 MB)  TX bytes:1666278 (1.6 MB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: ::2/128 Scope:Compat
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:13946656 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12969399 errors:0 dropped:34710 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1924528966 (1.9 GB)  TX bytes:20969261121 (20.9 GB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet addr:ВНЕШНИЙ IP  P-t-P:ВНЕШНИЙ IP  Bcast:ШЛЮЗ  Mask:255.255.255.0
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1


Таблица маршрутизации на VPS:
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
ВНЕ.ШНИ.ЙАЙ.0   *               255.255.255.0   U     0      0        0 venet0
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         *               0.0.0.0         U     0      0        0 venet0

Как я понял интерфейс venet0:0 виртуальный. Провайдер использует parallels virtuozzo

Теперь пакеты:
На Сервере2 запускаю
telnet smtp.mail.ru 25
Смотрю что на VPS:
# tcpdump -i venet0 port 25 and host smtp.mail.ru
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
14:28:45.329380 IP домен.vps.58352 > smtp.mail.ru.smtp: Flags [S], seq 1003991457, win 29200, options [mss 1368,sackOK,TS val 45353900 ecr 0,nop,wscale 7], length 0
14:28:45.340582 IP smtp.mail.ru.smtp > домен.vps.58352: Flags [S.], seq 920783990, ack 1003991458, win 5592, options [mss 1410,sackOK,TS val 3107380759 ecr 45353650], length 0
14:28:47.333815 IP домен.vps.58352 > smtp.mail.ru.smtp: Flags [S], seq 1003991457, win 29200, options [mss 1368,sackOK,TS val 45354401 ecr 0,nop,wscale 7], length 0
14:28:47.344806 IP smtp.mail.ru.smtp > домен.vps.58352: Flags [S.], seq 920783990, ack 1003991458, win 5592, options [mss 1410,sackOK,TS val 3107382763 ecr 45353650], length 0
14:28:47.443897 IP smtp.mail.ru.smtp > домен.vps.58352: Flags [S.], seq 920783990, ack 1003991458, win 5592, options [mss 1410,sackOK,TS val 3107382862 ecr 45353650], length 0
14:28:51.345735 IP домен.vps.58352 > smtp.mail.ru.smtp: Flags [S], seq 1003991457, win 29200, options [mss 1368,sackOK,TS val 45355404 ecr 0,nop,wscale 7], length 0
14:28:51.356915 IP smtp.mail.ru.smtp > домен.vps.58352: Flags [S.], seq 920783990, ack 1003991458, win 5592, options [mss 1410,sackOK,TS val 3107386776 ecr 45353650], length 0
14:28:53.443296 IP smtp.mail.ru.smtp > домен.vps.58352: Flags [S.], seq 920783990, ack 1003991458, win 5592, options [mss 1410,sackOK,TS val 3107388862 ecr 45353650], length 0
14:28:59.361938 IP домен.vps.58352 > smtp.mail.ru.smtp: Flags [S], seq 1003991457, win 29200, options [mss 1368,sackOK,TS val 45357408 ecr 0,nop,wscale 7], length 0
14:28:59.373349 IP smtp.mail.ru.smtp > домен.vps.58352: Flags [S.], seq 920783990, ack 1003991458, win 5592, options [mss 1410,sackOK,TS val 3107394793 ecr 45353650], length 0
^C
10 packets captured
16 packets received by filter
0 packets dropped by kernel

Получается пакеты обратно приходят.
Смотрю что на tun0:
root@glamourbags:~# tcpdump -i tun0 port 25 and host smtp.mail.ru
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
14:31:06.615187 IP 10.8.0.9.55013 > smtp.mail.ru.smtp: Flags [S], seq 1003991460, win 29200, options [mss 1368,sackOK,TS val 45389228 ecr 0,nop,wscale 7], length 0
14:31:06.624034 IP smtp.mail.ru.smtp > 10.8.0.9.55013: Flags [S.], seq 2740745691, ack 1003991461, win 5592, options [mss 1410,sackOK,TS val 1610025006 ecr 45385472], length 0
14:31:12.898232 IP smtp.mail.ru.smtp > 10.8.0.9.55013: Flags [S.], seq 2740745691, ack 1003991461, win 5592, options [mss 1410,sackOK,TS val 1610031283 ecr 45385472], length 0
14:31:22.624900 IP 10.8.0.9.55013 > smtp.mail.ru.smtp: Flags [S], seq 1003991460, win 29200, options [mss 1368,sackOK,TS val 45393232 ecr 0,nop,wscale 7], length 0
14:31:22.634293 IP smtp.mail.ru.smtp > 10.8.0.9.55013: Flags [S.], seq 2740745691, ack 1003991461, win 5592, options [mss 1410,sackOK,TS val 1610041024 ecr 45385472], length 0
14:31:36.891351 IP smtp.mail.ru.smtp > 10.8.0.9.55013: Flags [S.], seq 2740745691, ack 1003991461, win 5592, options [mss 1410,sackOK,TS val 1610055283 ecr 45385472], length 0
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel

Видно что обратная трансляция адреса работает.

Теперь смотрю что на Сервере2:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
14:33:29.475951 IP 10.8.0.9.58459 > smtp.mail.ru.smtp: Flags [S], seq 4099147992, win 29200, options [mss 1460,sackOK,TS val 45425628 ecr 0,nop,wscale 7], length 0
14:33:29.502084 IP smtp.mail.ru.smtp > 10.8.0.9.58459: Flags [S.], seq 3042943460, ack 4099147993, win 5592, options [mss 1368,sackOK,TS val 3251729986 ecr 45425628], length 0
14:33:30.476019 IP 10.8.0.9.58459 > smtp.mail.ru.smtp: Flags [S], seq 4099147992, win 29200, options [mss 1460,sackOK,TS val 45425878 ecr 0,nop,wscale 7], length 0
14:33:30.501229 IP smtp.mail.ru.smtp > 10.8.0.9.58459: Flags [S.], seq 3042943460, ack 4099147993, win 5592, options [mss 1368,sackOK,TS val 3251730985 ecr 45425628], length 0
14:33:32.480002 IP 10.8.0.9.58459 > smtp.mail.ru.smtp: Flags [S], seq 4099147992, win 29200, options [mss 1460,sackOK,TS val 45426379 ecr 0,nop,wscale 7], length 0
14:33:32.505353 IP smtp.mail.ru.smtp > 10.8.0.9.58459: Flags [S.], seq 3042943460, ack 4099147993, win 5592, options [mss 1368,sackOK,TS val 3251732990 ecr 45425628], length 0
14:33:33.631633 IP smtp.mail.ru.smtp > 10.8.0.9.58459: Flags [S.], seq 3042943460, ack 4099147993, win 5592, options [mss 1368,sackOK,TS val 3251734116 ecr 45425628], length 0
14:33:36.484001 IP 10.8.0.9.58459 > smtp.mail.ru.smtp: Flags [S], seq 4099147992, win 29200, options [mss 1460,sackOK,TS val 45427380 ecr 0,nop,wscale 7], length 0
14:33:36.509274 IP smtp.mail.ru.smtp > 10.8.0.9.58459: Flags [S.], seq 3042943460, ack 4099147993, win 5592, options [mss 1368,sackOK,TS val 3251736994 ecr 45425628], length 0
14:33:39.631226 IP smtp.mail.ru.smtp > 10.8.0.9.58459: Flags [S.], seq 3042943460, ack 4099147993, win 5592, options [mss 1368,sackOK,TS val 3251740116 ecr 45425628], length 0
^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel

Видно что пакеты уходят, но ответа нет.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26079
    • Просмотр профиля
А по-моему как раз пакеты в обе стороны ходят.
Попробуйте MSS на tun0 прижать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.062 секунд. Запросов: 24.