SSH 配置
配置文件
阻止穷举扫描
DenyHosts

SSH 配置

配置文件

指定可信用户(其他拒绝)

AllowUsers userlist

userlist 是一个由空格隔开的用户名列表,指定了允许使用sshd登录的用户。这 个列表可以含有通配符*和?。可以用user或者user@host的形式来指定用户。如果 使用的是第二种格式的话,那么要确保将host指定为hostname命令所返回的值。 如果没有指定这项声明,那么任何能够在本地登录的用户都能够使用OpenSSH客户 端登录。

指定发送 client-alive 消息条数

ClientAliveCountMax n

n 指定在sshd从客户端断开连接之前,没有接收到响应也能够发送的 client-alive 消息的条数。参见 ClientAliveInterval 。默认值为3。

ClientAliveInterval n

如果n秒之内没有接收到客户端的消息,就通过加密通道发送一条信息。参见 Client- AliveCountMax。默认值为0,意味着不发送消息。

这项声明通过加密通道传递消息,不容易受到IP欺骗(IP Spoofing)。它不同于 TCPKeepAlive,TCPKeep Alive使用TCP的keepalive选项,容易受到IP欺骗。

HostbasedAuthentication yes / no

如果设置为yes,则尝试进行rhosts身份验证。要想提高系统安全性,请将其设置 为no(默认值)。

IgnoreRhosts yes / no

忽略.rhosts和.shosts身份验证文件。不会影响到/etc/hosts.equiv和 /etc/ssh/shosts.equiv身份验证文件的使用。要想提高系统安全性,请将其设置 为yes(默认值)。

LoginGraceTime n

在断开连接之前,等待n秒以便用户登录到服务器。如果值为0的话,表示没有时 间限制。默认值为120。

LogLevel val

指定日志消息的详细程度。val的值从QUIET、FATAL、ERROR、INFO和VERBOSE中选 取。默认值为INFO。

PasswordAuthentication

允许用户使用口令进行身份验证。默认值为yes。

PermitEmptyPasswords

允许用户登录到口令为空的账号。默认值为no。

PermitRootLogin

允许root使用OpenSSH客户端登录。要想提高系统安全性,请将其设置为no。默认 值为yes。

StrictModes yes / no

检查用户主目录和文件的模式和所有权。如果目录和/或文件可以被任何人写入的 话,登录将失败。出于安全方面的考虑,请将其设置为yes(默认值)。

TCPKeepAlive yes / no

如果设置为yes(默认值),则定期检查连接是否存活。当客户端崩溃或者由于其 他原因导致连接死掉,那么该项检查会让ssh或scp连接断开,即便只是临时性的。 将该参数设置为no会导致服务器不去检查连接是否存活。

这项声明使用TCP的keepalive选项,该选项未被加密,容易受到IP欺骗。对于不 易受到IP欺骗的替代技术请参考ClientAliveInterval。

X11Forwarding yes / no

若将该选项设置为yes,则允许X11转发。默认值为no,但是Red Hat Linux将 X11Forwarding设置为yes。要想让X11转发能够工作,那么也必须将~/.ssh/config 或者/etc/ssh/ssh_config 客户端配置文件中的ForwardX11声明或者 ForwardX11Trusted声明设置为yes。

阻止穷举扫描

DenyHosts

一个Python脚本程序,可以自动分析系统日志文件,找到有重复扫描痕迹的IP, 放到 DenyHosts 文件中。

注意:如果自己有误操作,以至于 DenyHosts 把可信IP放到了 /etc/hosts.deny 里面。这时候需要手动删除 hosts.deny 里面的IP信息,还要 手动删除 ssh 日志文件中的错误登录信息。不然,下次 DenyHosts 分析还是把 这个 IP 添加到 hosts.deny 文件中!