前言
常用基础的windows和linux还有数据库的加固(其实是自己比赛的题),这里使用的是Windows server 2019
一.Windows加固
1.设置密码策略
服务器管理 > 工具 > 本地安全策略 > 账户策略
2.设置登录提示信息
服务器管理 > 工具 > 本地安全策略 > 本地策略 > 安全选项
3.设置登录失败账户锁定
服务器管理 > 工具 > 本地安全策略 > 账户策略 > 账户锁定策略
4.设置远程桌面空闲时间
win+r输入gpedit.msc > 计算机配置 > 管理模板 > windows组件 > 远程桌面服务 > 远程桌面会话主机 > 会话时间限制 > 设置活动但空闲的远程桌面服务会话的时间限制.
5.通过SSL加密远程桌面服务
win+r输入gpedit.msc > 计算机配置 > 管理模板 > windows组件 > 远程桌面服务 > 远程桌面会话主机 > 安全 > 远程(RDP)连接要求使用指定的安全层
6.仅允许超级管理员账号关闭系统
服务器管理 > 工具 > 本地安全策略 > 本地策略 > 用户权限分配 > 关闭系统
7.开启IIS的日志审计记录
需要提前安装好IIS服务。
服务器管理 > 工具 > IIS管理 > 日志
8.设置网站的最大并发连接数
服务器管理 > 工具 > IIS管理 > 网站 > 右边高级设置
9.禁用IIS内核缓存
服务器管理 > 工具 > IIS管理 > 网站 > 输出缓存 > 右边编辑功能设置
10设置user1用户只能在周一至周五的9:00~18:00可以登录
输入如下命令设置👇,创建user1用户并且密码是123456789.com
net user user1 123456789.com /add
输入如下命令设置只能在周一到周五的9:00-18:00可以登录,这里的M代表英文周一,F代表周五,中间逗号隔开。
net user user1 /times:M-F,9:00-18:00
二.Linux加固
1.设置密码策略
打开/etc/login.defs
配置文件然后找到如下位置操作。
PASS_MAX_DAYS 99999 #用户密码不过期的最大天数
PASS_MIN_DAYS 0 #密码修改之间的最小
PASS_MIN_LEN 5 #密码最小长度
PASS_WARN_AGE 7 #密码过期前多少天开始提示
2.设置登录信息
打开/etc/issue
配置即可。
3.设置计划任务
设置root用户的计划任务。每天早上7:50自动开启vsftpd服务,22点50时关闭;每周六的7:30时,重新启动vsftpd服务
Crontab -e就可以了编辑,然后输入如下内容👇。
50 7 * * * service vsftpd start
50 22 * * * service vsftpd stop
30 7 * * * service vsftpd restrt
4.禁止匿名用户登录vsftpd服务
打开/etc/vsftpd/vsftpd.conf
,找到Anonymous_enable
修改为no即可。
5.限制客户端连接vsftpd服务
限制客户端连接vsftpd服务时,同一个IP最多只能打开两个连接。
打开/etc/vsftpd/vsftpd.conf
,打开之后在最下面添加max_per_ip=2
即可。
6.将SSH服务的端口号修改为2222
打开/etc/ssh/sshd_config
找到port
去掉“#”然后修改为222,然后重启服务systemctl restart sshd
,如果失败就输入semanage port -a -t ssh_port_t -p tcp 2222
,把selinux重新配置,重启即可,如果还是不行,就添加进入防火墙firewall-cmd --permanent --add-port=2222/tcp
。
7.禁止root用户通过SSH远程登录
打开etc/ssh/sshd_config
,找到PermitRootLogin YES修改为NO即可。
三.数据库加固
1.查看数据库版本
使用命令select version()
2.查看数据库列表
使用命令show databases()
3.找到可以从任意 IP 地址访问的用户
use mysql;
select user,host from mysql.user;