麒麟linux的加固
1.检查设备密码复杂度策略
配置文件 vi /etc/pam.d/system-auth
password requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 auth required pam_tally.so deny=5 unlock_time=600 no_lock_time account required pam_tally.so #这个是要追加 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok 后面追加 remember=5 参数说明: minlen=8 minlen为最小密码长度 remember=5 #检查密码重复使用次数限制 deny #连续认证失败次数超过的次数 unlock_time=600 #锁定的时间10分钟,单位为秒 difok=3 新密码必须与旧密码有3位不同
2.检查是否设置口令生存周期
在文件/etc/login.defs中设置
默认值
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
在文件/etc/login.defs中设置 PASS_MAX_DAYS 90 #检查口令更改最长时间 PASS_MIN_DAYS 6 #检查口令更改最小间隔天数 PASS_MIN_LEN 6 #设置口令最小长度 PASS_WARN_AGE 30 #检查口令过期前警告天数
3.检查重要目录或文件权限设置
chmod 750 /etc/rc.d/init.d chmod 750 /tmp chmod 750 /etc/rc6.d chmod 750 /etc/rc5.d chmod 750 /etc/rc4.d chmod 750 /etc/rc3.d chmod 750 /etc/rc2.d chmod 750 /etc/rc1.d chmod 750 /etc/rc0.d/ chmod 600 /etc/security chmod 600 /boot/grub2/grub.cfg chmod 644 /etc/services chmod 644 /etc/group
4.检查重要文件属性设置
用 lsattr 查看权限 chattr -i 去掉权限
检查/etc/gshadow文件属性 chattr +i /etc/gshadow
检查/etc/shadow文件属性 chattr +i /etc/shadow
检查/etc/group文件属性 chattr +i /etc/group
检查/etc/passwd文件属性 chattr +i /etc/passwd
chattr +i /etc/gshadow chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/passwd
检查用户umask设置
vi /etc/profile #添加 umask 027 source /etc/profile 最后记得重新加载
5.检查是否设置ssh登录前警告Banner
麒麟系统的在 cat /etc/issue.net
6. 检查系统openssh安全配置
禁止root直接登录 和修改 sshd_config登录的
修改文件,配置PermitRootLogin no。重启服务,/etc/init.d/sshd restart 或者 service sshd restart。 |
7.mysql配置规范
检查是否禁止mysql以管理员账号权限运行
[mysqld]配置段中添加 user=mysql
更改root用户名 并删除测试数据库test
mysql> update user set user="syzl" where user="root";
mysql> flush privileges;
mysql> show databases;
mysql> drop database test;
mysql> flush privileges;
mysql配置规范
[mysqld] user=mysql slow_query_log = 1 log_error = /usr/local/mysql/mysql.err slow_query_log = ON #开启慢查询 long_query_time =1 #设置慢查询时间 超过一秒的记录 log_bin = mysql-bin server_id = 134 log-bin=mysql-bin log-bin-index=master-bin.index expire_logs_days = 7 binlog_format=row slave_skip_errors=1062 log_slave_updates=1 max_connections = 1000 max_connection_errors=1000 wait_timeout=864000 interactive_timeout=864000 local-infile=0 character_set_server=utf8 init_connect='SET NAMES utf8' basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock symbolic-links = 0 #不区分大小写 lower_case_table_names = 1 ##不开启sql严格模式 sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" log-error=/var/log/mysqld.log pid-file=/usr/local/mysql/data/mysqld.pid max_allowed_packet = 15M
8.其他安全
8.1检查是否设置命令行界面超时退出 和设置保留历史命令的条数
添加 export TMOUT=600 设置命令行界面超时退出 vi /etc/profile export TMOUT=600 HISTSIZE=2000 #保留历史命令的条数改为2000
source /etc/profile 记得重新加载
8.2 检查是否使用PAM认证模块禁止wheel组之外的用户su为root
vi /etc/pam.d/su
auth required pam_wheel.so group=wheel #你可以把用户添加到wheel组,以使它可以使用su命令成为root用户。 #添加方法为:usermod –G wheel username
8.3 检查系统core dump设置
在文件/etc/security/limits.conf中配置* soft core 0 在文件/etc/security/limits.conf中配置* hard core 0 echo '* soft core 0' >> /etc/security/limits.conf echo '* hard core 0' >> /etc/security/limits.conf
6.4 检查系统是否禁用ctrl+alt+del组合键
删除/usr/lib/systemd/system/ctrl-alt-del.target 再次执行init q重新reload配置文件 rm -rf /usr/lib/systemd/system/ctrl-alt-del.target init q
8.6 检查是否配置关闭IP伪装 检查是否配置关闭多IP绑定
编辑/etc/host.conf文件 添加 nospoof on #关闭IP伪装 multi off #关闭多IP绑定
8.5检查ntp服务是否开启
yum install -y chrony systemctl start chronyd systemctl enable chronyd
修改配置:
vim /etc/chrony.conf 注释掉4,5行 添加局域网的 server 192.168.1.1 iburst
systemctl restart chronyd.service chronyc sources -v
8.5检查ntp服务是否开启 现在不用这个同步时间了 用 chrony
systemctl start ntpd 查看状态 :systemctl status ntpd
配置:server IP地址(提供ntp服务的机器)
如:server 192.168.1.1