Linux远程访问控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux远程访问控制相关的知识,希望对你有一定的参考价值。

 SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。OpenSSH是实现SSH协议的开源软件项目,适用于各种Linux操作系统。

  OpenSSH服务器由openssh、openssh-server等软件包提供,执行"service sshd start"命令即可按默认配置启动sshd服务,包括root在内的大部分用户都可以远程登录系统。

  sshd服务使用的默认端口为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本选用V2比V1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。


1、服务监听相关选项

[[email protected] ~]# vim /etc/ssh/sshd_config 

13 #Port 22                  //监听端口

14 Port 25532

15 #AddressFamily any

16 #ListenAddress 0.0.0.0         //监听地址

17 #ListenAddress 192.168.200.101  

18 #ListenAddress ::

22 # activation of protocol 1

23 Protocol 2                  //使用SSH V2协议

124 #UseDNS yes

125 UseDNS no                  //禁用DNS反向解析[[email protected] ~]# service sshd reload

[[email protected] ~]# service sshd reload


2、用户登录控制

  sshd服务默认允许root用户登录,这是非常不安全的。普遍的做法是:先以普通用户远程登录,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。

  关于sshd服务的用户登录控制,通常应禁止root用户或密码为空的用户登录。另外可以限制登录验证的时间以及最大重试次数,若超过限制后仍未能登录则断开连接。

[[email protected] ~]# vim /etc/ssh/sshd_config 

43 #LoginGraceTime 2m        //登录验证时间

44 LoginGraceTime 2m

45 #PermitRootLogin yes       

46 PermitRootLogin no        

47 #StrictModes yes

48 #MaxAuthTries 6          //最大重试次数

49 MaxAuthTries 3

70 #PermitEmptyPasswords no    //禁止空密码用户登录

71 PermitEmptyPasswords no

[[email protected] ~]# service sshd reload


  当希望只允许某些用户登录时,可以使用AllowUsers或DenyUsers配置,但是两者不要同时使用。例如,若只允许test和admin用户登录,并且admin用户仅能从IP地址为192.168.200.1的主机远程登录,可以配置如下:

[[email protected] ~]# vim /etc/ssh/sshd_config 

146 AllowUsers test [email protected]

[[email protected] ~]# service sshd reload


3、登录验证方式

  对于服务器的远程管理,登录验证方式也很重要。sshd服务支持两种验证方式:密码验证和密钥对验证,可以同时设置两种方式。

1>密码验证:以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简单,但是从客户机的角度来看,正在连接的服务器有可能被假冒;从服务器的角度来看,当遭遇暴力破解攻击时防御能力比较弱。

2>密钥对验证:要求提供相匹配的秘钥信息才能通过验证。通常先在客户机中创建一对秘钥文件,然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了安全性。

  当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用。

[[email protected] ~]# vim /etc/ssh/sshd_config 

72 #PasswordAuthentication yes

73 PasswordAuthentication no      //禁用密码验证

53 #PubkeyAuthentication yes

54 PubkeyAuthentication yes       //启用密钥对验证

55 #AuthorizedKeysFile     .ssh/authorized_keys

56 AuthorizedKeysFile     .ssh/authorized_keys   //指定公钥数据文件

[[email protected] ~]# service sshd reload

以上是关于Linux远程访问控制的主要内容,如果未能解决你的问题,请参考以下文章

LINUX 6——安装SSH远程访问控制

Linux网络服务——远程访问及控制(ssh远程访问实验)

Linux网络服务10——远程访问及控制

Linux远程访问控制

Linux的远程访问及控制

Linux——远程访问及控制(SSH远程管理与配置)