本文转载于 http://www.linuxidc.com/Linux/2015-12/125871.htm
更详细请看(有中文翻译)http://blog.csdn.net/gzh0222/arti
OpenSSH服务器端的配置文件各常用参数含义
/etc/ssh/sshd_config:
注:前面加#的代表默认配置
基本配置
#Port 22 #监听的端口;
ListenAddress 0.0.0.0 #监听的地址,0.0.0.0代表监听本地所有已经启用的IP;
Protocol 2 #ssh协议版本号;
SyslogFacility AUTHPRIV #日志的配置;涉及syslog,这里不讨论。
LogLevel INFO #日志级别;
PidFile /var/run/sshd.pid #PID文件;
认证:
Allow user1 user2... #允许登录的用户
Allow group1 group2... #允许登录的组
Deny user1 user2... #禁止登录的用户
Deny group1 group2... #登陆登录的组
LoginGraceTime 2m #输入超时(登录提示符);
#PermitRootLogin yes #允许ROOT登录;
StrictModes yes #严格模式,如果用户没有家目录,则不允许登录;
MaxAuthTries 6 #最大密码输错次数,达到次数后会有一段时间不能登录;
MaxSessions 10 #最大同时打开的会话连接数;
RSAAuthentication yes #是否启用RSA认证;
PubkeyAuthentication yes #是否启用公钥认证;
AuthorizedKeysFile #公钥认证文件;
PasswordAuthentication no #是否启用密码认证;
PermitEmptyPasswords no #是否允许空密码登录;
UsePAM yes #是否使用PAM认证;
PrintMotd yes #是否打印/etc/motd文件;
PrintLastLog yes #是否打印上次登陆的日志;
ClientAliveInterval 600 #会话超时时间(秒);
ClientAliveCountMax 3 #会话超时判断次数,如果判断3次超时(3*600),那么就断开连接;
UseDNS no #是否使用DNS反解主机名;
附:使用ssh的最佳实践,希望大家仔细看一遍。
1)只使用ssh协议版本2
2)设置(允许访问/禁止访问)的用户:
Allowusers user1 user2
白名单
denyUser user3 user4
黑名单
3)配置空闲超时长。
ClientAliveCountMax 300
ClientAliveInterval 0
4)使用iptables设置ssh服务安全访问策略
5)改变ssh服务监听端口号,监听固定的IP
port 22;勿使用默认22端口
Listaddress 192.168.1.5
ListenAddress 202.54.1.5
6)使用ssh的密码生成函数生成密码,将密码保存到自己的加密的U盘上;
genpasswd(){
local 1=$1
[ "$1" == "" ]&& 1=20
tr -dc A-Za-z0-9_</dev/urandom | head -c ${1} | xargs
}
使用足够长足够复杂的密码,且定期更换。
7)推荐使用公钥认证。
8)关闭空密码登录;
9)进制root用户登录,需要登录请使用su-
10)rate-limit incoming port # 22 COnnections
限制ssh访问频度
11)use log analyzer
记录好日志,经常做日志分析。
再附一下日志及查看方法:
1./var/log/wtmp:用户成功登录的日志
#last 命令查看
2./var/log/btmp:用户登录失败的日志
#lastb 命令查看
3.查看所有用户上次的登录时间
#lastlog [-u User]