LINUX.ORG.RU
ФорумAdmin

параноидальная защита 22 порта с помощью iptables

 ,


3

2

Эта запись больше для себя, чтоб не потерялась, но обоснованная критика приветствуется.

Правила делают следующее:

1) 10 минутная пауза для любых новых ip адресов, причем больше 5 попыток в эти 10 минут блокируют ip наглухо.

2) Больше 5 подключений после 10 минут перманентный блок

3) Больше 2 подключений в 5 минут - отброс (можно и исключить)

iptables -N BAN_SSH
iptables -N SSH_2
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --name ssh_baned                           -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_2    --seconds 600 --hitcount 5 -j BAN_SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_2    --seconds 300 --hitcount 2 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_2                               -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_grey --seconds 600 --hitcount 5 -j BAN_SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_grey --seconds 600              -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --name ssh_grey                            -j SSH_2
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --set    --name ssh_grey                            -j REJECT
iptables -A BAN_SSH                        -m recent --set    --name ssh_baned                           -j DROP
iptables -A SSH_2                          -m recent --set    --name ssh_2                               -j ACCEPT

И еще, по умолчанию модуль recent ограничен 100 записями, изменить это дело на 5000000 записей можно например так:

sudo chmod 777 /sys/module/xt_recent/parameters/ip_list_tot
sudo echo 5000000 > /sys/module/xt_recent/parameters/ip_list_tot 
sudo chmod 400 /sys/module/xt_recent/parameters/ip_list_tot


Ответ на: комментарий от entefeed

Не всего. Только там живёт ещё веб-сервер с пятком сайтов, каждый из которых генерит ещё десяток за дня два-три. И эти логи (в отличии от «ломаный говнороутер из поднебесной 100000 раз ломился в ssh с паролем 123456») - таки нужны.

svr4
()
Ответ на: комментарий от entefeed

Если у тебя dmesg/syslog/pocteringbinaryjournal после очередного обновления ядра начнёт пухнуть на 10 гиг в день - ты будешь разбираться, или думать «а можа так и трэба?».

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Ответ на: комментарий от svr4

Давно у тебя ssh в dmesg пишет? О, я кажется понимаю почему ты боишься логов. У тебя все сервисы в один dmesg пишут. Тогда да, лучше обмазаться fail2ban, перенести порт и настроить порт кнокинг и советовать эту груду костылей каждому мимокрокодилу.

entefeed ☆☆☆
()
Ответ на: комментарий от entefeed

И где я советовал кнокинг, зелёный друг?

дмесг был приведён как пример лога ЯДРА, о мой толстозадый.

Значит, остановимся на том что приложение (или ядро), внезапно начинающее срать по десятку гигов в сутки - это (с акцентом Лукашенки) так и трэба. Эта ж ло(х)ги!

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Ответ на: комментарий от svr4

Разве ротация логов не работает отдельно для разных демонов? То есть если начнёт пухнуть лог SSH, то удалятся самые старые записи только из него.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

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

svr4
()
Ответ на: комментарий от svr4

Зато ты создаёшь другую ненужную ситуацию.

1) Ты выходишь в интернет из публичного Wi-Fi, либо с интернета с динамическим IP или перегруженным NAT (мобильные операторы этим отличаются особенно). И оказывается, что с твоего IP кто-то уже пытался зайти на сервер, только вот неудачно (миллионы хомячков с завирусованными компьютерами). И всё, ты зайти не можешь, хотя знаешь все ключи.

2) Ты допустил небольшую ошибочку. Опечатку в пароле не рассматриваем, потому что пароли SSH не нужны. Скажем, в том же ConnectBot на Android (SSH-клиент) забыл тапнуть по ключу, чтобы он использовался при авторизации. И всё, сервер тебя забанил.

А теперь представь, что это произойдёт в важный и ответственный момент, когда тебе нужно срочно получить доступ к серверу (отсюда использование сомнительных интернет-каналов и спешка).

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

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

ssh на ведроиде

И что можно сделать с экранной недоклавиатурой (сложнее ls -l и uname -a)? Учитывая, что чтобы ps axu | awk '{print $100500}' набрать - надо 5 раз переключаться на разные раскладки.

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Ответ на: комментарий от svr4

может он в госконторе и его отдел К долбит и штрафует за плохую защиту? был как то у нас товарищ, отработал он 3 года админов в одном закрытом учреждении, его задалбивали взламывать, логи засирать и тд коллеги по цеху, у которых в этом состоит работа, поэтому он и хочет всё так блочить, чтобы те даже возможные дырки в софте не юзали.

erzented
()
Ответ на: комментарий от svr4

И что можно сделать с экранной недоклавиатурой (сложнее ls -l и uname -a)? Учитывая, что чтобы ps axu | awk '{print $100500}' набрать - надо 5 раз переключаться на разные раскладки.

Все зависит от отношения «время на набор подобных команд*на кол-во команд» к «время добраться до компа». Бывает что так удобнее.
Мне вот тут понадобилось через rdc к виндовому компу подключится с яблока 5s, поверьте набор команд это гораааздо удобнее чем мышой елозить с подобного устройства :)

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.