Web安全-Linux网络协议

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Web安全-Linux网络协议

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

Telnet
Telnet取名自Telecommunications和Networks的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。
Telnet使用端口23,它是专门为局域网设计的。
Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包。
Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。
SSH
SSH取名自安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。
SSH默认情况下通过端口22运行,该端口号可以更改。
SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。
一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。
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进行文件传输需要通过端口进行。一般所需端口为:

控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。
数据链路—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)数据劫持。
1
2
3
4
5
FTP的安全策略:

(1)使用较比安全的系统和FTP服务软件。
(2)使用密文传输用户名和口令。
(3)更改服务软件的旗标。
(4)加强协议安全性。
1
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 网络数据包监听工具
OpenSSH SSH服务端
putty SSH客户端
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(导入本地用户名和密码)
1
2
如下图所示:

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、连接上了~看下图。

如果远程登录的账号和实体主机当前登录的账号是通一个帐户的话,实体机那边就会断开的。所以建议给系统添加一个远程登录专用的账号哈。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_39190897/article/details/86663490

目录
相关文章
|
19天前
|
运维 监控 网络协议
|
3天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
1天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
10 2
|
23天前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
|
1月前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
29 1
|
2月前
|
运维 安全 网络安全
Web安全-企业网络架构
Web安全-企业网络架构
32 1
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
53 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
37 0
|
1月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
15 0
|
2月前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
31 1