Я размещаю свой блог в облачном сервере, и я настроил ssh для управления моим Ubuntu Linux 16.04 LTS-сервером. Тем не менее, я зафиксировал множество попыток взлома и использование и brute-force атаки на мой ssh-сервер? Как я могу остановить попытки взлома в моей системе?
Вам необходимо использовать DenyHosts, который является средством защиты от вторжений на основе протокола для серверов SSH, написанных на Python. Он предназначен для предотвращения brute-force атаки на SSH-серверах путем мониторинга недействительных попыток входа в журнал проверки подлинности и блокировки исходящих IP-адресов с использованием /etc/hosts.deny и iptables на сервере Linux. В этом руководстве вы узнаете, как установить DenyHosts в программу python, которая автоматически блокирует атаки ssh, добавляя записи в файл /etc/hosts.deny.
Шаг 1 – Установка denyhosts
Введите следующие команды apt-get command или apt command для того, чтобы установить denyhosts на Ubuntu Linux:
$ sudo apt-get install denyhosts
ИЛИ
$ sudo apt install denyhosts
Примеры возможных выводов данных:
Шаг 2 – Занесите ваш собственный IP адрес в «белый список»
Отредактируйте /etc/hosts.allow файл, и добавьте IP-адрес вашего клиента. Это гарантирует то, что вы случайно не будете заблокированы:
$ sudo vi /etc/hosts.allow
Синтаксис выглядит следующим образом:
sshd: whitelist-ip1, whitelist-ip2, ...., whitelist-ipN
Например, занесите в «белый список» 202.54.1.1 и 203.54.2.3, для этого введите:
sshd: 202.54.1.1 , 203.54.2.3
Сохраните изменения и выйдете из файла.
Шаг 3 – Настройка denyhosts с помощью /etc/denyhosts.conf
В системе на базе Debian или Ubuntu Linux режим работы по умолчанию — это режим демона (daemon), а файл конфигурации — /etc/denyhosts.conf:
$ sudo vi /etc/denyhosts.conf
Обязательно убедитесь, что SECURE_LOG настроен следующим образом:
SECURE_LOG = /var/log/auth.log
HOSTS_DENY необходимо настроить следующим образом:
HOSTS_DENY = /etc/hosts.deny
Для блокировки только sshd:
BLOCK_SERVICE = sshd
Установить пороговый лимит отказа для попыток входа в систему:
DENY_THRESHOLD_INVALID = 5 DENY_THRESHOLD_VALID = 10 DENY_THRESHOLD_ROOT = 1 DENY_THRESHOLD_RESTRICTED = 1
Блокировать входящие подключения с использованием брандмауэра Linux IPTABLES:
IPTABLES = /sbin/iptables
Сохраните изменения и выйдете из файла.
Перезапустите службу denyhosts
Введите следующую команду на Ubuntu Linux 16.04 LTS или более новой версии:
$ sudo systemctl restart denyhosts.service
Для более старых версий Ubuntu/Debian Linux или систем не на основе systemd, введите:
$ sudo /etc/init.d/denyhosts restart
Включение службы denyhosts на Ubuntu Linux 16.04 LTS во время загрузки
Введите следующую команду:
$ sudo systemctl enable denyhosts.service
Примеры возможных выводов данных:
Synchronizing state of denyhosts.service with SysV init with /lib/systemd/systemd-sysv-install... Executing /lib/systemd/systemd-sysv-install enable denyhosts
Шаг 4 – Наблюдайте за файлом журнала /var/log/denyhosts для выявления ошибок
Введите следующую команду grep command :
$ sudo grep 'something' /var/log/denyhosts
ИЛИ команду tail :
$ sudo tail -f /var/log/denyhosts
Примеры возможных выводов данных:
2017-02-10 18:23:37,811 - denyhosts : INFO restricted: set([]) 2017-02-10 18:23:37,812 - AllowedHosts: WARNING Couldn't load warned hosts from /var/lib/denyhosts/allowed-warned-hosts 2017-02-10 18:23:37,812 - denyhosts : INFO launching DenyHosts daemon (version 2.10)... 2017-02-10 18:23:37,813 - denyhosts : INFO DenyHost daemon is now running, pid: 25774 2017-02-10 18:23:37,813 - denyhosts : INFO send daemon process a TERM signal to terminate cleanly 2017-02-10 18:23:37,813 - denyhosts : INFO eg. kill -TERM 25774 2017-02-10 18:23:37,814 - denyhosts : INFO monitoring log: /var/log/auth.log 2017-02-10 18:23:37,814 - denyhosts : INFO sync_time: 3600 2017-02-10 18:23:37,814 - denyhosts : INFO purging of /etc/hosts.deny is disabled 2017-02-10 18:23:37,814 - denyhosts : INFO denyhost synchronization disabled
Шаг 5 – Как просмотреть список заблокированных хостов
Введите следующую команду cat command :
$ sudo cat /etc/hosts.deny
Примеры возможных выводов данных:
Обратите внимание, что DenyHosts ограничивается соединениями с использованием IPv4. Он не работает с IP-адресом на основе IPv6. Другой вариант — использовать команду iptables для просмотра заблокированного IP-адреса:
$ sudo iptables -L INPUT -n -v $ sudo iptables -L INPUT -n -v | more $ sudo iptables -L INPUT -n -v | grep DROP
Примеры возможных выводов данных:
Chain INPUT (policy DROP 526 packets, 103K bytes) 0 0 DROP all -- * * 193.201.224.199 0.0.0.0/0 24 1272 DROP all -- * * 75.146.185.254 0.0.0.0/0 0 0 DROP all -- * * 78.56.6.211 0.0.0.0/0 80 4744 DROP all -- * * 60.250.157.222 0.0.0.0/0 2342 122K DROP all -- * * 123.30.37.44 0.0.0.0/0 0 0 DROP all -- * * 163.172.87.229 0.0.0.0/0
Как включить поддержку централизованной синхронизации?
DenyHosts версии 2.0 и выше поддерживает централизованную синхронизацию, так что повторные нарушители блокируются со многих компьютеров. Сайт xmlrpc.denyhosts.net собирает статистику с компьютеров, на которых запущено программное обеспечение. Синхронизация отключена по умолчанию. Чтобы включить синхронизацию, введите:
$ sudo vi /etc/denyhosts.conf
Выставит опцию config следующим образом:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
Сохраните и закройте файл. Введите следующую команду в Ubuntu Linux 16.04 LTS или новее, чтобы перезапустить службу:
$ sudo systemctl restart denyhosts.service
Для более старых версий Ubuntu/Debian Linux или систем не на основе systemd, введите следующую команду для перезапуска службы:
$ sudo /etc/init.d/denyhosts restart
Как запустить службу denyhosts?
Введите следующую команду в Ubuntu Linux 16.04 LTS или новее, чтобы запустить службу:
$ sudo systemctl start denyhosts.service
Для более старых версий Ubuntu/Debian Linux или систем не на основе system, введите следующую команду для запуска службы:
$ sudo /etc/init.d/denyhosts start
Как прекратить работу службы denyhosts service?
Введите следующую команду в Ubuntu Linux 16.04 LTS или новее, чтобы прекратить работу службу:
$ sudo systemctl stop denyhosts.service
Для более старых версий Ubuntu/Debian Linux или систем не на основе system, введите следующую команду для прекращения работы службы:
$ sudo /etc/init.d/denyhosts stop
Другие рекомендации по обеспечению безопасности сервера OpenSSH
- Запретите корневой вход;
- Запретите вход на основе пароля;
- Используйте вход ssh-keybased.
Для получения большей информации перейдите на домашнюю страницу проекта denyhosts.
Перевод: Анна Давыдова
Источник: cyberciti.biz
Это интересно: