Jump to content
drumad

Помогите с Openvpn

Recommended Posts

Здравствуйте. Стала потребность поднять OpenVPN на роутере, ip динамический. До этого поднимал openvpn на windows только. Немного далек от этого всего, но посидев несколько дней на форуме вроде что-то понимаю. 

Поставил entware 3-x, установил OpenVPN через скрипт

Цитата

opkg update
opkg install bash wget openssl-util
wget --no-check-certificate https://raw.githubusercontent.com/kpoxxx/openvpn-install/master/openvpn-install.sh -O openvpn-install.sh && bash openvpn-install.sh

 

из темы 

Все установилось нормально вроде как, ошибок не видел. Логи с вебинтерфейса после перезапуска системы

Цитата
Oct 30 15:25:51ndm
Core::Syslog: the system log has been cleared.
Oct 30 15:26:00ndm
kernel: usb 2-1: reset high-speed USB device number 2 using ehci-platform
Oct 30 15:26:01ndm
kernel: EXT4-fs (sda4): re-mounted. Opts: (null)
Oct 30 15:26:01ndm
Opkg::Manager: /tmp/mnt/Keenetic mounted to /tmp/mnt/Keenetic.
Oct 30 15:26:01ndm
Opkg::Manager: /tmp/mnt/Keenetic mounted to /opt/.
Oct 30 15:26:01ndm
Opkg::Manager: /tmp/mnt/Keenetic initialized.
Oct 30 15:26:02ndm
Opkg::Manager: invalid initrc "/opt/etc/initrc": no such file or directory, trying /opt/etc/init.d/.
Oct 30 15:26:02ndm
IpSec::IpSecNetfilter: start reloading netfilter configuration...
Oct 30 15:26:02ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/firewall.sh: Try `iptables -h' or 'iptables --help' for more information.
Oct 30 15:26:02ndm
Core::Syslog: last message repeated 8 times.
Oct 30 15:26:02ndm
IpSec::IpSecNetfilter: netfilter configuration reloading is done.
Oct 30 15:26:02ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/firewall.sh: Try `iptables -h' or 'iptables --help' for more information.
Oct 30 15:26:02ndm
Core::Syslog: last message repeated 5 times.
Oct 30 15:26:03ndm
Opkg::Manager: /opt/etc/init.d/S20openvpn: /opt/etc/init.d/S20openvpn: line 10: syntax error: unexpected word (expecting "then").
Oct 30 15:26:03ndm
Opkg::Manager: /opt/etc/init.d/S20openvpn: exit code 2.
Oct 30 15:26:03root
Started dropbear from .

Выполнил ~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 ppp1
10.1.30.0       *               255.255.255.0   U     0      0        0 br1
77.82.96.1      *               255.255.255.255 UH    0      0        0 ppp1
85.28.195.60    *               255.255.255.255 UH    0      0        0 ppp1
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
195.72.250.15   *               255.255.255.255 UH    0      0        0 ppp1
Openvpn вроде как не поднялся. В чем может быть причина? Приложу S20openvpn из init.d и  firewall.sh из netfilter.d/. (Как настраивать iptables не разобрался, внутри то что на форуме нашел)

 

Извиняюсь, что подымаю тему которую обсуждалась, но разобраться не могу что не так. 

S20openvpn

firewall.sh

Share this post


Link to post
Share on other sites

S20openvpn - строки 10, 12 после скобки, перед then знак `;` как в 19 строке

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

#!/opt/bin/sh
#
# Startup script for openvpn server
#

# Make sure IP forwarding is enabled
echo 1 > /proc/sys/net/ipv4/ip_forward

# Make device if not present (not devfs)
if ( [ ! -c /dev/net/tun ] ); then
  # Make /dev/net directory if needed
  if ( [ ! -d /dev/net ] ); then
	mkdir -m 755 /dev/net
  fi
  mknod /dev/net/tun c 10 200
fi

# Make sure the tunnel driver is loaded
#if ( !(lsmod | grep -q "^tun") ); then
#	insmod /opt/lib/modules/tun.ko
#fi

ENABLED=yes
PROCS=openvpn
ARGS="--daemon --cd /opt/etc/openvpn --config server.conf"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

 

пакет iptables установлен? firewall.sh -  знак дефиса `-` строки 3, 4

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

#!/opt/bin/sh

iptables -A INPUT -p udp --dport 12346 -j ACCEPT
iptables -D INPUT -p udp --dport 12346 -j ACCEPT
iptables -I FORWARD 1 --source 10.8.0.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

 

added

зачем создавать правило и сразу его удалять? (3, 4)

  • Thanks 1

Share this post


Link to post
Share on other sites

На iptables перестал ругаться но на s20openvpn появилась новая ошибка

Скрытый текст
Oct 30 17:22:08ndm
Opkg::Manager: invalid initrc "/opt/etc/initrc": no such file or directory, trying /opt/etc/init.d/.
Oct 30 17:22:08ndm
Opkg::Manager: /opt/etc/init.d/S20openvpn: /opt/etc/init.d/S20openvpn: line 30: syntax error: unexpected end of file (expecting "then").
Oct 30 17:22:08ndm
Opkg::Manager: /opt/etc/init.d/S20openvpn: exit code 2.
Oct 30 17:22:08root
Started dropbear from

 

Share this post


Link to post
Share on other sites
2 часа назад, drumad сказал:

чистый беру

Значит не чистый. Entware - универсальный репозиторий для разных устройств, не только роутеров. Скрипты запуска часто нужно дорабатывать под конкретное устройство. Для кинетиков можно удалить все строки после шебанга, до ENABLED. Самое главное прописать правильные хук скрипты в /opt/etc/ndm ....

Share this post


Link to post
Share on other sites
9 часов назад, zyxmon сказал:

Значит не чистый. Entware - универсальный репозиторий для разных устройств, не только роутеров. Скрипты запуска часто нужно дорабатывать под конкретное устройство. Для кинетиков можно удалить все строки после шебанга, до ENABLED. Самое главное прописать правильные хук скрипты в /opt/etc/ndm ....

Можно пожалуйста чуть по подробнее.

Удалил я все до до enaled

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

#!/bin/sh
ENABLED=yes
PROCS=openvpn
ARGS="--daemon --cd /opt/etc/openvpn --config server.conf"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

Зиксель выдает в логах

Цитата

Oct 31 08:40:45ndm

Opkg::Manager: /opt/etc/init.d/S20openvpn: exit code 8.

Какие Хук скрипты надо прописать? Не понимаю, к сожалению :(

Share this post


Link to post
Share on other sites
10 минут назад, drumad сказал:

Зиксель выдает в логах

C этим сначала разберитесь. Не запускается openvpn. Слишком сложно это для Вас пока....

Share this post


Link to post
Share on other sites
6 часов назад, Nfan сказал:

 

Обновил до 2.07.C.3.0-5. Теперь нет tun.ko

 

tun.ko является частью прошивки. Задайте вопрос в теме о прошивке, укажите модель роутера.

PS Сколько прошивок не ставил - tun был во всех.

  • Thanks 1

Share this post


Link to post
Share on other sites

удалил старый opkg openvpn, установил заново и собрал заново openvpn без скрипта, заработало.  В route появился мой 

10.8.0.0        *               255.255.255.0   U     0      0        0 tun0

Клиентом подключиться не могу, я так понимаю проблема в iptables, Подскажите что не так здесь

 

#!/opt/bin/sh

iptables -A INPUT -p udp --dport 12345 -j ACCEPT
iptables -D INPUT -p udp --dport 12345 -j ACCEPT
iptables -I FORWARD 1 --source 10.8.0.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

Share this post


Link to post
Share on other sites
22 минуты назад, drumad сказал:

Подскажите что не так здесь

Убрать 

23 минуты назад, drumad сказал:

iptables -D INPUT -p udp --dport 12345 -j ACCEPT

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Убрал не помогло. В логах вебинтерфейса смущает 

Цитата
Oct 31 23:33:44ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/firewall.sh: Try `iptables -h' or 'iptables --help' for more information.
Oct 31 23:33:44ndm
Core::Syslog: last message repeated 3 times

Ничего страшного?

Share this post


Link to post
Share on other sites

Вобщем не понятно.

Порт у меня открыт

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


~ # netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 localhost:41231         0.0.0.0:*
udp        0      0 0.0.0.0:46617           0.0.0.0:*
udp        0      0 0.0.0.0:54321           0.0.0.0:*
udp        0      0 0.0.0.0:domain          0.0.0.0:*
udp        0      0 0.0.0.0:12345           0.0.0.0:*
 

Openvpn запускается без ошибок в логах, и присваивает роутеру ip как и должно 10.8.0.1

Клиентом подключиться не могу. Что может быть не так? :(

Share this post


Link to post
Share on other sites
32 минуты назад, drumad сказал:

Вобщем не понятно.

Порт у меня открыт

  Показать содержимое


~ # netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 localhost:41231         0.0.0.0:*
udp        0      0 0.0.0.0:46617           0.0.0.0:*
udp        0      0 0.0.0.0:54321           0.0.0.0:*
udp        0      0 0.0.0.0:domain          0.0.0.0:*
udp        0      0 0.0.0.0:12345           0.0.0.0:*
 

Openvpn запускается без ошибок в логах, и присваивает роутеру ip как и должно 10.8.0.1

Клиентом подключиться не могу. Что может быть не так? :(

Проще всего смотреть логи подключения. Там будет ясно что не так.

На сервере тоже активруте логирование - понятнее будет что происходит.

По правилам iptables была тема 

 

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

такое правило скорее всего у вас работать не будет. 

проверить просто - вводите правила вручную в командной строке - увидите ответ - сработало или нет ))

P.S. сам отказался от openvpn из-за недоделанного iptables в этой прошивке.

До этого годами работал openvpn на белой гиге с первой версией прошивки... Ну как работал... он и сейчас рабоатет )) Без проблем.

На своей ультре2 юзаю просто pptp vpn туннель из прошивки. Работает и ладно....

Edited by plagioklaz
  • Thanks 1

Share this post


Link to post
Share on other sites
4 часа назад, plagioklaz сказал:

Проще всего смотреть логи подключения. Там будет ясно что не так.

На сервере тоже активруте логирование - понятнее будет что происходит.

По правилам iptables была тема 

 


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

такое правило скорее всего у вас работать не будет. 

проверить просто - вводите правила вручную в командной строке - увидите ответ - сработало или нет ))

P.S. сам отказался от openvpn из-за недоделанного iptables в этой прошивке.

До этого годами работал openvpn на белой гиге с первой версией прошивки... Ну как работал... он и сейчас рабоатет )) Без проблем.

На своей ультре2 юзаю просто pptp vpn туннель из прошивки. Работает и ладно....

А зачем маскарадить то, что гуляет внутри локалки? P.S. Или я что то не так понял.

Поробуйте вместо 

4 часа назад, plagioklaz сказал:

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

это правило :

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

Тогда маскарадинг будет происходить с теми пакетами, которые уходят в туннель.

  • Thanks 1

Share this post


Link to post
Share on other sites

По итогу почему то не все получилось... 

Перезагрузил роутер перестал подключаться клиент.

Цитата

iptables -A INPUT -p udp --dport 12345 -j ACCEPT
iptables -I FORWARD 1 --source 10.8.0.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 tun0 -j MASQUERADE

 

 

 

Share this post


Link to post
Share on other sites

Потестировал, я в тупике.Помогите :)

Из файла в netfilter.d  Подключаться клиент не хочет.Прописываю все команды iptables из поста выше в SSH по очереди вручную, вроде как коннект с клиента есть, в логах сервера пишет 

Цитата

 

client/80.83.236.42:6124 SENT CONTROL [client]: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 8.8.8.8,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0' (status=1)

Пинг до клиента идет до 10.8.0.2

Но с клиента пинг до сервера не идет, и выход в интернет нету. Что я делаю не так? (

Share this post


Link to post
Share on other sites
32 минуты назад, drumad сказал:

Но с клиента пинг до сервера не идет, и выход в интернет нету. Что я делаю не так? (

В /opt/etc/ndm/netfilter.d/ должно быть 2 файла (не забудьте chmod +x им сделать):

1. 052-openvpn-filter.sh 

#!/bin/sh
[ "$table" != filter ] && exit 0   # check the table name
iptables -I INPUT -i tun0 -j ACCEPT
iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I INPUT -p udp --dport 1194  -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

2. 053-openvpn-nat.sh

    

#!/bin/sh
[ "$table" != nat ] && exit 0   # check the table name
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to ВАШ_ВНЕШНИЙ_IP

С такими правилами у меня openvpn работает.

  • Thanks 1

Share this post


Link to post
Share on other sites
2 часа назад, kpox сказал:

В /opt/etc/ndm/netfilter.d/ должно быть 2 файла

А что мешает все сделать в одном с помощью сравнения:

if [ "$table" == "filter" ]; then
  .....
fi
if [ "$table" == "nat" ]; then
  .....
fi
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Это вроде уже есть в заводских правилах - посмотрите, проверьте.

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

Это правильнее задать через морду.

iptables -A INPUT -i lo -j ACCEPT

Это вроде и так разрешено, в прошивках V1 это было запрещено.

Вот руководство по iptables на русском - https://www.opennet.ru/docs/RUS/iptables/

 

  • Thanks 1

Share this post


Link to post
Share on other sites
4 минуты назад, zyxmon сказал:

А что мешает все сделать в одном с помощью сравнения:


if [ "$table" == "filter" ]; then
  .....
fi
if [ "$table" == "nat" ]; then
  .....
fi

 

Возможность сделать chmod -x для nat, не всем выход в инет нужен.

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

iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Это вроде уже есть в заводских правилах - посмотрите, проверьте.

Возможно, но когда настраивал это давным давно на  V2 было необходимо. (у меня гига белая)

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

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

Это правильнее задать через морду.

У меня так и сделано :), но человек помощи просит и разбираться что и как там прописано в вебморде долго, а так заработает.

Про правило lo согласен - наверно можно и убрать.

  • Thanks 1

Share this post


Link to post
Share on other sites
8 часов назад, kpox сказал:

1. 052-openvpn-filter.sh 2. 053-openvpn-nat.sh

    


#!/bin/sh
[ "$table" != nat ] && exit 0   # check the table name
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to ВАШ_ВНЕШНИЙ_IP

С такими правилами у меня openvpn работает.

У меня динамика, прописываю домен вместо внешнего ip, drumad.hopto.org 

Цитата
Nov 02 08:58:38ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh: iptables v1.4.21: Bad IP address "drumad.hopto.org".
Nov 02 08:58:38ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh: Try `iptables -h' or 'iptables --help' for more information.
Nov 02 08:58:38ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh: exit code 2.

 

Share this post


Link to post
Share on other sites

Алилуя. Все получилось

Почитал https://www.opennet.ru/docs/RUS/iptables/ Начал примерно понимать что как и с чем :)

#!/bin/sh
[ "$table" != nat ] && exit 0   # check the table name
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to ВАШ_ВНЕШНИЙ_IP

Здесь для динамики прописал 

Цитата

#!/bin/sh
[ "$table" != nat ] && exit 0   # check the table name
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

И все заработало. 

Share this post


Link to post
Share on other sites

Сейчас с другой стороны ставлю zyxel, как клиент. Возможно сделать так, чтоб если клиент теряет связь с сервером по vpn, выход в интернет блокируется, до восстановлении связи?

Share this post


Link to post
Share on other sites
В 11/2/2016 в 06:21, drumad сказал:

Сейчас с другой стороны ставлю zyxel, как клиент. Возможно сделать так, чтоб если клиент теряет связь с сервером по vpn, выход в интернет блокируется, до восстановлении связи?

Снимите галку "Использовать для выхода в Интернет" со всех интерфейсов, и пропишите вручную через web роут до openvpn сервера через нужный интерфейс. Если openvpn настроен так, что создает default route, то как раз получите желаемое.

Share this post


Link to post
Share on other sites
8 часов назад, Le ecureuil сказал:

Снимите галку "Использовать для выхода в Интернет" со всех интерфейсов, и пропишите вручную через web роут до openvpn сервера через нужный интерфейс. Если openvpn настроен так, что создает default route, то как раз получите желаемое.

а если сервер на динамике, роут прописать не получиться...

Share this post


Link to post
Share on other sites

Есть 3 кинетика, один с Openvpn сервер, два клиента с Openvpn. Как клиентам сделать ограничение на входящий траффик, чтоб скорость каждому клиенту не превышала 10мбс? В конфигах openvpn не нашел таких параметров.

Share this post


Link to post
Share on other sites

Приветствую keen-юзеров! Установил Entware-3x на прошивку 2.08, Но пакетов как-то мало поставилось:

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

~ # opkg list-installed
busybox - 1.25.1-2
dropbear - 2017.75-1a
file - 5.25-1
findutils - 4.6.0-1
glib2 - 2.50.3-1
ldconfig - 2.25-8
libattr - 20160302-1
libblkid - 2.29.2-1
libc - 2.25-8
libffi - 3.2.1-2
libgcc - 6.3.0-8
libiconv-full - 1.11.1-3
libintl-full - 0.19.8.1-1
libmagic - 5.25-1
libmount - 2.29.2-1
libncursesw - 6.0-1c
libndm - 1.1.0-1a
libopenssl - 1.0.2k-1
libpthread - 2.25-8
librt - 2.25-8
libslang2 - 2.3.1a-1
libssh2 - 1.7.0-1
libssp - 6.3.0-8
libstdcpp - 6.3.0-8
libuuid - 2.29.2-1
locales - 2.25-8
mc - 4.8.19-1a
nano - 2.7.5-1
ndmq - 1.0.2-1a
opt-ndmsv2 - 1.0-7
terminfo - 6.0-1c
zlib - 1.2.11-1
zoneinfo-asia - 2017b-1
zoneinfo-europe - 2017b-1

Хотелось бы установить OpenVPN, вижу, что в списке пакетов http://entware-3x.zyxmon.org/binaries/mipsel/Packages.html он есть. Как его установить и все необходимые для него пакеты? Если что, просто пните в тему на форуме по установке этих пакетов :D

Edited by Max Pl

Share this post


Link to post
Share on other sites
3 часа назад, Max Pl сказал:

Приветствую keen-юзеров! Установил Entware-3x на прошивку 2.08, Но пакетов как-то мало поставилось:

  Показать содержимое

~ # opkg list-installed
busybox - 1.25.1-2
dropbear - 2017.75-1a
file - 5.25-1
findutils - 4.6.0-1
glib2 - 2.50.3-1
ldconfig - 2.25-8
libattr - 20160302-1
libblkid - 2.29.2-1
libc - 2.25-8
libffi - 3.2.1-2
libgcc - 6.3.0-8
libiconv-full - 1.11.1-3
libintl-full - 0.19.8.1-1
libmagic - 5.25-1
libmount - 2.29.2-1
libncursesw - 6.0-1c
libndm - 1.1.0-1a
libopenssl - 1.0.2k-1
libpthread - 2.25-8
librt - 2.25-8
libslang2 - 2.3.1a-1
libssh2 - 1.7.0-1
libssp - 6.3.0-8
libstdcpp - 6.3.0-8
libuuid - 2.29.2-1
locales - 2.25-8
mc - 4.8.19-1a
nano - 2.7.5-1
ndmq - 1.0.2-1a
opt-ndmsv2 - 1.0-7
terminfo - 6.0-1c
zlib - 1.2.11-1
zoneinfo-asia - 2017b-1
zoneinfo-europe - 2017b-1

Хотелось бы установить OpenVPN, вижу, что в списке пакетов http://entware-3x.zyxmon.org/binaries/mipsel/Packages.html он есть. Как его установить и все необходимые для него пакеты? Если что, просто пните в тему на форуме по установке этих пакетов :D

http://forums.zyxmon.org/viewtopic.php?f=5&t=36

Вам наверное сюда. 

Share this post


Link to post
Share on other sites
55 минут назад, vlad сказал:

http://forums.zyxmon.org/viewtopic.php?f=5&t=36

Вам наверное сюда. 

благодарю за ответ, но не устанавливается:

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

opkg upgrade
~ # opkg install openvpn-zyx
Unknown package 'openvpn-zyx'.
Collected errors:
 * opkg_install_cmd: Cannot install package openvpn-zyx.
~ #


 

Share this post


Link to post
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...