Я изменяю свой /etc/hosts.allow
файл как
sshd : 192.168.0.0/255.255.255.0 : allow
sshd : xxx.xxx.xxx.* : allow
sshd : ALL : deny
(где xxx представляют мои фактические номера IP-адресов, а подстановочный знак * представляет полный диапазон 0-255), затем перезапустите sshd и веб-сервер Apache. На следующей неделе я наблюдаю, как IP-адреса из зарубежных стран продолжают появляться в /etc/csf/csf.deny
.
116.31.116.15 # lfd: (sshd) Failed SSH login from 116.31.116.15 (CN/China/-): 5 in the last 300 secs ...
Верно ли мое ожидание, что IP-адреса запрещены в hosts.allow
файл не должен даже отображаться с экраном входа в систему для попытки входа в систему, и, таким образом, записи в журнале csf.deny доказывают, что мой файл hosts.allow не выполняет то, что я хочу?
Или меня вводит в заблуждение общее сообщение об ошибке (5 in the last 300 secs
) потому что на самом деле эти IP-адреса не пытались ввести пользователя и пароль 5 раз?
Моя цель - не допустить, чтобы неутвержденные IP-адреса могли даже вводить имя пользователя и пароль. Как я могу сказать, достигаю я этого или нет?
Что мне ожидать в файле csf.deny, когда их IP-адрес фактически запрещен?
csf.deny
используется брандмауэром ConfigServer Firewall, и перечисленные там IP-адреса вообще не будут иметь доступа к серверу.
Если IP находится в csf.deny
файл, это означает, что он заблокирован брандмауэром сервера на всех портах и не будет отображаться ни на одном экране входа в систему ни в одной из служб, так как он никогда не будет устанавливать соединения с сервером.
5 за последние 300 секунд означает, что они не прошли процесс аутентификации, в результате чего они были занесены в черный список CSF. Может случиться так, что они ввели неправильные учетные данные или вообще не получили приглашения на вход, если разрешены только ключи SSH.
ввод IP в hosts.allow
позволит ему подключиться к указанной вами службе, но им по-прежнему необходимо ввести правильные учетные данные для подключения к серверу.
IP-адреса, которые не указаны как разрешенные, должны быть представлены следующим сообщением:
ssh_exchange_identification: Connection closed by remote host
Я считаю, что это будет рассматриваться как неудачный вход в систему, если они попытаются подключиться к SSH, в любом случае они попадут в csf.deny, если достигнут предел неудачных попыток входа. Они установят соединение с портом SSH, но не смогут пройти аутентификацию из-за правила запрета, и CSF увидит это как неудачный вход в систему.
Лучшим вариантом блокировки SSH для IP-адресов, не указанных в списке, было бы полное блокирование его в CSF, как описано в конце этого сообщения.
Помимо csf.deny, важные файлы также csf.allow
, и csf.ignore
.
csf.allow
разрешит подключения с указанного IP-адреса на любой исходный порт к любому порту назначения.
csf.ignore
будет игнорировать любые неудачные действия с указанного IP-адреса, он не будет подвергаться ограничениям на неудачные входы в систему или соединения.
вы можете удалить IP из csf.deny
с участием csf -dr IP
и занести его в белый список csf.allow
с участием csf -a IP
Если вы хотите полностью заблокировать SSH для неутвержденных IP-адресов и не хотите csf.deny
растет из-за неудачных попыток входа в систему SSH, вы можете полностью заблокировать порт SSH, 22, если вы не изменили его, удалив его из строки TCP_IN в csf.config
.
После того, как вы что-нибудь измените в csf.config
, вам необходимо перезапустить CSF с помощью csf -r
чтобы перезагрузить файл конфигурации.
Это заблокирует порт 22 для всех IP-адресов, кроме IP-адресов, перечисленных в csf.allow.
Удалив порт 22 из TCP_IN в csf.config
, и введите свои IP-адреса в csf.allow
, вы разрешите только этим IP-адресам подключаться к порту 22, любой другой IP-адрес не будет представлен ни одним SSH-логином, но получит сообщение об истечении времени ожидания при попытке подключиться к SSH.
Если поставить только IP в csf.allow
, это будет разрешено для всех портов, но вы можете указать один порт только с расширенной фильтрацией порт + IP.
Помещая это в csf.allow
позволит подключаться к порту 22 с IP, даже если порт 22 не разрешен в csf.config
.
tcp:in:d=22:s=x.x.x.x