(чтобы скачать прикрепленные файлы, нужно зарегаться на сайте)
Полная установка entware-3x совместно с Debian 8, и настройка всей системы: то есть одновременно могут работать две системы (entware и debian).
[Debian 8] или [entware-3x] - означает, что в данном статье описана инструкция установки для этой или иной системы
mc - Отличный инструмент: это файловый менеджен, редактор текста, архиватор. [Debian 8 и entware-3x] owncloud - облачное локальное хранилище. [Debian 8] ssl (https) - создание сертификата для локального веб-сервера. [Debian 8] ssh - защищенное подключение к терминалу и sftp-подключение к флешке. [Debian 8 и entware-3x] php - веб-интерпретатор для веб-программиста. [Debian 8] apache - веб-сервер. [Debian 8] nginx - веб-сервер. [Debian 8] adminer - легкий веб-интерфейс для управление База Данных. [Debian 8] phpmyadmin - тяжелый веб-интерфейс для управление База Данных. [Debian 8] mysql - База Данных. [Debian 8] postfix - отправка сообщения на любой адрес эл.почты через php-функцию mail(). [Debian 8] swap - файл подкачки, или увеличения оперативной памяти. [entware-3x] vnstat - Сбор статистики трафика: система слежения/потребления трафика по интерфейсам. [Debian 8] bandwidthd - Сбор статистики трафика: система слежения/потребления трафика для каждого подключенного клиента к вай-фай. [entware-3x]
gammu - принять/отправить смс через модем и другие функции модема. [Debian 8]
gammu-smsd - демон, которое работает и принимает все входящие смс'ки в модеме. [Debian 8]
datetimefix.sh (1.4.2) - демон исправления времени и даты при перезагрузке роутера (код сам написал). [entware-3x]
gammusmsdfix.sh (2.4) - демон исправляет права доступа к модему для фикса gammu-smsd. Еще демон для авто вкл/выкл gammu-smsd при подключении/извлечении модема. [Debian 8]
initrc (2.18.2) - стартовый скрипт OPKG, который запускает системы Debian и entware. [entware-3x]
и другие - ...
Написал полную инструкцию от меня (веб-мастера)
Требования
• НЕ нужен интернет на роутере
• только для прошивки 2.07 или старше
• прошивка с поддержкой opkg
• kernel 3.x.
• флешка минимум 2гб (у меня 16гб) и исключительно с файловой системой ext4. В Андроиде можно через PARTITION TOOLKIT SD 1.39.apk переформатировать. В Windows - EaseUS Partition Master free. В Линукс - через команду mke2fs -T ext4 -F /dev/путь_до_вашей_флешки
Начинаем.
1. Форматируем флешку в ext4, и подключаем ее к USB роутера.
2. Через 192.168.1.1 веб-интерфейс включаем на роутере FTP-доступ. А еще советую, но не объязательно, поменять порт веб-интерфейса с 80 на 777. Желательно это сделать именно в конце статьи.
3. Важное! Измените на "Чтение и запись" права Доступа к папкам нашей флешки через http://192.168.1.1/#usb.access
4. Заходим через ftp-клиент и создаем папку "install" на нашей флешке.
- скачиваем архив с Debian 8 Jessie и entware-3x mipsel_ent_deb_5.tar.gz (без регистрации можно скачать) 62 MB для ВСЕХ кинетиков.
(для Keenetic DSL, VOX, LTE не поддерживаю, воспользуйтесь другой инструкцией)
и копируем файл mipsel_ent_deb_5.tar.gz в папку "install"
5. Переходим в веб-интерфейс во вкладку OPKG http://192.168.1.1/#usb.opkg и включаем. Выбираем нашу флешку и нажимаем на "применить".
За процессом установки можно отследить в журнале http://192.168.1.1/#tools.log
примерно длиться 1 минуту
Всё! установлены и работают одновременно и Entware-3x и Debian 8.
зайти в Debian 8 на кинетике можно по ssh:
логин root
пароль debian
host 192.168.1.1
порт 22
и
зайти в Entware-3x на кинетике можно по ssh:
логин root
пароль zyxel
host 192.168.1.1
порт 22022
Пароль entware-3x никак не связан с паролем кинетика. Меняется он, если необходимо, стандартной командой:
# passwd
Советую изменить пароль в конце статьи.
6. Включаем на флешке Файл Подкачки (swap) http://192.168.1.1/#tools.settings
Размер файла (Мбайт) минимум пишем 200 или больше
7. Далее. Продолжаем настройку entware-3x.
Подключаемся к entware-3x посредством ssh.
Обновляем список пакетов
# opkg update
и устанавливаем нужные нам пакеты:
# opkg install mc
# opkg install openssh-server
# opkg install openssh-sftp-server
Конфигурация нового openssh-сервера находится в файле /opt/etc/ssh/sshd_config.
(1) через редактор "mc" поменяем порт:
# mcedit /opt/etc/ssh/sshd_config
(2) строчку меняем с
#Port 22
на
Port 2222
(3) Чтобы пользователь root мог заходить по ssh, добавим (отредактируем) строку
PermitRootLogin yes
(4) сохраняем и выходым из редактора.
Создадим ключи командой "ssh-keygen -A"
# ssh-keygen -A
Создадим пользователя sshd командой
# adduser -h /tmp -s /bin/false -D -H sshd
После этого можно запустить Новый SSH-сервер и проверить его работу:
# /opt/etc/init.d/S40sshd start
логин root
пароль zyxel
host 192.168.1.1
порт 2222
также, теперь работает и sftp-сервер на порту 2222
Если работает новый SSH-сервер, то покидаем ssh-подключение на порту 22022.
Далее: (если хотите) удаляем dropbear, который и работает на порту 22022:
подключаемся через новый SSH-сервер (порт 2222):
# /opt/etc/init.d/S51dropbear stop
удаление dropbear
# opkg remove dropbear
Если надо в entware-3x устанавливать какие-то пакеты, то пожалуйста:
# opkg install nginx
# opkg install php7
# opkg install maria-db
# opkg install и другие
Самое важное. Время от времени появляются обновления на initrc (исправляются ошибки и новое что-то добавляются), поэтому не забываем заходить проверять наличия обновления и обновлять свой старый initrc на новый.
Эти действия проводим через sftp-клиент (или любым другим способом):
initrc - (2.18.2) этот модифицированный файлик добавляем в папку "/opt/etc/". ТЕПЕРЬ в новом initrc (2.18 и выше) сервисы entware-3x уже запускаются автоматически из директории /opt/etc/init.d/, поэтому теперь НЕТ необходимости добавлять сервисы entware-3x в файл initrc вручную.
debian - (2.0) добавляем в папку "/opt/bin/"
lm - добавляем в папку "/opt/bin/"
mm - добавляем в папку "/opt/bin/"
fm - добавляем в папку "/opt/bin/"
в терминале entware-3x
# opkg install xmlstarlet
# chmod +x /opt/etc/initrc
# chmod +x /opt/bin/debian
# chmod +x /opt/bin/lm
# chmod +x /opt/bin/mm
# chmod +x /opt/bin/fm
debian - через эту команду в entware-3x можно остановить, запустить или сделать резервную копию системы Debian.
# debian start
# debian stop
# debian backup 2017test
lm - выводит маленькую информацию о памяти диска и загрузки системы
mm - освобождает память от кэшированных записей (почему-то из-за этой команды начинает роутер плохо работать)
fm - алиас к команде "free -m"
ВСЁ. с entware-3x закончили.
в терминале entware-3x:
изменяем репозиторий Debian 8
# mcedit /opt/debian/etc/apt/sources.list
Если хотите остаться (рекомендую) на Debian 8, то:
удаляем всё и добавляем
deb http://ftp.ru.debian.org/debian jessie main
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.ru.debian.org/debian jessie-updates main
Если хотите обновиться до последней стабильной версии (на сегодняшний день это Debian 9), то:
удаляем всё и добавляем
deb http://ftp.ru.debian.org/debian stable main
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://ftp.ru.debian.org/debian stable-updates main
Сохраняем.
8. Настройка пакетов в Debian 8.
Эти действия проводим через ftp-клиент (или любым другим способом):
lm - добавляем в папку "/debian/bin/"
mm - добавляем в папку "/debian/bin/"
fm - добавляем в папку "/debian/bin/"
в терминале Debian'a
# chmod +x /bin/lm
# chmod +x /bin/mm
# chmod +x /bin/fm
lm - выводит маленькую информацию о памяти диска и загрузки системы
mm - освобождает память от кэшированных записей (почему-то из-за этой команды начинает роутер плохо работать)
fm - алиас к команде "free -m"
Подключаемся по ssh к Debian 8.
обновления системы:
# apt-get update #будет грузить 40МБ
# apt-get upgrade # ответьте "y"
установить окно диалога
# apt-get install dialog
скачать локализацию (3МБ)
# apt-get install locales
изменить на русскую "ru_RU.UTF-8 UTF-8"
# dpkg-reconfigure locales
переключиться на RU и перезайти в систему (то есть перезайти в ssh)
# update-locale LANG=ru_RU.UTF-8
Если у вас Debian 9, то объязательно удаляем systemd, чтобы избежать некоторых проблем (например, с Apache'м)
# apt-get remove systemd
изменить тимезоне
# dpkg-reconfigure tzdata
установить mc (15МБ)
# apt-get install mc
установить аналог apt, по желанию
# apt-get install aptitude
после установки sudo
# apt-get install sudo
добавить в /etc/hosts строчку
127.0.0.1 Keenetic_Giga
другие (объязательно) (10МБ)
# apt-get install apt-utils
# apt-get install wget
при брутфорсе(подборе) пароля добавить этот параметр в /etc/ssh/sshd_config
MaxAuthTries 10
или использовать сторонную программу для этого:
# apt-get install fail2ban
Приветствие в консоли.
Все скрипты, отображающие информацию в приветствии лежат в /etc/profile.d/
Отображает (ниже код) системную информацию.
Создать новый файл
# mcedit /etc/profile.d/sshinfo.sh
содержимое sshinfo.sh:
Для безопасности:
изменить пароль Debian 8 пользователя root:
# passwd
создать нового Юзера с логином dima
# adduser dima
добавить его в группу sudo
# adduser dima sudo
проверить ssh и sftp подключении для нового юзера (порт всегда 22). работает.
Запретить ssh-подключение пользователя "root"
# mcedit /etc/ssh/sshd_config
заменить "yas" на "no"
PermitRootLogin no
Выходим из "root" и подключаемся через "dima". Чтобы к консоле пользователь "dima" получил рут-доступ, то введите
$ sudo -s
а чтобы выйти из рут-режима, то
# exit
Создать папку /var/www и назначаем пользователя и группу "dima"
$ sudo -s
# mkdir /var/www
# chown -R dima:dima /var/www
и начинаем дальше установку пакетов
установить Apache
# apt-get install apache2
добавьте строку ServerName 127.0.0.1
# mcedit /etc/apache2/conf-available/security.conf
потом
# mcedit /etc/apache2/conf-available/security.conf
Находим строчки:
ServerTokens OS
ServerSignature On
Меняем их на:
ServerTokens Prod
ServerSignature Off
установить PHP5 (а для Debian 9 замените php5 на php7.0)
# apt-get install php5 php-pear libapache2-mod-php5 php5-mysql
установить остальные модули php5
# apt-get install php5-gd php5-memcached php5-curl php5-oauth php5-ssh2 php5-memcache php5-json php5-mcrypt
установить MySql
# apt-get install mysql-server mysql-client
старт MySql
# /etc/init.d/mysql start
установить PhpMyAdmin
# apt-get install phpmyadmin php-gettext
или/и установить adminer
# apt-get install adminer
# mcedit /etc/apache2/sites-available/000-default.conf
добавить в конце между <VirtualHost *:80></VirtualHost>
строку
include /etc/adminer/apache.conf
Nginx будет принимать запросы на стандартном (80-ом) порту (или на 443) и передавать их апачу, который нужно перекинуть на другой порт, например на 81-ый, и разрешить ему принимать только локальные запросы. То есть апач будет невидим извне.
# mcedit /etc/apache2/ports.conf
Меняем строку:
Listen 80
на
Listen localhost:81
# mcedit /etc/apache2/sites-available/000-default.conf
Меняем строку:
<VirtualHost *:80>
на
<VirtualHost localhost:81>
установить Nginx
# apt-get install nginx
Создаем связку nginx+apache
# cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
# mcedit /etc/nginx/sites-available/default
Для того чтоб apache получал ip-адреса клиентов нужно установить модуль libapache2-mod-rpaf
# apt-get install libapache2-mod-rpaf
_____
SSL
Установка и создание сертификата SSL
# apt-get install openssl
Создаем наше CA (корневой центр сертификации).
# mkdir /var/сертификат #создаем папку
# cd /var/сертификат #переходим в эту папку
Первая команда создаёт корневой ключ. Можно и на 4096 вместо 2048
# openssl genrsa -out rootCA.key 2048
Вторая команда создаёт корневой сертификат.
# openssl req -x509 -new -key rootCA.key -days 10000 -out rootCA.crt
Отвечать на вопросы тут можно как душе угодно.
Все! Теперь мы можем создавать сертификаты для наших серверов и устанавливать корневой сертификат на наши клиентские машины.
Создаем сертификат подписаный нашим СА
Генерируем ключ.
# openssl genrsa -out 192.168.1.1.key 2048
Создаем запрос на сертификат.
# openssl req -new -key 192.168.1.1.key -out 192.168.1.1.csr
Тут важно указать имя сервера: домен или IP (например, 192.168.1.1)
Common Name (eg, YOUR name) []: 192.168.1.1
и подписать запрос на сертификат нашим корневым rootCA.key сертификатом.
# openssl x509 -req -in 192.168.1.1.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out 192.168.1.1.crt -days 5000
Теперь на клиенты нужно установить корневой сертификат rootCA.crt
rootCA.crt — можно давать друзьям, устанавливать, копировать на сервера, выкладывать в публичный доступ
rootCA.key — следует держать в тайне
( эти файлы лежать в /var/сертификат/ )
и вот только теперь
Рестартуем nginx и apache
# service nginx restart
# service apache2 restart
установить postfix (для php функции mail() )
# apt-get install postfix
виберите "интернет-сайт".
А в "Системное почтовое имя:" я лично прописал один из моих поддоменов (секрет), но вы можете любой сайт прописать, например: "local.mail.ru".
И в php-скриптах тогда надо указать отправителя "localhost@local.mail.ru".
ВАЖНОЕ! Вы найдёте файл /chroot-services.list, в котором по одному на строчку перечислены те Debian-сервисы, что должны запускаться при старте роутера. Изначально там только ssh. Строчки в этом файле соответствуют именам стартовых скриптов из /etc/init.d
То есть чтобы работала ssh, nginx и apache, нужно добавить в /chroot-services.list их, каждое с новой строки:
Установка Owncloud находится по адресу.
Далее:
Установка vnstat в Debian 8
ssh-терминал Debian 8:
# apt-get install vnstat
и подправим права
# chown -R vnstat:vnstat /var/lib/vnstat
# chmod -R 666 /var/lib/vnstat/
# chmod 777 /var/lib/vnstat/
и стартуем
# service vnstat start
скачиваем архив "веб-интерфейс просмотра статистики vnstat.zip" и распаковываем в debian: /var/www/html/
Если нужно будет, то редактируйте /var/www/html/vt/config.php
В архиве есть две версии интерфейса, которые будут доступны по адресу:
http://192.168.1.1/vt/ - удобно через мобильный телефон просматривать статистику vnstat
http://192.168.1.1/vnstat/ - для ПК
Установка bandwidthd на entware-3x
ssh-терминал entware-3x:
# opkg install bandwidthd-sqlite
создадим папку
# mkdir /opt/debian/var/bandwidthd/
редактируем файл конфигурации bandwidthd
# cp /opt/etc/config/bandwidthd.conf /opt/etc/config/orig_bandwidthd.conf
# mcedit /opt/etc/config/bandwidthd.conf
стираем все и добавляем
и стартуем
# bandwidthd
чтобы в автозапуске была, то поместите S11bandwidthd в папку /opt/etc/init.d/ и выставьте права
# chmod +x /opt/etc/init.d/S11bandwidthd
потом скачиваем архив "веб-интерфейс для просмотра статистики bandwidthd .zip" и распаковываем в debian: /var/www/html/
Обязательно редактируйте /var/www/html/bd/config.php
В архиве есть одна версия интерфейса, которые будут доступны по адресу:
http://192.168.1.1/bd/ - удобно через мобильный телефон просматривать статистику bandwidthd
Установка gammu в Debian 8
ssh-терминал Debian 8:
# apt-get install gammu
# gammu-config
выбираем порт (/dev/ttyUSB2) (или /dev/ttyUSB1, или /dev/ttyUSB0, у меня работает только /dev/ttyUSB2)
и conntection (at)
документацию по gammu найдете в интернете.
Установка gammu-smsd в Debian 8. Кстати, для приема смс не нужна gammu, хватит и gammu-smsd.
ssh-терминал Debian 8:
# apt-get install gammu-smsd
# mcedit /etc/gammu-smsdrc
и изменяем на рабочий интерфейс модема port = /dev/ttyUSB2
кстати, чтобы не ругалась на ошибку доступа, то
# chmod 777 /dev/ttyUSB2
В новой версии initrc уже есть мини-демон, которое каждые 2.5 сек изменяет права именно /dev/ttyUSB2 на 777. Так что после перезагрузки роутера можно не делать в ручном режиме "chmod 777 /dev/ttyUSB2"
и стартуем
# service gammu-smsd start
и смотрим в логи роутера, чтобы ошибок не было
Смс'ки входящие сохраняются в папке /var/spool/gammu/inbox/
Установка демона Фикс-даты_времени. (код сам написал)
Демон исправляет время и дату при перезагрузке или выкл/вкл роутера. Так как у роутера нет собственных внутренных часов. Конечно существует сервис NTP-синхронизации с интернет-временем, но оно не сразу исправляет время, особенно если у вас модемный-интернет или нет интернета вообще.
Вы замечали, что после перезагрузки или отключения роутера время и дата сбиваются. И основая проблема в том, что без этого Демона нарушается статистика сервисов по мониторингу трафиков: vnstat и bandwidthd. Вторая проблема касается к веб-серверу на роутере.
datetimefix.sh - скачать и поместить в папку /opt/etc/ и замените старую initrc на новую initrc (см.выше выше выше еще выше и выше)
в ssh entware-3x:
права на запуск
# chmod +x /opt/etc/datetimefix.sh
Можно либо вручную в первый раз запустить
# /opt/etc/datetimefix.sh start
либо перезагрузите роутер, чтобы запустился /opt/etc/datetimefix.sh
Установка демона Фикс-gammu-smsd. (код сам написал)
Демон автоматичечки исправляет права доступа к модему, чтобы gammu-smsd работал и принимал смс'ки. Еще он автоматичечки включает/выключает gammu-smsd при подключении/извлечении модема. Полезно, чтобы в логе не выводились куча информации об отказе доступа и об ненайденном устройстве при извлечении модема.
gammusmsdfix.sh - скачать и поместить в папку /opt/etc/ и замените старую initrc на новую initrc (см.выше выше выше еще выше и выше)
в ssh entware-3x:
права на запуск
# chmod +x /opt/etc/gammusmsdfix.sh
Можно либо вручную в первый раз запустить
# /opt/etc/gammusmsdfix.sh start
либо перезагрузите роутер, чтобы запустился /opt/etc/datetimefix.sh