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

  1. 实验: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代表不允许访问

  1. 如果冲突呢?allow优先,如果匹配allow文件,就跳出匹配
  2. 限制单个主机
    a. host.deny中最后一行写入:12sshd:192.168.26.11
    a) 抓包:11
  3. 如何控制一个网段
    a. host.deny中最后一行写入:sshd:192.168.26.0/255.255.255.0(不支持子网掩码写24格式)或sshd:192.168.26.(简写)
  4. 如何控制一个域名
    a. sshd:www.hongfu.com

实验

b) vim /etc/hosts
c) 添加:192.168.26.12 www.hongfu.com
d) vim /etc/hosts.deny
e) 添加:sshd:www.hongfu.com
f) ping www.hongfu.com

  1. 限制所有地址:sshd:ALL
  2. 排除:sshd:ALL EXCPET 192.168.26.12
  3. ALL:所有 LOCALk(本机) KNOWN(本机能解析的域名)UNKNOW(本机不能解析的域名)
  4. 注意:TCP Wrappwes 支持使用通配符*?,但是不能和.开始和结束使用
    a. 如:..com 192.168.
  5. 配置文件生效过程:
    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等连接工具远程连接虚拟机。浏览不易,感谢三连

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

  1. java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例

    java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...

  2. 服务器安全狗远程桌面无法连接,服务器安全狗服务器安全策略设置教程详解

    服务器安全狗安服务器安全策略设置,服务器安全狗里面也有安全策略,安全策略主要通过执行具体的端口保护规则限制或者允许进程对端口的连接请求,来保护服务器安全.那么这个安全策略如何设置呢?具体操作如下: 安 ...

  3. Linux中free函数头文件,Linux C 堆内存管理函数malloc()、calloc()、realloc()、free()详解...

    C 编程中,经常需要操作的内存可分为下面几个类别: 堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的 堆区(heap):一般 ...

  4. SSH 文件传输 远程桌面管理

    SSH   Windows Linux MacOS Android IOS                                     https://www.ssh.com http:/ ...

  5. Linux安装VNC远程桌面管理工具

    Linux安装VNC远程桌面管理工具 Linux远程桌面连接方式 虽说高级的Linux运维工程师管理Linux时都是使用"高大上"的命令行操作,可是在有些时候例如Oracle数据库 ...

  6. Redhat Linux配置远程桌面

    又是新的一年,Linux会有什么动作呢?通过这十多年Linux系统越来越受到电脑用户的欢迎,于是很多人开始学习Linux时,你可能会遇到Redhat Linux配置远程桌面问题,这里将介绍Redhat ...

  7. linux有声远程桌面,Linux xrdp远程桌面连接声音重定向

    远程管理linux主机通常不需要远程桌面连接,对linux熟悉的人可能只用ssh远程登陆就够了.但是有些人想要像管理windows主机一样使用windows设备管理linux主机,那么xrdp这款软件 ...

  8. linux xrdp端口修改,Linux xrdp远程桌面连接声音重定向

    远程管理linux主机通常不需要远程桌面连接,对linux熟悉的人可能只用ssh远程登陆就够了.但是有些人想要像管理windows主机一样使用windows设备管理linux主机,那么xrdp这款软件 ...

  9. kali linux子远程桌面,适用于kali linux的远程桌面开启方法(从windows xp 远程登录到kali linux )...

    为了解决Windows远程桌面访问Ubuntu 12.04 之一 中提到的VNC远程桌面的缺点(见http://www.linuxidc.com/Linux/2012-07/64801.htm),我们 ...

最新文章

  1. 美国多个城市禁止、我国却蓬勃发展的人脸识别是什么样子?
  2. hdu-5900 QSC and Master(区间dp)
  3. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
  4. PostProcessor
  5. 深度学习(06)-- Network in Network(NIN)
  6. 孙宇晨:BM跑路或是觉得做项目是一种负担
  7. win10一直正在检查更新_教你解决“Win10系统更新失败后循环重启安装”的解决方法...
  8. OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000
  9. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
  10. php报表开发韩顺平,韩顺平从Html基础到php实战开发视频教程非常全面的一套PHP开发教程...
  11. 戴尔服务器2012系统密钥,戴尔恢复密钥在哪里找
  12. 德鲁克谈《自我管理》——《哈佛商业评论》史上最受欢迎的文章
  13. h软件_Qt编写软件运行时间记录
  14. 社区英雄榜:谁是真正的技术英雄?
  15. c语言 二分查找法 及二分查找法的时间复杂度。
  16. php药膳 源码,药膳
  17. 微信小程序开发之——拍照和录像
  18. 解决Win7无法登陆OneDrive并报错0x8004de40问题(亲测解决)
  19. android模拟win98中文版,Android模拟Win 98模拟器(Bochs)
  20. 动作游戏(ACT)——棱角战士(基于Unity3D 5.4.2)

热门文章

  1. Windows7 下的纸牌游戏超难
  2. 集成学习-task8-案例二
  3. Flume+Kafka+Spark Steaming demo
  4. 地图参考系的那些事儿+你可能忽略的小知道
  5. 【1】基于ATmega 8A -PU 的蓝牙遥控电源插座设计——【3、制作以及 测试】
  6. flutter:I/flutter ( 5290): type ‘Null‘ is not a subtype of type ‘String‘
  7. php css权重,详解css z-index的权重问题
  8. harmonyos资料整理:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核(linux是一个内核,不是一个完整的操作系统,例如ubuntu 是操作系统,内核是Linux)
  9. linux系统维护篇:网络流量查看及带宽测试
  10. cocos creator 2.4.5消除小游戏新玩法消星星源码H5+安卓+IOS三端源码