Перейти к содержанию

zyxmon

Модераторы
  • Постов

    1 844
  • Зарегистрирован

  • Посещение

  • Победитель дней

    25

Сообщения, опубликованные zyxmon

  1. 2 часа назад, docroot сказал:

    Не сталкивался, случайно?

    Не сталкивался. Я собираю на debian 10, другие члены команды на debian 11. Список необходимых хостовых пакетов указан в wiki. Впрочем это тут offtopic. Лучше спрашивайте на канале такое - https://t.me/entware

  2. Я совсем "не копенгаген" в tc (traffic control). С политиками не вышло, подозреваю, что все таки неправильно поменял роутинг. Надеюсь следующие юзеры лучше меня разбираются (или я где опечатался).

    Сделал все по первому посту - и заработало! Однако такая неожиданность - хуки ifcreated или ifstatechanged не работают с сетевыми интерфейсами, созданными Entware. Но с этим то просто..... 

    • Лайк 1
  3. @r13 @avn - господа! А как быть, если "резервное" подключение создается средствами Entware. Например sing-box. Как найти mark?

    PS Создал политику по имени скрипта запуска S99sing-box. `show ip polycy` всегда выдает

    {
        "policy": {
            "Policy1": {
                "description": " S99sing-box",
                "mark": "ffffaac",
                "table4": 12,
                "route4": {
                    "route": [
                        {
                            "destination": "10.0.0.0/24",
                            "gateway": "0.0.0.0",
                            "interface": "GigabitEthernet1",
                            "metric": 0,
                            "flags": "U",
                            "rejecting": false,
                            "proto": "boot",
                            "floating": false,
                            "static": false
                        },
                        {
                            "destination": "172.16.250.0/30",
                            "gateway": "0.0.0.0",
                            "interface": "",
                            "metric": 0,
                            "flags": "U",
                            "rejecting": false,
                            "proto": "boot",
                            "floating": false,
                            "static": false
                        },
                        {
                            "destination": "192.168.1.0/24",
                            "gateway": "0.0.0.0",
                            "interface": "Bridge0",
                            "metric": 0,
                            "flags": "U",
                            "rejecting": false,
                            "proto": "boot",
                            "floating": false,
                            "static": false
                        }
                    ]
                },
                "table6": 11,
                "route6": {}
            }
        },
        "prompt": "(config)"
    }

    Первый маршрут всегда wan (10.0.0.0), второй tun0 (sing-box), третий lan (bridge). Или так и должно быть?

    PS Это стенд с 1811 на прошивке 4.1

  4. Теперь нет пароля по умолчанию. После установки запускайте в консоли, получайте временный пароль и меняйте его

     qbittorrent-nox --webui-port=9080 --profile=/opt/etc --configuration=entware
    
    *** Legal Notice ***
    qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility.
    
    No further notices will be issued.
    
    Press 'y' key to accept and continue...
    y
    WebUI will be started shortly after internal preparations. Please wait...
    
    ******** Information ********
    To control qBittorrent, access the WebUI at: http://localhost:9080
    
    The WebUI administrator username is: admin
    The WebUI administrator password was not set. A temporary password is provided for this session: nGwF3kCbp
    You should set your own password in program preferences.

     

    • Спасибо 2
  5. 34 минуты назад, Dmitry Vasilyev сказал:

    Именно так

    Именно об этом я писал, одна из 4 команд.

     

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

    Кстати opkg mc на Keenetic не работает.

    Работает отлично на настоящих кинетиках. Что там в environment у воров - вопросы к ним.

    • Лайк 1
  6. 12 минуты назад, Dmitry Vasilyev сказал:

    Вопрос - как достучаться до представителей Keenetic

    На сайте есть контакты тех. поддержки. Но придется сообщить номер своего устройства Keenetic

     

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

    К чему это?

    Это называется воровство интеллектуальной собственности. К этому.

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

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

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

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

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

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

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

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

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

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

    Ждем такую.

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

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

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

    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. На кинетике будет аналогично, но потребуется пара телодвижений, как написал тут - 

     

  12. Отредактированный файл /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

  13. В этом посте я опишу, как получить сертификаты 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

  14. В 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, от которого будет запускаться сервис.

    • Спасибо 3
    • Лайк 1
  15. Проверил работу gost и в режимах прокси  и tun. В приведенной в начале темы статье все отлично написано (есть очепятки, в том числе и в ip, но их легко исправить).

    В режиме tun на своем сервере нужно "замаскарадить" новую подсеть, как написано тут - https://gost.run/en/tutorials/tuntap/#ip-routing-and-firewall-rules

    Иначе не будет доступа к сайтам за серевером, к интернет.

    Что же касается кинетика, то, как минимум, нужно выполнить

    iptables -A INPUT -i tun0 -j ACCEPT
    iptables -A FORWARD -i tun0 -j ACCEPT

     

    • Лайк 1
  16. Для сборки gost требуется go 1.21. Поэтому все чуть сложнее.

    Проект выглядит интересно. Обновил go и собрал текущий вариант

    http://zyxnerd.zyxmon.org/files/gost-go_v3.0.0-nightly.20240118-1_aarch64-3.10.ipk

    http://zyxnerd.zyxmon.org/files/gost-go_v3.0.0-nightly.20240118-1_mipsel-3.4.ipk

     

    Сам пока не проверял работу. Проверил, что бинарники запускаются. Уто проверит - отпишитесь.

     

×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.