SSH 登录超时时间(Ubuntu22.04可用)
sudo vim /etc/profile
设置闲置时间为15分钟(900秒),如果没有此行则直接添加进去
export TMOUT=900
立即生效
source /etc/profile
SSH 登录超时时间(CentOS7.6可用)
在登录后目录运行
vim .bash_profile
添加
export TMOUT=900
设置闲置时间为1分钟(900秒),如果没有此行则直接添加进去
立即生效
source .bash_profile
SSH 登录次数限制(Ubuntu22.04可用)
sudo vim /etc/pam.d/common-auth
common-auth首行添加:
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
配置说明
deny=3,表示错误3次后锁定。
unlock_time=60,表示锁定时间60秒,锁定期间即便正确的密码也是提示错误。
even_deny_root,表示即便是root账号,本策略也生效。
root_unlock_time,表示root锁定后,锁定时间60秒。
重启SSH生效
sudo systemctl restart sshd
SSH 登录次数限制(CentOS7.6可用)
sudo vim /etc/pam.d/sshd
在password-auth之后添加:
auth requisite pam_tally2.so onerr=fail deny=3 unlock_time=60 even_deny_root root_unlock_time=60
在postlogin之后添加:
account required pam_tally2.so
##重要## 检查/etc/ssh/sshd_config文件中是否开启了pam验证
vim /etc/ssh/sshd_config
确保存在一行UsePAM yes
重启SSH生效
sudo systemctl restart sshd
使用pam_tally2命令检查登录情况
pam_tally2 --user=jsw_audit
#查看jsw_audit用户的登录失败情况
pam_tally2 --user=jsw_audit --reset
#重置jsw_audit用户的登录失败次数为0,否则超过上面配置的次数后就禁止登录了
原文链接:https://blog.csdn.net/sumengnan/article/details/114144601
数据库SSL
查看是否启用SSL的命令
show variables like '%ssl%';
安装时启动SSL
/usr/sbin/mysqld --initialize --datadir=/var/lib/mysql --user=mysql
/usr/bin/mysql_ssl_rsa_setup
当运行完这个命令后,默认会在data(数据)目录下生成以下pem文件,这些文件就是用于启用SSL功能的
文件名称 | 用途 |
---|---|
data/ca-key.pem | CA私钥 |
ca.pem | 自签CA证书,客户端连接也需要提供 |
client-cert.pem | 客户端连接服务器端需要提供的证书文件 |
client-key.pem | 客户端连接服务器端需要提供的私钥文件 |
private_key.pem | 私钥/公钥对的私有成员 |
public_key.pem | 私钥/公钥对的共有成员 |
server-cert.pem | 服务器端证书文件 |
server-key.pem | 服务器端私钥文件 |
在my.cnf配置指定证书
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/server-cert.pem
ssl-key=/var/lib/mysql/server-key.pem
安装时候没有开启SSL,之后开启的办法
1、关闭MySQL服务
2、运行mysql_ssl_rsa_setup 命令
3、到data_dir目录下修改.pem文件的所属权限用户为chown -R mysql.mysql *.pem
4、启动MySQL服务
强制某用户必须使用SSL连接数据库
已有用户
mysql>alter mysql.user test@'%' require ssl;
新建必须使用ssl用户
mysql> grant all on *.* to 'user'@'192.168.0.100' identified by 'newpasswd' require ssl;
mysql> flush privileges;
对于强制使用SSL连接的用户,如果不是使用ssl连接的就会报错
mysql -uusername -pASDF123asdf -h 192.168.0.100 --ssl=0 #不启用ssl连接
mysql -uusername -pASDF123asdf -h 192.168.0.100 [--ssl-ca=/usr/local/mysql5.7/data/ca.pem] #启用ssl连接
原文连接:https://www.cnblogs.com/workdsz/articles/9701102.html
数据库general_log开启
查看是否开启
show variables like 'general_log';
查看日志文件保存位置
show variables like 'general_log_file';
查看日志输出类型 table或file
show variables like 'log_output';
开启日志
默认general_log是OFF的,
立即开启(重启失效)
set global general_log = ON;
长期开启(重启生效)
修改my.cnf
[mysqld]节内添加或设置:
general_log=1
注意:
开启后日志很大。请注意磁盘空间。
开启后,如果要删除不能直接删除问题,会导致日志记录失败。
数据库连接闲置超时时间
基本概念
- interactive_timeout参数:对于交互式连接,服务端等待数据的最大时间。如果超过这个时间,服务端仍然没有收到数据,则会关闭连接。所谓交互式client,是指调用mysql_real_connect()函数建立连接时,设置了CLIENT_INTERACTIVE选项。比较常用的就是命令行终端。
- wait_timeout参数:对于非交互式连接,服务端等待数据的最长时间。如果超过这个时间,服务端仍然没有收到数据,则会关闭连接。
查看当前配置
show global variables like '%timeout%';
立即设置(重启失效)
set global wait_timeout=1800;
set global interactive_timeout=1800;
长期开启(重启生效)
修改my.cnf
[mysqld]节内添加或设置:
wait_timeout=1800
interactive_timeout=1800
数据库登录失败处理
查看当前配置
show global variables like '%max_connect_errors%';
立即设置(重启失效)
set global max_connect_errors=10;
长期开启(重启生效)
修改my.cnf
[mysqld]节内添加或设置:
max_connect_errors=20
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~