Linux服务器
操作系统安全加固
操作说明


目录
执行记录 - 1 -
一、 服务器安全加固 - 2 -
1.1 服务器安全加固目的 - 2 -
1.2 服务器操作系统安全加固 - 2 -
1.2.1 操作系统升级 - 2 -
1.2.2 操作系统用户设置 - 2 -
1.2.3 操作系统远程登陆 - 3 -
1.3 服务器操作系统安全加固确认 - 4 -
执行记录
编号
日期
描述
版本
执行人
审核
1
2022/06/07
服务器操作系统确认
0.1
服务器安全加固服务器安全加固目的为保证项目应用运行正常, 需要确保操作系统遵循合理、正确的安全设计和规则, 因此需要对默认的操作系统进行必要的配置。
在服务器完成操作系统升级之后, 进行此项操作。
服务器操作系统安全加固操作系统升级目的:操作系统需要正确的升级,以安装正确的补丁包。
命令:
yum update -y操作系统用户设置目的:设立正确的操作系统用户,分配合理角色和合理长度的密码。
Root: 请根据客户现场的IT 人员建议分配密码, 并将密码填写到下表。
如果没有指定密码,建议使用如下密码。
devops 账户用来进行系统配置和远程登录,随后的操作将禁止Root 远程登录, 用户如需使用Root操作, 请先使用Devops账号登陆, 然后执行 su – root
devops 账号建议密码:
添加用户操作:
useradd devopspasswd devopsusermod -a -G wheel devops请根据需要创建合理的用户, 并分配合理角色。
用户
角色
远程登陆
备注
root
系统管理员
否
devops
系统操作员
否
可进行特权操作(使用sudo)
your_accountxx
个人账号
是
不可进行特权操作,需要切换到devops 账号才可以
操作系统远程登陆禁用root 和devops账号远程登录,禁止空密码。
注意⚠️:
在操作具体文件时, 需要首先备份!
如需要修改文件/etc/ssh/sshd_config, 就需要首先执行:
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak如果有多个/etc/ssh/sshd_config.bak, 则添加数字后缀:
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.1操作:
# sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak# sudo vim /etc/ssh/sshd_config使用vi 打开/etc/ssh/sshd_config, 找到并取消下面的注释:
PermitRootLogin noPermitEmptyPasswords noDenyUsers devops操作:
# sudo systemctl restart sshd安装fail2ban
fail2ban
fail2ban是一款实用软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。
Fail2Ban的作用是拦截掉访问失败过多的host。
fail2ban的工作原理是, 根据filter.d目录中的配置文件从日志中匹配需要的信息, 当满足监狱(jail)中设置的条件后, 执行action.d目录中配置文件规定的动作.
首先添加EPEL,执行:
# sudo yum install epel-release
安装fail2ban,执行:
# sudo yum install fail2ban

配置fail2ban 服务,执行:
# sudo systemctl enable fail2ban配置fail2banFail2ban服务将其配置文件保存在 /etc/fail2ban 目录中。在那里, 可以找到一个默认值为 jail.conf 的文件。由于此文件可能会被软件包升级覆盖,因此我们不应该就地编辑它。相反,我们将编写一个名为 jail.local 的新文件。在 jail.local 中定义的任何值都将覆盖 jail.conf 中定义的值。
# sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localjail.conf 包含一个 [默认] 部分,后跟各个服务的部分。本地可以覆盖这些值中的任何一个。此外,/etc/fail2ban/jail.d/ 中的文件可用于覆盖这两个文件中的设置。
按以下顺序应用文件:
/etc/fail2ban/jail.conf/etc/fail2ban/jail.d/*.conf, alphabetically/etc/fail2ban/jail.local/etc/fail2ban/jail.d/*.local, alphabeticallyfail2ban配置文件模板打开jail.local:
# sudo vi /etc/fail2ban/jail.local由于jail.local默认是从jail.conf复制过来的,因此包含了很多说明信息, 可以把该文件内容情况,然后复制下面的配置内容。
Vi 删除所有行的快捷键为, 命令模式下输入 gg ,然后回车输入 dG
这里配置了ssh 登录模块和nginx模块,具体配置:
[DEFAULT]# Ban hosts for one hour:bantime = 3600# Override /etc/fail2ban/jail.d/00-firewalld.conf:banaction = iptables-multiport[sshd]enabled = true[nginx-http-auth]enabled = truefilter = nginx-http-authlogpath = /usr/local/nginx/logs/error.logmaxretry = 5重新启动fail2ban:
# sudo systemctl restart fail2ban# sudo systemctl status fail2ban重启fail2ban 之后,一定要检查fail2ban的状态,防止因为fail2ban的配置文件错误,导致fail2ban 无法启动。

注意⚠️:
如果服务器上没有安装nginx, 或者nginx的日志目录不是/usr/local/nginx/logs/, 就需要更改nginx-http-auth 部分,或者直接去掉这一个模块。
查看fail2ban 状态查看状态:
# sudo fail2ban-client status结果:

查看具体模块的状态:
# sudo fail2ban-client status sshd
手动解封:
# sudo fail2ban-client set ssh unbanip 221.226.197.96服务器操作系统安全加固确认日期
描述
执行人
客户方签字
2022/06/08
确认该台服务器操作系统加固建议操作已完成
#fail2ban#