Last active
August 29, 2015 14:14
-
-
Save CBoJI/b7c70641fa0d04257302 to your computer and use it in GitHub Desktop.
защита от брут-форса SSH
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# можно заюзать fail2ban. больше настроек, больше функционал!!! | |
борьба с брут-форсом ssh | |
>>> last - список последних аутентификаций | |
если выдается ошибка | |
>>> last: /var/log/wtmp: No such file or directory | |
>>> Perhaps this file was removed by the operator to prevent logging last info. | |
то либо дистрибутив не создал файл для логирования, либо хакер ее снес | |
>>> tailf /var/log/auth.log - посмотреть попытки аутентификации. при переборе есть возможность, что увидим брут-форс | |
ЗАЩИТА: | |
если команда last не работает, то | |
>>> sudo touch /var/log/wtmp | |
>>> sudo chown root:utmp /var/log/wtmp | |
>>> sudo chmod 0664 /var/log/wtmp | |
далее: | |
Защита от брутфорса с помощью IPTABLES | |
>>> sudo iptables -L -n -v | |
Где: | |
-L : Показать список правил. | |
-v : Отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы 'K', 'M' or 'G'. | |
-n : Отображать IP адрес и порт числами (не используя DNS сервера для определения имен. Это ускорит отображение). | |
Защищаем 22 порт ssh от перебора паролей по словарю (брутфорса) с помощью iptables | |
Правило даёт 3 неудачных попытки. При последующих попытках бот блокируется на 60 секунд. Время блокировки и количество попыток подбираете самостоятельно. | |
>>> sudo iptables -A INPUT -p tcp -i eth0 --syn --dport 22 -m recent --name SSH --set | |
>>> sudo iptables -A INPUT -p tcp -i eth0 --syn --dport 22 -m recent --name SSH --update --seconds 60 --hitcount 4 -j DROP | |
--recent : позволяет создавать динамические списки адресов IP. Модуль поддерживает ряд опций | |
--name name SSH: имя списка, с которым работает команда. По умолчанию для списка используется имя DEFAULT | |
--update : опция будет проверять наличие адреса отправителя пакета в списке. Если адрес присутствует, соответствующая запись обновляется. При отсутствии адреса в списке возвращается значение false. | |
--hitcount hits : счетчик, возвращает true при наличии адреса в списке, когда число принятых пакетов с адреса больше или равно заданного значения. Используется совместно с rcheck или update | |
--seconds seconds : определяет период (от момента занесения адреса в список), в течение которого адрес может находиться в списке | |
--set : служит для добавления адреса отправителя пакета в список. Если такой адрес уже есть в списке, запись будет обновлена | |
сохраняем правила iptables, дабы после перезагрузки они не слетали | |
>>> sudo apt-get install iptables-persistent | |
>>> sudo invoke-rc.d iptables-persistent save |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment