8--远程访问及控制
一、配置OpenSSH服务端
1.SSH简介
- SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能
- SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令
- 与TELNET(远程登录)等应用相比,SSH协议提供了更好的安全性
2.配置OpenSSH服务端
SSH服务及配置文件
[root@sshdserver ~]# rpm -qa | grep openssh
openssh-5.3p1-94.el6.x86_64
openssh-server-5.3p1-94.el6.x86_64
openssh-askpass-5.3p1-94.el6.x86_64
openssh-clients-5.3p1-94.el6.x86_64
[root@sshdserver ~]#
[root@sshdserver ~]# man 5 sshd_config
服务监听选项
[root@sshdserver ~]# netstat -utpln | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1048/sshd
tcp 0 0 :::22 :::* LISTEN 1048/sshd
[root@sshdserver ~]#
用户登录控制
登录验证方式
sshd服务支持两种验证方式-密码验证、秘钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用
密码验证:
以服务其中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱
秘钥对验证
要求提供相匹配的秘钥信息才能通过验证。通常现在客户机中创建一对秘钥文件(公钥、私钥),然后将公钥文件放到服务器中指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大争强了远程管理的安全性
- 如何启用登录验证?
二、使用SSH客户端程序
1.命令程序ssh、scp、sftp
2.图形工具xshell
三、构建秘钥验证的SSH体系
1.在服务器、客户机中构建密钥对验证SSH体系的基本过程
- 使用scp上传,需要openssh-clients包,client和server都需要
2.构建密钥验证的SSH体系
1.在客户端创建密钥对 2.将公钥文件上传至服务器 3.在服务器中导入公钥文本 4.在客户端使用密钥对验证
第2步和第3步可以采用另一种方法:
ssh-copy-id -i 公钥文件 user@host
验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾
四、TCP Wrappers 工作原理
1.TCP Wrappers简介
中文含义:TCP封套
- Linux系统提供一个访问控制工具
- 监听基于TCP协议的应用服务
2.TCP Wrappers的运行机制
3.访问控制策略的配置文件
[root@sshdserver ~]# cat /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
sshd:192.168.10.1??
[root@sshdserver ~]# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
sshd:ALL
[root@sshdserver ~]#
4.访问控制策略的处理流程
5.TCP Wrappers的应用场合
iptables防火墙能控制服务,为什么还要用TCP Wrappers?
- TCP Wrappers的配置简单
TCP Wrappers的局限
- 只能控制TCP协议的应用服务
- 并非所有服务都能接受TCP Wrappers的控制
sshd
[root@sshdserver ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fc3c98a8000)
httpd不支持
[root@sshdserver ~]# ldd /usr/sbin/httpd | grep libwrap
[root@sshdserver ~]#
五、TCP Wrappers配置应用
1.配置项格式
服务列表--- | 客户机地址列表 | ||
---|---|---|---|
多个服务 | 例如:vsftpd,sshd | 多个地址 | 例如192.168.1.1,192.168.1.10 |
所有服务 | ALL | 所有地址 | ALL |
通配符? | 例如:192.168.1.1? | ||
通配符* | 例如;192.168.1.1* | ||
网段地址 | 例如192.168.1或者192.168.1.0/255.255.255.0 |
- ?:0-9
- *:代表两位数,上面的含义是100-199
2.案例:TCP wrappers配置
仅允许从以下地址访问SSHD服务
- 主机192.168.10.100~192.168.10.199
禁止其他所有地址访问sshd服务