Liunx架站之限制联机端口1:什么是端口
文章作者 100test 发表时间 2007:03:14 16:12:52
来源 100Test.Com百考试题网
学习本章之前的必备技巧:
在这个章节当中,我们要来谈一谈如何关闭与激活一个 port ,这个东西还跟『开机程序』有关,所以您不能不知道开机程序的相关性!此外,由于开关 port 与 daemons 是有『绝对』的相关性存在,所以你就不能不了解 daemons 是什么!?我们还要学习怎样剔除一个已经建立联机的状态,所以『资源管理』就不能不会!另外,我们还要来探讨一下简单的设定,所以 vi 当然就不能少啰!呵呵!那个 BASH 是每次都要提到的啦!所以你就必须要:
· 认识 BASH Shell
· vi
· 开机流程
· 资源管理
· 认识 daemons
· 网络基础
· Linux 常用网络指令介绍
当然啰!有时间的话,要往下扎根!好好的学一学 Linux 基础文件!
什么是端口( port ):
在开始这个章节之前,我们先来聊一聊什么是 port 呢?常常在网络上听说『我的主机开了多少的 port ,会不会被入侵呀!?』或者是说『开那个 port 会比较安全?又,我的服务应该对应什么 port 呀!?』呵呵!很神奇吧!怎么一部主机上面有这么多的奇怪的 port 呢?这个 port 有什么作用呢?!
还记得我们在网络基础里头提到的 TCP/IP 资料吧?对啦!那个 TCP 在传送资料的时候,不是会填有来源与目的之 IP 及 port 吗?在这里你可以这样想,由于每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,所以啰,当你的主机同时开启了 FTP 与 WWW 服务的时候,那么别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理,当然就不会搞乱啰!(注:嘿嘿!有些很少接触到网络的朋友,常常会问说:『咦!为什么你的计算机同时有 FTP、WWW、E-Mail 这么多服务,但是人家传资料过来,你的计算机怎么知道如何判断?计算机真的都不会误判吗?!』现在知道为什么了吗?!对啦!就是因为 port 不同嘛!你可以这样想啦,有一天,你要去银行存钱,那个银行就可以想成是『主机』,然后,银行当然不可能只有一种业务,里头就有相当多的窗口,那么你一进大门的时候,在门口的服务人员就会问你说:『嗨!你好呀!你要做些什么事?』你跟他说:『我要存钱呀!』,服务员接着就会告诉你:『喝!那么请前往三号窗口!那边的人员会帮您服务!』这个时候你总该不会往其它的窗口跑吧?! ^_^""这些窗口就可以想成是『 port 』啰!所以啦!每一种服务都有特定的 port 在监听!您无须担心计算机会误判的问题呦!)
除此之外,还记得我们在 网络基础 那一篇当中稍微提到,如果需要进行网络联机的时候,那个重要的三向交握( Three-Way Handshake )就不能不理解一下,底下我们以 Study Area 里面的解释来进行说明:
· 每一个 TCP 联机都必须由一端(通常为 client )发起请求这个 port 通常是随机选择大于 1024 以上的 port 号来进行!其 TCP 封包会将(且只将) SYN 旗标设定起来!这是整个联机的第一个封包;
· 如果另一端(通常为 Server ) 接受这个请求的话(当然啰,特殊的服务需要以特殊的 port 来进行,例如 FTP 的 port 21 ),则会向请求端送回整个联机的第二个封包!其上除了 SYN 旗标之外同时还将 ACK 旗标也设定起来,并同时时在本机端建立资源以待联机之需;
· 然后,请求端获得服务端第一个响应封包之后,必须再响应对方一个确认封包,此时封包只带 ACK 旗标(事实上﹐后继联机中的所有封包都必须带有 ACK 旗标)﹔
· 只有当服务端收到请求端的确认( ACK )封包(也就是整个联机的第三个封包)之后﹐两端的联机才能正式建立。这就是所谓的 TCP 联机的 三段式交握( Three-Way Handshake ) 的原理。
|
经过三向交握之后,呵呵!你的 client 端的 port 通常是高于 1024 的随机取得的 port 至于主机端则视当时的服务是开启哪一个 port 而定,例如 WWW 选择 80 而 FTP 则以 21 为正常的联机信道!
· 总共有多少埠口?哪些是保留的 port ? 我想,你或许会很好奇,ㄟ~那么通常一般的主机会有多少个 port 呢?!正常来说,所有的 port 是由 1 ~ 65535 这么多个啦!好啦,那么我们在 帐号管理 那里面也曾经说过,为了 Linux 系统本身,所以会有些保留给系统使用的 ID 号码,那么在 port 上面有没有这些保留的咚咚呢!?宾果!答对了!就是有保留的 port !一般而言,只有 root 才可以使用 1 ~ 1023 以内的 port ,这些 port 就是特殊的埠口,是保留给系统来使用的!至于一般的使用者则仅能使用大于 1024 以上的 port 来进行网络的联机动作!
· 特殊的 port ? /etc/services ? 好了,那么你应该又会说,那么这些保留的 port 有什么特殊的功能呢?!首先,这些 port 通常只有 root 才能激活,而目前在 Internet 上面流行的几个服务之封包都有固定使用的埠号,也就是说,如果你要连上某个服务的时候,就必须要使用特殊的埠口才行,例如我们常常听到的 FTP 正常就要使用 port 21 ,而 telnet 就要使用 port 23 啰!还有哪些常常听到的埠号呢?例如 WWW 的 port 80 ,而 Proxy 的 port 3128 等等!好了,那么如果你没有将这些 port 保留起来,万一被系统不小心的随机给他丢给使用者来使用联机,呵呵!那么你的服务不就无法激活啰!?