最近入手了雨云的一只小鸡,配置2核4G,价格优惠21.5元,比阿里云的海外ECS是便宜多了。不过小公司的技术肯定比不上大厂,安全性方面差了一些。所以非常有必要自己强化一下,免得被黑客入侵,沦为肉鸡。所以这篇文章就介绍一下我在linux
服务器的一些登陆安全配置。 如果您也想亲自在雨云尝试尝试一下,请填入小果子的优惠码MTg5MDE3
,可以获得首月5折优惠券一张😋
启用防火墙
默认竟然没有安装防火墙,并且网页上的端口限制似乎也没有生效。没办法,只能自己安装防火墙啦。我们只开放网站必要的80和443端口,其他的端口都禁止访问。
啊,那没有22怎么ssh登陆呢?不用担心,防火墙除了端口配置,还有服务配置。输入firewall-cmd --list-services
,可以看到ssh服务已被允许。(如果你的防火墙没有配置ssh服务,那理论上会默认打开22,都没有的话,那就自己加上吧~)
安装
1 | apt-get install firewalld |
配置
1 | firewall-cmd --permanent --add-port=80/tcp |
相关的命令
1 | # 列出所有端口配置 |
SSH 登陆安全
修改默认端口22
绝大多数机器都默认监听22端口,就很容易被扫描到,被未知的漏洞攻击。因此最好修改默认的22端口为其它随机端口号。
修改ssh端口风险较大,可能会导致管理员无法登陆。如没有绝对自信
,请不要直接修改,而是新增一个端口。当确认新端口可以正常登陆后,再去掉默认的22端口。
修改ssh服务配置
vim /etc/ssh/sshd_config
,搜索Port
, 默认22端口的配置是被注释掉的。打开注释,改为其他端口如Port 12322
(或新增一行)。修改防火墙ssh服务端口配置
vim /usr/lib/firewalld/services/ssh.xml
, 把port="22"
修改为更安全的端口,如port="12322"
(或新增一行)。刷新防火墙firewall-cmd --reload
。重启ssh服务
1 | systemctl restart sshd |
配置尝试次数限制faillock
尝试次数限制,就是当密码错误太多次之后,触发一段账户锁定时间。在此期间,即使输入了正确的密码,依然无法成功登陆。由此来避免登陆密码被暴力破解。
注意此配置是有风险的,可能导致管理员无法登陆。在确认正确之前,不要关闭窗口,或退出登陆。而是使用新窗口测试服务器可以正常登陆,并且密码错误可以导致账号锁定。
注意faillock是新版本linux引入的模块,较老版本的登陆锁定配置依赖pam_tally
,修改之前请先确认好自己服务器的情况(如查看命令faillock
是否可以使用)。
直接修改以下两个文件,无需重启服务,即时生效。
vim /etc/pam.d/common-account
1 | # |
vim /etc/pam.d/common-auth
1 | # |
1 | # 查看登陆锁定情况 |
禁止普通账号ssh登陆
- 方法一:
命令行中执行 passwd -l the_user
- 方法二:
有的账号我们仅仅用于服务器自身服务部署,不需要远程登陆。禁用这些账号的ssh登陆权限,可以进一步提高安全性。
- 修改配置文件 vim /etc/ssh/sshd_config,再最后新加一行
DenyUsers the_user
- 然后重启sshd,
systemctl restart sshd