Подключение к 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

Как удалить iRedMail

Приведу пример удаления iRedMail.
На тесте удалю установленный iRedMail 0.9.7 с Ubuntu Server 16.04 используя скрипт удаления — clear_iredmail.

Перейдем в директорию tools установщика iRedMail, сохраним в нее скрипт, в моем случае это:

cd /root/iRedMail-0.9.7/tools/
wget https://ixnfo.com/wp-content/uploads/2017/08/clear_iredmail.zip
unzip clear_iredmail.zip

Сделаем его исполняемым:

chmod +x clear_iredmail.sh

И запустим:

bash clear_iredmail.sh

Скрипт удалит mysql, ssl, amavisd, clamav, spamassassin, dovecot, postfix, iredapd, пользователей и т.д., нужно быть осторожным если на сервере установлено еще что-то кроме iRedMail.
В коде скрипта можно увидеть поэтапно расписанный процесс удаления iRedMail.

Решение ошибки host NAME greeted me with my own hostname NAME

Заметил однажды на одном сервере, что Postfix не всегда отправляет письма, в логах была следующая ошибка:

warning: host NAME[192.168.5.5]:25 greeted me with my own hostname NAME

Посмотрев имя хоста:

hostname -f

Обнаружил что оно не правильное и совпадает с тем на которое шлется почта!

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

sudo nano /etc/hostname
sudo nano /etc/postfix/main.cf
sudo nano /etc/hosts

Все, после этого ошибка не появлялась и почта успешно доставлялась.

Решение ошибки «nf_conntrack: table full, dropping packet»

Заметил однажды в Ubuntu Server 14.04 LTS настроенного как роутер, в файле /var/log/kern.log следующую ошибку:

Читать далее «Решение ошибки «nf_conntrack: table full, dropping packet»»

Как разрешить SMTP без SSL на порт 25 в iRedMail/Postfix

Чтобы разрешить на почтовом сервере отправку писем без шифрования через порт 25, необходимо открыть файл конфигурации Postfix, например в редакторе nano (в котором Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/postfix/main.cf

И раскомментировать две строки:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

И оставить закомментированной строку:

#smtpd_tls_auth_only=yes

Перезагрузим Postfix чтобы применить изменения:

sudo service postfix restart

После этого можно будет отправлять письма по SMTP через 25 порт без SSL так и как обычно через 587 с SSL.

Смотрите также:
Небезопасные соединения к POP3/IMAP iRedMail

Монтирование NTFS разделов в Linux

После подключения диска к серверу посмотрим список всех дисков и найдем имя нужного:

sudo fdisk -l

Приведу пример монтирования NTFS раздела диска в Ubuntu (так как у меня диск был разбит на два раздела, диск C и D, то в системе они были обнаружены как /dev/sdb1 и /dev/sdb2, оба и смонтируем в созданные директории):

sudo mkdir /newhdd1
sudo mount -t ntfs /dev/sdb1 /newhdd1
sudo mkdir /newhdd2
sudo mount -t ntfs /dev/sdb2 /newhdd2

Так как до этого диск использовался в системе Windows, у меня возникла ошибка монтирования:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount ‘/dev/sdb1’: Операция не позволена
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the ‘ro’ mount option.

В этом случае можно смонтировать раздел в режиме только для чтения:

sudo mount -t ntfs -o ro /dev/sdb1 /newhdd1

Либо исправить разделы командой:

sudo ntfsfix /dev/sdb1
sudo ntfsfix /dev/sdb2

И после этого смонтировать с полным доступом:

sudo mount -t ntfs /dev/sdb1 /newhdd1
sudo mount -t ntfs /dev/sdb2 /newhdd2

Отмонтировать можно так:

sudo umount -t ntfs /dev/sdb1 /newhdd1
sudo umount -t ntfs /dev/sdb2 /newhdd2

Смотрите также:
Управление разделами диска в Ubuntu используя fdisk

Обновление сертификата iRedMail

Приведу пример обновления самоподписанного сертификата на Ubuntu Server с установленным iRedMail.

Переключимся на root пользователя:

Читать далее «Обновление сертификата iRedMail»

Установка и использование ioping

ioping — простой инструмент для мониторинга задержек ввода-вывода диска в режиме реального времени, аналогично как ping показывает задержку сети.

Установить в Ubuntu/Debian можно командой:

sudo apt-get install ioping

Приведу пример запуска с 10 запросами теста задержек к директории /tmp:

ioping -c 10 /tmp

Пример запроса с интервалом 0.2мс и увеличенным размером запроса:

ioping -i 0.2 -c 10 -s 1M -S 5M /tmp

Тест к диску:

ioping -R /dev/sda
ioping -RL /dev/sda

Опишу возможные опции запуска:
-c count (остановить после указанного количества запросов)
-w deadline (остановить после указанного количества времени)
-p period (отображать raw статистику после каждого указанного количества запросов)
-P period (отображать raw статистику после каждого указанного количества секунд)
-i interval (интервал между запросами в секундах)
-s size (размер запроса (4k))
-S size (размер рабочего набора)
-k (по завершению команды оставить (не удалять) рабочий файл ioping.tmp)
-L (последовательные операции вместо случайных, это также задаст размер запроса до 256k (как и -s 256k))
-A (асинхронный I/O)
-C (кешированный I/O)
-D (прямой I/O)
-B (не отображать информацию выполнения, она отобразится только по завершении команды в raw формате)
-q (не отображать информацию выполнения, она отобразится только по завершении команды)
-h (отображение краткой справки)
-v (просмотр версии)