Jump to content

Правила iptables для openvpn


Recommended Posts

Ultra-2, свежеобновленная + opkg.

Что не так?

Чуть выше была аналогичная проблема, необходим установленный компонент ipv6, что бы работал iptables.

Link to comment
Share on other sites

Чуть выше была аналогичная проблема, необходим установленный компонент ipv6, что бы работал iptables.

Никогда не использовал `MASQUERADE' для OVPN, только форвардом обходился.

Да, это я читал.

ipv6 установил. ip6tables тоже пробовал устанавливать.

Пробовал добавлять в LD_LIBRARY_PATH путь к /opt/usr/lib/iptables

Все равно не работает.

Не работает не только MASQUERADE, не работает вообще ничего, кроме стандартных простых правил.

Например:

root@Ultra:/opt/root/# iptables -I INPUT -i tun0 -j ACCEPT -m state --state RELATED,ESTABLISHED

iptables v1.4.12: Couldn't load match `state':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

root@Ultra:/opt/root/# iptables -I PREROUTING -s 0.0.0.0/0 -d 91.91.91.91 -p tcp

-m tcp --dport 80 -j DNAT --to-destination 192.168.1.33:80

iptables v1.4.12: unknown option "--to-destination"

Try `iptables -h' or 'iptables --help' for more information.

Link to comment
Share on other sites

А команда iptables -L -v -n работает?

Тоже не полностью.

Расширенные правила не показывает:

811  502K MASQUERADE  all  --  br0    *       0.0.0.0/0            0.0.0.0/0
    [24 bytes of unknown target data]
   0     0 MASQUERADE  all  --  ra1    *       0.0.0.0/0            0.0.0.0/0
    [24 bytes of unknown target data]
   0     0 MASQUERADE  all  --  vpn+   *       0.0.0.0/0            0.0.0.0/0
    [24 bytes of unknown target data]

Вообщем, надоело возиться, работать надо, а оно не пускает. Поэтому снеc Optware, поставил Entware, в ней iptables заработал нормально.

Всем спасибо!

Link to comment
Share on other sites

Аналогичные проблемы - Keenetic Ultra II из магазина, обновился на "Релиз" v2.06(AAUX.5)A7, поставил opkg ("Open Package support", 2.06.A.7.0-5) из вебморды, распаковал на флешку в install *.ipk отсюда http://files.keenopt.ru/preinstall/Keen ... nstall.zip - поставил dropbear/mc/iptables*/ip6tables* - в итоге тоже не поддерживается ни "--multiport" ни просто "--dport". Всё ради одной строчки чтобы быстро пропустить снифферы в руснете "iptables -A INPUT -p TCP -m multiport --dports 113,1080,3128,8000,8080,6588 -j REJECT" (нужен именно REJECT). Надо ставить прошивку отсюда http://files.keenopt.ru/firmware/Keenetic_Ultra_II/ ? Что за модули "Hardware packet processing engine" и "Packet capture module" в вебморде? Может можно reject как-то проще сделать?

Upd: пришлось ставить прошивку keenopt + entware-ng (в optware не работали multiports/dports).

Флешку надо форматировать в ext3, иначе не cработает chmod 600 на authorized_keys для SSH.

В процессе обнаружилось, что правила постоянно перезаписываются (выловил через iptables -v -L INPUT).

Оказывается надо добавить скрипт в /opt/etc/ndm/netfilter.d/ тогда правила не исчезают.

Edited by Guest
Link to comment
Share on other sites

Хотел уточнить..

У меня ULTRA II, прошивка последняя не бета.

После установки entware,обнаружил, что нет iptables, a есть ip6tables.

Получается на айпив4 нет фильтрации, то есть файрвол не установлен?

Или как?

Link to comment
Share on other sites

Хотел уточнить..

У меня ULTRA II, прошивка последняя не бета.

После установки entware,обнаружил, что нет iptables, a есть ip6tables.

Получается на айпив4 нет фильтрации, то есть файрвол не установлен?

Или как?

Функции iptables реализованы внутри ndm. Если поставить iptables пакетом, можно увидеть настройку таблиц.
Link to comment
Share on other sites

Хотел уточнить..

У меня ULTRA II, прошивка последняя не бета.

После установки entware,обнаружил, что нет iptables, a есть ip6tables.

Получается на айпив4 нет фильтрации, то есть файрвол не установлен?

Или как?

Функции iptables реализованы внутри ndm. Если поставить iptables пакетом, можно увидеть настройку таблиц.

Спасибо за ответ и ещё вопрос.

Что такое ndm?

Link to comment
Share on other sites

Что такое ndm?
Подразумевалась прошивка Кинетиков. Если быть точным:

  • NDMS v2 — прошивка кинетиков,
  • NDM Systems, Inc. — компания-разработчик прошивки, с представителями которой мы здесь имеем (опциональное:))) удовольствие общаться.

Link to comment
Share on other sites

Приветствую. У меня Giga II с Entware-ng. Недавно создавал тему насчет l2tp сервера. Подключиться удалось, а вот с iptables не разобрался. Выше увидел, что нужен скрипт в /opt/etc/ndm/netfilter.d/, почитал документацию на гите, но все же не совсем понимаю, как мне правильно воспользоваться этой инфой. Мне по сути надо всего 2 строчки в iptables добавить

iptables -t nat -A POSTROUTING -o br0 -s 171.16.11.0/24 -j MASQUERADE
iptables -A FORWARD -s  171.16.11.0/24 -j ACCEPT 

Link to comment
Share on other sites

  • 7 months later...

Вечер добрый!

Второй день бьюсь, не могу ничего придумать. На кинетике крутиться openVPN-клиент, сервер замечательно пингует как внутреннюю, так и локальную сеть, в обратную сторону все тоже работает. Однако не могу зайти на веб-морду кинетика с внутренней сети сервера (хотя, повторюсь, пинг проходит). 

Дано: tcp, tun соединение, интерфейс везде tun0.

Правила iptable для кинетика:

Скрытый текст

iptables -A INPUT -p tcp -i br0 --dport 1:13000 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A POSTROUTING --table nat -s 192.168.3.0/24 -o br0 -j MASQUERADE
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o br0 -m state --state NEW -j ACCEPT

насобирал из разных тем.

 

Сеть OpenVPN 192.168.3.0/24, адрес keenetic - 192.168.3.6

Сеть Keenetic - 192.168.137.0/24, адрес кинетика 192.168.137.1 соответственно.

Скрипт в папке netfilter.d, chmod +x выполнен, прошивка официальная v2.07, пакет entware3 -> openvpn-openssl. 

 

Edited by Денис Илютин
Link to comment
Share on other sites

~ # cat /opt/etc/ndm/netfilter.d/filter.sh
#!/opt/bin/sh

[ "$table" != "filter" ] && exit 0   # check the table name
/opt/sbin/iptables -I FORWARD -o tun0 -j ACCEPT
/opt/sbin/iptables -I FORWARD -i tun0 -j ACCEPT
/opt/sbin/iptables -I INPUT -i tun0 -j ACCEPT

/opt/bin/logger "openvpn iptables rules applied"

 

Link to comment
Share on other sites

55 минут назад, zyxmon сказал:

~ # cat /opt/etc/ndm/netfilter.d/filter.sh
#!/opt/bin/sh

[ "$table" != "filter" ] && exit 0   # check the table name
/opt/sbin/iptables -I FORWARD -o tun0 -j ACCEPT
/opt/sbin/iptables -I FORWARD -i tun0 -j ACCEPT
/opt/sbin/iptables -I INPUT -i tun0 -j ACCEPT

/opt/bin/logger "openvpn iptables rules applied"

 

Увы, не сработало. Видимо, поэтому

Opkg::Manager: /opt/etc/ndm/netfilter.d/filter.sh: /opt/etc/ndm/netfilter.d/filter.sh: line 4: /opt/sbin/iptables: not found.

Sep 29 21:54:17ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/filter.sh: /opt/etc/ndm/netfilter.d/filter.sh: line 5: /opt/sbin/iptables: not found.
Sep 29 21:54:17ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/filter.sh: /opt/etc/ndm/netfilter.d/filter.sh: line 6: /opt/sbin/iptables: not found.
Edited by Денис Илютин
Link to comment
Share on other sites

3 минуты назад, Денис Илютин сказал:

Увы, не сработало.

Это для сервера, а у Вас клиент. (не обратил внимание)

Для клиента примерно так - http://forums.zyxmon.org/viewtopic.php?f=5&t=5344

Edited by zyxmon
Link to comment
Share on other sites

6 минут назад, zyxmon сказал:

Это для сервера, а у Вас клиент. (не обратил внимание)

Для клиента примерно так - http://forums.zyxmon.org/viewtopic.php?f=5&t=5344

На этот топик натыкался, но безуспешно. Сейчас еще раз перезабил, все равно.

 

Дабы не быть голословным. Сервер openVPN расположен на 192.168.1.5. Пинг с произвольного устройства сети сервера и traceroute:

Скрытый текст

[root@Cloud] ~# ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1): 56 data bytes
64 bytes from 192.168.137.1: icmp_seq=0 ttl=63 time=39.539 ms
92 bytes from 192.168.1.1: Redirect Host(New addr: 192.168.1.5)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 8aae   0 0000  3f  01 e5a2 192.168.1.6  192.168.137.1

64 bytes from 192.168.137.1: icmp_seq=1 ttl=63 time=48.568 ms
92 bytes from 192.168.1.1: Redirect Host(New addr: 192.168.1.5)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 8ab4   0 0000  3f  01 e59c 192.168.1.6  192.168.137.1

64 bytes from 192.168.137.1: icmp_seq=2 ttl=63 time=43.913 ms
92 bytes from 192.168.1.1: Redirect Host(New addr: 192.168.1.5)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 8ab8   0 0000  3f  01 e598 192.168.1.6  192.168.137.1

64 bytes from 192.168.137.1: icmp_seq=3 ttl=63 time=41.982 ms
 

 

[root@Cloud] ~# traceroute 192.168.137.1
traceroute to 192.168.137.1 (192.168.137.1), 64 hops max, 40 byte packets
 1  192.168.1.1 (192.168.1.1)  0.244 ms  0.225 ms  0.185 ms
 2  192.168.1.5 (192.168.1.5)  0.183 ms  0.207 ms  0.177 ms
 3  192.168.137.1 (192.168.137.1)  39.486 ms  42.025 ms  41.446 ms

На роутере прописан проброс 80 порта при обращении на порт 11111 (порты ниже 1000 блокирует провайдер, а 8080 занят):

Clip2net_160929220911.png

Запрашиваем страничку:

Скрытый текст

Clip2net_160929221103.png

Такие дела.

 

P.S. и еще, у меня постоянно ругается на Segmentation fault скрипты файервола, как уйти от этого?

Link to comment
Share on other sites

Если у Вас действительно openvpn клиент, то пробросы не нужны.

1. Проверяйте, применились ли правила iptables.Они обязательно должны быть в хуке netfilter. Смотрите - не дропаются ли пакеты.

2. Проверяйте таблицу маршрутизации.

3. Проверяйте с помощью traceroute доступ к сайту.

 

Приведите приер Segfault - лучше в отдельной теме.

Link to comment
Share on other sites

  • 1 month later...

Господа, буду благодарен за пинок в нужную сторону.

Есть VPS с OpenVPN. Клиент (разные девайсы) к нему коннектится, через него есть инет и все работает. Но, сервер не видит клиента. Грешу на iptables кинетика.

cat /etc/openvpn/server.conf

Spoiler

 

port 1194
proto udp
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
reneg-sec 0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem

#route 192.168.1.0 255.255.255.0
route 172.22.0.0 255.255.255.0

client-to-client

#iroute 192.168.1.0 255.255.255.0


#plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
#client-cert-not-required
#username-as-common-name

duplicate-cn

server 172.22.0.0 255.255.255.0

push "route 172.22.0.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"

push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 5 30
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3

user nobody
group nobody

daemon

 

cat /opt/etc/ndm/netfilter.d/openvpn.sh

Spoiler

 

#!/opt/bin/sh
PATH=/opt/sbin:/opt/bin:/usr/sbin:/usr/bin:/sbin:/bin
unset LD_LIBRARY_PATH
unset LD_PRELOAD

echo "Applying OpenVPN iptables entries - ONLINE"
echo "Table: " $table

echo 1 > /proc/sys/net/ipv4/ip_forward

# This part is useless and DOES NOT WORK!

#iptables -A INPUT -p icmp -j ACCEPT
#iptables -A INPUT -p tcp -j ACCEPT
#iptables -A INPUT -p udp -j ACCEPT
#iptables -A INPUT -i lo -j ACCEPT
#iptables -t nat -F

###########TRIAL #100500
iptables -A INPUT -p tcp -i br0 --dport 1:13000 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A POSTROUTING --table nat -s 192.168.1.0/24 -o br0 -j MASQUERADE
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o br0 -m state --state NEW -j ACCEPT

iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I INPUT -i tun0 -j ACCEPT

iptables -I FORWARD -s 192.168/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

iptables -t nat -A POSTROUTING --dst 172.22.0.0/24 -p tcp -j SNAT --to-source 192.168.1.1
iptables -t nat -A POSTROUTING -o eth3 -d X.X.X.X  -j MASQUERADE

echo "OpenVPN iptables - DONE"

 

messages

Spoiler

Nov 18 01:53:17ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/openvpn.sh: Applying OpenVPN iptables entries - ONLINE.
Nov 18 01:53:17ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/openvpn.sh: Table:  filter.
Nov 18 01:53:17ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/openvpn.sh: OpenVPN iptables - DONE.

Клиент (кинетик) -> сервер (centos) достает (TCP, ICMP), но не наоборот. Гайз, куда копать?

PS: tcpdump на кинетике видит пинги сервера openvpn, но они не проходят.

 

Edited by gooorooo
Link to comment
Share on other sites

  • 4 months later...

Добрый день.

 

Помогите переделать правила iptables для OpenVPN  из NDMSv1 в NDMSv2.

 

Скрипт NDMSv1:

#!/bin/sh

 

# Разрешаем внутрисетевой обмен

iptables -I INPUT -i lo -j ACCEPT

 

# SSH

iptables -I INPUT -p tcp --dport 45017 -j ACCEPT

 

# OpenVPN

iptables -I INPUT -p udp --dport 45015 -j ACCEPT

iptables -I FORWARD 1 --source 172.16.10.0/24 -j ACCEPT

iptables -I FORWARD -i br0 -o tun0 -j ACCEPT

iptables -I FORWARD -i tun0 -o br0 -j ACCEPT

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

 

 

 

При подключении клиента к серверу OpenVPN был доступ к внутренней сети домашнего роутера(172.16.7.0/24) и к интернету через домашний роутер.

 

Прошивка: 2.08 + Entware-3x

Link to comment
Share on other sites

  • 1 year later...

Добрый день, прошу помощи.

Имеется два роутера, Zyxel Keenetic (NDM 1) и Zyxel Giga II (NDM 2). Роутеры связаны через OpenVPN, на Keeneticе стоит OpenVPN server, на Giga II - клиент. (см рисунок)

Задача - как прописать правила iptables, чтобы при обращении к IP кинетика по порту 8080 открывалась вебморда Giga II?

На кинетике прописал такие правила в файл fw.sh по адресу /opt/etc/firewall.d/:

#!/bin/sh
# разрешаю прием на порт 8080
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

# разрешаю обмен из WAN в TUN и обратно
iptables -I FORWARD -i eth2.2 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o eth2.2 -j ACCEPT

# отсылаю 
iptables -t nat -A PREROUTING -d 192.168.111.6 -p tcp --dport 8080 -j DNAT --to-destination 10.10.0.20:80

1) разрешаю прием на порт 8080
2) разрешаю обмен из WAN в TUN и обратно
3) перенапрявляю порт

Когда запускаю на Giga II tcpdump, вижу, что пакеты на Giga II приходят, но в браузере при запросе http://192.168.111.6:8080 получаю ошибку ERR_TIMEOUT

Помогите, уже весь мозг сломал (((

WhatsApp Image 2018-04-27 at 12.58.14.jpeg

Edited by zx2018
Link to comment
Share on other sites

Хм, не знаю в чем дело, но не работает простейшая до "хрюка" ситуация - на Кинетике (белом) открыт FTP сервер на порту 2121

На нем же OpenVPN сервер.

При попытке подключения к FTP через OpenVPN идет подключение, проходит авторизация, а далее все зависает при попытке чтения каталогов - LIST

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...