Использование 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 Отображение справки.

Читать далее «Использование wipe в Linux»

Небезопасные соединения к 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).
Первым делом установим необходимые компоненты:

Читать далее «Установка Nextcloud в Ubuntu»

Настройка места для резервных копий 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

Все, ошибка больше не появлялась.

Резервное копирование Redmine

Создадим скрипт (в текстовом редакторе nano Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/cron.daily/redmine

Пример содержимого скрипта:

#!/bin/sh
/usr/bin/mysqldump -u root -p<password> redmine_default | gzip > /path/to/backups/redmine_db_`date +%y_%m_%d`.gz
rsync -a /var/lib/redmine/default/files /path/to/backups/files

Сделаем скрипт исполняемым:

chmod +x /etc/cron.daily/redmine

В скрипте можно также добавить команду удаления старых файлов или директории, чтобы не возникло переполнения диска, подробнее смотрите мою статью — Скрипт удаления старых файлов

Смотрите также прочие мои статьи о резервном копировании — Резервное копирование

Подключение к SSH с использованием ключей

Чтобы подключаться к SSH без ввода пароля, можно сгенерировать на локальном севере публичный и приватный ключи, публичный потом скопировать на удаленную машину, после чего пароль при подключении к ней не будет спрашиваться.

На локальной машине генерируем ключи:

sudo ssh-keygen -t rsa

Копируем публичный ключ на удаленный сервер:

sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p PORT USER@HOST

Если возникает ошибка при копировании ключа, то можно вручную скопировать строку из id_rsa.pub на удаленный сервер в файл authorized_keys.

Указанные команды нужно выполнять от того пользователя, от которого будет выполнятся подключение.
Например если от root, то нужно перед двумя командами выше выполнить команду:

sudo -i

Убрать хост можно командой:

ssh-keygen -f "/home/user/.ssh/known_hosts" -R [HOST]:22

Смотрите также:
Установка и настройка SSH