SSH远程管理
SSH (Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。 SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
网络
SSH客户端<--------------------------------—------>SSH服务端
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度
SSH客户端:Putty、xshell、CRT
SSH服务端:openSSH
opensSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。centos 7系统默认已安装openssh相关软件包,并已将 sshd服务添加为开机自启动。执行"systemctl start sshd”命令即可启动sshd
服务: sshd服务默认使用的是TCP的22端口 sshd服务的默认配置文件是/etc / ssh/ sshd_config
ssh_config和sshd_config都是ssh服务器的配置文件, 二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。
sshd服务支持两种验证方式:
1.密码验证 对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解
2.密钥对验证 要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件《公钥、私钥),然后将公钥文件放刭服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行如密/解密关联验证。能增强安全性,且可以免交互登录。
公钥和私钥的关系:
●公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
●不能根据一个密钥来推算出另一个密钥。
●公钥对外公开,私钥只有私钥的持有人才知道。
客户端使用方式
ssh scp sftp 都是默认使用ssh协议,端口为 tcp 22
远程登录
ssh [-p端口] [用户@] 服务端 IP
推送 上行复制
scp [-r 目录] 文件 [用户]@ 服务端IP:保存路径
拉取 下行复制
scp [用户] @服务端IP:保存路径 本地路径
sftp [用户] @服务端IP
put get cd ls …..
ftp
vsftp tcp 端口号20 21 常规的文件传输协议,明文传输,传输速度较快但不安全,一般在局域网中使用
sftp 端口号tcp 22 安全ftp,传输时会加密 压缩,传输效率比普通ftp要低
tftp 端口号udp 69 简单的轻量级文件传输协议,一般用于传输一些小文件
创建密钥对验证(客户端 和 服务端 是一对一的关系 不是指定用户或客户端登录是无效的)
1,在客户端创建密钥对 ssh-keygen -t rsa/ecdsa/dsa
2,把公钥文件导到ssh服务端
(1)手动 复制 公钥文件 id_rsa.pub 的内容,在服务端 用户的家目录中的 .ssh 目录中创建authorized_keys 文件并把客户端公钥文件内容粘贴到这个文件中
(2) 自动 在客户端 ssh-copy-id -i(指定) 公钥文件 用户@服务端IP
3.在客户端使用ssh 用户@服务端IP︰登录服务端,使用密钥对私钥的密码进行验证实现免交互登录
1.直接创建空密码的密钥对来使用
2.在导入公钥文件后,在客户端 ssh-agent bash ssh-add ,此方式只能在当前连接中使用
使用SSH客户端程序实例:
scp远程复制
上行复制
下行复制
配置密钥对验证
创建密钥对
TCP Wrappers 访问控制
TCP wrappers(1cn封套)将tcp服务程序包裹"起来,代为监听tcp服务阻序的端口,增加了一个安全检刚过程,外来的连接请求必须先通过这层交全捡测,获将许可后才能访阿真正的服务程序。大多数Linux发行版,TCP wrappers是默认提供的功能。rpm -q tcp_wrappers
TCP wrappers保扩机制的两种实现方式
1.直接使用tcpd程序对其他服务程序进行保护,需要运行tcp程序。
2.由其他网络服务程序调用libwrap.so .*链接库,不需要运行tcpd程序。此方式的应用更加广泛,也更有效率。 使用ldd命令可以查看程序的libwrap.so.*链接库 ldd $ (which ssh)
TCP wrappers 的访问策略
TCP wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。 对应的两个策略文件为/etc/hosts.allow和/etc/hosts.deny,分别用来设置允许和拒绝的策略。
/etc/ hosts.allow设置允许访问tcp服务程序的策略
/etc/hosts.deny设置禁止访问tcp服务程序的策略
先看hosts.allow 文件中的策略,匹配上则直接放通,如果没有匹配则再去看hosts.deny文件中的策略,匹配上则禁止/拒绝访问指定的tcp服务程序如果也没有匹配上则默认允许放通
格式: <服务程序列表>:<客户端地址列表>