远程访问及控制

SSH远程管理

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入 的用户口令。与早期的Telent(远程登录)、RSH(RemoteShell,远程执行命令)、RCP (Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性。

配置OpenSSH服务端

1.服务监听选项

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

2.用户登录控制

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

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

3.登录验证方式

 对于服务器的远程管理,除了用户账号的安全控制以外,登录验证的方式也非常重要。sshd服务支持两种验证方式——密码验证、密钥对验证,可以设置只使用其中一种方式, 也可以两种方式都启用。

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

密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一 对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录 时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全 性。该方式不易被假冒,且可以免交互登录,在Shell中被广泛使用。

使用SSH客户端程序

1.命令程序ssh、scp、sftp

1)ssh远程登录

通过ssh命令可以远程登录sshd服务,为用户提供一个安全的Shell环境,以便对服 务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。

如果sshd服务器使用了非默认的端口号(如2345),则在登录时必须通过“-p”选项指定 端口号。

2)scp远程复制

通过scp命令可以利用SSH安全连接与远程主机相互复制文件。使用scp命令时,除 了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验 证口令即可。

3)sftp安全FTP

通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类 似的登录过程和交互式环境,便于目录资源管理。

2.图形工具Xshell

图形工具Xshell是Windows下一款功能非常强大的安全终端模拟软件,支持Telnet、 SSH、SFTP等协议,可以方便地对Linux主机进行远程管理。 安装并运行Xshell后,在新建会话窗口中指定远程主机的IP地址、端口号等相关信息, 然后单击“连接”按钮,根据提示接受密钥、验证密码后即可成功登录目标主机,

构建密钥对验证的SSH体系

以RSA加密算法为例,整个过程包括四步,首先要在SSH客户端以zhangsan用户身份 创建密钥对,并且要将创建的公钥文件上传至SSH服务器端,然后要将公钥信息导入服务 器端的目标用户lisi的公钥数据库,最后以服务器端用户lisi的身份登录验证。

1.在客户端创建密钥对

通过ssh-keygen工具为当前用户创建密钥对文件。可用的 加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)

2.将公钥文件上传至服务器

将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传 公钥文件时可以选择SCP、FTP、Samba、HTTP甚至发送E-mail等任何方式。

3.在服务器中导入公钥文本

在服务器中,目标用户(指用来远程登录的账号lisi)的公钥数据库位于~/.ssh目录, 默认的文件名是“authorized_keys”。如果目录不存在,需要手动创建。当获得客户端发送过 来的公钥文件以后,可以通过重定向将公钥文本内容追加到目标用户的公钥数据库。

由于sshd服务默认采用严格的权限检测模式(StrictModesyes),因此还需注意公钥 库文件authorized_keys 的权限——要求除了登录的目标用户或root用户,同组或其他用户 对该文件不能有写入权限,否则可能无法成功使用密钥对验证。

4.在客户端使用密钥对验证

当私钥文件(客户端)、公钥文件(服务器)均部署到位以后,就可以在客户端中进行测试了。首先确认客户端中当前的用户为zhangsan,然后通过ssh命令以服务器端用户lisi 的身份进行远程登录。如果密钥对验证方式配置成功,则在客户端将会要求输入私钥短语,以 便调用私钥文件进行匹配(若未设置私钥短语,则直接登入目标服务器)。

使用“ssh-copy-id-i公钥文件user@host”格式,“-i”选项指定公钥文件,“user”是指目标主机的用户。验证密 码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾。

ssh-copy-id 命令在上传公钥文件到服务器的时候,具有简单、快捷的优点,可优先使 用此命令上传公钥,但通过SCP命令拷贝再导入的方式具有通用性,可应对没有ssh-copy-id 命令的情况。

TCPWrappers访问控制

一种防护机制——TCPWrappers(TCP封套)

TCP Wrappers 概述

TCPWrappers 将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了  一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正 的服务程序,

TCPWrappers是默认提供的功能。对应TCP Wrapper 保护机制的两种实现方式——直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd;由其他网络服务程序调用libwrap.so.*链接库, 不需要运行tcpd程序

TCPWrappers的访问策略

1.策略的配置格式

(1)服务程序列表

ALL:代表所有的服务。

单个服务程序:如“vsftpd”。

多个服务程序组成的列表:如“vsftpd,sshd”。

(2)客户端地址列表

ALL:代表任何客户端地址。

LOCAL:代表本机地址。

单个IP地址:如“192.168.4.4”。

网络段地址:如“192.168.4.0/255.255.255.0”。

以“.”开始的域名

以“.”结束的网络地址

嵌入通配符“*”“?”:前者代表任意长度字符,后者仅代表一个字符,

多个客户端地址组成的列表

2.访问控制的基本原则

关于TCP Wrappers 机制的访问策略,应用时遵循以下顺序和原则:首先检查 /etc/hosts.allow 文件,如果找到相匹配的策略,则允许访问;否则继续检查/etc/hosts.deny 文件,如果找到相匹配的策略,则拒绝访问;如果检查上述两个文件都找不到相匹配的策略, 则允许访问

3.TCPWrappers配置实例

实际使用TCPWrappers机制时,较宽松的策略可以是“允许所有,拒绝个别”,较严格 的策略是“允许个别,拒绝所有”。前者只需在hosts.deny文件中添加相应的拒绝策略就可以 了;后者则除了在hosts.allow 中添加允许策略之外,还需要在hosts.deny 文件中设置“ALL:ALL”的拒绝策略。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值