SSH скотина лицо, поддуржки движение

В ходе последней строки в облаке, часто встречающиеся в связывании общественного облака плавающего IP хост подвергается внешним атакам грубой силы SSH проблемы слабых паролей и пользовательских настроек, проблемы безопасности возникают из-за мышление защиты от SSH грубой силы ,

SSH перебор

гидра медуза и топ в мире инструмент для брут силы пароля, который поддерживает онлайн пароль трещину почти все протоколы, мощный, пароль может быть взломан ключ зависит от того, достаточно сильно, чтобы сломать словарь. В процессе проникновения сетевой безопасности, гидры и медузы являются важным инструментом теста, с социальными работниками библиотеки социальной инженерии атаками, иногда получить неожиданные результаты. Оба инструмента использует пароль словарь значок исчерпывающего процесс SSH пароль.

 

Iptables ограничить частоту доступа SSH

Лицо грубой силы, в соответствии с его рабочим принципом, известный: уменьшить частоту проб и ошибок, проб и ошибок, чтобы улучшить их время, что позволит увеличить время, чтобы сломать невыносимую степень, она является эффективным средством профилактики.

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

модуль Iptables, вызвав состояние и недавний модуль, предел частоты для доступа к SSH. В центре внимания здесь объяснить необычные последние модули расширения.

недавний модуль

Последние, расширение может создать динамический список IP-адресов для конца матча, достигнутого во многих различных формах. Расширение поддерживает следующее количество вариантов:

Содержание правила Iptables

Для достижения частоты управления доступом SSH, IPtables два правила заключаются в следующем:

# Если источник доступа SSH IP-адрес в недавнем списке доступа, время доступа в течение 60 секунд, и не менее чем в 3 раза, а затем выбросить.        

IPTables -I INPUT -p TCP --dport 22 -m состояния --state NEW -m недавний --name SSH_RECENT --rcheck --seconds 60 --hitcount 3 -j DROP 

# Если доступ SSH, то недавно добавлен список IP-доступа источника.                                        

Iptables -I INPUT -p TCP --dport 22 -m состояние --state NEW -m недавнее --name SSH_RECENT -set                                                           

получать результаты

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

 

В / Proc / нетто / каталог xt_recent, есть файл журнала с именем SSH_RECENT из. Файлы, записанные в IPTables правила введённых SSH послужном недавно доступ источник информации IP и время доступа. В чем запись oldest_pkt по умолчанию 20, по Modprobe ipt_recent ip_pkt_list_tot = 50 большой тон. IP является источником по умолчанию запись 100, по Modprobe ipt_recent ip_list_tot = 1024, чтобы увеличить число записей.

 

Iptables открыта SSH функция дистанционного

В любое время атаки Муха кибер-сети начали в расследовании. Если злоумышленник не был найден в стадии исследования сети целевой открытия SSH службы авторизации, который будет также расстроить свои планы по запуску нападения на SSH. Вот обычная операция, чтобы изменить значение по умолчанию SSH порт 22 номеру порта запутать другое программное обеспечение для сканирования портов. Фактическое сканирование или может быть специфическим для расслоения порта службы с помощью таких средств, как птар, как показано ниже. Вот через хитрый способ, используя длину пакета ICMP, обозначенную как ключ, чтобы открыть службу SSH на хосте. порт SSH сервис скрыт таким образом.

Содержание правила Iptables

Чтобы указать длину пакета пакетов ICMP, как ключ, чтобы открыть службу SSH на стороне. Подробные правила Iptables показано ниже.

#用78字节的icmp数据包作为钥匙(包含IP头部20字节,ICMP头部8字节),将源IP加入SSH白名单          iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --name SSH_ALLOW --set -j ACCEPT                                             

#检查访问SSH服务的源IP是否在白名单中,且白名单中的IP有效期为15秒。若在白名单中则放行通讯。 

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH_ALLOW  --rcheck --seconds 15 -j ACCEPT  

#对于已建立的SSH连接放行                                                          

iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT                                                                            

#其他SSH无关匹配全部拒止                                                           

iptables -A INPUT -p tcp --dport 22 -j DROP

实现效果

最终可以实现下图所示效果。在未使用指定包长ICMP之前,SSH服务无法通行(步骤1)。在使用指定包长ping之后(步骤2),使用SSH可以正常连接(步骤3)。以此实现了指定包长ICMP作为钥匙开启SSH通信服务的效果。其原理与上节限制SSH通信频率的原理一致。

 

Fail2ban防止SSH暴力破解

安装:

Centos上可以直接通过yum install fail2ban –y安装。安装完成后,可在/etc/fail2ban路径下找到程序运行的相应文件。在filter.d目录下存放有fail2ban支持的所有过滤器,action.d目录下存放有fail2ban支持的所有动作。通过在jail配置文件中组合多种过滤器与动作,可以实现各种自定义的防御功能(不仅限于SSH防护)。

配置及运行:

对于fail2ban而言,每个.conf配置文件都可以被同名的.local文件重写。程序先读取.conf文件,然后读取.local文件。.local中的配置优先级更高。通过新建jail.local,增加下述配置,运行fail2ban-client start来实现对SSH暴力破解的防御。

[DEFAULT]

#白名单

ignoreip = 127.0.0.1/8

#解封禁时间

bantime  = 600

#试错窗口时间

findtime  = 600

#容许试错次数

maxretry = 3

[ssh-iptables]

#使能

enabled = true

#选择过滤器

filter = sshd

#选择防御动作

action = iptables[name=SSH, port=ssh, protocol=tcp]

#邮件通知

sendmail-whois[name=SSH,[email protected], [email protected]]

#SSH日志路径

logpath = /var/log/secure

#容许试错次数(优先级比default高)

maxretry = 1

运行效果:

通过对目标主机的SSH试错,/var/log/secure日志中记录了SSH登录的错误信息。fail2ban通过对该文件的分析,识别出当前正在遭遇到SSH的暴力破解,继而触发防御功能。fail2ban-client status命令可以查看当前fail2ban的运行状态,遭遇SSH暴力破解后,识别到的攻击IP被添加至Banned IP list中,实际阻断功能则是fail2ban通过在iptables中下发针对攻击IP的阻断规则来实现。

 

Denyhost防止SSH暴力破解

Denyhost工作原理与Fail2ban基本一致,同样是分析SSH的日志文件,定位重复的暴力破解IP。与Fail2ban通过写iptables规则阻断攻击IP的访问不同,Denyhost通过将攻击IP记录到hosts.deny文件来实现屏蔽攻击IP对SSH的访问。

Denyhost安装:

wget "downloads.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz"

tar -xzf DenyHosts-2.6.tar.gz 

cd DenyHosts-2.6

python setup.py install

Denyhost配置及运行:

#生成配置文件副本

cd /usr/share/denyhosts/

#生成配置文件副本

cp denyhosts.cfg-dist denyhosts.cfg

#生成执行文件副本

cp daemon-control-dist daemon-control 

chmod 700 daemon-control 

#自定义配置文件denyhosts.cfg

#SSH log路径

SECURE_LOG = /var/log/secure

#存储SSH拒止host信息的配置文件路径

HOSTS_DENY = /etc/hosts.deny

#拒止时间,此处配置为10分钟

PURGE_DENY = 10m

#无效用户登录重试次数限制

DENY_THRESHOLD_INVALID = 5

#有效用户登录重试次数限制

DENY_THRESHOLD_VALID = 10

#ROOT用户登录重试次数限制

DENY_THRESHOLD_ROOT = 1

#启动运行

./daemon-control start

Denyhost效果:

从Denyhost的运行日志中看出,对目标主机的多次SSH密码试错触发了Denyhost的防御功能。攻击者的IP被添加至hosts.deny文件,该IP下的SSH访问也被拒止。

 

 

 

网络安全,何来一招鲜

可能有些人要说使用密钥登录就能完美解决SSH暴力破解的问题。这里要说一段历史。2006年Debian Linux发行版中发生了一件有意思的事,软件自动分析工具发现了一行被开发人员注释掉的代码。这行被注释掉的代码用来确保创建SSH秘密钥的信息量足够大。该代码被注释后,密钥空间大小的熵值降低到215。这意味着不论哪种算法和密钥长度,最终生成的密钥一共只有32767个,复杂度比一个纯6位数字的密码的复杂度更差。该错误在两年之后才被发现,无疑相当多的服务器上都利用这这种存在缺陷的弱密钥。(引用自:Violent Python:A Cookbook for Hackers)

网络安全没有一招鲜。前文中列举的四种安全加固方式也无法抵御运维人员设置的弱密码,及攻击者的社工密码库。运维人员,唯有提高自身安全意识,合理利用安全工具,才能保障网络安全。

最后说一句:道路千万条,安全第一条。操作不规范,运维两行泪。

рекомендация

отblog.csdn.net/OpenInfra/article/details/88872989