Какой самый простой способ настроить максимальное количество попыток входа в систему в среде LAMP (sshd устанавливается через yum)? Есть ли пакет или простое правило брандмауэра?
Какой самый простой способ настроить максимальное количество попыток входа в систему в среде LAMP (sshd устанавливается через yum)? Есть ли пакет или простое правило брандмауэра?
Ответы:
Я использую Fail2ban ; Я использовал Denyhosts в прошлом, и он тоже работает довольно хорошо. Я предпочитаю Fail2ban сейчас, потому что он более настраиваемый и более способен обрабатывать мониторинг нескольких различных сервисов - например, страницу входа вашего sshd и вашего веб-приложения одновременно (при условии, что вы регистрируете сбои).
Другой метод, который вы могли бы рассмотреть, - это реализовать правило LIMIT iptables
; К сожалению, я не могу помочь вам с этим, если только вы не хотите установить Shorewall , и тогда я просто укажу вам на отличную документацию на этом сайте о том, как настроить правило LIMIT, чтобы, ну, в общем, ограничить возможность кого-то грубить -силите свой сервер.
Я не люблю использовать любые сторонние инструменты. Поэтому я использовал комбинацию конфигурации ssh и настроек брандмауэра. Согласно следующему решению злоумышленнику разрешено произвести ровно 3 входа в систему с ошибками за 2 минуты, или он будет заблокирован на 120 секунд.
1) Добавьте следующую строку в /etc/ssh/sshd_config
MaxAuthTries 1
Это позволит только 1 попытку входа в систему на соединение. Перезапустите сервер SSH.
2) Добавьте следующие правила брандмауэра
Создать новую цепочку
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
Блокируйте каждый IP-адрес на 120 секунд, что устанавливает более трех подключений в течение 120 секунд. В случае четвертой попытки подключения запрос передается в SSHATTACK
цепочку, которая отвечает за регистрацию возможной атаки ssh и, наконец, отбрасывает запрос.
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
3) Просмотрите записи журнала возможных ssh-атак в /var/log/syslog
Dec 27 18:01:58 ubuntu kernel: [ 510.007570] Possible SSH attack! IN=eth0 OUT= MAC=01:2c:18:47:43:2d:10:c0:31:4d:11:ac:f8:01 SRC=192.168.203.129 DST=192.168.203.128 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30948 DF PROTO=TCP SPT=53272 DPT=1785 WINDOW=14600 RES=0x00 SYN URGP=0
Нет конкретного пакета, связанного с SSH, чтобы настроить это. Однако вы можете установить CSF, который является ConfigServer & Firewall.
Два изменения конфигурации, которые я бы посоветовал внести в файл: / etc / ssh / sshd_config
Ограничьте максимальное количество неаутентифицированных соединений, которые ssh-сервер будет обрабатывать одновременно. Чем меньше это, тем сложнее для сценаристов делать параллельные, скоординированные попытки взлома с несколькими соединениями. отредактируйте sshd_config и измените MaxStartups со значения по умолчанию «10» на «3:50:10». Значения, разделенные двоеточиями, говорят серверу ssh: «разрешить 3 пользователям одновременно пытаться войти в систему и произвольно и все чаще сбрасывать попытки подключения между 3 и максимум 10». Примечание: это должно быть увеличено на серверах с существенным числом авторизованных пользователей ssh.
Уменьшите максимальное количество времени, разрешенное для успешного входа в систему перед отключением. По умолчанию 2 минуты - это слишком много времени, чтобы держать открытой попытку неаутентифицированного подключения (см. Выше); 30 секунд более чем достаточно для входа в систему:
Я использую эти правила IPTables для этого:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j DROP
Это позволит только 4 пакета TCP / SYN на порт 22 с IP-адреса в течение 5 минут. Если он делает больше попыток, дверь закрывается до истечения 5 минут.
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 48/hour -j ACCEPT
.
есть опция, которую вы можете поместить в файл sshd_config для сервера:
MaxAuthTries
Specifies the maximum number of authentication attempts permitted per
connection. Once the number of failures reaches half this value, additional
failures are logged. The default is 6.