300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux的远程桌面管理 密钥登陆 SSH协议 四层防御系统实验详解

Linux的远程桌面管理 密钥登陆 SSH协议 四层防御系统实验详解

时间:2019-07-17 15:16:38

相关推荐

Linux的远程桌面管理 密钥登陆 SSH协议 四层防御系统实验详解

Linux的远程桌面管理,密钥登陆,SSH协议,四层防御系统

一.引子

别看上面写了这么多内容,其实都是串起来的,就是看下通过SSH(Secure Shell)协议远程连接到底要经过些什么流程,有什么办法可以更安全,有什么办法可以阻止SSH远程连接。接下来就是理论加实验的结合了,笔者在这里总结的内容仅供大家参考。

传统的网络传输协议,如ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到"中间人"(man-in-the-middle)这种方式的攻击。所谓"中间人"的攻击方式, 就是"中间人"冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被"中间人"一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。我们上一篇写道的arp欺骗实验就是一个非常鲜明的例子。

使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。若对君有益,感谢三连。

二.liunx远程管理方式(基于linux)

1. 图形化管理:

工具:KVM虚拟机

协议:VNC协议

实验:图形化界面进行远程管理实验

1)init5 进入图形化

2) 安装图形化软件:yum -y install vnc-server

3) 初始化密码:执行命令vncservice,并输入密码

4) 编辑修改vnc启动图形界面配置:vim /root/.vnc/xstar.up进入后gnome-session &(注释最后两行添加gnome-session)

5) 修改编辑主配置文件:vim /etc/sysconfig/vncservers(解除注释)

a. VNCSERVERS=”1:root 2:root”

b. VNCSERVERARCS[2]-”geometry 800x600 -nolisten tcp -localhost”

6) 重启服务生效:service vncserver restart

7) 查看vnc端口状态:nestat -antp | grep 5901

8) windows连接图形化远程控制

9) 安装vnc客户端

10) 指定服务器ip及端口:192.168.26.11:5901

11) 输入密码

12) touch huliqiangdaociyiyou

13) 命令行查看文件

2 命令行管理:

① 终端远程连接控制:openssh(开源免费):基于ssh协议的服务器

三.SSH登陆方式(基于linux系统实验)

不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:

第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。

第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

密钥登陆实验

a) 客户端用户root创建密钥对:

i. 私钥文件:id_rsa

ii. 公钥文件:id_rsa.pub

b) 上传公钥文件:rd rsa.pub

c) 导入公钥文件;

i. 公钥文件:~/ssh/authorized keys

d) 私有密钥对验证方式;以服务端的用户root的身份进行登陆验证

e) 实验:11免密码登陆12

i) 11创建密钥对:ssh-keygen -t rsa

ii) 11cd .ssh/查看文件

iii) 11上传公钥文件:scp id_rsa.pub root@192.168.26.12:/root/

iv) 12ls查看

v) 12mv id_rsa.pub .ssh/authorized_keys

vi) 11登陆12:肢解登陆成功:ssh root@192.168.26.12

vii) 桌面密钥登陆

viii) 12将id_rsa放到桌面上:sz id_rsa.pub

ix) 更换登陆方式:密钥认证登陆

x) 进入配置文件:vim /etc/ssh/sshd_config

xi) 密码认证改为no:PasswordAuthentication no

xii) 重启服务:service sshd restart

xiii) 换虚拟机重新登陆

ii. 在11上使用密钥登陆12,13

i) 11ssh-keygen -t rsa

ii) cd .ssh/ & ls

iii) ssh-copy-id root 192.168.26.12(指纹):自动将文件拷贝到12

iv) ssh root@192.168.26.12(免密登陆成功)

v) 重复前两步免密登陆13

四.SSH协议(ssh远程连接,scp上传下载,sftp远程登陆)

1.目的: 为客户机提供安全的shell环境,用于远程管理

2.默认端口:tcp22

3.Openssh服务详解

a. 服务名称:sshd

b. 服务主程序:/usr/sbin/sshd

c. 服务端主程序:/usr/bin/ssh

d. 服务端配置文件:/etc/ssh/sshd_config

a) vilm /etc/ssh/sshd_config

b) port 22端口修改:取消注释,修改端口为1111,重启进程(service sshd restart)

c) 使用finalshell进行连接原有进程不会消失,新进程无法连接(修改连接端口号才能登陆)

d) 配置文件中监听哪个IP可以通过ssh访问:改为ListenADDress 192.168.26.11,重启服务生效(只能通过192.168.26.11登陆)

e) 开启子接口:ifconfig eth0:0 192.168.26.111 netmask 255.255.255.0

f) 登陆192.168.26.11可以登陆,无法通过192.168.26.111登陆

g) 修改配置文件:ListenADDress 0.0.0.0:监听所有IP,重启服务

h) 两个IP地址都可以登陆

i) PermitRootLogin yes :是否允许root登陆

j) MaxSessions 10:最大窗口数目

k) MAXAuthTries 2:重试密码次数

l) PubkeyAuthentication yes:是否开启密钥认证

m) 密钥认证存放路径:.ssd/authorized_keys

n) PasswordAuthentication yes:是否开启密码认证

o) UseDNS no :关闭反向解析自身域名,提升效率

e. 客户端配置文件:/etc/ssh/ssh_config

f. openssh功能模块

a) ssh命令----远程安全登陆

i. 格式:ssh user@host

ii. 查看指纹:ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

i) -p指定端口

实验搭建

实验1:上传下载文件

1.12登陆11 ssh root@192.168.22.11 -p 1111(有指纹)

2.12netstat -antp

3.11查看本机指纹:ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

4.12ifconfig

5.cat .ssh/known_hosts 查看指纹保存文件

6.11抓取12的包:tcpdump -nA port 1111 & > /root/1.text

7.12登陆11 ssh 192.168.22.11 -p1111(有指纹)

8.11查看1.text,无法查询到数据,数据已加密

b) scp命令----远程安全复制

i. 格式(下载):scp user@host:file1 file2

ii. 格式(上传):scp file1 user@host:file2

i) -P (大写)指定端口

实验2:推送目录

1.11scp 本机文件 root@192.168.26.12:推送目录(用户对目标推送地址有权限) scp 1.txt root@192.168.26.12:/root/

2.11推送目录:scp -r 本机目录 root@192.168.26.12:推送目录(用户对目标推送地址有权限)scp -r /etc/passwd root@192.168.26.12:/root/

3.11下载文件:scp root@192.168.26.12:下载目录 本地保存目录

c) sftp命令----远程安全的ftp服务器

i. sftp user@host

i) -port=端口

实验3:sftp远程连接操作

1.11sftp root@192.168.26.12 登陆12

2.ls 默认登陆到用户的家目录下

3.cd /var & touch huliqiangdaociyiyou

4. 下载文件:get huliqiangdaociyiyou

5.上传文件:put

6.exit:退出

② xshell:基于ssh协议的客户端工具

五.四层防御系统:(Iptables tcpwrapper selinux acl)

(1) Tcp wrappers:相对安全简单的防护机制,对于基于TCP协议的某些应用程序进行访问控制(工作在kernel和user空间之间)

(2) 查看哪些可以被Tcp wrappers 管理

① 命令:ldd /usr/sbin/sshd | grep libwrap

(3) 访问控制设置配置文件

① /etc/hosts.allow /etc/hosts.deny

实验:192.168.26.12不能访问11 sshd

a. 11vim /etc/hosts.deny

b. 11最后一行写入:sshd:192.168.26.12

c. 11无需重启

d. 12ssh root@192.168.26.11不成功

e. 13ssh root@192.168.26.11成功

(4) Tcp wrappers 默认策略(无需重启即可生效)

① 如果文件为空 ,代表全部允许

② hosts.allow代表允许访问,host.deny代表不允许访问

如果冲突呢?allow优先,如果匹配allow文件,就跳出匹配限制单个主机

a. host.deny中最后一行写入:12sshd:192.168.26.11

a) 抓包:11如何控制一个网段

a. host.deny中最后一行写入:sshd:192.168.26.0/255.255.255.0(不支持子网掩码写24格式)或sshd:192.168.26.(简写)如何控制一个域名

a. sshd:

实验

b) vim /etc/hosts

c) 添加:192.168.26.12

d) vim /etc/hosts.deny

e) 添加:sshd:

f) ping

限制所有地址:sshd:ALL排除:sshd:ALL EXCPET 192.168.26.12ALL:所有 LOCALk(本机) KNOWN(本机能解析的域名)UNKNOW(本机不能解析的域名)注意:TCP Wrappwes 支持使用通配符*?,但是不能和.开始和结束使用

a. 如:..com 192.168.配置文件生效过程:

a. /etc/host.allow里有对应信息则该配置文件里的主机允许访问

b. /etc/host.deny里有对应信息则该配置文件里的主机不允许访问

c. TCP Wrapper是优先查找/etc/host.allow.后查找/etc/host.deny

d. 如果两个文件信息有冲突,同一个主机出现在两个配置文件里,则/etc/host.allow生效

e. 如果一个主机都没有出现在两个配置文件里,则默认允许访问

SSH远程连接对我们数据的传输是非常方便的,还有一个原因是因为我们通ssh端连接工具管理服务器非常方便。一般我们都使用xshell等连接工具远程连接虚拟机。浏览不易,感谢三连

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。