服务器的简易安全设置

        购买云服务器之后,我们也应该注意一下关乎我们云服务器的安全问题。

        在这里介绍一下简易的安全配置。

        环境是Ubuntu 22.04 LTS

        当你购买云服务器,并且放行ssh连接端口的一刻,一些寻找肉鸡的坏人就会开始对你的云服务器开始扫描了,我们还没开始仔细研究,就被扫了这么多次。还是要留意下安全问题的。

登录日志

查看登录日志文件

cat /var/log/auth.log

会看到很多类似如下的日志

Nov 13 20:16:19 localhost sshd[33825]: Failed password for root from 141.98.10.198 port 60224 ssh2
Nov 13 20:16:21 localhost sshd[33825]: Connection closed by authenticating user root 141.98.10.198 port 60224 [preauth]
Nov 13 20:16:26 localhost sshd[33872]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=141.98.10.198  user=root
Nov 13 20:16:28 localhost sshd[33872]: Failed password for root from 141.98.10.198 port 39186 s
Nov 13 20:16:37 localhost sshd[33928]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=141.98.10.198  user=root
Nov 13 20:16:38 localhost sshd[33928]: Failed password for root from 141.98.10.198 port 59936 ssh2
Nov 13 20:16:39 localhost sshd[33928]: Connection closed by authenticating user root 141.98.10.198 port 59936 [preauth]
Nov 13 20:16:41 localhost sshd[33974]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=141.98.10.198  user=root
Nov 13 20:16:43 localhost sshd[33974]: Failed password for root from 141.98.10.198 port 57250 ssh2

查看暴力破解root密码错误登录,展示错误次数和ip

sudo grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

查看暴力破解Ubuntu密码错误登录,展示错误次数和ip

sudo grep "Failed password for ubuntu" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

查看暴力猜用户名的

sudo grep "Failed password for invalid user" /var/log/auth.log | awk '{print $13}' | sort | uniq -c | sort -nr | more

SSH安全配置

编辑 sshd 配置

vim /etc/ssh/sshd_config

修改SSH的默认端口

在Xshell上修改的时候要多留意一下,小心没改好再把自己拒绝在外面。

最好使用1024到65535之间的一个别人猜不到的端口号

查找:#Port 22
修改为: Port 2280

禁止SSH的root用户登录

查找:#PermitRootLogin
添加或修改为: PermitRootLogin no

设置SSH单次登录限制

LogLevel INFO       #将LogLevel设置为INFO,记录登录和注销活动
MaxAuthTries 3      #限制单次登录会话的最大身份验证尝试次数
LoginGraceTime 20   #缩短单次的登录宽限期,即ssh登录必须完成身份验证的时间 单位是秒

重启ssh服务

sudo systemctl restart ssh #或  sudo service ssh restart

查看SSH侦听(监听)端口

sudo netstat -tunlp | grep ssh

安装入侵防御软件Fail2ban

Fail2ban软件安装

sudo apt update
sudo apt install fail2ban

配置fail2ban

配置文件在 /etc/fail2ban/jail.conf  。 在配置文件的[DEFAULT]区,可以在此定义所有受监控的服务的默认参数

[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip =  127.0.0.1/8 ::1

# 客户端主机被禁止的时长
bantime = 120m

# 查找失败次数的时长
findtime = 3m

# 客户端主机被禁止前允许失败的次数 
maxretry = 5

根据上述配置,fail2ban会自动禁止在最近3分钟内有超过5次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在2小时内一直被禁止访问 SSH 服务

保存后重启 fail2ban 软件

sudo service fail2ban restart

查看fail2ban运行状态

sudo systemctl status fail2ban

运行成功

查看运行日志

cat /var/log/fail2ban.log

检验一个特定监狱的状态

sudo fail2ban-client status sshd

上面的命令会显示出当前被禁止IP地址列表

解锁特定的IP地址

sudo fail2ban-client set sshd unbanip 192.168.1.101

更改登录用户

由于腾讯云或者别的云服务厂商都会有特定的一个登录用户。这里用腾讯云作为例子。

查看可以SSH远程登录用户

grep -vE '^(root|halt|sync|shutdown)' /etc/passwd | awk -F: '($7 !~ /nologin|false/) {print $1}'

添加登录用户

sudo adduser <新用户名>

修改用户登录密码

sudo passwd <用户名>

赋予sudo 权限

sudo usermod -aG sudo <用户名>

删除用户

sudo deluser --remove-home <用户名>

查看当前活跃的用户列表

w

到这里可以告一段落了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值