Linux远程访问及控制
Posted 世界美好與你環環相扣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux远程访问及控制相关的知识,希望对你有一定的参考价值。
一.OpenSSH服务器
▶▶1.1SSH(Secure Shell)协议
●是一种安全通道协议,tcp22端口
●对通信数据进行了加密处理,用于远程管理
▶▶1.2OpenSSH
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
●服务名称: sshd
●服务端主程序:/usr/sbin/sshd
●服务端配置文件:/etc/ssh/sshd_config
●客户端配置文件:/etc/ssh/ssh_config
▶▶▶1.2.1查看安装openssh时产生的配置文件
rpm -qa |grep openssh 查看已安装好的openssh
rpm -ql openssh-clients
rpm -ql openssh-server
▶▶▶1.2.2配置文件常用选项
#Port 22 默认22端口
#ListenAddress 0.0.0.0 监听端口
#ListenAddress :: IPv6 的地址
★值得注意的是DNS开启后 ssh建立连接会变慢
▶▶▶1.2.3修改配置文件增加黑白名单
▶▶▶1.2.4配置文件的拷贝和检查
cp -p /etc/ssh/sshd_config{,.bak} 配置文件拷贝
sshd -t 检查修改后的配置文件
二.Linux远程登录
▶▶2.1远程登录的指令
ssh -p 22 root@192.168.80.1 指定端口号 客户端跟服务器端口保持一致登录时候就不要再带端口号
三.ssh密钥验证
▶▶3.1概述
SSH协议是采用了基于密钥的安全验证方式用于远程管理的,需要依靠密钥,也就是必须事先建立一对密钥对,然后把公用密钥(锁头)(Public key)放在需要访问的目标服务器上,另外,还需要把私有密钥(钥匙)(Privatekey)放到SSH的客户端或对应的客户端服务器上。
加密算法
▶▶3.2对称加密
▶▶▶3.2.1概念
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用
▶▶▶3.2.2常用算法
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
▶▶ ▶3.2.3特点
1、加密方和解密方使用同一个密钥;
2、加密解密的速度比较快,适合数据比较长时的使用;
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;
▶▶▶3.2.4优缺点
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
▶▶3.3非对称加密
▶▶▶ 3.3.1概念
非对称加密算法需要两个密钥:公开密钥(publickey.简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密月,所以这种算法叫作非对称加密算法。
▶▶▶3.3.2常用算法
RSA (RSA algorithm):目前使用最广泛的算法
DSA (Digital Signature Algorithm):数字签名算法,和RSA不同的是 DSA
仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快
ECC (Elliptic curve cryptography,椭圆曲线加密算法)
ECDSA: Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA的结合,相比于RSA算法,ECC可以使用更小的秘钥,更高的效率,提供更高的安全保障
▶▶▶3.2.3原理
首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的SSH客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公钥加密"质询”(challenge)并把它发送给SSH客户端。
▶▶▶3.2.4特点
私钥不能在网络中传输,私钥可以解密公钥 ,公钥可以在网路中传输.公钥不能解密私钥
▶▶▶3.2.5优缺点
相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。
此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置
四.ssh的建立连接加密过程
1.客户端发公钥给server
2客户端发起连接请求公钥
3.服务端对比客户端的公钥是否一致,这时server会拿客户端的公钥加密一串随机数据发回给客户端
4.客户端拿自己的私钥解密这串数据,发送回给server
5.server对比客户端解密过后的数据串,发现跟我发的一致,就认为此客户端受信任,允许建立连接
五.SSH的免密登录
▶▶1、用工具制作公钥和私钥
▶▶2、把公钥发给服务器
▶▶▶5.1生成一对秘钥
ssh-keygen
▶▶▶ 5.2把公钥发给服务器
ssh-copy-id root@192.168.80.1 是一个追加的过程不是覆盖的过程
在服务端会发现有客户端发过来的公钥文件
▶▶▶5.3客户端可免密登录
★这里推送秘钥的时候并没有设置私钥密码,若设置私钥密码,则第一次建立连接时需要输入私钥的密码
▶▶▶5.4终端免密登陆
1.终端软件生成公钥
点击下一步至公钥完成保存至指定文件夹
2.Linux端rz导入,若导入不了,可用其他终端软件,我用的是FinallShell导入的
3.追加至目录 cat id_rsa_2048\\ (2).pub >> /root/.ssh/authorized_keys
4.再其他终端上选择登陆方式,导入上面保存的公钥即可免密等录
六.sshd的运用
▶▶6.1安全复制scp
常用于客户端向服务端拷贝文件的时候,或服务端文件拷贝到本机的时候
scp /root/anaconda-ks.cfg @192.168.80.1:/opt 后面如果不跟路径就默认为家目录
本机文件传服务器相当于上传
scp root@192.168.80.1:/opt/a /home 服务器传本机相当于下载
scp -rp 拷贝目录,用法一样,-r 指定为目录,-p带属性拷贝
scp -rp /home/d @192.168.80.1:/opt
scp -P222 -rp /home/d @192.168.80.1:/opt 如果端口不一致需要指定端口 -P
▶▶6.2sftp 交换式的安全文件传送
★put 上传,get 下载
七.TCPMWrappers
TCPMWrappers是应用tcp程序特特有保护方式,不是每个应用程序都有TCPMWrappers,通过过滤控制实现数据的 安全传输
7.1保护机制的实现方式
●方式1:通过tcpd程序对其他服务程序进行包装
●方式2:由其他服务程序调用libwrap.sq.*链接库
访问控制策略的配置文件
letc/hosts.allow
/etc/hosts.deny
用ldd命令查看应用程序的库文件
ldd /usr/sbin/sshd 查看库文件
ldd /usr/sbin/sshd | grep libwrap //有libwrap库文件就就支持,没有就不支持
7.2设置访问控制策略
●策略格式: 服务程序列表 :客户端地址列表
●服务程序列表
◆多个服务以逗号分隔,ALL表示所有服务
●客户端地址列表
◆多个地址以逗号分隔,ALL表示所有地址
◆允许使用通配符﹖和*
◆网段地址,如 192.168.10.0或者192.168.10.0/255.255.255.0
◆区域地址,如 .benet.com
vim /etc/hosts.deny //再黑名单中添加要限制的服务名和限制的地址
以上是关于Linux远程访问及控制的主要内容,如果未能解决你的问题,请参考以下文章