现在大多数连接unix服务器都是使用ssh而不用telnet,是因为telnet在网络中使用的是明文口令和数据,在实际生产环境中是极为不安全的,但是我们在平时使用ssh服务时,往往会忽略一些问题而会带来安全隐患,最近在帮几个朋友优化服务器时就有发现很多问题,在这就简单的说一下:

 ssh的服务端sshd配置sshd_config几个重要选项

Port 22
#这个是ssh服务的监听端口,在实际生产环境中一般都不用默认的22端口
Protocol 2
#ssh的协议版本,版本1有bug,平时我们使用的是版本2
ListenAddress 0.0.0.0
#这个是sshd的绑定ip,在生产环境中常常是用来绑定内网ip通过***跳板机连接服务器的,当然也支持ipv6
PasswordAuthentication yes
#这个是允许用密码验证的方式连接服务器,当然如果是使用RSA密钥的话就要把这选项关闭在启用
#相应的配置,这里就不太多少想必网上都能找的到
PermitRootLogin yes
#允许root远程登录服务器,如果没有做相应的防火墙安全策略建议把这个设为no
PermitUserEnvironment no
#不允许空口令登录
LoginGraceTime 2m
#这个是设置用户登录失败后,断开与服务器的连接时长
PasswordAuthentication yes
#使用公钥验证,一般出现在SecureCRT、putty、Xshell等远程连接工具中会使用
PrintMotd yes
#ssh连接时打印/etc/motd中的警告信息
PrintLastLog yes
UseLogin yes
#显示上次的登录信息,如果是生产服务器中建议关闭
TCPKeepAlive yes
#保持tcp连接
ClientAliveInterval 0
#默认是0秒,可以设置后配合TCPKeepAlive实现sshd长连接,通常有经过相关路由防火墙设备时ssh后空闲一段时间后都会断开需要配置这个值
UseDNS no
#是否要使用DNS反解析,平时在用大多说都是用ip连接服务器,那么就要选no
MaxStartups 10
#这个设置允许几个未登录的连接,如果有成功登录的不算,默认是10个,实际中我们可以相应的调低
MaxAuthTries 6
#设置最大失败次数,这个在实际生产环境中要调小,用于防御ssh暴力破解
PidFile /var/run/sshd.pid
#设置sshd的pid文件路径

一般使用密码验证登录的都改这几个选项,但是如果是是使用RSA密钥就要修改其他的相应配置,当然在修改好后还要做好相应的iptables安全策略,当然必要的时候还要启用tcp_wrappers防火墙,当然每次修改完配置后都要重启sshd服务一次:/etc/init.d/sshd restart