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