ssh服务器
服务器端: sshd, 配置文件: /etc/ssh/sshd_config
常用参数:
- #Port 22 更改端口号
- #AddressFamily any 地址支持格式any表示IPV4和IPV6都支持
- #ListenAddress 0.0.0.0 哪个IP来监听22服务端口地址 (systemctl reload sshd)
- #HostKey /etc/ssh/ssh_host_ecdsa_key 使用的加密key
- #LoginGraceTime 2m 登陆等待时间
- #PermitRootLogin yes 允许root登陆 给为no就不能登陆,拿普通用户登陆然后在切换root
- #StrictModes yes 严格模式 检查文件的格式
- #MaxAuthTries 6 最大尝试登陆次数/2
- #MaxSessions 10 最大连接次数 (每个网络连接次数)
- AuthorizedKeysFile .ssh/authorized_keys 基于key验证的存放路径
- PasswordAuthentication yes 基于用户名密码验证
- ClientAliveInterval 0 客户端连接后活动状态 0为不断开
- ClientAliveCountMax 3 探测客户端活动状态的次数
- PermitEmptyPasswords no 是否允许空口令
限制可登录用户的办法:
- Allowusers user1 user2 user3 允许用户登陆
- Denyusers 拒绝用户登陆
- AllowGroups 允许组登陆
- DenyGroups 拒绝组登陆
例子:在/etc/ssh/sshd_conf文件后面直接添加命令:
Denyusers hello 拒绝hello用户连接
Allowusers
ssh服务的最佳实践
建议使用非默认端口
禁止使用protocol version 1 老的协议版本
限制可登录用户
设定空闲会话超时时长
利用防火墙设置ssh访问策略
仅监听特定的IP地址
基于口令认证时,使用强密码策略
- tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30| xargs xargs随机口令换行
使用基于密钥的认证
禁止使用空密码
禁止root用户直接登录
限制ssh的访问频度和并发在线数
经常分析日志
监控ssh日志中口令登陆