Jump to content

Recommended Posts

  • 5 months later...
  • 5 months later...

Очень нужен openconneсt для keenetiс 
Сейчас в РФ без openconneсt вообще не жизнь.
Прошивать 
OpenWRT вообще не хочется.

  • Upvote 1
Link to comment
Share on other sites

Присоединяюсь!

Очень прошу разработчиков сделать клиента Openconnect.

Наверняка ранее как-то решали вопрос с VPN Cisco Anyconnect, это же похожие решения.

 

 

  • Upvote 1
Link to comment
Share on other sites

Цитата

Пользуйтесь:

openconnect_9.01-1_mipsel-3.4.ipk

Вы не понимаете масштаба проблемы. openconnect_9.01-1_mipsel-3.4.ipk зависит от kmod-tun определённой версии, а kmod-tun делается под конкретную версию ядра. Это просто не работает на Keenetic. У меня есть 3 разных роутера Xiaomi для экспериментов. Я пробовал много разных версий OpenWrt и X-Wrt. Из коробки openconnect заработал только на одном из этих роутеров на старой версии OpenWrt 22.03.6. На одном из роутеров не заработал вовсе из-за ошибки в ядре. На последних версиях OpenWrt сломана маршрутизация. На последних X-Wrt удалось поднять openconnect, но только с ручным прописыванием маршрутизации, установкой корневых сертификатов letsencrypt и пр. плясками. И это простейшая конфигурация когда все клиенты ходят в интернет через один VPN, если чуть сложнее, то шансов вообще никаких. Поэтому нужна нормальная поддержка openconnect внутри прошивки Keenetic.

Link to comment
Share on other sites

1 час назад, Dmitry Vasilyev сказал:

Это просто не работает на Keenetic.

просто работает.

 

1 час назад, Dmitry Vasilyev сказал:

У меня есть 3 разных роутера Xiaomi для экспериментов. Я пробовал много разных версий OpenWrt и X-Wrt

каким боком тут openwrt?

  • Upvote 1
Link to comment
Share on other sites

1 минуту назад, Denis P сказал:

каким боком тут openwrt?

Газификация луж в действии.

Link to comment
Share on other sites

2 часа назад, Dmitry Vasilyev сказал:

Вы не понимаете масштаба проблемы

Это как раз Вы не понимаете. Модуль tun ставится как компонента прошивки keenetic. Пакеты entware от модулей ядра не зависят.

  • Thanks 1
Link to comment
Share on other sites

Ну хоть какой-то эффект - тему заметили. Ещё бы результат был.

Имею сеть на роутерах Keenetic. В основной mesh сети 3 роутера, около 150 устройств (умный дом и всё такое), половина из которых по wi-fi.
В этой сети 2 интернет провайдера и разные устройства ходят через разных провайдеров.
К этой сети по OpenVPN (TAP и это важно) подключаются роутеры из 2 других мест. Там ещё хитрая блокировка DHCP с обоих сторон.
Главный роутер сам поднимает WireGuard VPN до ещё одной сети.
Сейчас главный роутер ещё поднимает IKEv2 до VPS и часть устройств ходят в интернет через этот VPN. IKEv2 за кардон для некоторых проводных провайдеров пока не забанили, но недавно был период когда это не работало (тестировали бан).
Можно на Keenetic поставить opkg openconnect (собственно я его ставил, он нормально находится и скачивается командой в консоли), но покопавшись в настройках я отказался от этой идеи, заставить его правильно работать в этом зоопарке невозможно. Слишком много правил маршрутизации, всё в динамике.
Поэтому единственное адекватное решение в данной ситуации - иметь отдельный роутер только ради openconnect и пускать нужный трафик через него. И если выбирать ставить openconnect на простенький Keenetic с управлением только через консоль или OpenWrt/X-Wrt хоть с каким-то минимальным контролем через UI, то выбор очевиден не в пользу Keenetic.
Итого, на данный момент openconnect на Keenetic - это боль. А хочется нормальный юзабельный продукт и это востребовано как никогда.

Edited by Dmitry Vasilyev
Link to comment
Share on other sites

В 11.02.2024 в 17:41, Dmitry Vasilyev сказал:

OpenWrt/X-Wrt хоть с каким-то минимальным контролем через UI, то выбор очевиден не в пользу Keenetic.

Ну тогда досвидания. Не все делается через GUI. В этом посте я опишу, как настраивал сервер openconnect - он называется ocserv. Домашняя страница проекта - https://gitlab.com/openconnect/ocserv Сервер настраивается ручками!

Используемые статьи 

1. https://habr.com/ru/articles/776256/

2. https://jakondo.ru/ustanovka-iz-ishodnikov-openconnect-vpn-servera-ocserv-na-debian-11-bullseye/

3. https://www.howtoforge.com/how-to-install-openconnect-vpn-server-on-ubuntu-22-04/

 

Место установки - $12/yr KVM VPS - 256 MB RAM - 10G Port - IPv4 - IPv6- RAID 10 SSD. Поскольку памяти мало (очень) выбор OS для установки ограничен. Как пишет владелец

Цитата

This is a low end VPS hence Ubuntu 20 etc... won't work as it gives memory deadlock error, but we have tested with Debian 10, 11, Almalinux 8 and 9 both works fine, even Ubuntu may work but you will need to install Ubuntu Core as Ubuntu minimum requirement is 1 GB RAM, moreover Custom ISO is available so you install OS of your choice that works with 256 MB RAM

По моим прикидкам (1 ядро Intel(R) Xeon(R) Gold 6142 CPU @ 2.60GHz) даже этот копеечный сервер потянет 2-3 клиента openconnect.

По идее, описания установки даны выше. Я собственно их комбинировал и выполнял. Вел лог действий (он же имеется в  .bash_history.

Поскольку в debian 11 ocserv старый - будем ставить из исходников. Пакеты, которые необходимы для установки описаны в README у разработчика тут - https://gitlab.com/openconnect/ocserv и в статьях выше. Я поставил

apt-get install -y libgnutls28-dev libev-dev

apt-get install -y libpam0g-dev liblz4-dev libseccomp-dev \
	libreadline-dev libnl-route-3-dev libkrb5-dev libradcli-dev \
	libcurl4-gnutls-dev libcjose-dev libjansson-dev liboath-dev \
	libprotobuf-c-dev libtalloc-dev libhttp-parser-dev protobuf-c-compiler \
	gperf iperf3 lcov libuid-wrapper libpam-wrapper libnss-wrapper \
	libsocket-wrapper gss-ntlmssp haproxy iputils-ping freeradius \
	gawk gnutls-bin iproute2 yajl-tools tcpdump
	
apt-get install -y nuttcp autoconf automake

Исходники на gitlab - `https://gitlab.com/openconnect/ocserv/-/archive/1.2.4/ocserv-1.2.4.tar.bz2` -скачиваем кто чем умеет и распаковываем в папку. Далее стандартно

autoreconf -fvi
./configure && make
make install
Making install in src
...
 /usr/bin/mkdir -p '/usr/local/bin'
  /usr/bin/install -c occtl/occtl ocpasswd/ocpasswd '/usr/local/bin'
 /usr/bin/mkdir -p '/usr/local/libexec'
 /usr/bin/install -c ocserv-fw '/usr/local/libexec'
 /usr/bin/mkdir -p '/usr/local/sbin'
  /usr/bin/install -c ocserv ocserv-worker '/usr/local/sbin'
....
 /usr/bin/mkdir -p '/usr/local/share/man/man8'
 /usr/bin/install -c -m 644 ocserv.8 ocpasswd.8 occtl.8 '/usr/local/share/man/man8'

Я привел частичный выхлоп `make install`, что бы было видно куда что ставится (в /usr/local/bin). 

Далее Копируем файл сервиса ocserv.service в системную библиотеку, и файл конфигурации в /etc/ocserv

cp doc/systemd/standalone/ocserv.service /etc/systemd/system/ocserv.service
mkdir /etc/ocserv
cp doc/sample.config /etc/ocserv/ocserv.conf

Редактируем путь в `/etc/systemd/system/ocserv.service` - правильный до бинарника `/user/local/bin/ocserv`. Как редактировать файл конфигурации будет описано в следующем сообщении, а пока выполним

echo "net.ipv4.ip_forward = 1" | tee /etc/sysctl.d/60-custom.conf
echo "net.core.default_qdisc=fq" | tee -a /etc/sysctl.d/60-custom.conf
echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.d/60-custom.conf

sysctl -p /etc/sysctl.d/60-custom.conf

useradd -r -M -U -s /usr/sbin/nologin ocserv

Мы задали маршрутизацию между интерфейсами и создали пользователя ocserv, от которого будет запускаться сервис.

  • Thanks 2
  • Upvote 1
Link to comment
Share on other sites

В этом посте я опишу, как получить сертификаты LetsEncrypt. Это очень просто и много где описано. Я использовал https://www.linuxbabe.com/debian/set-up-openconnect-vpn-server-ocserv-debian-11-bullseye
Тем не менее, приведу команды и выхлоп

apt-get update
apt-get install software-properties-common
apt-get install certbot 

# certbot --version
certbot 1.12.0

certbot certonly --standalone --preferred-challenges http --agree-tos --email xxxx@gmail.com -d ваш_домен
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for zваш_домен
Performing the following challenges:
http-01 challenge for ваш_домен
Waiting for verification...
Cleaning up challenges
Subscribe to the EFF mailing list (email: xxxx@gmail.com).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/ваш_домен/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/ваш_домен/privkey.pem
   Your certificate will expire on 2024-05-15. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 

Мы создали нужные нам сертификаты  /etc/letsencrypt/live/ваш_домен/fullchain.pem и /etc/letsencrypt/live/ваш_домен/privkey.pem

Link to comment
Share on other sites

Отредактированный файл /etc/ocserv/ocserv.conf у меня вышел такой

auth = "plain[passwd=/etc/ocserv/ocpasswd]"
tcp-port = 443
run-as-user = ocserv
run-as-group = ocserv
socket-file = /var/run/ocserv-socket
server-cert = /etc/letsencrypt/live/ваш_домен/fullchain.pem
server-key = /etc/letsencrypt/live/ваш_домен/privkey.pem
isolate-workers = true
max-clients = 16
max-same-clients = 2
rate-limit-ms = 100
server-stats-reset-time = 604800
keepalive = 300
dpd = 90
mobile-dpd = 1800
switch-to-tcp-timeout = 25
try-mtu-discovery = false
cert-user-oid = 0.9.2342.19200300.100.1.1
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1"
auth-timeout = 240
min-reauth-time = 300
max-ban-score = 80
ban-reset-time = 1200
cookie-timeout = 300
deny-roaming = false
rekey-time = 172800
rekey-method = ssl
use-occtl = true
pid-file = /var/run/ocserv.pid
log-level = 2
device = vpns
predictable-ips = true
default-domain = ваш_домен
ipv4-network = 10.10.10.0
ipv4-netmask = 255.255.255.0
tunnel-all-dns = true
dns = 8.8.8.8
dns = 1.1.1.1
ping-leases = false
route = default
dtls-legacy = true
cisco-svc-client-compat = true
client-bypass-protocol = false
camouflage = true
camouflage_secret = "очень_секретно"
camouflage_realm = "Restricted Content"
included-http-headers = Strict-Transport-Security: max-age=31536000 ; includeSubDomains
included-http-headers = X-Frame-Options: deny
included-http-headers = X-Content-Type-Options: nosniff
included-http-headers = Content-Security-Policy: default-src 'none'
included-http-headers = X-Permitted-Cross-Domain-Policies: none
included-http-headers = Referrer-Policy: no-referrer
included-http-headers = Clear-Site-Data: "cache","cookies","storage"
included-http-headers = Cross-Origin-Embedder-Policy: require-corp
included-http-headers = Cross-Origin-Opener-Policy: same-origin
included-http-headers = Cross-Origin-Resource-Policy: same-origin
included-http-headers = X-XSS-Protection: 0
included-http-headers = Pragma: no-cache
included-http-headers = Cache-control: no-store, no-cache

Если найдете неточности - сообщите plz. У меня ocserv использует камуфляж, т.е. к нему нужно обращаться так `https://ваш_домен/?очень_секретно`.

Создадим также пользователей с паролями, которые могут использовать сервер

ocpasswd -c /etc/ocserv/ocpasswd новый_юзер

Для того, чтобы эти пользователи имели доступ к сайтам за сервером нужно создать правила SNAT или DNAT. Я это сделал с помощью systemctl. создав такой файл 

# cat /etc/systemd/system/ocserv-iptables.service
[Unit]
Before=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source внешний_ip
ExecStart=/usr/sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT
ExecStart=/usr/sbin/iptables -I FORWARD -s 10.10.10.0/24 -j ACCEPT
ExecStart=/usr/sbin/iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
ExecStop=/usr/sbin/iptables -t nat -D POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source внешний_ip
ExecStop=/usr/sbin/iptables -D INPUT -p tcp --dport 443 -j ACCEPT
ExecStop=/usr/sbin/iptables -D FORWARD -s 10.10.10.0/24 -j ACCEPT
ExecStop=/usr/sbin/iptables -D FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Ну и запустим новые службы

systemctl daemon-reload
systemctl enable ocserv
systemctl enable ocserv-iptables
systemctl start ocserv
systemctl start ocserv-iptables
systemctl status ocserv

Все у меня заработало. Проверял с windows с помощью openconnect-gui-1.5.3-win64.exe - 

https://drive.google.com/file/d/12AFZlASU8-TzgKxFxk1Ig7HWizYUWSH8/view?usp=drive_link

Link to comment
Share on other sites

Ну а клиент настраивается "как два пальца":

opkg install openconnect
echo "мой_сернетный_пароль" > /opt/etc/openconnect/password
openconnect -u секретный_пользователь --passwd-on-stdin https://мой_домен/?очень_секретный_камуфляж < /opt/etc/openconnect/password
------
выхлоп
------
POST https://мой_домен/?очень_секретный_камуфляж
Connected to 89.117.x.xxx:443
SSL negotiation with мой_домен
Connected to HTTPS on мой_домен with ciphersuite (TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-256-GCM)
XML POST enabled
Please enter your username.
POST https://мой_домен
Please enter your password.
POST https://мой_домен/auth
Got CONNECT response: HTTP/1.1 200 CONNECTED
CSTP connected. DPD 90, Keepalive 300
No DTLS address
Set up UDP failed; using SSL instead
Configured as 10.10.10.46, with SSL connected and DTLS disabled
                                                                                                                                   

В другой консоли проверим

 curl  --interface tun0 http://myip.wtf/json
{
    "YourFuckingIPAddress": "89.117.x.xxx",
    "YourFuckingLocation": "Paris, IDF, France",
    "YourFuckingHostname": "89.117.x.xxx",
    "YourFuckingISP": "YYYYY Ltd.",
    "YourFuckingTorExit": false,
    "YourFuckingCity": "Paris",
    "YourFuckingCountry": "France",
    "YourFuckingCountryCode": "FR"
}

Если видим адрес oscerv сервера - все сработало.

Все проверялось на НАСе с процессором aarch64. На кинетике будет аналогично, но потребуется пара телодвижений, как написал тут - 

 

Link to comment
Share on other sites

Цитата

Ну тогда досвидания. Не все делается через GUI.

Эта тема хоть и называется просто openconnect и создана не мной, но очевидно целью создания этой темы было громко заявить о необходимости добавить полноценную поддержку openconnect в прошивку Keenetic, для начала хотя бы клиента.

Также важный момент - официальная поддержка не распространяется на компоненты entware, то есть если у кого-то что-то не получится, поддержки спросить негде.

В реальной жизни многие используют VPS и давно подняли там ocserv. Клиентов для openconnect полно под любую операционку или смартфон.

Проблема возникает когда на роутере чуть больше чем 1 VPN клиент и больше чем полтора клиента. 

Услышьте пожалуйста - нужна полноценная поддержка openconnect в прошивке чтобы можно было через UI настраивать правила для разных клиентов и пр.

Да, можно пол дня тыкать в консоль, но когда я за рулём, мне звонят и нужно что-то переконфигурировать, я могу это сделать в 3 клика в UI со смартфона, а не с компа на следующий день.

Тут рядом ещё есть тема про Cisco AnyConnect, где было заявлено что этим пользуется полтора человека и это никому не нужно. Если лично вы не пользуетесь этим, это не значит что это не востребовано.

Другое дело, если разработчик не хочет или не может это сделать. Тогда так и скажите что поддержки openconnect не будет по такой то причине.

Link to comment
Share on other sites

Устанавливал месяца три назад сервер по этой статье: Настраиваем OpenConnect - совместимый с Cisco AnyConnect VPN сервер на платформе Linux - Записки IT специалиста (interface31.ru)

Клиенты - android (VPN Clieent Pro, OpenConnect), ОПСОС - Билайн, МТС.

Вместо apt install ..  , естественно opkg install ... 

Сертификат генерил самоподписанный, все работает.

В конфиге пришлось отключить udp-port = 4433, оставил  только tcp-port = 4433 иначе DPI проовайдера клиента просекал vpn и блокировал трафик.

Edited by Mechanics
Link to comment
Share on other sites

Настройку скриптов на клиенте, авторизацию по сертификату клиента (спасибо @Mechanics за пост выше) оставляю читателям.

PS Производительность ocserv вышла не самая лучшая. Где-то 70 Мбит/с. У Vmess+Reality down больше 400, up около 200.

Link to comment
Share on other sites

В 15.02.2024 в 23:18, zyxmon сказал:

Ну а клиент настраивается "как два пальца":

Мягко говоря нет. Думаю, может я чего-то упускаю. На роутер Xiaomi MI-3G вместо X-Wrt поставил Keenetic 4.0.7 чтобы сравнить производительность openconnect клиента. Но не тут-то было. Давайте писать инструкции для нормальных людей, а не для линуксоидных гиков. И так чтобы это работало в реальной жизни на конкретных роутерах, а не на абстрактном НАСе с утверждением что на Keenetic всё будет также, но правда не совсем. Забудем пока про сервер и как в реальной жизни автоматически обновляется сертификат letsencrypt каждые 3 месяца. Простейшая задача - настроить на Keenetic VPN клиент openconnect:

  1. Это всё таки роутер и нужно чтобы не curl из соседней консоли мог достучаться куда надо, а клиентская машина через этот роутер, то есть должна быть прописана правильная маршрутизация.
  2. И нужно чтобы при перезагрузке по питанию всё это само восстанавливалось и не требовало ввода в консоли 100500 давно забытых команд.

Итак, на Keenetic установлен openconnect. Из консоли VPN поднимается. Точнее сначала не поднимается, а ругается на сертификат letsencrypt, дескать не может проверить корневой сертификат. Благо сам openconnect предлагает решение - добавить параметр --servercert pin-sha256:... но похоже придётся обновлять эту команду каждые 3 месяца после перевыпуска сертификата letsencrypt и это так себе решение. Правильнее прописать корневой сертификат, но я пока не разбирался как это сделать для openconnect на Keenetic.
Также возможно стоит добавить параметры 

--no-dtls --non-inter --background --syslog --script /opt/lib/netifd/vpnc-script --interface=ssltun0 

Явно задать имя интерфейса (в данном случае ssltun0) поможет при дальнейшей конфигурации маршрутизации.
Будет ли всё это подниматься само после перезагрузки? Наверное нет, то есть нужно куда-то прописывать. Но сначала нужно решить проблемы с маршрутизацией, ибо после поднятия VPN клиента, подключенные к роутеру клиенты уже никуда попасть не могут вообще. Нужно добавить что-то типа 

iptables -w -A FORWARD -i br0 -o ssltun0 -j ACCEPT

но где и как - загадка, ибо роутер это всё таки не ubuntu.
То есть пока утверждение

В 11.02.2024 в 16:25, Denis P сказал:

просто работает.

не подтверждается. На OpenWrt/X-Wrt, не на всех, но на определённых версиях, openconnect работает из коробки, включая роутинг для клиентов.
Очень хочется увидеть полноценную инструкцию. Заранее спасибо.

Edited by Dmitry Vasilyev
Link to comment
Share on other sites

42 минуты назад, Dmitry Vasilyev сказал:

Давайте писать инструкции для нормальных людей, а не для линуксоидных гиков.

Давайте, напишите! Выше была не инструкция, а просто информация. К слову и настройки сервера могут быть другими, и авторизация другой. Я привел информацию одной конфигурации сервера и соответствующей ей конфигурации клиента.

46 минут назад, Dmitry Vasilyev сказал:

Очень хочется увидеть полноценную инструкцию.

Ждем такую.

  • Thanks 1
Link to comment
Share on other sites

Ясно, всё делать самому.

Начнём с малого

1 час назад, Dmitry Vasilyev сказал:

Благо сам openconnect предлагает решение - добавить параметр --servercert pin-sha256:... но похоже придётся обновлять эту команду каждые 3 месяца после перевыпуска сертификата letsencrypt и это так себе решение. Правильнее прописать корневой сертификат

Решение очевидно ровно такое же как для OpenWrt.

Вот отсюда качаем https://letsencrypt.org/ru/certificates/ корневой сертификат ISRG Root X1 (файл isrg-root-x1-cross-signed.pem).
Первая команда (может быть и не обязательно, только концы строк меняются с \r\n на просто \n):

openssl x509 -outform PEM < isrg-root-x1-cross-signed.pem > letsencrypt_root.cert

Вторая команда (вычисляем хэш):

openssl x509 -hash -noout -in letsencrypt_root.cert

У меня получился хэш "4042bcee".

И наконец файл letsencrypt_root.cert переименовываем в 4042bcee и заливаем на роутер в /etc/ssl/certs/4042bcee

После этого openconnect нормально валидирует сертификаты letsencrypt и не надо добавлять --servercert pin-sha256:...

Link to comment
Share on other sites

2 часа назад, Dmitry Vasilyev сказал:

где и как - загадка

Вот таки прям загадка 

https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmnetfilterd

Но учитывая, что ваши эксперименты происходят на устройствах, которые не имеют никакого отношения к кинетику, хоть и пытаются казаться таковыми, никакой ответственности за ковыряния "не в туды" никто не несет.

Link to comment
Share on other sites

2 минуты назад, Denis P сказал:

Вот таки прям загадка 

В хуках именно в этом случае вроде как нет необходимости. Можно вроде разово.

@Dmitry Vasilyev - по поводу создания tun интерфейса на кинетике я так же писал в соседней теме. Смысла в переименовании не вижу. Решение по рестарту openconnect клиента в интернете вагон.

Link to comment
Share on other sites

Не знаю зачем другие описывают результаты своих исследований, я же описываю для себя. Через год-другой все может забыться, а нужно повторить. Чтобы не вспоминать - можно посмотреть ранее написанные тексты. А публикация на форуме - и другим в помощь, и средство пограмотнее все изложить. Это не инструкция.

Link to comment
Share on other sites

@Dmitry Vasilyev - специально для Вас проверил на кинетике Giga - все работает так же, как и на НАСе. Нужно только перед запуском дать 4 команды, о которых ранее написал.

Link to comment
Share on other sites

3 часа назад, Dmitry Vasilyev сказал:

Нужно добавить что-то типа 

iptables -w -A FORWARD -i br0 -o ssltun0 -j ACCEPT

Именно так, только перед этим нужно установить iptables

opkg install iptables

Далее VPN на роутере поднимается следующей командой и всё работает (до поры):

/opt/sbin/openconnect https://сервер:443 --interface=ssltun0 --no-dtls --non-inter --background --syslog --script /opt/lib/netifd/vpnc-script -u имя --passwd-on-stdin < /opt/etc/openconnect/password

На всякий случай для тех, кто первый раз слышит про entware - все файлы лежат внутри /opt , поэтому такие пути, так задумано.

Оставшиеся проблемы - как добавить в автозагрузку и как вырубить VPN при необходимости?

Попробовал костыль в виде файла /etc/init.d/S90openconnect
Внутри #!/bin/sh и команда, что дана выше. Дал файлу нужные разрешения chmod 777 /opt/etc/init.d/S90openconnect
Эффекта нет.

Кстати opkg mc на Keenetic не работает. Черно белая картинка и не работают стрелки на клавиатуре сводя на нет весь смысл.

Собственно пока этого достаточно чтобы замерить скорость и сравнить с X-Wrt.
Провайдер 500 мбит. ocserv поднят на VPS с каналом 100 мбит. Cysco AnyConnect под Windows до этого ocserv даёт скорость 70-75 мбит.
openconnect на Keenetic и X-Wrt на Xiaomi MI-3G (MT7621) дают одинаковую скорость около 7 мбит (привет ADSL).
Поднимать openconnect на чём-то серьёзнее типа Keenetic Hooper (KN-3810) я даже пытаться не буду, ибо без нативной поддержки в прошивке это совершенно не юзабельно. Печаль.

Link to comment
Share on other sites

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

по поводу создания tun интерфейса на кинетике я так же писал в соседней теме. Смысла в переименовании не вижу. Решение по рестарту openconnect клиента в интернете вагон.

Я не читаю соседние темы, я читаю эту. Ссылка или конкретные команды, "в интернете вагон" - это не о чём.
Я понятия не имею какой интерфейс создаёт openconnect по умолчанию и переименование просто на всякий случай во избежание конфликтов. Разумеется в простых случаях можно не переименовывать.

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

Нужно только перед запуском дать 4 команды, о которых ранее написал.

Где, какие? Как сложно общаться, когда "2 пишу, 3 в уме".

Итог - да на Keenetic можно поднять openconnect, через одно место. На серьёзных роутерах с серьёзными конфигами это вообще не вариант. На простых роутерах проще использовать OpenWrt/X-Wrt ибо скорость та же (очень низкая), но есть хоть какой-то UI.

Вопрос - как достучаться до представителей Keenetic и получить вразумительный ответ от них по поводу поддержки openconnect?

Link to comment
Share on other sites

1 час назад, Denis P сказал:

Но учитывая, что ваши эксперименты происходят на устройствах, которые не имеют никакого отношения к кинетику, хоть и пытаются казаться таковыми, никакой ответственности за ковыряния "не в туды" никто не несет.

К чему это? Тут кто-то за что-то несёт ответственность? Учитывая что Keenetic официально не поддерживает opkg вообще, за любые ковыряния с opkg никто ответственности не несет. Собственно поэтому я все эксперименты делаю на том, что не жалко. 

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