如何做好Linux系统安全加固之账号安全?11个安全小技巧分享
原创
引言
Linux系统作为服务器和桌面操作系统的首选,其保险性一直是用户关注的焦点。账号保险作为系统保险的重要组成部分,直接关系到整个系统的保险。以下是一些减成本时间Linux系统账号保险性的小技巧,帮助您加固系统保险。
1. 使用强密码策略
确保所有账号都使用强密码,密码应包含大小写字母、数字和特殊字符,并且长度至少为8位。以下是一个单纯的示例代码,用于生成强密码:
#!/bin/bash
tr -dc 'A-Za-z0-9!' < /dev/urandom | head -c 20 ; echo;
2. 局限登录尝试次数
通过局限登录尝试次数来防止暴力破解。以下是一个配置SSH登录尝试次数的示例:
# 编辑SSH配置文件
vi /etc/ssh/sshd_config
# 添加以下配置
LoginGraceTime 30
MaxAuthTries 5
MaxSessions 2
3. 使用账号锁定策略
当用户连续未果登录尝试大致有一定次数时,自动锁定账号。以下是一个配置账号锁定策略的示例:
# 编辑pam.conf文件
vi /etc/pam.d/common-password
# 添加以下行
auth required pam_tally.so onerr=fail deny=5 unlock_time=300
# 编辑shadow文件
vi /etc/shadow
# 将锁定账号的密码替换为“!!”即账号被锁定
user:x:!!:0:0:99999:7:::
4. 使用sudo命令授权
避免直接使用root账号进行操作,而是使用sudo命令授权。以下是一个配置sudo的示例:
# 编辑sudoers文件
vi /etc/sudoers
# 添加以下行,允许用户user执行所有命令
user ALL=(ALL) ALL
5. 定期更改密码
定期更改密码可以有效降低密码泄露的风险。以下是一个配置密码更改策略的示例:
# 编辑chage命令配置文件
vi /etc/security/pwquality.conf
# 修改以下配置
minlen = 8
difok = 3
maxrepeat = 2
minclass = 3
# 编辑shadow文件
vi /etc/shadow
# 修改用户密码过期时间
user:!!:16036:0:99999:7:::
6. 禁用不必要的服务和账号
关闭和禁用不必要的服务和账号可以降低攻击面。以下是一个关闭不必要服务的示例:
# 关闭NFS服务
systemctl stop nfs-server
systemctl disable nfs-server
# 关闭SSH服务
systemctl stop ssh
systemctl disable ssh
7. 使用SSH密钥认证
使用SSH密钥认证代替密码认证,可以进一步减成本时间保险性。以下是一个生成SSH密钥对和配置SSH客户端的示例:
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥复制到服务器
ssh-copy-id user@server
# 编辑SSH客户端配置文件
vi ~/.ssh/config
# 添加以下行
Host server
HostName server
User user
IdentityFile ~/.ssh/id_rsa
8. 使用防火墙保护系统
配置防火墙规则,只允许必要的端口和流量,可以有效防止未经授权的访问。以下是一个配置iptables防火墙的示例:
# 编辑iptables规则
vi /etc/sysconfig/iptables
# 添加以下规则
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT