Jump to content

openfortivpn помогите пожалуйста настроить маршрутизацию и автозагрузку


Recommended Posts

Приветствую,

Задача - настроить на роутере Forti VPN клиент и пробросить данную сеть всем подключающимся к данному роутеру. openfortivpn установил, конфигурационный фаил настроил, при запуске openfortivpn он успешно подключается --- комп который мне нужен в данной сети пингуеться и резолвится по имени в терминале или на веб морде "Проверка сетевого соединения", но с ПК подключенного к данному роутеру пинг не проходит... помогите пожалуйста победить маршрутизацию... и за одно ткните пожалуйста носом как правильно засунуть в "автозагрузку" openfortivpn 

Link to comment
Share on other sites

после запуска openfortivpn ручками:

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

INFO:   Negotiation complete.
DEBUG:  pppd ---> gateway (6 bytes)
local  IP address 10.1.200.6
remote IP address 169.254.2.1
DEBUG:  Got Address: 10.1.200.6
DEBUG:  Interface Name: ppp1
DEBUG:  Interface Addr: 10.1.200.6
INFO:   Interface ppp1 is UP.
INFO:   Setting new routes...
DEBUG:  ip route show to 0.0.0.0/0.0.0.0 dev !ppp1
DEBUG:  ip route show to 80.188.222.34/255.255.255.255 dev ppp1
DEBUG:  Route not found.
DEBUG:  ip route show to 80.188.222.34/255.255.255.255 dev !ppp1
DEBUG:  Setting route to vpn server...
DEBUG:  ip route show to 80.188.222.34/255.255.255.255 via 192.168.3.1 dev apcli0
DEBUG:  ip route add to 80.188.222.34/255.255.255.255 via 192.168.3.1 dev apcli0
DEBUG:  ip route add to 10.10.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.1.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.4.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.3.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 192.168.96.0/255.255.224.0 dev ppp1
DEBUG:  ip route add to 10.5.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.2.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.8.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.12.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.11.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.9.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 172.25.20.0/255.255.255.0 dev ppp1
DEBUG:  ip route add to 192.168.168.0/255.255.255.0 dev ppp1
DEBUG:  ip route add to 10.6.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 10.13.0.0/255.255.0.0 dev ppp1
DEBUG:  ip route add to 172.31.0.0/255.255.255.252 dev ppp1
INFO:   Adding VPN nameservers...
DEBUG:  Attempting to modify /etc/resolv.conf directly.
DEBUG:  Adding "nameserver 10.1.1.20", to /etc/resolv.conf.
DEBUG:  Adding "nameserver 10.1.1.21", to /etc/resolv.conf.
INFO:   Tunnel is up and running.

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

~ # ip route
default via 192.168.3.1 dev br0
10.1.0.0/16 dev ppp0 scope link
10.2.0.0/16 dev ppp0 scope link
10.3.0.0/16 dev ppp0 scope link
10.4.0.0/16 dev ppp0 scope link
10.5.0.0/16 dev ppp0 scope link
10.6.0.0/16 dev ppp0 scope link
10.8.0.0/16 dev ppp0 scope link
10.9.0.0/16 dev ppp0 scope link
10.10.0.0/16 dev ppp0 scope link
10.11.0.0/16 dev ppp0 scope link
10.12.0.0/16 dev ppp0 scope link
10.13.0.0/16 dev ppp0 scope link
80.188.222.34 via 192.168.3.1 dev br0
169.254.2.1 dev ppp0 scope link  src 10.1.200.18
172.25.20.0/24 dev ppp0 scope link
172.31.0.0/30 dev ppp0 scope link
192.168.3.0/24 dev br0 scope link  src 192.168.3.100
192.168.96.0/19 dev ppp0 scope link
192.168.168.0/24 dev ppp0 scope link

 

Link to comment
Share on other sites

Скрипт для автозагрузки - /opt/etc/init.d/S11openfortivpn

#!/bin/sh

ENABLED=yes
PROCS=openfortivpn
ARGS=""
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

Скрипт для форвардинга - /opt/etc/ndm/netfilter.d/111-openfortivpn.sh

#!/bin/sh

INTERFACE="work"

[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "filter" ] && exit 0
[ -z "$(iptables -S | grep $INTERFACE)" ] || exit 0

iptables -w -I FORWARD -s 192.168.XX.YY -i br0 -o $INTERFACE -j ACCEPT

exit 0

Здесь я разрешаю соединения с конкретного компьютера домашнего сегмента через интерфейс work. Чтобы имя интерфейса было именно таким, в конфиг openfortivpn добавлен параметр pppd-ifname = work

  • Upvote 1
Link to comment
Share on other sites

  • 2 weeks later...
В 01.02.2022 в 03:19, MercuryV сказал:
#!/bin/sh

Спасибо Вам огромное! в журнале увидел нехорошее сообщение - 

pppd[620]
kernel does not support PPP filtering
 
и если не сложно - подскажите пожалуйста, можно ли все это провернуть - если роутер настроен как Точка доступа/Ретранслятор и сделать так что бы все без исключения подключенные к нему клиенты по WiFi шли по VPN?
Link to comment
Share on other sites

В 01.02.2022 в 03:19, MercuryV сказал:

Скрипт для автозагрузки - /opt/etc/init.d/S11openfortivpn

#!/bin/sh

ENABLED=yes
PROCS=openfortivpn
ARGS=""
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

Скрипт для форвардинга - /opt/etc/ndm/netfilter.d/111-openfortivpn.sh

#!/bin/sh

INTERFACE="work"

[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "filter" ] && exit 0
[ -z "$(iptables -S | grep $INTERFACE)" ] || exit 0

iptables -w -I FORWARD -s 192.168.XX.YY -i br0 -o $INTERFACE -j ACCEPT

exit 0

Здесь я разрешаю соединения с конкретного компьютера домашнего сегмента через интерфейс work. Чтобы имя интерфейса было именно таким, в конфиг openfortivpn добавлен параметр pppd-ifname = work

Перенастроил я на режим роутера, прописал IP, выставил статический тот же для клиента, но доступа все равно нет... с веб морды роутера ресурсы на VPN пингуються успешно.....

Link to comment
Share on other sites

В 10.02.2022 в 19:31, NikolayTLM сказал:

в журнале увидел нехорошее сообщение

можно не обращать внимания

В 10.02.2022 в 19:31, NikolayTLM сказал:

подскажите пожалуйста, можно ли все это провернуть - если роутер настроен как Точка доступа/Ретранслятор

не подскажу

В 10.02.2022 в 21:07, NikolayTLM сказал:

но доступа все равно нет

проверьте, что установлен пакет iptables

проверьте, что в скрипте указано верное название сетевого интерфейса

выполните команду iptables вручную в консоли (прошивка может не сразу дёрнуть скрипт)

Link to comment
Share on other sites

37 минут назад, MercuryV сказал:

можно не обращать внимания

не подскажу

проверьте, что установлен пакет iptables

проверьте, что в скрипте указано верное название сетевого интерфейса

выполните команду iptables вручную в консоли (прошивка может не сразу дёрнуть скрипт)

iptables установлен

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

/ # iptables
iptables v1.4.21: no command specified
Try `iptables -h' or 'iptables --help' for more information.

с именами интерфейсов все в порядке

так же сейчас подключение по VPN скидывается по прошествии какого то времени 

Скрытый текст
Фев 11 14:02:50
 
pppd[659]
Hangup (SIGHUP)
Фев 11 14:02:50
 
pppd[659]
Modem hangup
Фев 11 14:02:50
 
pppd[659]
Connect time 51.0 minutes.
Фев 11 14:02:50
 
pppd[659]
Sent 6250 bytes, received 5330 bytes.
Фев 11 14:02:50
 
pppd[659]
Connection terminated.
Фев 11 14:02:50
 
pppd[659]
Exit.

можно как ни будь его зафиксировать на постоянку, или сделать скрипт автоподнятия при разрыве?

 

З.Ы. так же после крайнего обновления ПО роутера - root/keenetic перестал работать по SSH, захожу под админской учеткой, потом exec sh

/opt/etc/init.d/S11openfortivpn без изменений из вашего поста
параметр pppd-ifname = work -- добавлен в конфиг openfortivpn
/opt/etc/ndm/netfilter.d/111-openfortivpn.sh выглядит так:

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

#!/bin/sh

INTERFACE="work"

[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "filter" ] && exit 0
[ -z "$(iptables -S | grep $INTERFACE)" ] || exit 0

iptables -w -I FORWARD -s 192.168.1.220 -i br0 -o $INTERFACE -j ACCEPT
iptables -w -I FORWARD -s 192.168.1.221 -i br0 -o $INTERFACE -j ACCEPT

exit 0

 

Edited by NikolayTLM
Link to comment
Share on other sites

Пока vpn интерфейс не упал, если выполнить 

iptables -w -I FORWARD -s 192.168.1.220 -i br0 -o work -j ACCEPT

доступ появится с .220 ?

31 минуту назад, NikolayTLM сказал:

захожу под админской учеткой, потом exec sh

зря, лучше почините окружение

 

33 минуты назад, NikolayTLM сказал:

зафиксировать на постоянку

теоретически можно добавить в конфиг параметр persistent = ... но как именно оно будет работать зависит в том числе и от настроек сервера, так что только пробовать

35 минут назад, NikolayTLM сказал:

скрипт автоподнятия при разрыве

именно при разрыве сложно, так как интерфейс не управляется прошивкой, никакого события с хуком не возникнет

можно при помощи cron выполнять стартовый скрипт с нужной частотой, но это костыль

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

Link to comment
Share on other sites

57 минут назад, MercuryV сказал:

доступ появится с .220 ?

нет, может я еще что то забыл? какие команды может запустить?

57 минут назад, MercuryV сказал:

зря, лучше почините окружение

переустановить OPKG?

 

58 минут назад, MercuryV сказал:

теоретически можно добавить в конфиг параметр persistent =

в конфиг openfortivpn?

 

58 минут назад, MercuryV сказал:

но это костыль

согласен, это люто не верно.

Link to comment
Share on other sites

@MercuryV

немного смущает ответ системы на # iptables -L FORWARD

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

/opt/etc/ndm/netfilter.d # iptables -L FORWARD
Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  192.168.1.221        anywhere
ACCEPT     all  --  192.168.1.220        anywhere
_NDM_MULTICAST_INPUT  udp  --  anywhere             base-address.mcast.net/4
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
_NDM_ACL_IN  all  --  anywhere             anywhere
_NDM_ACL_OUT  all  --  anywhere             anywhere
_NDM_IPSEC_FORWARD  all  --  anywhere             anywhere
_NDM_VPN_FORWARD  all  --  anywhere             anywhere
_NDM_FORWARD  all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             state INVALID
ACCEPT     all  --  anywhere             anywhere             ctstate DNAT
_NDM_SL_FORWARD  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

anywhere - так и должно быть?

ну и судя по всему что то происходит, но не совсем так как надо, ибо доступ в сеть "интернет" пропал с требуемого IP для VPN, но и доступа к ресурсам VPN то же нет((((

возможно я не правильно настроил config для openfortivpn?

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

### configuration file for openfortivpn, see man openfortivpn(1) ###
pppd-ifname = work
#persistent = 300
set-dns = 1
#use-resolvconf = 1
#set-routes = 1
#half-internet-routes = 0
#pppd-use-peerdns = 1
host = xxxx
port = xxxx
username = xxxx
password = xxxx
trusted-cert = xxxx

 

Edited by NikolayTLM
Link to comment
Share on other sites

16 минут назад, MercuryV сказал:

я смотрю так

# iptables -S | grep work
-A FORWARD -s 192.168.1.221/32 -i br0 -o work -j ACCEPT
-A FORWARD -s 192.168.1.220/32 -i br0 -o work -j ACCEPT

 

с виду все ок, но доступа так и нет у клиента с нужным IP, как буд то не резолвит система IP адреса по доменному имени машины.

с веб интерфейса роутера делаю пинг:

Скрытый текст
sending ICMP ECHO request to nizndt001.xxx.local...
PING nizndt001.xxx.local (10.2.4.30) 56 (84) bytes of data.
84 bytes from nizndt001.xxx.local (10.2.4.30): icmp_req=1, ttl=125, time=117.57 ms.
84 bytes from nizndt001.xxx.local (10.2.4.30): icmp_req=2, ttl=125, time=118.56 ms.
84 bytes from nizndt001.xxx.local (10.2.4.30): icmp_req=3, ttl=125, time=118.83 ms.
84 bytes from nizndt001.xxx.local (10.2.4.30): icmp_req=4, ttl=125, time=118.75 ms.
84 bytes from nizndt001.xxx.local (10.2.4.30): icmp_req=5, ttl=125, time=118.76 ms.
 
--- nizndt001.drylock.local ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss,
0 duplicate(s), time 4120.94 ms.
Round-trip min/avg/max = 117.57/118.49/118.83 ms.

с клиента выдает- Ping request could not find host nizndt001.xxx.local. Please check the name and try again.

Edited by NikolayTLM
Link to comment
Share on other sites

1 час назад, NikolayTLM сказал:

с клиента выдает- Ping request could not find host nizndt001.xxx.local. Please check the name and try again.

Проверьте по IP адресу, а не по имени. А потом решайте проблему с DNS.

Edited by MercuryV
Link to comment
Share on other sites

@MercuryV

20 часов назад, MercuryV сказал:

Проверьте по IP адресу, а не по имени. А потом решайте проблему с DNS.

я провел доп поератора связи - специально под это дело... вобщем по IP рабоает, и с прописанного по IP клиента (Wi-Fi) доступ есть по IP запросу (иду на веб морду, пингую машину по доменному имени и уже по полученному IP работаю с клиента). Лог выдает: 

Скрытый текст
Фев 16 11:44:57
 
pppd[1634]
primary DNS address 10.1.1.20
Фев 16 11:44:57
 
pppd[1634]
secondary DNS address 10.1.1.21

не подскажите - можно ли их как то автоматически использовать только для определенных IP, или только вручную забивать на стороне клиента? Я просто не уверен что они статические....

 

P.S. теперь openfortivpn перестал автоматически подниматься после перезагрузки роутера (после того как настроил PPoE соединение) - опять окружение переустанавливать?))))

Edited by NikolayTLM
Link to comment
Share on other sites

3 часа назад, NikolayTLM сказал:

можно ли их как то автоматически использовать только для определенных IP

Можно использовать нужные DNS серверы для определенного домена (рабочего). Посмотрите справку. Детали не подскажу, пользуюсь своим DNS сервером, а не комплектным из прошивки. 

Link to comment
Share on other sites

  • 1 year later...
В 30.08.2023 в 20:25, Alex Klink сказал:

Подскажите, а как запускать сценарий/скрипт при поднятии и/или разрыве подключения? 

Пробовал через скрипт в /opt/etc/ndm/wan.d  не работает.

Можно

backup-Tor-202308-31.tar

Link to comment
Share on other sites

В 16.02.2022 в 15:58, MercuryV сказал:

Можно использовать нужные DNS серверы для определенного домена (рабочего). Посмотрите справку. Детали не подскажу, пользуюсь своим DNS сервером, а не комплектным из прошивки. 

Можно и из прошивки

    tls upstream us-ny-alula.heliumcloud.cc 853 sni us-ny-alula.heliumcloud.cc domain lib

Ключевое слово domain

Link to comment
Share on other sites

В 01.02.2022 в 03:19, MercuryV сказал:

Скрипт для автозагрузки - /opt/etc/init.d/S11openfortivpn

#!/bin/sh

ENABLED=yes
PROCS=openfortivpn
ARGS=""
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

Скрипт для форвардинга - /opt/etc/ndm/netfilter.d/111-openfortivpn.sh

#!/bin/sh

INTERFACE="work"

[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "filter" ] && exit 0
[ -z "$(iptables -S | grep $INTERFACE)" ] || exit 0

iptables -w -I FORWARD -s 192.168.XX.YY -i br0 -o $INTERFACE -j ACCEPT

exit 0

Здесь я разрешаю соединения с конкретного компьютера домашнего сегмента через интерфейс work. Чтобы имя интерфейса было именно таким, в конфиг openfortivpn добавлен параметр pppd-ifname = work

/opt/etc/ppp/ip-up.d/10-accept.sh

#!/bin/sh

INTERFACE=$1

cat << EOF >/opt/etc/ndm/netfilter.d/55f-fortivpn-${INTERFACE}.sh
#!/bin/sh

[ "\$type" != "iptables" ] && exit 0
[ "\$table" != "filter" ] && exit 0

ip4t() {
	if ! iptables -C "\$@" &>/dev/null; then
		iptables -A "\$@" || exit 0
	fi
}

ip4t _NDM_SL_FORWARD -m mac --mac-source dd:33:35:64:18:a7 -i br0 -o ${INTERFACE} -j ACCEPT
ip4t _NDM_SL_FORWARD -m mac --mac-source ff:22:56:49:e1:fc -i br0 -o ${INTERFACE} -j ACCEPT

exit 0
EOF

chmod +x /opt/etc/ndm/netfilter.d/55f-fortivpn-${INTERFACE}.sh
type=iptables table=filter /opt/etc/ndm/netfilter.d/55f-fortivpn-${INTERFACE}.sh &

 

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...