Как изменить порт SSH в Ubuntu

На тесте изменю порт SSH в Ubuntu Server 14.0.4 LTS и Ubuntu Server 16.0.4 LTS.

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

sudo nano /etc/ssh/sshd_config

Найдем строчку «Port 22» и изменим её например на «Port 58222«.

Чтобы применить изменения перезапустим ssh (на разных системах он может перезагружаться по разному, по этому приведу список возможных команд):

sudo service ssh restart
sudo /etc/init.d/ssh restart
sudo /etc/init.d/sshd restart

После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной, по этому не отключаясь для проверки попробуем подключиться по новому порту, если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 58222 наш новый порт):

sudo iptables -A INPUT -p tcp --dport 58222 -j ACCEPT

Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:

sudo iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 58222 -j ACCEPT

Если все ок, подключаемся через новый порт и можем удалить старое правило iptables, например так:

sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT

Пример команды для подключения из Linux к SSH по нестандартному порту:

ssh -p 58222 user@192.168.0.2

Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно так:

netstat -tulpan | grep ssh

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

Partclone — утилита для клонирования и восстановления разделов диска.

Выполним установку Partclone в Ubuntu:

sudo apt-get update
sudo apt-get install partclone

Partclone может работать со многими файловыми системами, при его запуске через точку обязательно указывается тип файловой системы, например:

partclone.btrfs (btrfs)
partclone.ext2/ext3/ext4 (ext2, ext3, ext4)
partclone.reiserfs (reiserfs 3.5)
partclone.reiser4 (reiser 4)
partclone.xfs (xfs)
partclone.ufs (ufs/ufs2)
partclone.jfs (jfs)
partclone.hfs+/hfsplus (hfs plusfs)
partclone.vmfs (vmfs)
partclone.ntfs (ntfs)
partclone.fat12/fat16/fat32 (fat12, fat16, fat32)
partclone.exfat (exfat)
partclone.minix (minix)
partclone.f2fs (f2fs)
partclone.nilfs2 (nilfs2)

Приведу возможные опции запуска:

-s ФАЙЛ, --source ФАЙЛ

Источник данных, указывается файл или раздел который будет клонироваться или из которого будут восстанавливаться данные.

-o ФАЙЛ, --output ФАЙЛ

Выходной файл в который будут сохраняться данные или раздел на который будут восстанавливаться данные.

-O ФАЙЛ, --overwrite ФАЙЛ

Перезаписать файл если он существует.

-c, --clone

Сохранение

-r, --restore

Восстановление

-b, --dev-to-dev

Режим копирования с устройства на устройство

-l ФАЙЛ, --logfile ФАЙЛ

Путь к файлу логов (стандартно /var/log/partclone.log)

-R, --rescue

Продолжить после ошибок чтения диска

-C, --no_check

Не проверять размер диска и количество свободного пространства

-N, --ncurse

Ncurses текстовый пользовательский интерфейс

-X, --dialog

Вывод сообщений в формате диалога

-I, --ignore_fschk

Игнорировать проверку файловой системы

--ignore_crc

Игнорировать crc ошибки

-F, --force

Принудительный режим

-f СЕКУНДЫ, --UI-fresh СЕКУНДЫ

Изменение интервала

-z РАЗМЕР, --buffer_size РАЗМЕР

Размер буфера чтения/записи (стандартно: 1048576)

-q, --quiet

Краткий режим, не будет отображаться информации о процессе выполнения

-dlevel, --debug level

Уровень режима отладки 1/2/3

-h, --help

Отображение справки

-v, --version

Отображение версии программы

Приведу примеры запуска partclone.
Сначала посмотрим какие диски в системе используются:

sudo fdisk -l | grep '/dev/'

Пример клонирования раздела в файл:

sudo partclone.ext3 -c -d -s /dev/sda1 -o sda1.img

Пример клонирования раздела в архив:

sudo partclone.ext3 -c -d -s /dev/sda1 | gzip -c > /dev/sdb2/sda1.gz

Восстанавливаем из файла раздел:

sudo partclone.ext3 -r -d -s sda1.img -o /dev/sda1

Восстановление раздела их архива:

sudo gzip -d /dev/sdb2/sda1.gz | partclone.ext3 -d -r -o /dev/sda1

Клонируем раздел в раздел другого диска:

sudo partclone.ext3 -b -d -s /dev/sda1 -o /dev/sdb2

Настройка Fail2Ban под Asterisk

На тесте буду использовать Asterisk 13.1.0 и Fail2Ban 0.9.3-1 установленные в Ubuntu Server 16.04.1 LTS.

Установим Fail2Ban как я писал в этой статье — Установка и настройка Fail2ban

Откроем конфигурационный файл Asterisk отвечающий за логирование событий в /var/log/asterisk/messages:

sudo nano /etc/asterisk/logger.conf

Добавим security в messages:

messages => notice,warning,error,security

Перезапустим систему логирования asterisk:

sudo asterisk -rvv
logger reload
quit

Добавим файл настроек Asterisk в директорию с конфигурацией Fail2Ban тем самым активировав наблюдение его логов:

sudo nano /etc/fail2ban/jail.d/asterisk.conf

где 86400 в секундах = 24 часа, то есть злоумышленник будет блокироваться на сутки.

[asterisk]
enabled = true
bantime = 86400

Либо изменим в файле /etc/fail2ban/jail.conf где [asterisk-tcp] и [asterisk-udp] параметр false на true.

Перезапустим fail2ban чтобы новый файл настроек загрузился:

sudo fail2ban-client reload

Проверим работу:

sudo fail2ban-client status asterisk

Все, теперь Fail2Ban будет блокировать IP-адреса с которых не верно вводятся пароли к аккаунтам Asterisk.

Добавление SIP клиентов в Asterisk

SIP клиенты в Asterisk указываются в файле sip.conf, поэтому откроем его например в текстовом редакторе nano (Ctrl+X для выхода из редактора, y или n для сохранения или отмены изменений):

Читать далее «Добавление SIP клиентов в Asterisk»

Установка и настройка HAProxy в Linux

HAProxy — прокси-сервер для балансировки нагрузки TCP и HTTP приложений, методом распределения на несколько серверов.

Команда установки HAProxy в Ubuntu/Debian:

sudo apt-get install haproxy

Для CentOS:

yum install haproxy

Посмотреть установленную версию можно командой:

haproxy -v

Проверим будет ли он автоматически запускаться при включении системы, должно быть ENABLED=1 (в редакторе nano CTRL+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/default/haproxy

В CentOS просто выполним команду:

chkconfig haproxy on

Сделаем копию конфигурационного файла на всякий случай:

sudo cp /etc/haproxy/haproxy.cfg{,.original}

Откроем в редакторе основной конфигурационный файл:

sudo nano /etc/haproxy/haproxy.cfg

Приведу пример конфигурации:

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    contimeout     5000
    clitimeout     50000
    srvtimeout     50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http
    retries 3
        
listen webfarm 0.0.0.0:80
    mode http
    stats enable
    stats uri /haproxy?stats
    stats auth user:password
    maxconn 5000
    balance roundrobin
    option httpclose
    option forwardfor
    server webserver01 192.168.88.50:80 check
    server webserver02 192.168.88.51:80 check

Параметр maxconn 5000 определяет максимальное количество одновременных соединений, 0 используется для снятия лимита, если не указывать то будет стандартно 2000.

Например чтобы использовать Apache2 на этой же локальной машине, изменим в /etc/apache2/ports.conf и /etc/apache2/sites-enabled/ конфигурационных фалйах номер его порта с 80 например на 81, а в /etc/haproxy/haproxy.cfg укажем:

server webserver01 0.0.0.0:81 check

Каждый раз после изменений конфигурации необходимо выполнять перезапуск:

sudo service apache2 restart
sudo service haproxy restart

На этом установка и основная настройка HAProxy завершена.

Установка Digium Asterisk GUI

Digium Asterisk GUI — web-интерфейс управления Asterisk.

Сегодня буду лепить его к Asterisk 11 на Ubuntu Server 14.04 LTS.
Переключимся сразу на root пользователя:

sudo -i

Скачаем его:

apt-get install subversion
mkdir -p ~/asterisk-gui
cd ~/asterisk-gui
svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0/

Скомпилируем и установим:

cd 2.0
./configure
make
make install

На всякий случай сделаем копию файлов конфигурации Asterisk:

cp -r /etc/asterisk /etc/asterisk.original

Откроем конфигурационный файл manager.conf например в редакторе nano (Ctrl+X для выхода из редактора, y/n для сохранения или отмены изменений):

nano /etc/asterisk/manager.conf

Основные параметры которые должны быть настроены в конфигурационном файле manager.conf:

[general]
enabled = yes
webenabled = yes
bindaddr = 0.0.0.0
[ИМЯ_ПОЛЬЗОВАТЕЛЯ]
secret = ПАРОЛЬ
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

В самом конце файла заменим обязательно символ # на ; иначе не сможете зайти под прописанным выше логином и паролем.

Теперь отредактируем http.conf:

nano /etc/asterisk/http.conf

В нем укажем следующие параметры веб сервера:

enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
prefix=asterisk

Выполним проверку настроек:

make checkconfig

Удалим пустую папку и укажем ссылку на реальную с файлами веб-сервера:

rmdir /usr/share/asterisk/static-http/
ln -s /var/lib/asterisk/static-http/ /usr/share/asterisk/

Перезапустим Asterisk:

/etc/init.d/asterisk restart

Теперь Digium Asterisk GUI должен открываться по ссылке http://192.168.56.102:8088/asterisk/static/config/index.html, где 192.168.56.102 это IP или домен севрера с Asterisk.

Для входа укажем логин и пароль прописанные ранее в файле manager.conf

Все.

Решение ошибки «Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/)»

Заметил как-то ошибку при выполнении apt-get install и прочих команд с apt-get:

Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Ошибку заметил на своём виртуальном тестовом Ubuntu Server, на котором я выполнял различные установки через apt-get install и в процессе выполнения пропало электричество, и установка не была завершена.

В моём случае после включения сервера установка продолжилась в фоновом режиме и естественно apt-get команды не принимались, по этому для решения ошибки лучший вариант — просто подождать, командой «top» можно заметить что продолжается процесс установки.
Также если включено автообоновление, то система может устанавливать их, в этом случае желательно подождать.

Если нет времени ждать, то можно разблокировать каталог командой:

sudo fuser -vki /var/lib/dpkg/lock

Вот и все.