Jump to content

zyxmon

Moderators
  • Posts

    1,820
  • Joined

  • Last visited

  • Days Won

    23

Posts posted by zyxmon

  1. Итак несколько слов о настройке bird, когда туннель создается не средствами роутера. Я использовал sing-box, аналогично скорее всего с badvpn, аналогично или чуть проще скорее всего с openconnect.

    1. bird поднимается раньше, чем заканчивается инициализация кинетика. После перезагрузки не работает. После рестарта bird - работает. Костыль - переименовать S70bird в S99zzbird и добавить в начале запуска паузу секунд в 15.

    2. В мой схеме DoT на кинетике + AdGuarв Home использующая в качестве Upstream DNS-сервера 127.0.0.1:40500 (DoT кинетика) все заработало, только после того, как адреса DNS DoT внес в user-isp.list. Дело в том, что UDP скорее всего через sing-box не ходит.

    3. В какой-то момент потерялся доступ к keenetic.com (разбираться не стал, может быть дела в стенде, где все отлаживал с двойным nat и loopback). Убрал keenetic.com из user-isp.list и проблема ушла.

    • Upvote 1
  2. @DennoN уже снес. Поставлю заново и скину. Еще такой момент - после старта роутера урлы не из списка работают. Если же перестартовать bird - отваливается DNS.

    При старте роутера DNS инициализируется после bird. В качестве DNS - AGH, у которого прописан верхний DNS как 127.0.0.1:40500 - т.е. обращение к DOT/DOH, настроенного на роутере.

     

    Интерфейс tun0 от sing-box не совсем настоящий, это преобразование прокси в tun - скорее всего udp по нему не пролазит. Ну еще и в списке community.lst прописан cloudflare dns. Где то тут еще собака порылась.

  3. Что интересно - bird4-forse-vpn1 - работает, а  bird4-base-vpn - не работает. Последний список, это обработанный скриптом файл https://community.antifilter.download/list/community.lst, причем (подозрительно, не ошибка ли) в нем прописано `via "lo"`

  4. 6 часов назад, dogoma сказал:

    Опишите пожалуйста как это сделать.

    Сначала нужно в скриптовой обвязке заменить nwg0 на tun0. Затем задайте маршрутизацию руками

    ip route add default dev tun0 table 1001 

    Если теперь все работает, то можно (правда очень криво-костыльно) скриптом S99zsing-box (алфавитно должен после S99sing-box выполняться.

    S99zsing-box

    • Upvote 1
  5. @DennoN в качестве vpn соединения использую singbox, который создает tun0 интерфейс. Интерфейс заведомо рабочий:

    root@Keenetic-arm:~$ curl  --interface tun0 https://myip.wtf/json
    {
        "YourFuckingIPAddress": "45.95.173.xx",
        "YourFuckingLocation": "Strasbourg, GES, France",
        "YourFuckingHostname": "yyyyy.org",
        "YourFuckingISP": "velia.net Internetdienste GmbH",
        "YourFuckingTorExit": false,
        "YourFuckingCity": "Strasbourg",
        "YourFuckingCountry": "France",
        "YourFuckingCountryCode": "FR"

    Поставил bird из скрипта, указав вариант 1 и список community.lst. Установка прошла без ошибок. Однако в таблицу 1001 ничего не попадает, заблокированные сайты не работают. Чего-то не хватает в этом случае..... Буду разбираться, если будут подсказки - отлично.

  6. 1 час назад, dogoma сказал:

    Подскажите в итоге, всё заработало? Sing-box с XTLS-Reality в режиме tun, а AGH просто как и раньше указывать интерфейс, через который он будет отправлять указанные ресурсы?

    Заработало. Есть проблема с созданием маршрута - т.к. singbox создает tun0 до окончания сетевой инициализации роутера. Пока поставил паузу в 15 секунд до выполнения `ip route add ....`

     

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

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

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

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

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

    • Upvote 1
  9. @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

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

     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.

     

    • Thanks 1
  11. 34 минуты назад, Dmitry Vasilyev сказал:

    Именно так

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

     

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

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

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

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

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

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

     

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

    К чему это?

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

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

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

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

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

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

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

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

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

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

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

    Ждем такую.

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

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

     

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

×
×
  • Create New...