- Скачиваем программу Netinstall и нужную прошивку (npk файл) для вашего маршрутизатора, а также, по необходимости, дополнительные пакеты и Winbox последней версии с сайта http://www.mikrotik.com/download
- В корне диска «С:/» создаём папку «Netinstall», копируем и распаковываем в неё всё, что было скачано, чтобы всё оказалось в одной папке, без вложений.
- На компьютере, в настройках сетевого интерфейса, выставляем статический IP-адрес, например ‘192.168.100.100’ с маской ‘255.255.255.0’, все остальные поля оставляем пустыми.
- Подключаем компьютер к первому (или последнему для моделей серии RB1xxx или CCR) порту маршрутизатора.
- Запускаем программу Netinstall от имени администратора, нажимаем на кнопку Net booting, ставим галочку Boot server enabled и прописываем Client IP address из подсети указанной в пункте 3, например ‘192.168.100.101’ и нажимаем OK.
- Зажимаем кнопку Reset на маршрутизаторе и подключаем питание. Ждём пока лампочка заморгает и потом погаснет. Отпускаем кнопку Reset и смотрим в окно программы Netinstall. Через несколько секунд должно появиться новое устройство. (1)
- Нажимаем на устройство в списке, выбираем какие пакеты нужно установить, отмечая их галочками, затем нажимаем кнопку Install. Дожидаемся окончания процесса, и если появится надпись Waiting reboot, то нажимаем на кнопку Reboot.
- После того, как маршрутизатор загрузится, о чём свидетельствует двойной звуковой сигнал (если конечно у маршрутизатора есть, чем его издавать), запускаем программу Winbox, находим там наше устройство и подключаемся, используя логин «admin» без пароля.
- Заходим в раздел System → Routerboard и нажимаем кнопку Upgrade, затем заходим в раздел System → Package и отключаем все ненужные пакеты (обычному пользователю для полноценной работы достаточно только следующие пакеты: advanced-tools, dhcp, ppp, security, system, wireless), после чего заходим в System → Reboot и соглашаемся на перезагрузку.
- После перезагрузки снова подключаемся к маршрутизатору. Заходим в раздел System → Reset Configuration, отмечаем галочки No Default Configuration и Do Not Backup и нажимаем Reset Configuration.
- После перезагрузки снова подключаемся к маршрутизатору и начинаем процедуру его настройки. По окончанию настройки в обязательном порядке выполнить перезагрузку: System → Reboot
Unix
Mikrotik: router does not support secure connection
При подключении к маршрутизатору Микротик с прошивкой младше версии 6.43, может отобразиться ошибка: router does not support secure connection, please enable Legacy Mode if you want to connect anyway.
В программе Winbox старше версии 3.22 имеется возможность включения устаревшего режима, для подключения к маршрутизатору незащищенным методом. Для включения этого режима, на вкладке Tools программы Winbox, выберите Legacy mode.
NginX — установка бесплатных SSL-сертификатов для нескольких сайтов
- Создаем пользователя letsencrypt и необходимые директории:
- Создаём основные приватные ключи:
- Скачиваем клиент acme_tiny.py:
- Создаем сценарий /var/www/challenges/acme-tiny.sh, для автоматизации. Изменив значение переменной DOMAINS, указываем имена доменов, для которых необходимо получить сертификаты:
- Меняем права на директории:
- Создаём файл /etc/nginx/acme:
- В конфигурационный файл nginx каждого сайта, в блок server, добавляем строку:
- Запускаем скрипт:
- Включаем шифрование, добавив в конфигурационные файлы nginx каждого сайта:
- Для автоматического продления сертификатов, создадим файл /etc/cron.d/letsencrypt:
- Создадим файлы журналов:
adduser —home /var/www/challenges \
—shell /bin/sh \
—disabled-password \
—disabled-login \
letsencrypt
mkdir -p /etc/letsencrypt/domains
cd /etc/letsencrypt/
openssl dhparam -out dhparam.pem 2048
openssl genrsa 4096 > account.key
cd /var/www/challenges
wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py
DOMAINS=( site1.ru site2.com ) DOMAIN_ROOT=/etc/letsencrypt/domains ACCOUNT_KEY=/etc/letsencrypt/account.key ACME_DIR=/var/www/challenges ACME_TINY=${ACME_DIR}/acme_tiny.py [ -d ${DOMAIN_ROOT} ] || { echo "ERROR: DOMAIN_ROOT dir does not exists"; exit 1; } [ -f ${ACCOUNT_KEY} ] || { echo "ERROR: ACCOUNT_KEY not found."; exit 1; } [ -d ${ACME_DIR} ] || { echo "ERROR: ACME_DIR dir does not exists"; exit 1; } [ -f "$ACME_TINY" ] || { echo "ERROR: ACME_TINY not found."; exit 1; } wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > ${DOMAIN_ROOT}/intermediate.pem for DOMAIN in "${DOMAINS[@]}" do if [ ! -f "${DOMAIN_ROOT}/${DOMAIN}.key" ]; then echo "INFO: Generation private key for $DOMAIN"; openssl genrsa 4096 > ${DOMAIN_ROOT}/${DOMAIN}.key openssl req -new -sha256 -key ${DOMAIN_ROOT}/${DOMAIN}.key -subj "/CN=${DOMAIN}" > ${DOMAIN_ROOT}/${DOMAIN}.csr fi echo "INFO: Generation cert for $DOMAIN"; python ${ACME_TINY} --account-key ${ACCOUNT_KEY} --csr ${DOMAIN_ROOT}/${DOMAIN}.csr --acme-dir ${ACME_DIR} > ${DOMAIN_ROOT}/${DOMAIN}.crt || exit 1 cat ${DOMAIN_ROOT}/${DOMAIN}.crt ${DOMAIN_ROOT}/intermediate.pem > ${DOMAIN_ROOT}/${DOMAIN}.pem done sudo service nginx reload
chmod 755 /etc/letsencrypt
chown -R letsencrypt: /etc/letsencrypt /var/www/challenges
location ^~ /.well-known/acme-challenge/ { alias /var/www/challenges/; try_files $uri =404; allow all; }
include /etc/nginx/acme;
/bin/bash /var/www/challenges/acme-tiny.sh
server { server_name site1.ru www.site1.ru; listen 80; include acme; # включим переадресацию на https-версию сайта location / { return 301 https://$host$request_uri; } } server { server_name site1.ru www.site1.ru; listen 443 ssl; # включим шифрование ssl on; ssl_certificate /etc/letsencrypt/domains/alluborka.ru.pem; ssl_certificate_key /etc/letsencrypt/domains/alluborka.ru.key; ssl_dhparam /etc/letsencrypt/dhparam.pem; ssl_stapling on; ssl_stapling_verify on; # исключим возврат на http-версию сайта add_header Strict-Transport-Security "max-age=31536000"; # явно "сломаем" все картинки с http:// add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests"; ... }
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 0 0 1 * * letsencrypt /bin/bash /var/www/challenges/acme-tiny.sh >> /var/log/acme_tiny.log
sudo touch /var/log/acme_tiny.log
sudo chown letsencrypt: /var/log/acme_tiny.log
Mikrotik — проблемы с RDP
При попытке подключения из локальной сети к рабочему столу удалённого сервера, по VPN-туннелю между маршрутизатором Mikrotik и удалённым сервером, процесс подключения надолго зацикливается на двух этапах:
Настройка удалённого сеанса…
Защита удалённого подключения…
Данная проблема наблюдается при активном правиле fasttrack connection фильтра фаервола. Причём, даже, если это правило расположено в таблице ниже правил, касающихся маршрутизации VPN трафика. Отключение этого правила, способствует восстановлению правильной маршрутизации пакетов и установлению RDP-подключений.
HiveOS: CUDA Error : Insufficient CUDA driver 9010
После очередного обновления ОС Hive, майнер Ethermine не запускается, miner log содержит записи:
CUDA Error : Insufficient CUDA driver 9010
Error: No usable mining devices found
Такое случается, когда майнер требует наличия более свежей версии CUDA. Для её обновления, необходимо выполнить команду nvidia-driver-update на воркере. После чего перезапустить майнер.
SFTP — установка umask
Имеются пользователи, которые подключаются к системе только по SFTP и не имеют файла профиля оболочки. Требуется установить маску режима создания пользовательских файлов, непосредственно в конфигурационном файле sshd.
umask можно задать как для отдельного пользователя, так и для группы пользователей, для этого, достаточно в файле /etc/ssh/sshd_config указать директивы:
Match Group имя_группы
ForceCommand internal-sftp -u маска
где маска указывается в десятичной системе (например, маска «002» указывается как «2»)
При этом, должна быть задействована подсистема internal-sftp:
Subsystem sftp internal-sftp
PfSense: arpresolve: can’t allocate llinfo
При использовании PfSense в качестве маршрутизатора с несколькими IP-адресами, из разных подсетей, на одном интерфейсе, может возникнуть ситуация, когда пакеты с одного IP не отправляются, а в журнале отображаются ошибки: arpresolve: can’t allocate llinfo.
В этом случае необходимо убедиться, что у шлюза, используемого для данного IP, включена опция Use non-local gateway в расширенных настройках.
PfSense: Inactivity timeout (—ping-restart), restarting
При использовании туннеля OpenVPN до сервера PfSense, соединение периодически пропадает, происходит переподключение VPN. При этом, в журнале появляются записи: Inactivity timeout (—ping-restart), restarting; SIGUSR1[soft,ping-restart] received, process restarting.
Это означает, что на сервере задействована опция ping-restart (если за определённое время не было получено ни одного пакета с удаленной стороны, то перезапустить подключение).
В PfSense, в настройках OpenVPN сервера, в разделе Advanced Configuration, можно вписать в поле Custom options альтернативную команду, например, keepalive 10 180 (каждые 10 секунд осуществлять ping удалённого хоста, и, если за 180 секунд не было получено ни одного пакета — перезапустить подключение).
PHP — Fatal error: Call to undefined function mb_internal_encoding
В журнал вэб-сервера записываются ошибки Call to undefined function mb_internal_encoding.
Сие говорит о том, что: либо эта функция отключена директивой disable_functions (настройки в php.ini или в конфигурационном файле сайта, в директории pool.d), либо отключен модуль mbstring.so (закомментирован в файле 20-mbstring.ini в директории conf.d), либо модуль mbstring не установлен (пакет php*.*-mbstring).
Проверяем, установлен ли пакет:
dpkg —get-selections | grep mbstring
В случае отсутствия оного, ищем доступные версии:
apt-cache search mbstring
Выбираем версию, соответствующую версии установленного PHP интерпретатора, и устанавливаем её:
apt-get install php5.6-mbstring
Если же пакет уже был установлен, то правим конфигурационные файлы.
PHP — Fatal error: Call to undefined function utf8_encode
В журнал вэб-сервера записываются ошибки Call to undefined function utf8_encode.
Сие говорит о том, что: либо эта функция отключена директивой disable_functions (настройки в php.ini или в конфигурационном файле сайта, в директории pool.d), либо отключен модуль xml.so (закомментирован в файле 15-xml.ini в директории conf.d), либо модуль xml не установлен (пакет php*.*-xml).
Проверяем, установлен ли пакет с расширением для PHP:
dpkg —get-selections | grep xml
В случае отсутствия оного, ищем доступные версии:
apt-cache search xml
Выбираем версию, соответствующую версии установленного PHP интерпретатора, и устанавливаем её:
apt-get install php5.6-xml
Если же пакет уже был установлен, то правим конфигурационные файлы.