0x1、SSH 暴力破解攻击
描述:
攻击者通过
密码字典
或随机组合密码
的方式尝试登陆服务器。 一般不会有明确攻击目标,针对的是全网机器,通过扫描软件直接扫描整个广播域或网段
。
问了位安全大佬,回复如下:
不用过分担心,设置一个
复杂密码
完事,被搞的基本是用 弱口令(简单数字和字母) 的。
em,设置个复杂密码就好,如果你对谁来撬门感兴趣的话,可以键入下述命令:
grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr | more
输出结果:
1503次,百度查下ip
国外的,基本上就是代理IP了,接着说下几种常见的应对之法:
① 更换ssh端口(推荐)
把ssh端口换成一个不容易被猜解的端口号(最大不能超过65535),一般默认是 22端口
,也可以键入下述命令查看:
netstat -anp|grep ssh
输出结果:
然后键入下述命令修改sshd配置文件:
vim /etc/ssh/sshd_config
找到Port 22所在的那一行,去掉前面的 #
,然后回车输入 Port 自定义端口号
,比如:
这里保留22端口是为了避免配置失败,还能使用22端口进行ssh登录,等配置成功后再来删它!
接着 防火墙放行下设置的端口:
firewall-cmd --zone=public --add-port=1024/tcp --permanent firewall-cmd --reload # 如果出现:FirewallD is not running 说明防火墙还没开启,使用下述命令开启: systemctl start firewalld # 通过下述命令确认防火墙状态,显示 active(running) 代表运行中 systemctl status firewalld # 附:关闭防火墙命令 systemctl stop firewalld # 附:移除端口 firewall-cmd --zone=public --remove-port=1024/tcp --permanent
再接着 向SELinux添加和修改ssh端口号,semanage是SELinux的管理工具,输入sem然后按下 Tab看下有没有自动补全,没有的话需要自行安装一波:
yum install policycoreutils-python yum provides semanage
安装完,通过下述命令向SELinux添加自定义的SSH端口:
semanage port -a -t ssh_port_t -p tcp 1024 # 附:删除端口 emanage port -d -t ssh_port_t -p tcp 端口号
然后,通过下述命令查看是否添加成功
semanage port -l | grep ssh
可以,重启下ssh服务:
systemctl restart sshd.service
接着,ssh新端口试试看能否登陆:
ssh root@xxx.xxx.xxx.xxx -p 1024
如果能连上,可以把 /etc/ssh/sshd_config
中的22端口号删掉了,然后重启下ssh服务。此时再使用22端口访问:
完美,更改端口无法在根本上抵御 端口扫描
,但总比没有好~
② 禁止root账号直接登录(推荐)
Linux默认管理员名为 root
,只需知道root密码即可直接登录SSH,我们这样:
新建一个用户 → 禁用root用户登录 → 使用新账户登录 → su root → 输入root密码切换到root权限
知道流程,然后走一波设置命令:
# 新建用来登录的账户,比如这里的julia useradd julia # 设置密码,回车后输入两次密码 passwd julia # 修改SSHD配置,禁用root登录 vim /etc/ssh/sshd_config
找到 PermitRootLogin yes,把 yes
改为 no
,然后保存:
继续:
# 重启SSHD服务 service sshd restart
此时使用root账户尝试登录,即使密码正确也会提示权限被拒绝~
此时用前面建的账号登录:
ssh julia@xxx.xxx.xxx.xxx -p 1024 # 输入密码正常登录后,键入下述命令,回车后输入原先root账号 # 的密码即可获取root权限 su root