Web安全-Linux网络协议

Telnet与SSH

Telnet和SSH用于远程访问服务器的的两大常用协议。 使用者首先在电脑执行Telnet/SSH程序,然后连线至目的地服务器,然后输入帐号和密码以验证身份。使用者可以在本地主机输入命令,然后让已连接的远端主机执行,就像直接在对方的控制台上输入一样。

Telnet

  1. Telnet取名自Telecommunications和Networks的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。
  2. Telnet使用端口23,它是专门为局域网设计的。
  3. Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包。
  4. Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。

SSH

  1. SSH取名自安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。
  2. SSH默认情况下通过端口22运行,该端口号可以更改。
  3. SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。
  4. 一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。
  5. SSH还使用公钥用于对访问服务器的用户验证身份,这是一种很好的做法,为我们提供了极高的安全性。

协议对比

(1) SSH 和 Telnet 应用领域基本重合。
(2) SSH 比 Telnet 更加安全。
(3) 在发送数据时,SSH会对数据加密,而Telnet不会(它会直接发送明文,包括密码)。
(4) SSH使用公钥授权,而Telnet不使用任何授权
(5) SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。

虽然由于安全的原因,Telnet基本上已经被SSH完全代替。但是在一些测试的、无密的场合,由于自身的简单性和普及性,Telnet依然被经常使用。

FTP与SFTP

我们平时习惯了使用ftp来上传下载文件,尤其是很多Linux环境下,我们一般都会通过第三方的SSH工具连接到Linux,但是当我们需要传输文件到Linux服务器当中,很多人习惯用ftp来传输,其实Linux默认是不提供ftp的,需要你额外安装FTP服务器。而且ftp服务器端会占用一定的VPS服务器资源。其实笔者更建议使用sftp代替ftp。

主要因为
(1)可以不用额外安装任何服务器端程序(我比较中意这个,哈哈~~,很多公司为了安全性Linux没有外网环境,只有SSH的时候,想传输文件是很悲催的问题)。
(2)会更省系统资源。
(3)SFTP使用加密传输认证信息和传输数据,相对来说会更安全。
(4)也不需要单独配置,对新手来说比较简单(开启SSH默认就开启了SFTP)。

FTP

FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。

FTP进行文件传输需要通过端口进行。一般所需端口为:

  1. 控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。
  2. 数据链路—TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。

FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。主动是指FTP客户端发送PORT命令连接FTP服务器,被动是FTP客户端发送PASV命令连接FTP服务器。这两种模式都主要针对数据链路进行的,跟控制链路无关。

主动方式:在通过21号端口连接好控制通道后,客户端发送给服务器PORT命令,就是给服务器说咱们俩通信你可以在那个端口进行,于是服务器打开20号端口,连接上客户端的指定的端口进行连接,传送数据。需要创建一个新的连接。

被动方式:在通过21号端口连接好控制通道后,客户端发送给服务器PASV命令,就是给服务器说咱们俩通信的端口号你选择,然后服务器随机选择一个端口(大于1024),FTP客户端连接至此端口,进行通信。不需要创建一个新的连接。

FTP的安全隐患

1)FTP服务器软件漏洞。
(2)明文口令。
(3)FTP旗标。
(4)通过FTP服务器进行端口扫描。
(5)数据劫持。

FTP的安全策略

1)使用较比安全的系统和FTP服务软件。
(2)使用密文传输用户名和口令。
(3)更改服务软件的旗标。
(4)加强协议安全性。

IIS ftp服务器的搭建
其实现在有很多基于windows的ftp服务器,我们想搭建ftp服务器可以直接下载一个基于windows的ftp服务器软件来搭建,但是windows自带的ftp服务器也可以解决这个问题,怎么可以快速地搭建ftp服务器,无论是win7还是win10,搭建方式都一样,今天我们就使用win10来搭建ftp服务器,步骤如下

(1)控制面板打开windows功能
在这里插入图片描述(2)搜索IIS,进入IIS服务管理器
在这里插入图片描述
(3)选择网站,右键新建FTP站点
在这里插入图片描述(4) 新建ftp服务器名,填写ftp服务器名和物理路径
在这里插入图片描述
(5) 填写ftp服务器ip地址(选择本机地址)和SSL选择无。
在这里插入图片描述
(6) 填写身份验证,注意此处选择指定用户,填写的用户名需要与cmd命令窗口用户一致,不然登录时候总是填写不对用户名和密码,点击完成。
在这里插入图片描述(7) 测试是否成功

登录页面
在这里插入图片描述主页面
在这里插入图片描述恭喜您搭建IIS FTP服务器成功。

SFTP

SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟FTP几乎语法功能一样。

SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它本身没有单独的守护进程,必须使用sshd守护进程来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以使用SFTP是十分安全的。但由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。在对网络安全性要求更高时,代替FTP使用。

相关协议命令

ssh、telnet、ftp是三种协议。ssh和telnet是远程登录协议,ftp是文件传输协议。这三种协议都是客户端和服务端的思想,就是客户端需要有客户端程序,服务端需要有服务端程序。

SSH

场景1:我想在内网中的A机器上直接远程操作B机器?

格式:ssh B机器上用户名@B机器ip
例如:ssh build@192.168.1.151
以B机器上build用户远程登录B机器,然后就提示输入build用户的密码了

登录上去之后,就可以愉快的使用Linux命令操作远程机器了。

场景2:我想A机器上访问外网指定端口的B机器?

格式:ssh -p 端口 用户名@域名
例如:ssh -p 14012 build@mp.big.ddns.info
远程登录指定域名和指定端口的机器

很多情况下,我们会限制进入机器的端口号,就是固定某一个端口可以让ssh协议通过,其他端口门都别想进,哈哈。

Telnet

虽然telnet已经很少被用作远程登录了(应为不安全),但是有些情况下还非用它不可(RouterOS就是如此,不明白为什么它不支持SSH,奇怪)

应用场景:内网A机器远程登录B机器

格式:telnet b机器ip
例如:telnet 192.168.1.151
然后会依次要求输入用户名和密码,跟着提示走就好了。

外网差不多,应该不会外网开这个telnet服务吧。

FTP

ftp协议还是蛮方便的,可以方便的上传和下载文件。下面假设A机器是FTP客户端,B机器是FTP服务端。

场景1:A机器ftp协议连接B机器?

格式:ftp 机器ip
比如:ftp 192.168.1.151
ftp协议访问指定ip的机器

场景2:A机器向B机器传输文件?

格式: ftp put 文件名
比如: ftp put Hi.txt
推送当前目录下的Hi.txt文件到远程机器

场景3:从B机器下载文件到A机器?

格式: ftp get 文件名
比如: ftp get Hi.txt
从远程机器下载Hi.txt文件到当前目录下

场景4:删除B机器上的文件?

格式:ftp delete 文件
比如:ftp delete Hi.txt
删除B机器上Hi.txt文件

不要问我怎么删除A机器上文件哦,因为你在A机器你还删不了文件嘛。哈哈。

通信数据监听

实验目的

通过该实验了解SSH服务器的配置,理解SSH和Telnet的区别。实验地址:合天网安-安全通信协议SSH应用与分析

实验环境

1:Windows Server 2003作为server
2:Windows XP作为client
在这里插入图片描述
辅助工具

工具名称作用
Wireshark网络数据包监听工具
OpenSSHSSH服务端
puttySSH客户端

Telnet 服务搭建与监听

本实验主要了解Telnet服务和SSH服务的区别,那么要分别搭建两个服务器,并且用Wireshark来抓包分析。

搭建Telnet服务器

在Server主机上:

1、首先打开运行,输入tlntsvr /service,启动Telnet服务程序,再打开运行,输入services.msc,打开服务管理程序。
在这里插入图片描述
2、找到Telnet服务,然后更改启动类型为自动,并且启动Telnet服务:
在这里插入图片描述
3、 通过netstat –an查看23端口是否开放:
在这里插入图片描述
4、 下面Telnet本机:
在这里插入图片描述
5、输入主机用户的账号和密码,成功登录并执行命令查询主机IP:
在这里插入图片描述在这里插入图片描述
6、退出请输入exit。

至此server主机上Telnel服务成功启动,配置结束。

在Client主机上:

1、到xp主机上,安装好Wireshark,然后Telnet server的IP,即telnet 10.1.1.90,然后就能看到欢迎界面:
在这里插入图片描述 使用server的用户名和密码登录,注意密码没有回显,并不是没有输入进去。

2、 成功登录IP为10.1.1.90的开启了Telnet服务器主机,此时可以在CMD窗口执行的操作如同在10.1.1.90主机上用命令提示符操作一样。
在这里插入图片描述
3、打开Wireshark,在过滤栏中输入Telnet,点击应用。重新连接Telnet,然后在Wireshark中找到包。
在这里插入图片描述
4、 这是服务器发给的信息,输入信息就在下面了( 用户名的第一个字母,注意,Telnet是一个一个字符的包):
在这里插入图片描述
5、接下来这个包往下就是输入的密码了,也是一个一个字符形式。
在这里插入图片描述在这里插入图片描述

至此Telnet实验结束。

SSH 服务的搭建与监听

在Server主机上:

搭建SSH服务器

1、SSH服务端:安装OpenSSH.exe。
在这里插入图片描述2、安装完成后,打开命令提示符,执行 cd C:\Program Files\OpenSSH\bin,然后执行如下两条命令:

mkgroup -l >> ..\etc\group (导入本地组)
mkpasswd -l >> ..\etc\passwd(导入本地用户名和密码)

如下图所示:
在这里插入图片描述

3、最后执行 net start opensshd,开启ssh服务。
在这里插入图片描述

4、查看主机开放的端口是否包含22端口,如下图所示:
在这里插入图片描述
至此server主机上SSH服务成功启动,配置结束。

在Client主机上:

1、安装SSH客户端工具putty并打开,输入SSH服务器主机的IP,点击open,如下图所示:
在这里插入图片描述2、 会弹出一个警告,点击是,然后输入SSH服务器主机的用户名和密码:
在这里插入图片描述3、成功登录远程主机10.1.1.90,并可成功执行命令对其进行操作,如下图所示:
在这里插入图片描述4、继续打开Wireshark,输入过滤条件ssh,可以看到全是加密的密文,如下图所示:
在这里插入图片描述
总结

至此,我们可以看到, 传统Telnet会话所传输的资料并未加密,帐号和密码等敏感资料容易会被窃听,因此很多服务器都会封锁Telnet服务,改用更安全的SSH。

Windows远程桌面

综上,Linux主机可以采用Telnet协议和SSH协议进行远程登录,那么Windows主机呢,如何进行远程管理?

Windows主机可以开启Telnet服务,可以通过Telnet协议进行登录。但是Windows还有一种更为强大的远程控制功能——远程桌面连接

远程桌面连接可以让我们像使用本地电脑一样操作远程电脑,这样把家里的电脑开启一下远程,然后就可以在办公室连接到家里的电脑使用了,对很多时候操作十分方便,那么Win10怎么启用远程桌面,其它电脑又如何远程桌面连接到Win10电脑呢?

启用远程桌面

1、在系统设置里面找到“远程桌面”,在右侧启用远程桌面为“开”,如下图所示:
在这里插入图片描述
2、这时就启用了远程桌面,你还要分配一个可以远程桌面的账户,点击【选择可远程访问这台电脑的用户】;
在这里插入图片描述
3、点击添加,然后输入或查找你的账户,默认Administrator是有被远程登录的权限的,如果只有一个帐户,建议新建一个。
在这里插入图片描述
4、然后如果你的用户没有设置密码,那么其它电脑是不能用空密码登录的,可以在管理工具——用户中设置一个密码;
在这里插入图片描述

远程连接桌面

1、开启远程桌面之后,如果需要远程可以通过windows自带的远程桌面连接工具。 在运行-输入 mstsc 打开远程桌面工具。
在这里插入图片描述
2、打开之后,输入你要控制的电脑主机的IP地址(这里是局域网演示,所以是本地网络的IP地址):
在这里插入图片描述
3、输入主机的用户名和密码,确定连接,如下图所示;
在这里插入图片描述
4、连接上了~看下图。
在这里插入图片描述
如果远程登录的账号和实体主机当前登录的账号是通一个帐户的话,实体机那边就会断开的。所以建议给系统添加一个远程登录专用的账号哈。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tr0e

分享不易,望多鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值