sshd的配置和优化

sshd的配置和优化

sshd服务器端的配置文件为/etc/ssh_config

配置文件中的一些常用参数

常用参数说明
port监听端口号
ListenAddress ip监听的IP地址
LoginGraceTime发起连接后多少时间内必须登录超时断开连接
PermitRootLogin是否允许root登录
StrictModes检查.ssh/文件的所有者,权限等
MaxAuthTries最大密码尝试次数
MaxSessions同一连接的最大绘会话数
PubkeyAuthentication基于Key验证
PermitEmptyPasswords是否使用空口令登录
PasswordAuthentication基于口令验证
GatewayPortsssh服务监听所使用的端口当网关使用
ClientAliveInterval间隔多久客户端和服务器端没有操作就断开连接
ClientAliveCountMax和上面那项一起使用为检查的次数
UseDNS是否使用名称解析
GSSAPIAuthenticationGSSAPI的认证
MaxStartups未验证的最大连接数
Banner登录前提示
AllowUsers允许哪些用户登录(白名单)
DenyUsers不允许哪些用户登录(黑名单)
AllowGroups允许哪些组登录(白名单)
DenyGroups不允许哪些组登录(黑名单)

详细用法:
1.port
在生产环境中建议将此端口改为非标准端口,防止被人恶意猜测密码。

[root@HostA ~]# vim /etc/ssh/sshd_config
Port 2222
[root@HostA ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

#此时sshd服务已经监听在2222端口上
[root@HostA ~]# lsof -i:2222
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    2424 root    3u  IPv4  13945      0t0  TCP *:EtherNet/IP-1 (LISTEN)
sshd    2424 root    4u  IPv6  13947      0t0  TCP *:EtherNet/IP-1 (LISTEN)

2.LinstenAddress
若本机有多个ip地址,可以指定用哪个地址提供sshd服务

vim /etc/ssh/sshd_config
Port 2222
ListenAddress 172.22.27.12
[root@HostA ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

#此时sshd服务监听在172.22.27.124的2222端口上
[root@HostA ~]# ss -tnl |grep 2222
LISTEN     0      128           172.22.27.124:2222                     *:*  

3.LoginGraceTime
此项表示有多少用户发起ssh连接后多少时间内必须输入密码登录,否则断开连接默认为2分钟

#LoginGraceTime 2m

4.PermitRootLogin
是否允许root用户登录,在生产环境中,最好禁止root用户直接登录

[root@HostA ~]# vim /etc/ssh/sshd_config
Port 2222
ListenAddress 172.22.27.12
PermitRootLogin no 

重启sshd服务
[root@HostA ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

#此时使用root账户已经无法登录
[root@HostA ~]# ssh -p 2222 root@172.22.27.124
The authenticity of host '[172.22.27.124]:2222 ([172.22.27.124]:2222)' can't be established.
RSA key fingerprint is 46:d8:67:07:f3:51:87:95:2c:d7:4b:27:ce:85:a2:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[172.22.27.124]:2222' (RSA) to the list of known hosts.
root@172.22.27.124's password: 
Permission denied, please try again.
root@172.22.27.124's password: 
Permission denied, please try again.
root@172.22.27.124's password: 
Permission denied (publickey,password).

5.MaxAuthTries
最大密码尝试次数默认为3次,尝试次数为此项后的值的一半

[root@HostA ~]# vim /etc/ssh/sshd_config
#MaxAuthTries 6

6.MaxSessions
同一连接的最大会话个数,默认为10个

[root@HostA ~]# vim /etc/ssh/sshd_config
MaxSessions 3

重启服务
[root@HostA ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
此时克隆会话时最多只能克隆3个在多就会拒绝

7.PubkeyAuthentication
基于Key验证,登录时使用密钥验证,此项默认开启生产环境中最好使用key验证。

[root@HostA ~]# vim /etc/ssh/sshd_config
#PubkeyAuthentication yes

8.PermitEmptyPasswords
是否使用空口令登录,生产环境中使用空口令登录是非常危险的,所以此处默认也是禁止的

[root@HostA ~]# vim /etc/ssh/sshd_config
#PermitEmptyPasswords no

9.PasswordAuthentication
基于口令验证,默认为开启。生产环境中建议禁用口令登录。只开启密钥登陆

[root@HostA ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes

10.GatewayPorts
ssh服务监听所使用的端口当网关使用
此项用法可参考端口转发
11.ClientAliveInterval和ClientAliveCountMax
ClientAliveInterval:连接后多久没有操作则断开
ClientAliveCountMax:检测几次后发现没有操作断开,此项和上一项结合一起使用

[root@HostA ~]# vim /etc/ssh/sshd_config
#ClientAliveInterval 0             #0表示不限制时间
#ClientAliveCountMax 3

11.UseDNS和GSSAPIAuthentication
此处2项建议关闭,能加速ssh的连接速度
12.MaxStartups
未验证的最大连接数,默认的10:30:100表示,ssh连接进入前10个链接能全部连接上,当连接数大于10个就以30%的纪律随机拒绝登陆,连接数超过100个全部拒绝

[root@HostA ~]# vim /etc/ssh/sshd_config
MaxStartups 10:30:100

12.Banner
登录前提示,在选项后跟上路径

[root@HostA ~]# vim /etc/ssh/sshd_config
Banner /data/hello
[root@HostA ~]# echo hello > /data/hello    #创建一个hello的文件
#重启服务
[root@HostA ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@HostA ~]# ssh -p 2222 masuri@172.22.27.124
hello                                       #所创建的登录前提示
masuri@172.22.27.124's password: 

13、AllowUsers、DenyUsers、AllowGroups、DenyGroups
此处4项为用户和组的黑白名单

[root@HostA ~]# vim /etc/ssh/sshd_config 
DenyUsers wang                      #将wang用户加入黑名单
#重启服务
[root@HostA ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

[root@HostA ~]# useradd wang
[root@HostA ~]# echo 111111 | passwd --stdin wang
Changing password for user wang.
passwd: all authentication tokens updated successfully.
#此时wang用户无法登陆
[root@HostA ~]# ssh -p 2222  wang@172.22.27.124
hello
wang@172.22.27.124's password: 
Permission denied, please try again.
wang@172.22.27.124's password: 
Permission denied, please try again.
wang@172.22.27.124's password: 
Permission denied (publickey,password).

生产环境中ssh服务最佳实践

1.建议使用非默认端口
修改port
2.禁止使用protocol version 1
Protocol 2
3.限制可登录用户
AllowUsers、DenyUsers、AllowGroups、DenyGroups
4.设定空闲会话超时时长
ClientAliveInterval和ClientAliveCountMax
5.利用防火墙设置ssh访问策略
设置iptables策略
6.仅监听特定的IP地址
修改Listen
7.基于口令认证时,使用强密码策略
使用难以猜测的随机口令,长度越长约好,并定期修改。
8.使用基于密钥的认证
使用密钥登陆,不使用口令
9.禁止使用空密码
PermitEmptyPasswords no
10.禁止root用户直接登录
PermitRootLogin
11.限制ssh的访问频度和并发在线数
MaxStartups
12.经常分析日志
sshd的日志文件为/var/log/secure

转载于:https://blog.51cto.com/11886307/2382112

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值