麒麟linux的加固
1.检查设备密码复杂度策略
配置文件 vi /etc/pam.d/system-auth
password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 minlen=6
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=6
remember=5 #检查密码重复使用次数限制
deny #连续认证失败次数超过的次数
unlock_time #锁定的时间,单位为秒
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设置
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.5检查ntp服务是否开启
systemctl start ntpd 查看状态 :systemctl status ntpd
配置:server IP地址(提供ntp服务的机器)
如:server 192.168.1.1
8.6 检查是否配置关闭IP伪装 检查是否配置关闭多IP绑定
编辑/etc/host.conf文件 添加
nospoof on #关闭IP伪装
multi off #关闭多IP绑定