Для примера выполню настройку маскарадинга IPv4 (NAT) на Ubuntu Server.
Сначала нужно включить поддержку пересылки пакетов в /etc/sysctl.conf, чтобы трафик мог ходить между разными сетевыми интерфейсами.
Проверим текущее состояние:
Архивы рубрик:Linux
Установка ISC DHCP для ABillS
Приведу пример установки ISC DHCP сервера для ABillS в Ubuntu Server.
Переключимся на root пользователя:
sudo -i
Установим пакет:
apt-get install isc-dhcp-server ln -s /usr/abills/Abills/modules/Dhcphosts/leases2db.pl /usr/abills/libexec/leases2db.pl
Запускаем:
/usr/abills/libexec/leases2db.pl -d LEASES=/var/lib/dhcp/dhcpd.leases
Изменим владельца файла:
chown www-data /etc/dhcp/dhcpd.conf
Откроем config.pl в редакторе:
nano /usr/abills/libexec/config.pl
Добавим параметры:
$conf{DHCPHOSTS_CONFIG}='/etc/dhcp/dhcpd.conf'; $conf{DHCPHOSTS_LEASES}='/var/lib/dhcp/dhcpd.leases'; $conf{DHCPHOSTS_RECONFIGURE}='/usr/bin/sudo /etc/init.d/isc-dhcp-server restart';
Откроем в редакторе:
nano /etc/sudoers
Добавим строку сделав возможность запуска сервиса системой:
www-data ALL = NOPASSWD: /etc/init.d/isc-dhcp-server
Заходим в веб интерфейс Abills, открываем меню «Настройка» — «IP (DHCP) Сети» — «IP (DHCP) Сети«, добавляем сети если необходимо, потом «Показать dhcp.conf, Переконфигурировать» и «Переконфигурировать«.
Посмотреть запущен ли isc-dhcp-server можно командой:
/etc/init.d/isc-dhcp-server status netstat -tulpn | grep :67
Логи пишутся в файл /var/log/syslog
Можно также настроить экспорт DHCP истории, чтобы видеть её в меню «Отчёт» — «DHCP История».
Для этого сделаем ссылку:
ln -s /usr/abills/Abills/modules/Dhcphosts/dhcp_log2db.pl /usr/abills/libexec/dhcp_log2db.pl
Отделив DHCP логи в отдельный файл как я писал в статье ниже и добавив в автозагрузку скрипт с командой:
tail -F /var/log/dhcpd.log | /usr/abills/libexec/dhcp_log2db.pl
Смотрите также мои статьи:
Установка и настройка isc-dhcp-server в Ubuntu
Утилита для захвата и анализа пакетов tcpdump
Использование wipe в Linux
wipe — утилита для безопасного полного стирания информации.
Команда установки в Linux Ubuntu/Debian:
sudo apt-get install wipe
Опишу некоторые ключи запуска:
-f Отключение запросов подтверждения.
-r Рекурсивно. Удаляет все подкаталоги, символические ссылки не трогаются.
-c Если права каталога только для чтения, то будут изменены на запись.
-i Подробный информационный режим.
-s Тихий режим, большинство сообщений не выводятся.
-q Быстрый режим, директории перезаписываются случайными данными 4 раза.
-Q Количество циклов перезаписи. Стандартно 4.
-a Остановить выполнение при ошибке.
-R Установка случайного устройства.
-l
-D Следовать по символическим ссылкам, стандартно они не трогаются.
-v Отображение версии программы.
-h Отображение справки.
Небезопасные соединения к POP3/IMAP iRedMail
Чтобы к POP3/IMAP можно было подключаться без STARTTLS нужно открыть файл конфигурации Dovecot:
sudo nano /etc/dovecot/dovecot.conf
Изменить два параметра указанных ниже:
disable_plaintext_auth=no ssl=yes
Чтобы вернуть обратно параметры безопасного подключения к POP3S/IMAPS укажем:
disable_plaintext_auth=yes ssl=required
После изменений в конфигурации Dovecot нужно его перезапустить:
sudo /etc/init.d/dovecot restart
Смотрите также:
Как разрешить SMTP без SSL на порт 25 в iRedMail/Postfix
Установка Nextcloud в Ubuntu
Nextcloud — облачная платформа для хранения файлов, ответвление проекта OwnCloud.
На тесте установлю в Ubuntu Server 18.04 LTS последнюю версиею Nextcloud (на момент написания статьи была 15).
Первым делом установим необходимые компоненты:

Настройка места для резервных копий Hetzner.de
На тесте вошел на https://robot.your-server.de/, открыл Main functions — Servers, выбрал сервер и во вкладке Backup активировал бесплатные 100GB, так как для серверов стоимостью 39€ или более это место выделялось бесплатно.
Активировал WebDAV чтобы протестировать, samba было уже активировано, также можно подключаться по FTP, FTPS, SFTP и SCP используя имя пользователя и пароль, через SFTP/SCP можно также подключаться по ключу.
Скорость передачи данных на сервер резервного копирования зависит от количества подключенных пользователей и их трафика.
При подключении следует использовать доменное имя, например USER.your-backup.de, так как IP адрес может меняться.
Также нельзя создать директории /etc и /lib на месте для резервных копий.
На примере в Ubuntu Server смонтирую место для резервных копий через SAMBA/CIFS.
Установим необходимые утилиты и создадим директорию в которую будем монтировать:
sudo apt install cifs-utils
sudo mkdir /backup
Временно смонтировать место можно командой:
sudo mount.cifs -o user=USER,pass=PASSWORD //USER.your-backup.de/backup /backup
Для автоматического монтирования после перезапуска системы добавим в файл /etc/fstab следующую строку:
//USER.your-backup.de/backup /backup cifs iocharset=utf8,rw,credentials=/etc/backup-credentials.txt,uid=SYSTEM_USER,gid=SYSTEM_GROUP,file_mode=0660,dir_mode=0770 0 0
Открыть файл можно например текстовым редактором nano (CTRL+X для выхода, y/n для сохранения или отмены изменений):
sudo nano /etc/fstab
А в файл /etc/backup-credentials.txt добавим следующие строки:
username=USER
password=PASSWORD
Установим права только для владельца файла в целях безопасности:
sudo chmod 600 /etc/backup-credentials.txt
Если используется операционная система Windows, то нужно создать системного пользователя с такими же логином и паролем как у места для резервных копий.
Теперь для теста подключусь через WebDAV.
Установим необходимые утилиты и создадим директорию в которую будем монтировать:
sudo apt install davfs2
sudo mkdir /backup
В CentOS так:
yum install davfs2
mkdir /backup
Временно смонтировать через WebDAV место можно командой:
sudo mount -t davfs https://USER.your-backup.de /backup
Для автоматического монтирования после перезапуска системы добавим в файл /etc/fstab следующую строку:
https://USER.your-backup.de /backup davfs rw,uid=SYSTEM_USER,gid=SYSTEM_GROUP,file_mode=0660,dir_mode=0770 0 0
А в файл /etc/davfs2/secrets следующую строку:
https://USER.your-backup.de USER PASSWORD
На этом все, в моем случае можно сохранять резервные копии в директорию /backup.
Решение ошибки dhcpd self-test failed. Please fix the config file
Заметил однажды в логах syslog ошибку:
dhcpd self-test failed. Please fix the config file
На сервере был установлен isc-dhcp-server.
Проверить правильность конфигурационного файла можно командой:
dhcpd -t dhcpd -t -cf /dir/dhcpd.conf /usr/sbin/dhcpd -t
Команда должна сообщить на какой строке ошибка, но заметил что если она не критическая, то может и не сообщить.
Ключ «t» выполняет тест конфигурации, а «cf» позволяет указать путь к файлу конфигурации, если он не стандартный.
В моем случае, в конфигурационном файле /etc/dhcp/dhcpd.conf кто-то совершил опечатку, в строке ниже (была лишняя буква):
authorivtative;
Из-за этого и возникала ошибка, но несмотря на ошибку dhcp работал.
Хотя когда-то встречались и критические ошибки, например неправильно написанный mac адрес, из-за такой ошибки DHCP не запускался.
Настройка ircd-hybrid
Допустим мы установили ircd-hybrid как я описывал в этой статье — Установка IRC сервера — ircd-hybrid
Теперь приступим к настройке.
Отредактируем текст приветственного сообщения:
sudo nano /etc/ircd-hybrid/ircd.motd
Сделаем копию конфигурационного файла на всякий случай:
sudo cp /etc/ircd-hybrid/ircd.conf /etc/ircd-hybrid/ircd_original.conf
Откроем в текстовом редакторе основной файл конфигурации, настроим параметры и закомментируем ненужные:
sudo nano /etc/ircd-hybrid/ircd.conf
В конфигурационном файле сначала идут стандартные параметры serverinfo, по желанию изменим их:
serverinfo { name = "hybrid8.debian.local"; description = "test"; network_name = "debian"; network_desc = "This is My Network"; hub = no; default_max_clients = 512; max_nick_length = 15; max_topic_length = 300; };
Далее контакты администратора сервера, по желанию изменим их:
admin { name = "SYSADMIN"; description = "Main Server Administrator"; email = "<admin@example.com>"; };
Сетевые параметры (на каких портах будет работать ircd-hybrid, например можно изменить на один 6667):
listen { port = 6665 .. 6669; };
Первый блок auth который разрешает подключаться всем с локального адреса 127.0.0.1:
auth { user = "*@127.0.0.1"; spoof = "i.love.debian.org"; class = "opers"; flags = need_password, spoof_notice, exceed_limit, kline_exempt, xline_exempt, resv_exempt, no_tilde, can_flood; };
Еще один блок auth разрешающий подключаться всем (его закомментируем или изменим под свои нужды):
auth { user = "*@*"; class = "users"; flags = need_ident; };
Например, создадим пароль пользователю, скопируем результат команды в зашифрованном виде:
mkpasswd PASSWORD
Добавим возможность авторизации любым пользователям только с паролем и с указанной сети:
auth { user = "*@192.168.3.0/24"; class = "users"; flags = need_password; encrypted = yes; password = "PASSWORD_FROM_mkpasswd"; };
В блоке auth пароль будет хранится в шифрованном виде, в IRC клиенте указывается как есть.
Чтобы указать в блоке auth пароль в нешифрованном виде, нужно убрать encrypted.
В секции general отключим need_ident:
general { ... disable_auth = yes; ... };
Перезапустим ircd-hybrid чтобы применить изменения:
sudo /etc/init.d/ircd-hybrid restart sudo service ircd-hybrid restart
Также можем добавить оператора:
auth { name = "admin"; user = "admin@192.168.3.254/32"; class = "opers"; flags = need_password, spoof_notice, exceed_limit, kline_exempt; encrypted = yes; password = "PASSWORD_FROM_mkpasswd"; };
Блокировать IP адреса в случае необходимости можно следующим образом:
deny { ip = "192.168.4.4/32"; reason = "Spam"; };
После изменений в конфигурационном файле нужно перезапустить ircd-hybrid.
В качестве клиента можно использовать например бесплатный AdiIRC.
Установка IRC сервера — ircd-hybrid
Приведу пример установки IRC сервера — ircd-hybrid.
Для установки ircd-hybrid в Ubuntu выполним команду:
sudo apt-get install ircd-hybrid
После установки ircd-hybrid будет использовать TCP порты 6665-6669.
По желанию, чтобы подключиться к IRC из терминала, можно установить например IRC клиент epic4:
sudo apt-get install epic4
И подключиться:
irc 127.0.0.1
Подключиться к каналу можно командой:
/join CHANNEL
Выйти:
/quit
Проверить запущен ли ircd-hybrid можно например так:
netstat -a | grep irc netstat -an | grep 6667
Перезапустить ircd-hybrid можно так:
sudo /etc/init.d/ircd-hybrid restart
Если используется iptables, до нужно прописать правило:
sudo iptables -A INPUT -p tcp -m tcp -s 192.168.1.0/24 --dport 6667 -j ACCEPT
На этом установка завершена и можно переходить к настройке.
Смотрите мою статью о настройке — Настройка ircd-hybrid
Также приведу пример установки ircd-hybrid из исходников.
Скачаем ircd-hybrid с официальный сайта:
wget http://prdownloads.sourceforge.net/ircd-hybrid/ircd-hybrid-8.2.22.tgz tar -xvf ircd-hybrid-8.2.22.tgz cd ircd-hybrid-8.2.22
Установим необходимые компоненты:
sudo apt-get install build-essential unzip cmake
Сконфигурируем и установим ircd-hybrid:
./configure --prefix="/home/USER/ircd" make make install
Можно также установить Anope (для расширения функциональности):
cd /tmp/ wget https://github.com/anope/anope/archive/2.0.zip unzip 2.0.zip cd anope-2.0 ./Config cd build make make install
Установим правильного владельца:
sudo chown -R USER: ~/services ~/ircd
Решение ошибки /usr/sbin/ejabberdctl: line 428: 14615 Segmentation fault
Заметил однажды после установки EJabberd в Ubuntu Server 16.04 и добавлении пользователя от root командой:
ejabberdctl register USER localhost PASSWORD
Следующую ошибку:
/usr/sbin/ejabberdctl: line 428: 14615 Segmentation fault $EXEC_CMD «$CMD»
В лог файле /var/log/syslog сообщалось:
Sep 11 11:17:00 mail kernel: [4647543.535271] audit: type=1400 audit(1505117820.598:43): apparmor=»DENIED» operation=»file_mmap» profile=»/usr/sbin/ejabberdctl//su» name=»/bin/su» pid=14439 comm=»su» requested_mask=»m» denied_mask=»m» fsuid=0 ouid=0
Для решения ошибки открыл файл конфигурации apparmor:
nano /etc/apparmor.d/usr.sbin.ejabberdctl
Нашел строку:
/bin/su r,
И изменил её, добавив m:
/bin/su rm,
Перезапустил apparmor:
sudo service apparmor restart
Все, ошибка больше не появлялась.