Windows安全配置
一、登录服务器,打开组策略
二、账户策略配置
1.密码策略
如图配置
2.账户锁定策略
三、配置安全选项
1.账户配置
重命名管理员账号为test1234(配置完后,可以尝试注销,看看administrator是否能登录)
禁止使用Microsoft账户登录
2.交互式登录配置
3.用户账户控制
四、高级安全审核配置
1.账户登录
2.账户管理
3.详细跟踪
4.登录注销
5.对象访问
6.特权使用
Centos安全配置
一、网络配置
1.检查不用的连接
ip link show up
如果有需要关闭的接口,可以使用ip link set down
2.关闭IP转发
查看ip转发配置
sysctl net.ipv4.ip_forward
若为1,可使用下面命令改为0
sysctl -w net.ipv4.ip_forward=0
二、查看审计服务
1.查看服务是否开启
systemctl status auditd
若未开启可使用下面命令开启
systemctl start auditd
2.查看审计日志大小
cat /etc/audit/auditd.conf |grep max
三、查看并配置日志审计
1.查看日志文件权限,应为600,仅root可读写
ls -l /var/log/
非600的文件,如wpa_supplicant.log 可以使用下面命令改为600
chmod 600 /var/log/wpa_supplicant.log
2.查看日志归档处理
ls /etc/logrotate.d/syslog
四、查看SSH认证配置
1.查看SSH配置文件权限
ls -l /etc/ssh/sshd_config
权限建议改为600
2.配置允许SSH允许的验证失败次数
查看当前配置
sshd -T |grep maxauthtries
默认为6次登陆失败后断开连接
3.禁止空密码登录SSH
sshd -T | grep permitemptypasswords
4.查看SSH支持密码算法
sshd -T | grep ciphers
五、认证模块设置
1.密码强度配置
vim /etc/security/pwquality.conf
可自己修改配置,去掉行首#号
密码最小设为10位 minlen=10
密码复杂度设为4种类型 minclass=4
最后 :wq 保存退出
2.密码过期时间设置
查看过期时间
grep ^\s*PASS_MAX_DAYS /etc/login.defs
修改 /etc/login.defs 文件即可修改过期时间
3.查看用户密码过期时间
grep -E '^[^:]+:[^!*]' /etc/shadow | cut -d: -f1,5
修改用户过期时间
chage --maxdays 365 root
apache安全配置
一、确保apache无法访问根目录
查看apache配置文件
vim /etc/httpd/conf/httpd.conf
找到以下配置
二、删除网站的目录浏览权限
在apache配置文件中,indexes为目录浏览权限,直接删除即可
三、限制HTTP方法
在路径配置中加入
<LimitExcept GET POST >
Require all denied
</LimitExcept>
四、错误页面重定向
http的错误页面可能会暴露服务器信息,我们可以将错误页面都重定向到某文件
echo error > /var/www/html/error.txt
五、限制POST数据大小
在配置文件中加入下行,注意不要放在路径的申明中
LimitRequestBody 100
六、记录下post的数据
编辑配置文件,加载记录IO的模块
LoadModule dumpio_module modules/mod_dumpio.so
指定日志级别,记录IO(位置一定要对,不能随意编辑)
LogLevel dumpio:trace7
DumpIOInput On
七、保存退出,并重启服务
systemctl restart httpd
mariadb安全配置
一、操作系统级权限检查
查看并配置数据库存放路径权限
登录数据库
mysql -u root -p
查看数据存放路径
show variables where variable_name = 'datadir';
退出 quit
查看数据库存放路径权限
ls -l /var/lib | grep mysql
建议将权限改为700
chmod 700 /var/lib/mysql
二、数据库的通用安全配置
1.删除默认的test数据库
DROP DATABASE 'test';
2.禁用local_infile参数
查看local_infile参数是否开启
show variables where variable_name = 'local_infile';
若为开启,编辑 /etc/my.cnf 文件 在mysqld一项中添加(需重启数据库方能生效)
local_infile=0
3.修改secure_file_priv参数
查看secure_file_priv参数
SHOW GLOBAL VARIABLES WHERE Variable_name = 'secure_file_priv' ;
若显示为空,表示所有路径,建议设为固定值 。编辑 /etc/my.cnf 文件 在mysqld一项中添加(需重启数据库方能生效)
secure_file_priv=/www/server
4.确定只有root用户有内置数据库mysql的权限
查看内置数据库权限
SELECT user, host FROM mysql.user WHERE (Select_priv = 'Y') OR (Insert_priv = 'Y') OR (Update_priv = 'Y') OR (Delete_priv = 'Y') OR (Create_priv = 'Y') OR (Drop_priv = 'Y');
5.查看file_priv权限,确定只有root用户有
select user, host from mysql.user where file_priv = 'Y';
6.配置允许用户登录的主机
查看当前用户可以登录的主机
select user,host from mysql.user;
更新用户允许登录的主机
update mysql.user set host="IP" where host="localhost" and user="root";