Software
- Rsync Server
- Gitea
- screen
- rclone
- Полезные команды почтового сервера Exim
- 3proxy
- Репозиторий OPNsense
Rsync Server
Настройка и использование Rsync Server
Утилита rsync позволяет синхронизировать содержимое двух каталогов как для локальной системы, так и удаленных серверов. Это может использоваться как для резервного копирования, так и поддержания в актуальном состоянии нод кластера.
Установка и запуск
По умолчанию, утилита может бытьне установлена в системе. Установка и последующий запуск выполняются следующими командами.
apt-get install rsync
Открываем следующий файл:
vi /etc/default/rsync
Находим запись:
RSYNC_ENABLE=false
И меняем на:
RSYNC_ENABLE=true
Настройка
Открываем конфигурационный файл rsync:
vi /etc/rsyncd.conf
И настраиваем его, примерно, следующим образом:
max connections = 10 exclude = lost+found/ dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 *.rar *.7z *.mp3 *.jpg [data1] path = /data1/ comment = Public folders read only = yes list = yes auth users = rsync_d1 secrets file = /etc/rsyncd.scrt hosts allow = localhost 192.168.0.15 192.168.0.20 hosts deny = * [data2] uid = root gid = root path = /data2/ comment = Private folders read only = yes list = yes auth users = rsync_d2, backup secrets file = /etc/rsyncd.scrt hosts allow = localhost 192.168.0.16 192.168.0.21 hosts deny = *
Где первая группа параметров являются общими настройками:
-
max connections — максимальное число одновременных подключений. Стоит задать, чтобы не перегружать сервер.
-
exclude — папки, которые стоит исключить из синхронизации. В конкретном примере каталог для размещения восстановленных после проверки диска файлов.
-
dont compress — указываем, какие файлы не нужно сжимать при отправке. Имеет смысл указать те, сжатие которых не даст результата, например, архивы, сжатые аудио и изображения.
А также каждый ресурс настраивается отдельно (в нашем примере data1 и data2):
-
uid — пользователь, от которого будет выполнена синхронизация для конкретного ресурса.
-
gid — группа, от которой будет выполнена синхронизация для конкретного ресурса.
-
path — путь до ресурса, для которого выполняется синхронизация.
-
comment — описание для удобства.
-
read only — режим для чтения; позволяет защитить данные от удаления или изменения.
-
list — разрешает или запрещает чтения содержимого каталога. Если запрещено (no), синхронизация может выполняться для конкретно перечисленных файлов.
-
auth users — проверка подлинности, вводом логина с паролем.
-
secrets file — файл, в котором размещены логин и пароль.
-
hosts allow — перечисление хостов, с которых разрешено обращаться к rsync серверу.
-
hosts deny — перечисление хостов, с которых запрещено обращаться к rsync серверу (в данном примере, со всех, кроме разрешенных).
Создаем файл для аутентификации:
vi /etc/rsyncd.scrt
rsync_d1:password1 rsync_d2:password2 backup:password3
Где rsync_d1:password1 — соответственно, пользователь rsync_d1 с паролем password1.
В целях безопасности, устанавливаем доступ только для владельца:
chmod 600 /etc/rsyncd.scrt
Перезапускаем сервис:
systemctl restart rsyncd
Добавляем порты в брандмауэр.
Запуск клиента
Устанавливаем rsync, если еще не установлен:
apt-get install rsync
Запускаем синхронизацию:
rsync -avv rsync_d1@192.168.0.5::data1 /tmp/
-
где 192.168.0.5 — IP-адрес rsync сервера.
Пример готового скрипта для синхронизации папок
#!/bin/bash PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin password_file='/etc/rsyncd.scrt' user='opros' ip='192.168.0.15' source='data1' destination='/tmp/' rsync -a --delete-after --password-file=$password_file $user@$ip::$source $destination
* где:
-
password_file — пароль, в котором будет храниться пароль.
-
user — учетная запись для авторизации.
-
ip — IP-адрес сервера rsync.
-
source — имя ресурса на сервере.
-
destination — каталог, в который синхронизируем файлы.
После создаем файл с паролем:
vi /etc/rsyncd.scrt
password
* в данном файле указываем только пароль без имени учетной записи.
После задаем права:
chmod 600 /etc/rsyncd.scrt
Автоматизировать синхронизацию можно с помощью CRON:
crontab -e
0 */1 * * * /scripts/syncing.sh
* где /scripts/syncing.sh — наш скрипт. В данном примере задание будет выполняться каждый час.
Ключи запуска rsync
Ключ | Описание |
---|---|
-v, –verbose | Вывод подробной информации о процессе синхронизации. Стоит использовать для отладки. |
-q, –quiet | Не выводит сообщения об ошибках. |
–no-motd | Не выводит приветствие в MOTD |
-c, –checksum | Сравнивать файлы по контрольной сумме, а не времени или размеру. |
-a, –archive | Режим архивирования или то же самое, что с ключами -rlptgoD (без -H,-A,-X). Используется для удобства, чтобы не перечислять много опций. |
–no-<опция> | Отключает конкретную опцию, например, вышеописанная no-motd. |
-r, –recursive | Рекурсивный режим для каталогов. |
-R, –relative | Использовать относительные пути. |
–no-implied-dirs | Выключить параметр –relative. |
-b, –backup | Режим резервного копирования. С его помощью при обновлении файлов в папке назначения для них создается копия. |
–backup-dir=<каталог> | В режиме резервного копирования указывает каталог, в котором будут храниться копии. |
–suffix=SUFFIX | В режиме резервного копирования задает суффикс для сохраненных файлов |
-u, –update | Пропускать файлы, которые новее в папке назначения (копировать только измененные файлы). |
-d, –dirs | Не использовать рекурсию для каталогов. |
-l, –links | Копировать симлинки как симлинки. |
-L, –copy-links | Копировать не симлинк а ее содержимое (трансформировать симлинк в каталог). |
-k, –copy-dirlinks | Преобразовать симлинк на каталог в обычный каталог. |
-K, –keep-dirlinks | В папке назначения обрабатывать симлинк как каталог. |
-H, –hard-links | Сохранять жесткие ссылки. |
-p, –perms | Сохранять разрешения (права доступа). |
-E, –executability | Сохранить права на исполнение. |
–chmod=<права> | Изменить права доступа на конкретные. |
-A, –acls | Сохранить права ACL. |
-X, –xattrs | Сохранить атрибуты файлов. |
-o, –owner | Сохранить владельца (только от суперпользователя). |
-g, –group | Сохранить группу владельца. |
–devices | Копировать файлы-устройства (разрешено только при выполнении команды с правами суперпользователя). |
–copy-devices | Копировать файлы устройства как обычные файлы. |
–specials | Сохранять специальные файлы. |
-D | Заменяет –devices и –specials одновременно. |
-t, –times | Сохранять временные отметки. |
-S, –sparse | Выполнение дефрагментации в момент копирования данных. |
-n, –dry-run | Режим тестирования. Выполняется пробный запуск, при котором будет показаны изменения, но сами изменения выполнены не будут. |
-W, –whole-file | Копировать файлы целиком. По умолчанию, для копирования файлов используется алгоритм дельта-хэфера, который позволяет переносить только часть с изменениями. На практике, это сильно ускоряет процесс копирования. Ключ применяется в тех случаях, когда нужно перенести файл целиком. |
-x, –one-file-system | Не разрешает переходить границы файловой системы. Например, если в один из синхронизируемых каталогов может быть примонтирована сетевая файловая система, ее копирование может вызвать неудобства. |
-B, –block-size=<размер> | Принудительно фиксировать размер блока контрольной суммы |
-e, –rsh=<команда> | Указать оболочку для использования, например SSH. |
–existing | Не создавать новые файлы в каталоге назначения. |
–ignore-existing | Не обновлять существующие файлы в каталоге назначения. |
–remove-source-files | Источник удаляет свои файлы после выполнения синхронизации. |
–delete | Удалить файлы в папке назначения, если их больше нет в папке источнике (удаление старых файлов). |
–delete-before | Удалить файлы в папке назначения до начала синхронизации. |
–delete-during | Удалить файлы в папке назначения в момент синхронизации. |
–delete-delay | Поиск файлов на удаление в момент синхронизации, а удаление после. |
–delete-after | Удалить файлы в папке назначения после синхронизации. |
–delete-excluded | Удалить исключенные из синхронизации файлы в каталоге назначения. |
–ignore-errors | Удалять файлы даже при ошибках ввода/вывода. |
–force | Принудительное удаление не пустых каталогов. |
–max-delete=<число> | Не удалять больше заданного числа файлов. |
–max-size=<размер> | Не передавать файлы с размером более заданного. |
–min-size=<размер> | Не передавать файлы с размером менее заданного. |
–partial | Оставлять файлы, которые переданы не до конца (процесс копирования завершился в процессе). |
–partial-dir=<каталог> | Хранить частично переданные файлы в специальном каталоге. |
–timeout=<секунды> | Установить время ожидания от системы ввода/вывода. |
–contimeout=<секунды> | Установить время ожидания для подключения к демону rsync. |
-I, –ignore-times | Все равно копировать файлы, если они имеют одинаковые разметы или время изменения. |
–size-only | Не копировать только те файлы, которые имеют одинаковые размеры. |
-T, –temp-dir=<каталог> | Все временные файлы размещать в определенном каталоге. |
-z, –compress | Сжимать данные файла во время передачи |
–compress-level=<число> | Устанавливает уровень сжатия от 0 до 9. |
–skip-compress=<список> | Не выполнять компрессию для перечисленных файлов. |
-C, –cvs-exclude | Исключить от копирования файлы, которые исключаются CVS (RCS/ SCCS/ CVS/ .svn/ CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* *.old *.bak *.BAK *.orig *.rej .del-* *.a *.o *.obj *.so *.Z *.elc *.ln core) |
-f, –filter=<правило> | Добавить правило для фильтра. |
–exclude=<выражение> | Исключить из синхронизации файлы, соответствующие выражению. |
–exclude-from=<файл> | Исключить из синхронизации файлы, перечисленные в файле. |
–include=<выражение> | Включить в синхронизацию файлы, соответствующие выражению. |
–include-from=<файл> | Включить в синхронизацию файлы, перечисленные в файле. |
–files-from=<файл> | Читать список имен исходных файлов из файла. |
–address=<IP-адрес> | Привязать IP-адрес для исходящего сокета. |
–port=<порт> | Использовать определенный сетевой порт. |
–sockopts=OPTIONS | Использовать специальные опции для TCP. |
–blocking-io | Использовать блокирующий ввод-вывод для удаленной оболочки |
–stats | Вывод статистики по передаче данных. |
-h, –human-readable | Вывод чисел в удобном для чтения формате. |
–progress | Показывать строку прогресса для синхронизации. |
-P | То же самое, что –partial и –progress. |
-i, –itemize-changes | Выводить сводку изменений для всех обновлений |
–log-file=<файл> | Вывод лога в специальный файл. |
–password-file=<файл> | При аутентификации пароль можно хранить в специальном файле. Это необходимо для автоматизации выполнения команды без пароля. |
–list-only | Показать список файлов, но не копировать их. |
–bwlimit=<число> | Ограничить пропускную способность (КБит в секунду). |
–protocol=<число> | Принудительно использовать более старую версию протокола. |
–iconv=<кодировка> | Запрос кодировки преобразования имен файлов. |
-4, –ipv4 | Предпочтительно, использовать IPv4. |
-6, –ipv6 | Предпочтительно, использовать IPv6. |
–version | Вывод версии rsync. |
(-h) –help | Вывод справочной информации по использованию rsync. |
* Самый свежий список ключей rsync можно посмотреть командой man rsync.
Gitea
Gitea. Установка системы контроля версий на Debian 10
Gitea - лёгкая и нетребовательная к ресурсам система контроля версий (self-hosted). Альтернатива Gitlab, только без без лишних наворотов. Я буду производить установку на VPS с системой Debian 10.
Для начала нужно установить саму ОС.
-
Обновляем систему, доставляем необходимые пакеты и перезагружаемся.
sudo apt update sudo apt upgrade sudo apt install git wget reboot
-
Создаем пользователя git для Gitea.
sudo adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /home/git \ git
-
Скачиваем последнюю доступную для вас версию, у меня 1.10.1.
wget -O gitea https://dl.gitea.io/gitea/1.10.1/gitea-1.10.1-linux-amd64
-
Делаем его исполняемым и перемещаем в папку исполняемых файлов.
chmod +x gitea sudo cp gitea /usr/local/bin/gitea
-
Создаем необходимые папки для работы Gitea. Также даем необходимые права на папки.
sudo mkdir -p /var/lib/gitea/{custom,data,log} sudo mkdir /etc/gitea sudo chown root:git /etc/gitea sudo chmod 770 /etc/gitea sudo chown -R git:git /var/lib/gitea sudo chmod 770 /etc/gitea sudo chmod 750 /var/lib/gitea sudo chmod 640 /etc/gitea/app.ini
-
Теперь для запуска и автостарта создаем systemd сервис.
sudo vim /etc/systemd/system/gitea.service
[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target [Service] RestartSec=2s Type=simple User=git Group=git WorkingDirectory=/var/lib/gitea/ ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini Restart=always Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea [Install] WantedBy=multi-user.target
-
Делаем релоад systemd и запускаем Gitea. Если запуск прошёл успешно, то включаем автостарт.
sudo systemctl daemon-reload sudo systemctl start gitea.service sudo systemctl status gitea.service sudo systemctl enable gitea.service
Настройки хранятся в файле /etc/gitea/app.ini
screen
Запускаем процессы в фоне с помощью screen
Установка
Чтобы установить screen, воспользуйтесь менеджером пакетов для вашей системы
$ apt install screen
Работа с сессиями
Попробуем создать новую сессию:
$ screen -S my_first_screen_session
Будет запущена новая сессия, как если бы вы авторизовались на сервере в обычной tty-консоли. В ней можно запустить какой-то процесс, «свернуть» ее и продолжить работать в консоли.
Чтобы «свернуть» сессию, нажмите Ctrl+A, затем d. Первый шорткат переведет скрин режим принятия команд, а команда d (disconnect) отключится от текущей сессии, оставив ее запущенной в фоне.
Чтобы вернуться к последней подключенной сессии, введите команду
$ screen -r
Для того, чтобы получить список запущенных сессий от имени текущего пользователя, добавьте ключ -ls или -list
$ screen -list
Вы можете подключиться к определенной сессии по её имени (идентификатору), добавив его в конце команды
$ screen -r Hawk
Чтобы завершить определенную сессию, можно отправить в нее выполнение команды «quit»
$ screen -S Hawk -X quit
Запуск процесса в фоне
Чтобы сразу запустить в скрине какой-то процесс, достаточно передать команду на его выполнение при запуске сессии
$ screen -S <session_name> <command>
Например так:
$ screen -S Hawk node index.js
Перед вами откроется новый скрин, где будет выполняться переданная команда. Теперь можно свернуть скрин и процесс продолжит выполнение. Ctrl+A, D.
Важно помнить, что при подобном запуске, если процесс завершит свое выполнение (например, вследствие ошибки), то скрин также завершит работу. Если вы хотите иметь возможность посмотреть вывод процесса (узнать текст ошибки) в случае остановки скрипта в скрине, запускайте его в два этапа: сперва создаем сессию, потом запускаем в ней процесс — так вы сможете зайти в скрин с помощью -r
Запуск процесса в новой сессии в фоне
Чтобы запустить скрин сразу в свернутом виде, нужно дополнительно передать параметры -dm
$ screen -dmS <session_name> <command>
Рекомендуется либо заранее проверить, что переданная команда запускается корректно. Иначе вы увидите только сообщение о том, что скрин завершил работу.
[screen is terminating]
Вывод
Screen позволяет использовать терминальные сессии, которые можно «сворачивать». С его помощью можно запускать в фоне ресурсоемкие задачи и процессы, которые должны быть запущены постоянно.
rclone
Запуск RClone в виде сервиса
/etc/systemd/system/rclone-sync.service:
[Unit]
Description=Sync files between different remotes via rclone
[Service]
Type=simple
ExecStart=/usr/bin/rclone-sync
/etc/systemd/system/rclone-sync.timer:
[Unit]
Description=Perform an rclone sync periodically.
[Timer]
OnBootSec=1h
OnUnitActiveSec=3h
[Install]
WantedBy=timers.target
/usr/bin/rclone-sync:
#!/bin/bash
rclone sync acd: gdrive:
Включаем в системе:
systemctl enable rclone-sync.timer
systemctl start rclone-sync.timer
Проверяем работоспособность:
systemctl list-timers
journalctl -u rclone-sync -a
Полезные команды почтового сервера Exim
Exim — это так называемый MTA ( Mail Transfer Agent ), агент передачи сообщений, в просторечии - почтовик или почтовый сервер, использующийся в операционных системах Unix. Распространяется по свободной лицензии GPL, то есть доступен для распространения, использования и модификации. Exim, весьма распространен и в некоторых операционных системах является почтовым сервером по умолчанию.
ID сообщений и spool файлы
Идентификаторы сообщений в очередях Exim, представляют из себя буквенно-цифровые последовательности в верхнем и нижнем регистрах: XXXXXX-YYYYYY-ZZ и используются большинством команд администрирования очереди и логгирования в Exim. Для каждого сообщения создаются три файла в spool директории ( зачастую это: /var/spool ). Если вы работает с данными файлами вручную, без использования описанных ниже команд и утилит, убедитесь что обработали все три файла, например, не оставив в очереди exim только один из них, удалив остальные. Каталог /var/spool/exim/msglog содержит файлы со служебной информацией для каждого сообщения и именуются в соответствии с ID этого сообщения. Каталог /var/spool/exim/input содержат файлы заголовков и данных, к ID сообщения в имени, добавлены суффиксы -H и -D, соответственно. Кроме того в этих директориях могут появляться хэшированные подкаталоги для работы с большими почтовыми очередями.
Получение базовой информации по Exim
Вывести количество сообщений в очереди:
root@localhost# exim -bpc
Печать списка сообщений в очереди. Выводятся, время постановки в очередь, размер, ID сообщения, отправитель, получатель:
root@localhost# exim -bp
Печать суммарной информации. Выводимые колонки: количество, объем, старейшее, последнее, домен.
root@localhost# exim -bp | exiqsumm
Чем в данный момент занимается Exim:
root@localhost# exiwhat
Тестирование маршрута доставки до указанного адреса:
root@localhost# exim -bt alias@localdomain.com user@thishost.com <-- alias@localdomain.com router = localuser, transport = local_delivery root@localhost# exim -bt user@thishost.com user@thishost.com router = localuser, transport = local_delivery root@localhost# exim -bt user@remotehost.com router = lookuphost, transport = remote_smtp host mail.remotehost.com [1.2.3.4] MX=0
Эмитировать SMTP транзакцию из командной строки, как если-бы сообщение пришло с указанного IP адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет.
root@localhost# exim -bh 192.168.11.22
Листинг всех настроек конфигурации exim:
root@localhost# exim -bP
Поиск очереди с помощью утилиты exiqgrep
Стандартная поставка сервера Exim включает в себя утилиту для поиска по очередям — exiqgrep, это самый оптимальный путь для решения данной задачи. Если вы используете конвейер команд, например из exim -bp в awk, grep, cut и т.д., вы просто усложняете себе жизнь. Различные ключи команды exiqgrep, позволяют достаточно тонко настроить критерии поиска. Ключ -f используется для поиска сообщений конкретного отправителя
root@localhost# exiqgrep -f [luser]@domain
Ключ -r используется для поиска сообщений для определенного адресата
root@localhost# exiqgrep -r [luser]@domain
Ключ -o указывает искать сообщения, старее, указанного количества секунд. В примере, сообщения старее 1 дня:
root@localhost# exiqgrep -o 86400 [...]
Ключ -y ищет сообщения свежее указанного количества секунд. В примере, найти сообщения, пришедшие в течении последнего часа:
root@localhost# exiqgrep -y 3600 [...]
Ключ -s позволяет искать по размеру сообщения, совпадающего с заданным регулярным выражением:
root@localhost# exiqgrep -s '^7..$' [...]
Для поиска только среди заблокированных( замороженных ) сообщений, используйте ключ -z, или -x для поиска только среди не заблокированных. Еще несколько ключей отвечающих за вывод результатов поиска Вывести только ID сообщения, в одном из вышеупомянутых вариантов поиска
root@localhost# exiqgrep -i [ -r | -f ] ...
Печатать счетчик сообщений при одном из вышеприведенных вариантов поиска:
root@localhost# exiqgrep -c ...
Вывести только идентификатор всей очереди:
root@localhost# exiqgrep -i
Управление очередями сообщений
Основной бинарник Exim ( /usr/sbin/exim ), используется с различными ключами для управления сообщениями в очереди. Многие ключи, подразумевают указание одного или более ID сообщения в командной строке, как раз тут вам и пригодится команда exiqgrep -i, которая была упомянута выше. Запуск очереди:
root@localhost# exim -q -v
Запуск очереди только для локальных доставок:
root@localhost# exim -ql -v
Удалить сообщение из очереди:
root@localhost# exim -Mrm [ ... ]
Очистит все заблокированные сообщения из очереди:
root@localhost# exipick -zi | xargs exim -Mrm
Очистит все сообщения из очереди:
root@localhost# exipick -i | xargs exim -Mrm
Заблокировать( заморозить ) сообщение:
root@localhost# exim -Mf [ ... ]
Разблокировать сообщение:
root@localhost# exim -Mt [ ... ]
Доставить сообщение, вне зависимости от состояния блокировки или времени повторной доставки:
root@localhost# exim -M [ ... ]
Доставить сообщение, только если достигнуто время для повторной доставки:
root@localhost# exim -Mc [ ... ]
Принудительно остановить сообщение с формулировкой "отменено администратором":
root@localhost# exim -Mg [ ... ]
Удалить все заблокированные сообщения:
root@localhost# exiqgrep -z -i | xargs exim -Mrm
Удалить все сообщения, старше 5 дней (86400 * 5 = 432000 секунд):
root@localhost# exiqgrep -o 432000 -i | xargs exim -Mrm
Заблокировать все письма от указанного отправителя:
root@localhost# exiqgrep -i -f luser@example.tld | xargs exim -Mf
Просмотреть заголовки сообщений:
root@localhost# exim -Mvh
Просмотреть тело сообщений:
root@localhost# exim -Mvb
Просмотр логов сообщения:
root@localhost# exim -Mvl
Добавить получателя в сообщение:
root@localhost# exim -Mar[... ]
Редактировать отправителя сообщения:
root@localhost# exim -Mes
Листы контроля доступа (Access Control List, ACL)
Exim предоставляет возможность использовать, листы контроля доступа (ACL) на различных этапах SMTP передачи. Условия ACL назначаются в конфигурационном файле exim.conf. Начать имеет смысл с HELO.
# Назначить ACL для использования после команды HELO acl_smtp_helo = check_helo # Условия проверки check_helo для ACL: check_helo: deny message = Gave HELO/EHLO as "friend" log_message = HELO/EHLO friend condition = ${if eq {$sender_helo_name}{friend} {yes}{no}} deny message = Gave HELO/EHLO as our IP address log_message = HELO/EHLO our IP address condition = ${if eq {$sender_helo_name}{$interface_address} {yes}{no}} accept
Используйте проверку HELO на свой страх и риск. Сейчас HELO не имеет такого большого значения в общей схеме SMTP, так что не стоит сильно доверять его содержимому. Не только спамеры используют строку HELO, вы будете удивлены сколько нормальных сообщений может приходить с кривым HELO. Спамерам не составит труда отправлять сообщения с легальной строкой HELO а не писать там "я спамер", так что много спама вы на этом не отсеете.
Далее, вы можете провести проверку по отправителю или удаленному хосту. В примере показано как фильтровать по содержимому, идущему после команды RCPT TO. Если прием сообщения будет отклонен в этом месте, вы получите больше данных в логах, нежели при блокировке по MAIL FROM.
# Назначит проверку содержимого после RCPT TO acl_smtp_rcpt = check_recipient # Условия для check_recipient ACL check_recipient: # [...] drop hosts = /etc/exim_reject_hosts drop senders = /etc/exim_reject_senders # [ Probably a whole lot more... ]
В приведенном примере для блокировки используются два текстовых файла. В файл /etc/exim_reject_hosts, значения добавляются в виде: имя_хоста/IP_адрес, в файл /etc/exim_reject_senders в виде адреса отправителя, по одной записи в строке. Кроме того, можно сканировать содержимое сообщения, на предмет совпадения с регулярным выражением. Имейте в виду, это дает дополнительную нагрузку на процессор, особенно на больших сообщениях.
# Назначить ACL для использования после команды DATA acl_smtp_data = check_message # Условия проверки для check_messages ACL check_message: deny message = "Sorry, Charlie: $regex_match_string" regex = ^Subject:: .*Lower your self-esteem by becoming a sysadmin accept
Исправление SMTP аутентификации для pine
В случае, если pine не может использовать аутентификацию на сервере Exim, возвращая сообщение "unable to authenticate", без запроса на ввод пароля, нужно добавить в exim.conf следующие строки.
begin authenticators fixed_plain: driver = plaintext public_name = PLAIN server_condition = "${perl{checkuserpass}{$1}{$2}{$3}}" server_set_id = $2 > server_prompts = :
Некоторое время назад, данная проблема имела место быть в CPanel, на текущий момент этот недочет исправлен.
Запись в лог файл заголовка Subject
Один из самых полезных хаков конфигурации Exim. Добавление в exim.conf приведенной строки, позволит писать в лог файл строку subject, писем проходящих через сервер. Это сильно помогает при решении проблем в процессе настройки сервера, а так-же дает дополнительные критерии для отсева спама.
log_selector = +subject
Отключение identd
Честно говоря не думаю что протокол identd был когда либо очень полезен. Identd опирается на подключающийся хост, что-бы подтвердить идентификацию ( System UID ), удаленного пользователя, владельца процесса, устанавливающего сетевое соединение. Это может быть в определенной степени полезно в мире системных оболочек и IRC пользователей, но уж никак не на нагруженном почтовом сервере, где пользователем процесса зачастую является просто какой-нибудь "mail", и за этим может быть любой другой MTA. В итоге куча накладных расходов, нулевой результат, лишь задержки identd запросов и как следствие отказы и таймауты. Можно запретить Exim делать подобные запросы, установив таймаут 0 секунд в exim.conf.
rfc1413_query_timeout = 0s
Отключение блокировки вложений
Что-бы отключить блокировку исполняемых вложений, что CPanel делает по умолчанию, правда не предоставляя при это контроля "для каждого домена", следующий блок нужно добавить в начало файла /etc/antivirus.exim:
if $header_to: matches "example\.com|example2\.com" then finish endif
Поиск в журнальных файлах с помощью exigrep
Утилита exigrep ( не путайте с exiqgrep, использующейся для поиска в очереди ), используется для поиска по лог файлам. Например exigrep может вывести все записи из лог файла с совпадающим ID сообщения, что довольно удобно, учитывая что каждое сообщение занимает 3 строки в лог файле. Поиск сообщений отправленных с определенного IP адреса:
root@localhost# exigrep '<= .* \[12.34.56.78\] ' /path/to/exim_log
Поиск сообщений отправленных на определенный IP адрес:
root@localhost# exigrep '=> .* \[12.34.56.78\]' /path/to/exim_log
Данный пример ищет сообщения содержащие символы "=>", и отправленные на адрес "user@domain.tld", далее по конвейеру, результат передается команде grep, которая из полученного результата выбирает строки, содержащие "<=" с информацией об отправителе, почтовом адресе, IP адресе, размере сообщения, ID сообщения и заголовок subject, если логгирование этой строки включено.
root@localhost# exigrep '=> .*user@domain.tld' /path/to/exim_log | fgrep '<='
Генерировать из лог файла и показать статистику Exim:
root@localhost# eximstats /path/to/exim_mainlog
То-же что и выше но с более подробными данными:
root@localhost# eximstats -ne -nr -nt /path/to/exim_mainlog
Аналогично но за определенный день:
root@localhost# fgrep YYYY-MM-DD /path/to/exim_mainlog | eximstats
В качестве дополнения Удалить все сообщения в очереди, содержащие в теле, определенную строку:
root@localhost# grep -lr 'a certain string' /var/spool/exim/input/ | \ sed -e 's/^.*\/\([a-zA-Z0-9-]*\)-[DH]$/\1/g' | xargs exim -Mrm
Командой выше, мы проверяем содержимое каталога /var/spool/exim/input/, в поисках файлов очереди, содержащих определенную строку в теле сообщения, поскольку команда exiqgrep не умеет просматривать тело сообщений. Если вы решите удалить найденные файлы напрямую, ЭТО БУДЕТ НЕ ПРАВИЛЬНО, используйте предназначенные для этого команды exim. Если вывод используемой команды слишком длинный, например ID сообщений при exiqgrep -i, которые нужно передать дальше по конвейеру команде exim, может быть превышено количество аргументов командной строки вашей системной оболочки. В этом случае передавайте результат поиска через конвейер, команде xargs, которая будет обрабатывать результаты ограниченными порциями. Например удалим тысячи сообщений, отправленных с адреса joe@example.com:
root@localhost# exiqgrep -i -f '' | xargs exim -Mrm
После того как вы внесли изменения в файл конфигурации, необходимо перезапустить exim, или послать рабочему процессу сигнал SIGHUP, что-бы он перечитал конфигурационный файл и изменения вступили в силу. Предпочтительней естественно отправить сигнал, нежели перезапускать приложение.
root@localhost# kill -HUP `cat /var/spool/exim/exim-daemon.pid`
3proxy
Настройка брандмауэра
По умолчанию, в Ubuntu брандмауэр разрешает все подключения. Однако, если у нас настроен фаервол для запрета лишних соединений, необходимо открыть порт для прокси.
Если используется Iptables:
iptables -I INPUT 1 -p tcp --dport 3128 -j ACCEPT
netfilter-persistent save
- если система вернет ошибку при вводе команды для сохранения правил, устанавливаем пакет командой apt-get install iptables-persistent.*
- 3128 — порт по умолчанию, по которому работает 3proxy в режиме прокси;*
Установка и запуск 3proxy
3proxy отсутствует в репозиториях Ubuntu, поэтому есть два варианта установки. Полегче, и для тех, кто любит хардкор.
Готовые пакеты
У 3proxy на официальном сайте есть два вида готовых программных пакетов для возможной установки. Стабильные и те, что в разработке.
Сначала скачаем стабильный пакет для Ubuntu системы:
wget https://github.com/z3APA3A/3proxy/releases/download/0.9.3/3proxy-0.9.3.x86_64.deb
После чего, мы можем установить его с помощью команды:
sudo dpkg -i 3proxy-0.9.3.x86_64.deb
Исходники
Для начала устанавливаем необходимые в системе пакеты:
apt-get install build-essential git
Клонируем официальный репозиторий
git clone https://github.com/3proxy/3proxy
Переходим в каталог программы:
cd 3proxy
Запускаем компиляцию 3proxy:
make -f Makefile.Linux
Создаем системную учетную запись:
adduser --system --disabled-login --no-create-home --group 3proxy --force-badname
- Поскольку в linux не позволяет по умолчанию создать пользоватля с именем, начинающемсяя с цифры, мы добавляем команду --force-badname, что позволит нам создать этого пользователя
Создаем каталоги и копируем файл 3proxy в /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Задаем права на созданные каталоги:
chown 3proxy:3proxy -R /etc/3proxy
chown 3proxy:3proxy /usr/bin/3proxy
chown 3proxy:3proxy /var/log/3proxy
Создаем конфигурационный файл:
vi /etc/3proxy/3proxy.cfg
Со следующим содержанием:
nserver 77.88.8.8
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
external 0.0.0.0
internal 0.0.0.0
daemon
auth none
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n
- Необходимо обратить внимание на настройки external и internal — внешний и внутренний интерфейсы (если наш прокси работает на одном адресе, то IP-адреса должны совпадать).*
- Параметр proxy -n -p3128 определяет порт запуска
Запускаем 3proxy:
Если вы производили установку из готовых пакетов, вы можете запустить программу следующей командой:
systemctrl start 3proxy
Если вы собирали программу из исходников, проверяем работоспособность командой:
/usr/bin/3proxy /etc/3proxy/3proxy.cfg
Далее. вам необходимо создать сервис для автозапуска
Настройка автозапуска
Для автозагрузки 3proxy настроим его как сервис. Создаем файл в systemd:
vi /etc/systemd/system/3proxy.service
С содержанием:
[Unit]
Description=3proxy Proxy Server
[Service]
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg
ExecStop=/bin/kill `/usr/bin/pgrep -u proxy3`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target
Обновляем конфигурацию systemd:
systemctl daemon-reload
Разрешаем запуск сервиса и стартуем его:
systemctl enable 3proxy
systemctl start 3proxy
Настройка аутентификации
Для доступа к web прокси мы можем настроить аутентификацию, для этого нам необходимо отредактировать конфигурационный файл вновь:
vi /etc/3proxy/3proxy.cfg
Сначала необходимо изменить строчку:
auth none
На:
auth strong
После которой вы можете добавить секцию пользователей:
users admin:CL:password
users "3err0:CR:$1$UsbY5l$ufEATFfFVL3xZieuMtmqC0"
В данном примере мы добавили 2-х пользователей:
- admin с паролем password
- 3err0 с паролем password в виде md5 и солью mysalt
Для получения хэша пароля можно воспользоваться командой
openssl passwd -1 -salt mysalt
- Где в качестве соли можно использовать любую комбинацию.
Возможные типы паролей:
- CL — текстовый пароль
- CR — зашифрованный пароль (md5)
- NT — пароль в формате NT.
Возможные варианты для auth:
- none — без авторизации.
- iponly — авторизация по IP-адресу клиента.
- nbname — по Netbios имени.
- strong — по логину и паролю.
Также можно использовать двойную авторизацию, например:
auth nbname strong
После внесения изменений, перезапускаем службу:
systemctl restart 3proxy
SOCKS
Для прозрачного прохождения пакетов через прокси можно настроить SOCKS5. Необходимо изменить конфигурационный файл:
vi /etc/3proxy/3proxy.cfg
Добавив в него строчку:
socks
- socks Запустится на стандартном орту 1080.
Если необходимо определить порт запуска, необходимо указать аргумент -p:
socks -p8083 -i192.168.1.23 -e111.111.111.111
* запускаем socks на порту 8083; внутренний интерфейс — 192.168.1.23, внешний — 111.111.111.111.
После перезапускаем сервис:
systemctl restart 3proxy
Настройка анонимности
Необходимо, чтобы время на сервере совпадало с временем на компьютере.
На стороне сервера необходимо задать часовой пояс, например, если наш прокси находится в Германии, вводим:
timedatectl set-timezone Asia/Irkutsk
На стороне клиента либо меняем часовой пояс в системе, либо устанавливаем плагин для браузера, например, для Mozilla Firefox и меняем часовой пояс уже в нем.
Отключение icmp.
По времени ответа на ping можно определить отдаленноесть клиента от прокси. Чтобы проверку нельзя было выполнить, отключаем на сервере icmp. Для этого создаем правило в брандмауэре:
iptables -I INPUT -p icmp --icmp-type 8 -j REJECT
И применяем настройку:
netfilter-persistent save
Дополнительные настройки
Настройки, которые могут не понадобиться. Но они позволят настроить дополнительные возможности прокси-сервера.
Логирование
Для включения лог файла необходимо добавить следкующие строчки в конфиг файл программы:
log filename LOGTYPE
rotate 30
LOGTYPE задает тип ротации и может принимать значения:
- M, ежемесячная ротация
- W, еженедельная ротация
- D, ежедневная ротация
- H, ежечасная ротация
- C, ежеминутная ротация
Для ведения журнала в syslog необходимо изменить строчку к такому виду:
log @ident
- Где @ident соответствуют ведению журнала через syslog с соотвествующим идентификатором.
Настройка портов и прокси-интерфейсов
При необходимости, можно настроить 3proxy на использование разных интерфейсов на разных портах:
vi /etc/3proxy/3proxy.cfg
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111
- 3proxy будет слушать на порту 3128 с внутреннего интерфейса 192.168.0.23 и направлять пакеты в сеть Интернет через внешний интерфейс 222.222.222.222
- Также, на порту 8080 для внутреннего и внешнего интерфейсов 192.168.1.23 и 111.111.111.111 соответственно.
- Не забываем также настраивать брандмауэр (вначале инструкции мы открывали только 3128 порт).*
Ограничение пропускной способности
При необходимости, можно ограничить скорость.
vi /etc/3proxy/3proxy.cfg
bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4
- В данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит) для user2 и user4 — 5 мбит/сек.*
bandlimin 240000 * 192.168.0.2,192.168.0.3
- Разрешаем качать компьютерам с IP-адресами 192.168.0.2 и 192.168.0.3 со скоростью 24 кбит в секунду, причем это 24 кбит приходятся не на каждый из этих компьютеров, а на оба в совокупности, т.е. если оба будут к примеру, качать одновременно файлы с достаточно быстрых сайтов, то каждому придется только по 12 кбит в секунду (заметьте, килобит, а не килобайт, если надо пересчитать в килобайты, разделите числа на 8)
bandlimin 48000 * 192.168.0.4
- А этому счастливчику единолично скорость 48 кбит в секунду
bandlimout 24000 *
- исходящую скорость тоже ограничим всем до 24 килобит в секунду
nobandlimin * * * 110
- Ну и наконец, если вы хотите, чтобы эти жесткие ограничения не касались, к примеру, скачивания почты, то снимите ограничения на порт 110
- И не забудьте поставить эту команду ПЕРЕД прочими командами ограничения скорости - конфиг обрабатывается последовательно до первого удовлетворяющего условия.
Ограничения доступа
Можно ограничить доступ и разрешить только для определенных портов, сетей и пользователей.
vi /etc/3proxy/3proxy.cfg
Синтаксис:
allow <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdays> <timeperiodslist>
deny <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdays> <timeperiodslist>
Где:
- userlist — список пользователей через запятую.
- sourcelist — сети клиентов через запятую.
- targetlist — сети назначения через запятую.
- targetportlist — порты назначения через запятую.
- commandlist — команды, к которым применяется правило.
- weekdays — в какие дни недели работает правило. 0 - 6 — Пн - Вс, 7 — тоже Вс.
- timeperiodslist — время, когда работает правило. Указываются диапазоны.
Примеры:
allow * * * 80 HTTP
allow * * * 443,8443 HTTPS
allow * * * 21 FTP
Также, ограничить доступ можно по количеству одновременных соединений для каждой службы:
maxconn 700
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111
- таким образом, мы установим 700 максимальных соединений для прокси на порту 3128 и 700 — для proxy на порту 8080.*
Другие ограничения
deny * 192.168.200.4 * 110 * 1-5 18:00:00-23:59:59,00:00:00-08:00:00
- Запрещаем получение почты пользователю с IP .4 в нерабочее время по будням
allow * 192.168.200.4 * * * 1-5 09:00:00-18:00:00
- Разрешаем доступ в интернет пользователю с IP .4 исключительно с понедельника по пятницу с 9 часов утра до 6 вечера, но зато разрешены запросы на любые порты, то есть можно и с FTP-серверов качать, и HTTPS, к примеру.
allow * 192.168.0.2,192.168.0.3 * 80,443 * 1-7 00:00:00-23:59:59
- А здесь разрешаем только WEB-серфинг, зато круглосуточно и любой день недели
Настройка браузера
Проверяем работоспособность нашего 3proxy. Для этого настраиваем браузер для работы через прокси-сервер, например, Mozilla Firefox:
Настройка почты
3proxy позволяет настроить его не только на WEB-серфинг. Электронная почта - это то, на что можно так-же испольовать это ПО. Для начала настроим получение почты. Для этого в составе 3proxy имеется свой pop3-прокси:
Вновь отредактируем наш конфиг файл:
vi /etc/3proxy/3proxy.cfg
Добавив строчку:
pop3p
В этом случае надо будет настроить ваши мэйл-клиенты. Если, к примеру, для ящика vasya.pupkin@mail.ru в настройках TheBat! в настройках доставки почты (закладка Транспорт) раньше стояли такие параметры:
pop3-сервер: pop.mail.ru
пользователь: vasya.pupkin
То чтобы получать почту через прокси, надо будет их поменять на следующие:
pop3-сервер: 192.168.0.1
пользователь: vasya.pupkin@pop.mail.ru
- Внимание, именно последовательность "имя пользователя"@"POP3-сервер вашего ящика", а не ваш адрес.
Для большей наглядности рассмотрим еще вариант настройки клиента:
pop3-сервер: mail.example.com
пользователь: vasya.pupkin@example.com
Тогда для получения почты через прокси пришлось бы поменять настройки клиента на следующие:
pop3-сервер: 192.168.0.1
пользователь: vasya.pupkin@example.com@mail.example.com
Что же касается отправки почты, то разработчик прокси-сервера рекомендует воспользоваться для этого портмаппингом:
tcppm -i192.168.0.1 25 smtp.provider.ru 25
То есть, мы просто все запросы по порту 25, по которому, собственно, и отправляются почтовые сообщения, перекидываем на 25-ый же порт почтового сервера провайдера.
В настройках вашего почтового клиента в этом случае для упомянутого выше ящика в общем случае поменяется запись только для SMTP-сервера:
SMTP-сервер: 192.168.0.1
Должен заметить, что ловкий прием с портмаппингом можно было бы использовать и для получения почты. В этом случае используется команда:
tcppm -i192.168.0.1 2110 pop.mail.ru 110
Есть в этом варианте одна неприятная сторона - если пользователи будут пользоваться ящиками на разных почтовых серверах, благо что их много развелось (yandex, rambler,newmail...), то для каждого почтового сервера придется завести новую запись портмаппинга в нашем конфиге, к примеру:
tcppm -i192.168.0.1 3110 pop.yandex.ru 110
И дополнительно надо будет поменять порт на 2110 и не забыть дать пользователям разрешение на этот нестандартный порт:
allow * 192.168.0.2,192.168.0.3 * 2110,25,110 * 1-5 00:00:00-20:00:00
Админка
И наконец, рассмотрим важную составляющую прокси-сервера - WEB-интерфейс администрирования. Для доступа к нему надо запустить команду
admin
- Cлужбу admin можно так-же как и любую другую запускать с параметром -p80 с указанием порта на котором необходимо запустить ваш сервис
Для доступа к интерфейсу пропишите в адресной строке браузера следующий адрес: http://192.168.0.1:80, не забыв, конечно, дать разрешение пользователю на использование стандартного для службы admin порта 80. В открывшемся окне можно будет получить доступ к информации о максимально допустимом трафике и его текущем значении, посмотреть конфиг целиком и даже перезапустить прокси-сервер. Поэтому разрешения на эту службу раздавайте крайне внимательно! Впрочем, у службы admin есть ключ -s, который не дает делать пользователю ничего недозволенного. Считаю своим долгом упомянуть о команде writable, которая, будучи размещена в самом начале конфига, дает возможность не только читать конфиг через WEB-интерфейс, но и менять его! Автор программы предлагает дважды подумать, прежде чем включать эту опцию.
Примечание
Хочу прояснить на примерах еще один момент, который я сам понял не сразу и понимание которого, возможно, может вызвать проблемы и у вас. Это использование авторизации auth strong. Предположим, что нам хочется, что доступ к WEB-администрированию был доступен только с компьютера 192.168.0.4, причем даже в этом случае запрашивался пароль доступа. В этом случае соответствующая секция конфига будет выглядеть так:
flush
auth strong
allow Administrator 192.168.0.4 * 80 * 1-5 00:00:00-20:00:00
admin
И разумеется, прежде чем пользоваться авторизацией strong, надо завести пользователя, в нашем случае это Administrator:
users Administrator:CL:password
Теперь при попытке доступа на страницу WEB-администрирования с компьютера Сидорова будет запрашиваться пароль, а на других компьютера доступ будет полностью закрыт. Если же третья строчка в приведенной выше секции конфига будет выглядеть так:
allow Administrator * * 80 * 1-5 00:00:00-20:00:00
То доступ к администрированию можно будет получить с любого компьютера при предъявлении пароля для пользователя Administrator.
Вы, наверное, заметили новую команду flush. Мы ее применили для сброса заданного выше списка доступа, чтобы можно было изменить разрешения доступа для пользователей. Замечу, что сброс не действует на ограничение скорости, которое действует на все службы. И не забываем после его примения задавать способ авторизации.
Конфиг файл
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
external 192.168.0.0
internal 192.168.0.0
daemon
auth strong
users 3err0:CL:password
nobandlimin * * * 110
bandlimin 24000 * 192.168.0.2,192.168.0.3
bandlimin 48000 * 192.168.0.4
bandlimout 24000 *
###############################################################
# РАЗДАЕМ WEB
###############################################################
auth iponly
allow * 192.168.0.4 * * * 1-5 09:00:00-18:00:00
allow * 192.168.0.2,192.168.0.3 * 80,443 * 1-7 00:00:00-23:59:59
proxy -n -p3128
###############################################################
# РАЗДАЕМ ПОЧТУ
###############################################################
flush
auth iponly
deny * 192.168.200.4 * 110 * 1-5 18:00:00-23:59:59,00:00:00-08:00:00
allow * 192.168.0.2,192.168.0.3,192.168.0.4 * 25,110 * 1-5 00:00:00-20:00:00
tcppm -i192.168.0.1 25 smtp.provider.ru 25
pop3p
###############################################################
# РАЗДАЕМ FTP
###############################################################
flush
auth iponly
allow * 192.168.0.2,192.168.0.3 * 2110,25,110 * 1-5 00:00:00-20:00:00
ftppr
socks
###############################################################
# АДМИНИСТРАТИВНЫЙ ДОСТУП
###############################################################
flush
auth iponly
allow 3err0 192.168.0.4 * 3129 * 1-5 00:00:00-20:00:00
admin -s -p3129
end
В случае получения почты через портмаппинг секция конфига, идущая после коментария # ПОЧТА выглядела бы немного по другому:
###############################################################
# РАЗДАЕМ ПОЧТУ
###############################################################
flush
auth iponly
deny * 192.168.200.4 * 110 * 1-5 18:00:00-23:59:59,00:00:00-08:00:00
allow * 192.168.0.2,192.168.0.3,192.168.0.4 * 25,110 * 1-5 00:00:00-20:00:00
tcppm -i192.168.0.1 25 smtp.provider.ru 25
tcppm -i192.168.0.1 2110 pop.mail.ru 110
tcppm -i192.168.0.1 3110 pop.yandex.ru 110
Репозиторий OPNsense
Это настраиваемый общественный репозиторий OPNsense, который предлагает несколько пакетов и плагинов, недоступных в основном репозитории. Большинство плагинов имеют только кнопку "Включить", и их нужно настраивать самостоятельно (или они работают сразу, как Unifi или Grafana).
Этот репозиторий не имеет никаких гарантий и управляется в свободное время или во время работы автора, разрешенной его работодателем (@mimugmail), где также доступна коммерческая поддержка на немецком языке: link
Ограничения:
Поддерживается только OpenSSL! Не стоит спрашивать про LibreSSL, так как автор и многие другие пользователи не используют его. Не стоит использовать его в производственных средах, так как автор тестирует его только время от времени на нескольких из них. OPNsense не предоставляет никаких гарантий или поддержки для этого репозитория, также не поддерживает автор за это и может винить его за ошибки. Он не будет работать, если /var находится на ram-диске, так как службы сильно зависят от систем с постоянными данными. Автор старается компилировать только те пакеты, которых нет в стандартном дистрибутиве, чтобы ничего не сломалось, но необходимо быть осторожным при каждом обновлении.
Установка
Чтобы использовать настраиваемый репозиторий, подключитесь к своему маршрутизатору через SSH и введите следующую команду:
fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf
Теперь вы можете перейти в "Система: Программное обеспечение: Плагины" и проверить наличие обновлений. Некоторые пакеты не имеют плагинов (пока что), поэтому вы можете установить их только через CLI, например:
pkg install ocserv
Список плагинов
- Unifi Controller (os-unifi-maxit) / Люди, у которых уже установлен контроллер от gozoinks, должны придерживаться его, перенос не проверялся
- InfluxDB (os-influxdb-maxit)
- Grafana (os-grafana-maxit)
- OCServ (os-ocserv-maxit)
- Elasticsearch (os-elasticsearch-maxit)
- Kibana (os-kibana-maxit)
- AdGuardHome (os-adguardhome-maxit) / он работает на 3000 порту, к сожалению, как и ntopng и Grafana
- CARPcron HA autosync (os-carpcron-maxit)
- Speedtest (os-speedtest-community) by mihak09
- Traefik (os-traefik-maxit)
- Caddy (os-caddy-maxit)
- Zeek (os-zeek-maxit)
Темы
- Solarized (os-theme-solarized-community) by mihak09
- Dracula (os-theme-dracula-community) by mihak09
- Homeassisstant (os-homeassisstant-maxit)
- Unbound Custom Options
- OPNarp (альтернатива ARPwatch)
Связь с автором
Если у вас есть новые идеи для пакетов или плагинов, просто свяжитесь с автором Twitter @mimu_muc или создайте новую проблему через GitHub
Лицензия
Эти плагины и пакеты бесплатны как пиво! Нет хостинга исходного кода, но вы можете использовать их бесплатно и навсегда. Продажа этих плагинов запрещена!