大多数企业服务器是通过远程登录的方式来进行管理的,如何更加安全、高效的远程管理网络中的各种服务器是作为网络管理人员的必修课。这里将针对Linux环境使用安全的SSH远程管理途径,以及通过TCP Wrappers机制为应用提供访问控制
SSH(secure shell)是一种安全的通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,与早期的TELNET、RSH、RCP等应用相比,SSH协议提供了更好的安全性
配置OpenSSH服务端
在RHEL系统中,OpenSSH服务器的openssh等软件包默认已经安装,并已添加为系统服务,只需配置并启动sshd服务,大部分用户(拥有合法的登录shell)都可以远程登录系统。sshd的配置文件位于/etc/ssh/sshd_config目录下,正确调整相关配置项,有助于提高sshd远程登录的安全性
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cWZwpmL4UjY3UmYzEGO5EGOlJjN0EmZlZmN2YGN5UDZ3kTMjV2LcZDMvwVMwgTMwIzLcd2bsJ2LcNXZnFWbp9CXt92Yu8GdjFTNuITavw1LcpDc0RHaiojIsJye.jpeg)
使用SSH客户端程序
在Linux系统中,SSH客户端默认已安装,其中包括ssh、scp、sftp等命令。实际上,任何支持SSH协议的客户端程序都可以与OpenSSH服务器进行通信,如Windows平台中的Xshell、SecureCRT、Putty等图形工具。
(1)ssh远程登录
通过ssh命令,可以远程登录sshd服务,为用户提供一个安全的shell环境,以便对服务器进行管理和维护
使用密钥对验证SSH的方式
密钥对验证方式可以为远程登录提供更好的安全性,下面将介绍在Linux服务器、客户机中构建密钥对验证SSH体系的基本过程
- 将公钥上传至服务器
- 在服务器中导入公钥文本
上面两个步骤有两种方式完成导入
方式一:命令格式如下
ssh-copy-id -i 公钥文件 目标主机用户@目标主机
方式二:使用FTP、scp等方式上传到服务器,在将文件导入到目标用户的公钥数据库
TCP Wrappers访问控制
TCP Wrappers将其他TCP服务程序包裹起来,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。对于大多数Linux发行版,TCP Wrappers是默认提供的功能。
1. 策略的配置格式
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务程序的客户机地址进行访问控制。对应的策略文件为/etc/hosts.allow和/etc/hosts.deny,分别提供允许和拒绝的要求
配置格式如下:
服务程序列表:客户机地址列表
其中,
(1)服务程序列表分为以下几类:
ALL:代表所有服务
单个服务程序:如“sshd”
多个服务程序组成的列表:如“httpd,sshd”,以逗号分隔
(2)客户机地址列表分为以下几类:
ALL:代表任何客户机服务
LOCAL:代表本机地址
单个IP地址:如“192.168.1.1”
网络段地址:如“192.168.1.0/255.255.255.0”或者“192.168.1.”
域名:如“.ysf.com”匹配ysf.com域中的所有主机
通配符*、?:前者代表任意长度字符,后者仅代表一个字符
多个客户机地址组成的列表:如“192.168.1.1,172.16.10.,.ysf.com”
-
访问控制的基本原则
(1)先检查hosts.allow,找到匹配则允许访问
(2)否则再检查hosts.deny,找到则拒绝访问
(3)*若两个文件中均无匹配策略,则默认允许访问