openssh是SSH协议的一种实现,它是远程登录,通过SCP 或 SFTP 实现备份和远程文件传输等安全协议,SSH保证两个网络或两个系统之间数据交互的机密性和完整性,可以通过公匙加密技术实现服务器身份验证,但也有漏洞,需调整提高安全性
默认配置文件和SSH端口
/etc/ssh/sshd_config 服务器配置文件
/etc/ssh/ssh_config 客户端配置文件
~/.ssh/ 用户SSH配置目录
~/.ssh/authorized_keys 用户公匙
/etc/nologin 如果存在这个文件,SSH 会拒绝除root 用户外的其它用户登录
/etc/hosts.allow /etc/hosts.deny 访问控制列表
SSH默认端口 :22
1 只使用SSH V2
protocol 2
2 限制用户的SSH访问
只运行 root user 用户通过SSH登录
AllowUsers root user
运行所有用户通过SSH 登录,但拒绝一部分用户
DenyUsers saroj
3 配置空闲超时退出时机间隔
ClientAliveInterval 300
ClientAliveCountMax 0 (重试次数)
4 禁用 .rhost文件
IgnoreRhosts yes
5 禁用基于主机的身份验证
HostbasedAuthentication no
6 禁用root通过SSH登录
PermitRootLogin no
7 启用警告横幅
Banner /etc/issue
8 防火墙SSH端口
只接受来自局域网的客户端连接
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
9 使用SSH密码
genpasswd() {
local l=$1
[ “$1” == “” ] && l=20
tr –dc A-Za-z0-9_ < /dev/urandom | head –c $l | xargs
10 使用基于公匙的身份验证
1 在本地生产一对密钥
ssh-keygen –t rsa
2 将公钥传至远程主机,并保存至目标用户家目录下 .ssh/authorized_keys文件中
ssh-copy-id –i id_rsa.pub username@host
11 使用TCP Wrapper
/etc/hosts.allow
12禁用空密码
PermitEmptyPasswords no
13 防暴力破解
Denyhosts 基于Python 安全工具
14 限制端口22上的入口连接速率
15 使用日志分析器
LogLevel INFO
转载于:https://blog.51cto.com/168322/1417016