前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux防止ssh暴力破解常用方案

Linux防止ssh暴力破解常用方案

作者头像
SAnBlog
发布2020-10-27 18:10:04
7.5K0
发布2020-10-27 18:10:04
举报
文章被收录于专栏:SAnBlogSAnBlog

前言

很久不管云服务器了,最近逛V2EX发现很多帖子讲到了服务器被暴力攻击,并且很多大佬也提供了很多实质性的解决方案,同时也意识到了自己对安全方面防范的欠缺,本文章主要讲个人服务器最简单几个方案(再难我也不会啊...)

环境

Centos7

是否被暴力破解?

last

用于显示用户最近登录信息,可以看到哪些用户在哪个时间访问登录了机器,同时查看ip是不是自己的常用地址

注意:last是显示成功登录的信息

lastb

用于列出登入系统失败的用户相关信息,通过查看访问时间间隔和相关账户分析是否正在暴力破解

这些用户在我服务器上一个都没有,同时访问很频繁有时候一分钟几次.ip很多都是境外ip,大概可以断定被暴力破解了.(心疼,服务器跑了几年)

tip:

-n 显示前指定行数

如何防范

大概分为以下几种,越靠前安全系数越高.

1.更改ssh默认端口2.禁用root用户3.安装fail2ban4.限制安全组入站规则5.开启firewalld防火墙并设置开启端口

更改ssh默认端口

代码语言:javascript
复制
 vim /etc/ssh/sshd_config

修改Port

Port端口,建议改为高位端口

Linux端口1024以下是系统保留的,从1024-65535是用户使用的。

建议改为10000以上,暴力破解基本都是从低往高扫,越高越好.

禁用root用户

注意,禁用root用户之前要先添加一个普通用户

代码语言:javascript
复制
useradd xxxpasswd xxx

xxx为要添加的普通用户名,添加普通用户后记得设置密码,否则登录不上服务器就凉了兄弟

禁用root登录

代码语言:javascript
复制
 vim /etc/ssh/sshd_config

修改以下配置

代码语言:javascript
复制
#LoginGraceTime 2mPermitRootLogin no #禁止root#StrictModes yesMaxAuthTries 4 #登录失败重试次数#MaxSessions 10

重启ssd服务

代码语言:javascript
复制
systemctl restart sshd

tip:

新开一个终端测试普通用户能正常登录再退出root用户,如果配置错误导致所有用户都登不上那凉了,切记!!!

安装fail2ban

代码语言:javascript
复制
sudo yum install fail2ban -y

配置

代码语言:javascript
复制
sudo vi /etc/fail2ban/jail.local
代码语言:javascript
复制
[DEFAULT]# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名# 用于指定哪些地址可以忽略 fail2ban 防御(白名单),设置自己常用ip免登不上ignoreip = 127.0.0.1 #多个空格隔开# 客户端主机被禁止的时长(秒)bantime = 86400# 客户端主机被禁止前允许失败的次数 maxretry = 5# 查找失败次数的时长(秒)findtime = 600mta = sendmail[ssh-iptables]enabled = truefilter = sshdaction = iptables[name=SSH, port=ssh, protocol=tcp]sendmail-whois[name=SSH, dest=youremail@qq.com, sender=fail2ban@email.com]# Debian 系的发行版 logpath = /var/log/auth.log# Red Hat 系的发行版logpath = /var/log/secure# ssh 服务的最大尝试次数 maxretry = 3

重启fail2ban

代码语言:javascript
复制
sudo systemctl restart fail2ban

为了验证fail2ban成功运行,使用参数’ping’来运行fail2ban-client 命令。如果fail2ban服务正常运行,你可以看到“pong(嘭)”作为响应。

代码语言:javascript
复制
sudo fail2ban-client pingServer replied: pong

参考资料:

如何使用-fail2ban-防御-ssh-服务器的暴力破解攻击

限制安全组入站规则

在云服务器厂商控制面板设置安全组开放端口,没用到的端口全部关掉,开放几个必要服务端口即可.

开启firewalld防火墙并设置开启端口

Centos7中firewalld为默认防火墙,设置服务用到的开放端口

服务常用命令

启动:systemctl start firewalld

查看状态:systemctl status firewalld

禁用:systemctl disable firewalld

禁止:systemctl stop firewalld

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

重新载入(添加,删除后要重新载入生效)

firewall-cmd --reload

查看是否生效

firewall-cmd --zone=public --query-port=80/tcp

删除

firewall-cmd --zone=public --remove-port=80/tcp --permanent

查看所有打开的端口

firewall-cmd --zone=public --list-ports

参考资料

CentOS7为firewalld添加开放端口及相关操作

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAnBlog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境
  • 是否被暴力破解?
    • last
      • lastb
      • 如何防范
        • 更改ssh默认端口
          • 禁用root用户
            • 安装fail2ban
              • 配置
                • 重启fail2ban
                • 限制安全组入站规则
                • 开启firewalld防火墙并设置开启端口
                • 参考资料
                相关产品与服务
                云服务器
                云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档