我有多个单页网站需要备案吗,网页设计的一般流程,网页游戏排行榜2020排行榜,网页制作学校文章目录 Linux安全配置1、密码复杂度策略2、登陆失败策略3、登录超时策略4、安全日志记录5、账户策略5.1 创建系统管理员#xff08;应该对/var进行授权#xff0c;修改可能会影响到ssh登录#xff09;5.2 创建安全管理员#xff08;应该对/etc进行授权#xff09;5.3 创… 文章目录 Linux安全配置1、密码复杂度策略2、登陆失败策略3、登录超时策略4、安全日志记录5、账户策略5.1 创建系统管理员应该对/var进行授权修改可能会影响到ssh登录5.2 创建安全管理员应该对/etc进行授权5.3 创建审计管理员应该对/var/log进行授权 MySQL安全配置1、安装validata_password插件2、创建系统管理员用户3、创建安全管理员用户4、创建审计管理员用户5、设置错误登录限制6、登陆超时时间 总结 在安全设置中密码复杂度、登录失败和登录超时等策略是关键的安全措施。这些措施可以有效防止未授权访问并增强系统的整体安全性。接下来我们将详细介绍如何配置这些安全策略。 Linux安全配置
1、密码复杂度策略
密码复杂度规则确保用户创建的密码足够强壮难以被猜测或暴力破解。可以通过以下几种方式来实现
长度要求设定最小密码长度例如至少8个字符。字符种类要求密码包含大写字母、小写字母、数字以及特殊字符。历史记录不允许使用最近几次使用的旧密码。
示例配置有效期90天、长度不少于8位、至少3种字符的密码策略。
#vim /etc/login.defs
PASS_MAX_DAYS 90 (密码有效期)
PASS_MIN_DAYS 0 密码修改间隔
PASS_MIN_LEN 8 密码最小长度
PASS_WARN_AGE 7 密码到期前警告设置包含字符、大写字母、小写字母
# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
# vim /etc/pam.d/system-auth
找到包含pam_pwquality.so模块的行将原有行注释并修改为如下的新配置
password requisite pam_pwquality.so try_first_pass local_users_only retry3 authtok_type minlen8 lcredit-1 ucredit-1 dcredit-1 ocredit-1 enforce_for_root
# minlen8 密码最小长度为8个字符。
# lcredit-1 密码应包含的小写字母的至少一个
# ucredit-1 密码应包含的大写字母至少一个
# dcredit-1 将密码包含的数字至少为一个
# ocredit-1 设置其他符号的最小数量例如、! $等至少要有一个
# enforce_for_root 确保即使是root用户设置密码也应强制执行复杂性策略测试使用passwd测试是否配置成功
2、登陆失败策略
登录失败策略用于限制非法尝试登录的次数以减少通过暴力破解攻击成功的机会。通常包括锁定账户一段时间或永久锁定直至管理员解锁。 示例配置3次锁定、锁定时长60分钟的登陆失败策略。
# vim /etc/pam.d/sshd
新增以下配置
auth required pam_tally2.so onerrfail deny3 unlock_time1800 even_deny_root root_unlock_time300
# root_unlock_time: 表示root用户锁定时间
# unlock_time: 表示普通用户锁定时间
# onerrfail: 表示连续失败
# deny3: 表示超过3次登录失败即锁定
# 如果不想限制root用户可以去掉:even_deny_root root_unlock_time300。注意auth要放到第二行否则不生效 测试 如果要查看某个用户的登陆失败次数可以使用以下命令查看
pam_tally2 --user luweihao重置某个用户的登陆失败次数
pam_tally2 --user luweihao --reset3、登录超时策略
登陆超时策略为了防止会话被长时间闲置而被他人利用应设置合理的会话超时时间即当用户无活动状态达到一定时限后自动断开连接。 示例配置会话超时时间为30分钟。
# vim /etc/profile
注意在末尾增加单位是s
TMOUT18004、安全日志记录
有效的日志记录不仅可以帮助管理员监控系统活动还能在发生安全事件时提供关键信息用于调查和响应。 示例启用auditd/rsyslog
service auditd status
service rsyslog status5、账户策略
合理地分配不同的管理角色对于确保系统的安全性至关重要。通过创建系统管理员、安全管理员和审计管理员等角色并为每个角色设定相应的权限可以有效地实现职责分离减少内部威胁风险。
5.1 创建系统管理员应该对/var进行授权修改可能会影响到ssh登录
groupadd sysgroup
useradd sys -g sysgroup
passwd sys
usermod -G sysgroup sys
mkdir /vartest
chown -R sys:sysgroup /vartest
chmod 741 /vartest5.2 创建安全管理员应该对/etc进行授权
useradd -d /security security
passwd security
chown -R security:security /security
chmod 700 /security5.3 创建审计管理员应该对/var/log进行授权
useradd audit
passwd audit
vim /etc/sudoers
添加
audit ALL (ALL) NOPASSWD: /usr/bin/cat , /usr/bin/less , /usr/bin/more , /usr/bin/tail , /usr/bin/head
chown -R audit:audit /var/log
chmod 700 /var/logMySQL安全配置
MySQL无法直接进行密码策略配置需要安装插件。MySQL5.7默认有validata_password的插件但是没有安装需要手动安装。 注意如果MySQL设置了只读账号需要先关闭只读安装完插件后重新开启只读。
#关闭只设置
set global read_only0;
#最后再打开只读设置根据需求
set global read_only11、安装validata_password插件
INSTALL PLUGIN validate_password SONAME validate_password.so;查看当前设置
SHOW VARIABLES LIKE validate_password%;
SHOW VARIABLES LIKE %password%;#default_password_lifetime这个为全局设置影响到所有账号生产环境谨慎设置。
#validate_password_check_user_name用于是否检查密码是否与用户名相似。设置为 OFF 表示不检查。
#validate_password_dictionary_file用于指定用于密码验证的字典文件。如果为空表示没有配置特定的字典。
#validate_password_length密码的最小长度这里表示密码至少需要 8 个字符。
#validate_password_mixed_case_count密码中必须包含的大写和小写字母的最少数量。在此设置为 1表示至少需要一个大写或小写字母。
#validate_password_number_count密码中必须包含的数字的最少数量。在此设置为 1表示至少需要一个数字。
#validate_password_policy定义密码的复杂性策略。设置为 MEDIUM表示密码需满足中等复杂性要求。
#validate_password_special_char_count密码中必须包含的特殊字符的最少数量。未设置表示没有要求。可以自己修改配置如密码长度修改成10位
SET GLOBAL validate_password_length 10;2、创建系统管理员用户
#创建系统管理员用户
CREATE USER sysdbalocalhost IDENTIFIED BY NBYl6vu9d5BevS2;
#修改系统管理员用户的密码过期时间
alter user sysdbalocalhost PASSWORD EXPIRE INTERVAL 90 DAY;
#赋予系统管理员相应的权限
GRANT ALL PRIVILEGES ON *.* TO sysdbalocalhost WITH GRANT OPTION;
#查看权限
show grants for sysdbalocalhost;
#查看密码过期时间
show create user sysdbalocalhost;3、创建安全管理员用户
#创建安全管理员用户
CREATE USER safedbalocalhost IDENTIFIED BY CqLsrGKt3RGfMI;
#修改安全管理员用户密码过期时间
alter user safedbalocalhost PASSWORD EXPIRE INTERVAL 90 DAY;
#赋予安全管理员相应的权限
GRANT SELECT, SHOW VIEW ON *.* TO safedbalocalhost;
#查看权限
show grants for safedbalocalhost;
#查看密码过期时间
show create user safedbalocalhost;4、创建审计管理员用户
#创建审计管理员用户
CREATE USER auditdbalocalhost IDENTIFIED BY isn2ecX#ZVhjx#Eu;
#修改审计管理员用户密码过期时间
alter user auditdbalocalhost PASSWORD EXPIRE INTERVAL 90 DAY;
#赋予审计管理员相应的权限
GRANT RELOAD, PROCESS, SHOW DATABASES ON *.* TO auditdbalocalhost;
#查看权限
show grants for auditdbalocalhost;
#查看密码过期时间
show create user auditdbalocalhost;5、设置错误登录限制
#安装CONNECTION_CONTROL插件
INSTALL PLUGIN CONNECTION_CONTROL SONAME connection_control.so;
#提供了一个INFORMATION_SCHEMA类型的表用户在此表中可以查看更详细关于登陆失败连接的信息。
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME connection_control.so;#查看当前配置
show variables like %connection%;#connection_control_failed_connections_threshold连续失败最大次数3次,0表示不开启
#connection_control_max_connection_delay超过最大失败次数之后阻塞登录最大时间毫秒
#connection_control_min_connection_delay超过最大失败次数之后阻塞登录最小时间毫秒
#例如set global connection_control_failed_connections_threshold0
#查询各账号登录失败次数
use information_schema;
select * from connection_control_failed_login_attempts;6、登陆超时时间
show variables like %wait_timeout%;
#修改超时时间为600s
set global wait_timeout600;总结
正确地配置以上策略能够显著提高服务器的安全性但同时也需要注意不要给合法用户提供过多障碍。因此在实施上述任何一种策略之前请根据实际情况做出适当调整确保既保证了安全性又不影响正常使用体验。