linux服务器安全级别提升配置修改
- 说明
- 修改登录密码策略
- 步骤
- 设置用户密码定期更新
- 登录失败次数锁定
- 步骤
- 锁定系统重要文件
- 文件说明
- 锁定文件
- 解锁文件
- 防火墙设置
- firewalld防火墙
- 查看防火墙状态
- 开启防火墙
- 关闭防火墙
- 重新加载防火墙配置
- 添加端口
- 移除端口
- 添加IP到白名单
- 移除白名单
- 添加IP到黑名单
- 移除黑名单
- 服务器超时退出
- 步骤
- 禁用多余用户
- 设置文件夹只读
说明
为了提升服务器的安全性,适应生产环境。服务器中的配置内容需要进行修改。
以centos7为例,进行配置。
修改登录密码策略
要求用户密码必须满足:
- 至少包含2大写字母
- 至少包含2小写字母
- 至少包含2数字
- 至少包含1个特殊字符
- 长度10位以上
- 只允许重试3次
步骤
- 登录root 用户
- 使用命令编辑 /etc/pam.d/system-auth 文件
vim /etc/pam.d/system-auth
- 在文件中找到 password requisite pam_pwquality.so 开头的行,并用 # 号注释。在此行下添加以下配置
# 说明:
# retry=3: 允许密码重试3次
# minlen=10: 密码长度至少为 10 个字符。
# ucredit=-2: 密码中必须包含至少 2 个大写字母。
# lcredit=-2: 密码中必须包含至少 2 个小写字母。
# dcredit=-2: 密码中必须包含至少 2 个数字。
# ocredit=-1: 密码中必须包含至少 1 个特殊字符。
password requisite pam_pwquality.so retry=3 minlen=10 ucredit=-2 lcredit=-2 dcredit=-2 ocredit=-1
设置用户密码定期更新
要求用户每180天定期更新密码。密码过期前14天系统做出提醒。
使用以下命令即可修改
# 说明:
# -M 180 :设置密码过期天数,180天后密码过期
# -W 14 : 设置密码过期提醒天数。过期前14天进行提醒、
# username :指定设置的linux用户名称
chage -M 180 -W 14 username
登录失败次数锁定
登录失败3次,账户锁定300秒,root 用户也会受到相同的失败次数限制,当 root 用户被锁定后,同样设置锁定时间为300秒.
步骤
- 登录root 用户
- 使用命令编辑 /etc/pam.d/system-auth 文件
vim /etc/pam.d/system-auth
- 在文件中找到 auth required pam_tally2.so 开头的行,并用 # 号注释。在此行下添加以下配置 。没有该行则添加。
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=300
锁定系统重要文件
注意,锁定后的文件连root用户也无法对文件进行修改
必须先使用 chattr -i 命令取消文件的不可修改属性,才能进行修改操作。
文件说明
文件 | 介绍 |
---|---|
/etc/passwd | 文件包含系统中所有用户的基本信息,如用户名、用户 ID、主目录等 |
/etc/group | 文件包含系统中所有用户组的信息,包括组名、组 ID 和组成员 |
/etc/gshadow | 文件包含了与组相关的安全信息,如组密码(加密后的组密码)、组管理等 |
/etc/shadow | 文件存储了系统中所有用户的加密密码和相关设置,如密码过期信息等 |
/etc/crontab | 文件包含了定时任务的设置和配置信息 |
锁定文件
chattr +i /etc/passwd
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/shadow
chattr +i /etc/crontab
解锁文件
chattr -i /etc/passwd
chattr -i /etc/group
chattr -i /etc/gshadow
chattr -i /etc/shadow
chattr -i /etc/crontab
防火墙设置
firewalld防火墙
查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
重新加载防火墙配置
firewall-cmd --reload
添加端口
# 语法: firewall-cmd --add-port=端口号/协议
# --permanent:使规则永久生效,即重启后依然有效。
firewall-cmd --add-port=8080/tcp
# 或者
firewall-cmd --permanent --add-port=8080/tcp
移除端口
# 语法: firewall-cmd --remove-port=端口号/协议
firewall-cmd --remove-port=8080/tcp
添加IP到白名单
# 语法:
# 若要指定网段,则address的值可以写为:address="192.168.83.0/24"格式。
# firewall-cmd --add-rich-rule='rule family="ipv4" source address="IP地址" port protocol="协议" port="端口号" accept'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.83.144" port protocol="tcp" port="8080" accept'
移除白名单
# 语法:
# firewall-cmd --remove-rich-rule='rule family="ipv4" source address="IP地址" port protocol="协议" port="端口" accept'
firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.83.144" port protocol="tcp" port="8080" accept'
添加IP到黑名单
# 语法:
# 若要指定网段,则address的值可以写为:address="192.168.83.0/24"格式。
# firewall-cmd --add-rich-rule='rule family="ipv4" source address="IP地址" drop'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.83.144" drop'
移除黑名单
# 语法:
# firewall-cmd --remove-rich-rule='rule family="ipv4" source address="IP地址" drop'
firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.83.144" drop'
服务器超时退出
要求服务器在没有操作的时候,300后退出登录
步骤
- 使用命令编辑 /etc/profile 文件
vim /etc/profile
- 在文件末尾添加以下配置
TMOUT=300
export TMOUT
禁用多余用户
禁用 sync、shutdown、halt 用户
usermod -L sync
usermod -L shutdown
usermod -L halt
设置文件夹只读
将指定的文件夹设置为所有用户只读。设置后文件夹不可修改、上传文件。
# 说明:
# chmod:更改文件模式(权限)的命令。
# -R:递归地更改目录及其所有子目录和文件的权限。
# 555:权限设置为所有者、所属组和其他用户都具有读取和执行权限,但没有写权限。
# 格式: chmod -R 555 文件夹路径
# 设置nginx的html文件夹只读
chmod -R 555 /home/nginx/html
# 恢复所有用户可读写则为
chmod -R 755 /home/nginx/html