A-8数据库加固
任务环境说明:
- (Linux)系统:用户名root,密码123456
- 删除默认数据库(test);
- 改变默认MySql管理员用户为:SuperRoot;
- 使用MySql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!);
- 赋予user1用户对数据库所有表只有select、insert、delete、update权限;
- 对忘记mysql数据库SuperRoot管理员密码进行重置操作;
A-9服务加固 SSH\VSFTPD
任务环境说明:
- (Linux)系统:用户名root,密码123456
1.SSH 服务加固
(1)SSH 禁止 root 用户远程登录。
(2)设置 root 用户的计划任务。每天早上 7:50 自动开启 SSH 服务,22:50 关闭;每周六的 7:30 重新启动 SSH 服务。
(3)修改 SSH 服务端口为 2222。
2.VSFTPD 服务加固
(1)设置数据连接的超时时间为 2 分钟、无任何操作的超时时间为5分钟。
(2)设置站点本地用户访问的最大传输速率为1M。
(3)禁止匿名用户登录。
(4)关闭ascii模式下载,防止被用于DoS攻击。
A-10防火墙策略-2
任务环境说明:
- (Linux)系统:用户名root,密码123456
1.只允许转发来自 172.16.0.0/24 局域网段的DNS 解析请求数据包;
2.为确保安全,仅允许 172.16.10.0/24 网段内的主机通过 SSH 连接本机。
3.为防止Nmap扫描软件探测到关键信息,设置iptables防火墙策略对80、3306号端口进行流量处理;
解析:
安全加固完整操作手册(CentOS/RHEL Linux,root登录,密码123456)
A-8 MySQL数据库加固
前置登录
# 登录mysql,默认无密码则直接回车 mysql -uroot -p删除默认test数据库
DROP DATABASE IF EXISTS test;修改默认管理员root为SuperRoot
# 修改本地root用户名称 UPDATE mysql.user SET User='SuperRoot' WHERE User='root'; FLUSH PRIVILEGES;退出重登:mysql -uSuperRoot -p
创建user1,MD5加密密码 P@ssw0rd1!
# 创建用户,密码用MD5()内置函数加密 CREATE USER user1@'%' IDENTIFIED BY MD5('P@ssw0rd1!');赋权:仅SELECT/INSERT/DELETE/UPDATE,所有库所有表
GRANT SELECT,INSERT,DELETE,UPDATE ON *.* TO user1@'%'; FLUSH PRIVILEGES;重置SuperRoot管理员密码(遗忘密码操作流程)
步骤1:停止mysql服务
systemctl stop mysqld步骤2:无验证模式启动数据库
mysqld_safe --skip-grant-tables --skip-networking &步骤3:无密码登录
mysql -uSuperRoot步骤4:重置密码
FLUSH PRIVILEGES; ALTER USER 'SuperRoot'@'localhost' IDENTIFIED BY 'NewPass@123'; FLUSH PRIVILEGES; exit;步骤5:关闭后台mysqld进程,正常重启
pkill mysqld systemctl start mysqldA-9 SSH + VSFTPD 服务加固
一、SSH服务加固
禁止root远程登录 + 修改端口22→2222
# 备份配置 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak vim /etc/ssh/sshd_config修改/添加以下参数(注释#全部删除)
Port 2222 PermitRootLogin no保存退出,重启sshd
systemctl restart sshd # 防火墙放行2222端口(iptables) iptables -A INPUT -p tcp --dport 2222 -j ACCEPTroot定时任务crontab(需求)
需求拆解:
- 每日 07:50 启动ssh;22:50 关闭ssh
- 每周六 07:30 重启ssh
# 编辑root定时任务 crontab -e -u root写入内容:
50 7 * * * systemctl start sshd 50 22 * * * systemctl stop sshd 30 7 * * 6 systemctl restart sshd查看任务:crontab -l -u root
二、VSFTPD加固(编辑配置 /etc/vsftpd/vsftpd.conf)
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak vim /etc/vsftpd/vsftpd.conf追加/修改以下参数:
# 1. 数据连接超时2分钟(120秒),空闲无操作超时5分钟(300秒) data_connection_timeout=120 idle_session_timeout=300 # 2. 本地用户最大传输速率1M(单位byte/s,1M=1048576) local_max_rate=1048576 # 3. 禁止匿名登录 anonymous_enable=NO # 4. 关闭ascii模式防DoS ascii_upload_enable=NO ascii_download_enable=NO重启vsftpd生效
systemctl restart vsftpdA-10 iptables防火墙策略(网关+本机防护)
前置准备
# 清空旧规则,设置默认拒绝入站 iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 允许本机回环lo iptables -A INPUT -i lo -j ACCEPT # 开启IP转发(网关转发DNS需要) echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf sysctl -p需求1:仅允许转发172.16.0.0/24的DNS请求(UDP 53)
# 转发链:仅172.16.0.0/24 UDP53放行,其他转发全部拒绝 iptables -A FORWARD -s 172.16.0.0/24 -p udp --dport 53 -j ACCEPT需求2:仅172.16.10.0/24网段访问本机SSH(端口2222)
iptables -A INPUT -s 172.16.10.0/24 -p tcp --dport 2222 -j ACCEPT需求3:防Nmap扫描,处理80、3306端口流量(丢弃探测包)
方案:直接丢弃所有外部访问80/3306的请求,隐藏端口防扫描
iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -p tcp --dport 3306 -j DROP保存iptables规则(CentOS)
service iptables save # 查看完整规则 iptables -L -n --line-number补充验证命令汇总
- MySQL验证:
show databases;、select user from mysql.user;、show grants for user1; - SSH验证:
grep -E "Port|PermitRootLogin" /etc/ssh/sshd_config - Crontab定时:
crontab -l - VSFTPD配置检查:
grep -E "timeout|local_max_rate|anonymous|ascii" /etc/vsftpd/vsftpd.conf - iptables规则查看:
iptables -nL