远程访问及控制
SSH远程管理
SSH协议
ssh是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议对通信双飞的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
SSH客户端:Putty、xshell、CRT
SSH服务端:OpenSSH
OpenSSH服务器
OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。
Cent0S7 系统默认已安装Openssh相关软件包,并已将sshd服务添加为开机自动启动
怎么判断sshd开机自启动?
执行systemctl start sshd命令即可启动sshd
sshd服务默认使用的是TCP22端口
服务端主程序:/usr/sbin/sshd
服务端配置文件:etc/ssh/sshd_config
客户端配置文件:etc/ssh/ssh_config,一般不修改
配置OpenSSH服务端
服务端配置文件解析:
sshd_config配置文件
vim /etc/ssh/sshd_config
#Port 22 #默认使用22端口
#AddressFamily any #默认任何地址可访问
#ListenAddress 0.0.0.0 #监听所有地址的ipv4地址
#ListenAddress :: #监听的ipv6地址
# Logging #日志模块内容
#SyslogFacility AUTH
SyslogFacility AUTHPRIV #默认日志位置输出到rsyslog服务的AUTHPRIV中,/var/log/message下
# Authentication: #身份验证模块
#LoginGraceTime 2m #默认验证用户登录失败后等待时间为2秒
#PermitRootLogin yes #默认允许使用root账户登录
#MaxAuthTries 6 #默认最多可以尝试连接失败6次
#MaxSessions 10 #默认最大可连接10个会话
#PubkeyAuthentication yes #基于key验证默认为开启
#AllowUsers user1,user2@ip #白名单允许登录用户user1,用户为user2的且限制ip
修改端口号2233
通过命令去连接
禁止root用户的登录
只允许使用zhangsan,lisi,wangwu用户登录,且其中wangwu用户仅能从IP地址为192.168.190.20的主机远程登录
ALLowusers zhangsan lisi wangwu@192.168.190.20 多个用户用空格分隔
禁止某些用户登录
DenyUsers zhangsan
注意:root用户不在白名单内也无法登录。
sshd 服务支持两种验证方式
密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解。
密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中指定位置远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。
公钥和私钥的关系:
公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加解密。
不能根据一个密钥来推算出另一个密钥。
公钥对外公开,私钥只有私钥持有人才知道。
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。
vim /etc/ssh/sshd_config
PasswordAuthentication yes 启用密码验证
PubkevAuthentication yes 启用密钥对验证
AuthorizedKeysFile .ssh/authorized keys 指定公钥库文件
使用SSH客户端程序
- ssh远程登录
ssh [选项] zhangsan@192.168.190.10
当用户第一次登录SS服务器时,必须接受服务器发来的ECDS密钥(根据提示输入"ves") 后才能继续验证。接收的密钥信息将保存到~/.ssh/knonw_hosts 文件中。密码验证成功以后,即可登录目标服务器的命令行环境中了。
-p: 指定非默认的端口号,缺省时默认使用 22端口
ssh -p 2345 zhangsan@192.168.190.10
- scp远程复制
安全性复制
Scp是Secure Copy的简写,用于在Linux下进行远程拷贝文件的命令,而且scp传输是加密的。
1、scp xxx root@192.168.63.20 ;/opt 本地文件复制到服务器
2、scp root@192.168.63.20 ;/opt/test/ ./ 复制服务器的文件到本地
3、scp -r xxx/ root@192.168.63.20 ;/opt 本地目录复制到服务器
本地文件复制到服务器
将本机目录复制到远程主机
- sftp
安全性传输sftp
sftp是secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。
由于这种传输方式使用了 加密/解密 技术,所以传输效率比普通的 FTP 要低得多,如果对网络安全性要求更高时,可以使用 SFTP代替 FTP。
配置密钥对验证
- 在客户端创建密钥对
通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)。
客户端服务端都需要开启密钥和关闭密码登录
[root@localhost .ssh]# vim /etc/ssh/sshd_config
[root@localhost .ssh]# systemctl restart sshd
重启服务
客户端或服务端重新登录
- 无交互模式
可无需登录直接连接客户端
TCP Wrappers 访问控制
在Linux系统中,许多网络服务针对客户端提供了访问控制机制,如Samba、BIND、HTTPD、OpenSSH 等TCP wrappers将TCP服务程序"包裹"起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
TCP wrappers (TCP封套)
将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数Linux 发行版,TCP Wrappers 是默认提供的功能。
TCP Wrappers 保护机制的实现方式
直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序。
由其他网络服务程序调用libwrap.so.*链接库,不需要运行tcpd程序。此方式的应用更加广泛,也更有效率。
使用 ldd 命令可以查看程序的libwrap.so.*链接库
vim /etc/hosts.allow