Jump to content

Илдар

Forum Members
  • Posts

    96
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Илдар

  1. Однако, для понимания, почему 

    Цитата

    В PHP-скриптах оставьте вместо "tlsv1.2" просто "tls"

    ?

    Смутно представляю компиляцию PHP и связь с библиотеками, неужели всё же он был сконфигурирован с доступом к старым хидерам каким-то?

    Ведь на винде работает прекрасно и с tlsv1.2, а на роутере только с tls заработал, хотя версия точно такая же. Непонятно почему так.

  2. Последний месяц-полтора возникла (а уж не с автообновления на 3 версию ли? :) ) и начала очень мешать такая проблема:

    Цитата

    ~ # nslookup ya.ru
    Server:    127.0.0.1
    Address 1: 127.0.0.1 localhost

    nslookup: can't resolve 'ya.ru': Temporary failure in name resolution

    Не может определить в 40% случаев.

    Т.е. в первый раз определит, во второй запуск не определит, примерно так.

    Думал что у провайдера видимо ДНС корявые?

    Добавил ещё и 8.8.8.8 в ДНС-ы.

    Однако ровным счётом ничего не изменилось.

    image.png.1897a1ff5b76bdc7a63eacd68f75ebd3.png

     

  3. Не очень понятно, почему вопрос конфигурирования OpenSSL, если другие утилиты, его использующие (curl например) коннектятся корректно.

    Десктоп в моём случае  = windows, там есть только идущий вместе с PHP libssl-1_1.dll без файлов конфигурации SSL и с пустой секцией по openssl в php.ini

    т.е. никаких настроек.

  4. Известно, что в отличие от многих других сайтов, api.github.com разрешает доступ к себе ТОЛЬКО (не ниже) по TLS 1.2

    Пример PHP скрипта, генерирующий ошибку:

    <?php
    
    $arr_hosts = array(
     'yandex.ru'
    ,'api.github.com'
    );
    
    foreach($arr_hosts as $host){
        print "check $host:<br/>\r\n";
        $fp = stream_socket_client("tlsv1.2://$host:443", $errno, $errstr, 30);
        if (!$fp) {
            die("Unable to connect: $errstr ($errno)");
        }
        $header = "GET / HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\n\r\n";
        print $header;
        fwrite($fp, $header);
        if (!feof($fp)) {
            echo fgets($fp, 1024);
        }
        fclose($fp);
    
    }
    
    ?>

    Выдаёт ошибку "error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version" :

    Цитата
    check yandex.ru:<br/>
      GET / HTTP/1.0
      Host: yandex.ru
      Accept: */*
       
      HTTP/1.1 200 Ok
      check api.github.com:<br/>
      <br />
      <b>Warning</b>: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
      error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version in <b>/opt/share/www/test_crypto.php</b> on line <b>42</b><br />
      <br />
      <b>Warning</b>: stream_socket_client(): Failed to enable crypto in <b>/opt/share/www/test_crypto.php</b> on line <b>42</b><br />
      <br />
      <b>Warning</b>: stream_socket_client(): unable to connect to tlsv1.2://api.github.com:443 (Unknown error) in <b>/opt/share/www/test_crypto.php</b> on line <b>42</b><br />
      Unable to connect: (0)

    учитывая, что curl работает корректно

    curl https://api.github.com/repos/danog/MagicalSerializer/zipball/87b6ed05a86021e9364f31133089bb83980d5e24

    Поставил на десктоп PHP 7.2.22, там тестовый скрипт отрабатывает без ошибок.

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

    Что тут можно сделать?

     

  5. 29 минут назад, KorDen сказал:

    Есть же dehydrated, в котором только в одном месте надо поменять "#!/usr/bin/env bash" на "#!/opt/bin/bash"

    Что ж вы раньше не сказали?

    29 минут назад, KorDen сказал:

    Что мешает перманентно перенести сервер кинетика на другой порт?

    На другой порт - насколько я понимаю кинетик тогда сам перестанет обновлять свой сертификат, оно же по 80 порту только обновляется.

  6. да уж, пока пришлось самому выпустить.

    certbot не ставится, поэтому ставим acme.sh 

    https://github.com/Neilpang/acme.sh

    acme не ставится, т.к. ожидает наличия /urs/bin/env , поэтому ставим с мучениями:

    
     
    opkg install socat

    1. скачать архив:

    curl https://github.com/Neilpang/acme.sh/archive/master.tar.gz > master.tar.gz
    tar xzf master.tar.gz
    2. cd acme.sh-master
    
    cd acme.sh-master
    3. заменим все #!/usr/bin/env sh      на   #!/opt/bin/sh
    
    export INSTALLONLINE=
    find . -name "*.sh" -type f -exec sed -i 's/#!\/usr\/bin\/env sh/#!\/opt\/bin\/sh/g' {} +

    4. ставим 

    ./acme.sh --install

     

    5. переводим веб-интерфейс кинетика на 81 порт

    6. пробрасываем 80 порт снаружи внутрь

    7. выпускаем сертификат

     

    export DOMAIN=myrouter.keenetic.link
    
    ./acme.sh --issue --standalone -d $DOMAIN --debug

    8. убираем проброс порта 80

    9. возвращаем веб-интерфейс кинетика на 80 порт

     

  7. Уважаемые кинетикосоздатели, озвучьте хотя бы политику: например, ключи прячутся и вы не считаете правильным, чтобы сторонний софт на кинетике им пользовался.

    А то я пока жду, а мне надо что-то делать, видимо lets encrypt-бота ставить придётся, тогда видимо сертификат встроенный устареет, что не есть хорошо.

  8. Добрый день.

    Нужно поднять свой https-сервер на кинетике.

    Порт например 3000 и чтобы он был доступен из интернета: https://my_router.keenetic.link:3000

    Так вот, для https сертификат и приватный ключ - откуда брать?

    Полагаю те же, которыми кинетик шифрует трафик своего веб-интерфейса.

    Т.е есть какое-то хранилище сертификатов у него (оно скрыто или открытые файлы?).

    Как к ним добраться, где они лежат?

     

  9. 1. перегрузить кинетик

    2. законнектиться без проблем, поработать, отконнектиться.

    3. попробовать законнектиться через некоторое количество времени (пока не понял точно от чего зависит) - "от сервера не получен отклик", при этом к нему можно подключиться по IPSec через Shrew VPN client

    спасёт только перегрузка кинетика, перегрузка винды не помогает.

     

    Giga 2.13.C.0.0-3

     

  10. Если диск подключен к роутеру и используется как домашний сетевой, то там хранится всякое важное.

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

    Если диск умирает, то по гарантии отправляется изготовителю, и я не уверен, что эта информация потом не будет использована третьими лицами.

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

    Роутер должен прозрачно для юзера всё делать - один раз настроил диск, он его запомнил и далее при подключениях-отключениях автоматом монтировал с расшифровкой.

    Есть что-то подобное уже в роутере, или это нужно запросить новую функциональность в новых версиях прошивки?

    giga kn-1010

  11. ставится конфиг /opt/etc/lighttpd/conf.d/20-auth.conf

    этот конфиг, в отличие от например 20-authn_file.conf , не содержит строки загрузки модуля, поэтому при настройке htdigest авторизации получаем ошибку:

    2018-07-06 15:55:46: (server.c.1441) WARNING: unknown config-key: auth.backend (ignored)
    2018-07-06 15:55:46: (server.c.1441) WARNING: unknown config-key: auth.require (ignored)

    2018-07-06 15:55:46: (server.c.1441) WARNING: unknown config-key: auth.backend (ignored) 
    2018-07-06 15:55:46: (server.c.1441) WARNING: unknown config-key: auth.require (ignored) 

    Если добавить в конфиг 20-auth.conf вручную строку

    server.modules += ( "mod_auth" )

    , то ошибок нет.

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

  12. Дано: данный магазин в приложении телеграм каждый день даёт 20% скидку на рандомные 6 продуктов, если эту скидку попросить.

    Имеется 2 телефона на семью с двумя симками, по одной скидочной карте на каждую симку, итого 4 аккаунта и потенциально 24 продукта с 20% скидкой.

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

    Автоматизируем. Каждое утро должен присылаться список продуктов со скидкой на почту.

    Общаться по телеграму придётся с ботом, мы должны быть инициатором общения, поэтому простое решение - телеграм бот-API - не подходит.

    Ставим полный PHP-клиент MadelineProto.

    Сначала нужно установить и настроить связку lighttpd + php, в php настроить отправку почты.

    После этого:

     

    1. настройка php

    opkg install php7-mod-xml php7-mod-openssl php7-mod-mbstring php7-mod-gmp php7-mod-curl

    opkg install php7-mod-phar php7-mod-zip

    opkg install php7-fpm php7-cli

    opkg install php7-mod-json

    opkg install php7-mod-dom

     

    2. python

    opkg install python3

     

    3. make directory

    mkdir /opt/share/www/tg

    cd /opt/share/www/tg


    4. git

    opkg install git git-http

     

    5. install composer https://getcomposer.org/download/

    /opt/bin/php-cli -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

    /opt/bin/php-cli -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

    /opt/bin/php-cli composer-setup.php

    /opt/bin/php-cli -r "unlink('composer-setup.php');"


    6. создадим алиас на  компосер

    alias composer='/opt/bin/php-cli composer.phar'

     

    7. get MadelineProto

    git clone https://github.com/danog/MadelineProto.git

    содержимое папки MadelineProto вырезать на уровень выше

    папку MadelineProto удалить

     

    8. 

    composer update

     

    9. рестарт сервера

    /opt/etc/init.d/S80lighttpd restart

     

    10. настроить на роутере IP 6to4 tunnel по инструкции, иначе сервера заблокированы доблестными борцами с террором.

    https://help.keenetic.com/hc/ru/articles/213968529-Настройка-туннельного-подключения-IPv6-6to4

     

    11. первая засада: php-cli скомпилирован без поддержки readline. Процедура readline используется скриптом tg/tests/testing.php для первичной настройки (авторизации) и сохранения файла соединения с сервером телеграм, поэтому я п.п 1-9 повторяю на стационарном компе с установкой обычного php

     

    12. заходим на https://my.telegram.org/apps и регистрируем под свой аккаунт новое приложение. Тип - web, остальное неважно. После нажатия кнопки регистрации появятся два поля - appl_id & appl_hash

     

    13. на стационарном компе запускаем tg/tests/testing.php

    cd tg

    php-cli tests/testing.php

    На вопрос скрипта, вручную или автоматически задать настройки appl_id, говорим, что вручную. Даём скрипту appl_id & appl_hash из п.12 

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

    tg/testing.madeline

    tg/testing.madeline.lock

     

    14. переименовываем файлы из п.13 например так:

    tg/mts.madeline

    tg/mts.madeline.lock


    15. при необходимости п.п. 13-14 повторяем для другого номера телефона


    16. кладём файлы из п.14 в папку роутера /opt/share/www/tg

     

    17. кладём файл tg_vksvll_any.php (приложен к этому сообщению) в папку роутера /opt/share/www/tg

    tg_vksvll_any.php


    18. в файле tg_vksvll_any.php меняем настройки (имена файлов из п.14, почтовые адреса получателя и отправителя) на свои

     

    19. выполняем 

    cd /opt/share/www/tg && /opt/bin/php-cli /opt/share/www/tg/tg_vksvll.php

    и скорее всего у вас ничего не получится, если вы не настроили отправку почты из php

     

    После корректной настройки и установки на график каждое утро в почту приходит такое:

    vksv.png.4adf982404c654a7a6850aea5d13b7aa.png

    • Thanks 1
    • Upvote 1
  13. не силён в этой теме, вроде как автор entware некто падаван (?), а репозиторий пакетов - пакеты специально компилятся под роутеровскую архитектуру, или что-то дебиановское подтягивается?

    Если конкретно, то мне интересно, почему по-умолчанию установлен пакет readline (может как зависимость от пхп или чего другого поставился), но php(7)-cli скомпилирован без этой опции?

     

  14. 2 часа назад, Александр Рыжов сказал:

    Если нет cron-заданий, то зачем ему запускаться?

    задания есть в /opt/etc/crontabs, иначе этот вопрос меня не волновал бы :) Либо я вас не понял.

     

    2 часа назад, dexter сказал:

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

    да, в этом и вопрос. Наверное нужно сделать чтобы эти каталоги создавались сразу при установке OPKG, раз без них крон не работает?

  15. Почему-то не работает.

    в процессах его нет.

    При запуске crond в логе появляется:

    can't change directory to '/opt/var/spool/cron/crontabs': No such file or directory

    после создания вручную пути /opt/var/spool/cron/crontabs, crond запустился (висит в списке процессов)

    Вопрос в том, почему оно сразу не работает?

×
×
  • Create New...