⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0210port_limit.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 4 页
字号:
[扫瞄类型]∶主要的扫瞄类型有底下几种∶
    -sT∶扫瞄 TCP 封包已建立的连线 connect() !
    -sS∶扫瞄 TCP 封包带有 SYN 标签的资料
    -sP∶以 ping 的方式进行扫瞄
    -sU∶以 UDP 的封包格式进行扫瞄
    -sO∶以 IP 的协定 ( protocol ) 进行主机的扫瞄
[扫瞄参数]∶主要的扫瞄参数有几种∶
    -PT∶使用 TCP 里头的 ping 的方式来进行扫瞄,可以获知目前有几部电脑存活(较常用)
    -PI∶使用实际的 ping (带有 ICMP 封包的) 来进行扫瞄
    -p ∶这个是 port range ,例如 1024-, 80-1023, 30000-60000 等等的使用方式
[Hosts 位址与范围]∶这个有趣多了,有几种类似的类型
    192.168.0.100  ∶直接写入 HOST IP 而已,仅检查一部;
    192.168.0.0/24 ∶为 C Class 的型态,
    192.168.*.*    ∶嘿嘿!则变为 B Class 的型态了!扫瞄的范围变广了!
    192.168.0.0-50,60-100,103,200 ∶这种是变形的主机范围啦!很好用吧!</span>

<span class=term_hd>范例一∶使用预设参数扫瞄本机所启用的 port</span>
[root@linux ~]# <span class=term_command>nmap localhost</span>
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
139/tcp  open  netbios-ssn
<span class=term_say># 在预设的情况下, nmap 仅会扫瞄 TCP 的协定喔!</span>
</pre></td></tr></table>

		nmap 的用法很简单呐!就直接在指令后面接上 IP 或者是主机名称即可。不过,在预设的情况下 nmap 
		仅会帮你分析 TCP 这个通讯协定而已,像上面这个例子,他只会帮我列出 4 个已经开启的 TCP 的埠口号码,
		但优点是顺道也将开启该埠口的服务也列出来了,真是好! ^_^!那如果想要同时分析
		TCP/UDP 这两个常见的通讯协定呢?可以这样做∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>nmap -sTU localhost</span>
PORT      STATE         SERVICE
22/tcp    open          ssh
25/tcp    open          smtp
80/tcp    open          http
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
139/tcp   open          netbios-ssn
</pre></td></tr></table>

		嘿嘿!与前面的范例比较一下,你会发现这次多了两个 UDP 的埠口,分别是 137 与 138 ,
		这样分析好多了吧!然后,如果你想要了解一下到底有几部主机活在你的网路当中时,
		则可以这样做∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>nmap -sP 192.168.10.0/24</span>
Host 192.168.10.171 appears to be up.
MAC Address: 00:01:E6:B3:AA:CC (Hewlett-Packard Company)
Host 192.168.10.174 appears to be up.
MAC Address: 00:04:75:FF:CC:DD (3 Com)
Host 192.168.10.175 appears to be up.
MAC Address: 00:0C:6E:BA:11:22 (Asustek Computer)
</pre></td></tr></table>

		看到否?你的环境当中有三部主机活著呐!并且该 IP 所对应的 MAC 也会被记录下来,
		很不错吧!如果你还想要将各个主机的启动的 port 作一番侦测的话,那就得要使用∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>nmap 192.168.10.0/24</span>
</pre></td></tr></table>

		之后你就会看到一堆 port number 被输出到萤幕上棉~如果想要随时记录整个网段的主机是否不小心开放了某些服务,
		嘿嘿!利用 nmap 配合资料流重导向 (>, >> 等) 来输出成为档案,
		那随时可以掌握住您区域网路内每部主机的服务启动状况啊! ^_^<br /><br />

		请特别留意,这个 nmap 的功能相当的强大,也是因为如此,
		所以很多刚在练习的黑客会使用这个软体来侦测别人的电脑,这个时候请您特别留意,
		目前很多的人已经都有『特别的方式』来进行登录的工作!例如以 
		<a href="0250simple_firewall.php#TCP_Wrappers">TCP_Wrappers</a> 
		(/etc/hosts.allow, /etc/hosts.deny) 的功能来记录曾经侦测过该 port 的 IP!
		这个软体用来『侦测自己机器的安全性』是很不错的一个工具,但是如果用来侦测别人的主机,
		可是会『吃上官司』的!特别留意!!
		</div>
	</div>
</div>


<hr /><a NAME="daemon"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">Port 的启动与关闭</span><br />
<div class=block1>
	现在你知道<span class=text_import2>其实 port 是由某些程式所启动的,所以要关闭某些 port 
	时,那就直接将某个程式给他关闭就是了</span>!
	那关闭的方法你当然可以使用 <a href="../linux_basic/0440processcontrol.php#kill">kill</a>
	,不过,毕竟不是正统的解决之道,因为 kill 
	这个指令通常具有强制关闭某些程式的功能,但我们想要正常的关闭该程式啊!
	所以,就利用系统给我们的 script  来关闭就好了啊。
	在此同时,我们就得再来稍微复习一下,一般传统的服务有哪几种类型?<br /><br />

	<hr /><a NAME="daemon_what"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">stand alone 与 super daemon</span><br />
	<div class=block2>
		我们在<a href="../linux_basic">鸟哥的 Linux 私房菜 -- 基础学习篇</a>内谈到,
		在一般正常的 Linux 系统环境下,服务的启动与管理主要有两种方式∶<br />
		<ul>
		<li><span class=text_import1>stand alone</span><br />
		顾名思义,stand alone 就是直接执行该服务的执行档,让该执行档直接载入到记忆体当中运作,
		用这种方式来启动可以让该服务具有较快速回应的优点。一般来说,这种服务的启动 script 都会放置到
		<span class=text_import2>/etc/init.d/</span> 这个目录底下,所以你通常可以使用∶『
		/etc/init.d/sshd restart 』之类的方式来启动这种服务;<br /><br /></li>
		<li><span class=text_import1>Super daemon</span><br />
		用一个超级服务作为总管,以管理一些网路服务。在 CentOS 4.x 里面使用的则是 xinetd 这个
		super daemon 啊!这种方式启动的网路服务虽然在回应上速度会比较慢,
		不过,可以透过 super daemon 额外提供一些控管,例如控制何时启动、何时可以进行连线、
		那个 IP 可以连进来、是否允许同时连线等等。通常设定档放置在
		<span class=text_import2>/etc/xinetd.d/</span> 当中,但设定完毕后需要重新以『
		/etc/init.d/xinetd restart 』重新来启动才行!</ul>

		关于更详细的服务说明,请参考基础篇的 <a href="../linux_basic/0560daemons.php">认识服务</a> 一文,
		鸟哥在这里不再赘述。好,那么如果我想要将我系统上面的 port 25 关掉的话,
		那应该如何关闭呢?最简单的作法就是先找出那个 port 25 的启动程式喔!<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>netstat -tnlp</span>
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State   PID/Program name
tcp        0      0 127.0.0.1:25  0.0.0.0:*       LISTEN  <span class=term_write>2030/master</span>
tcp        0      0 :::22         :::*            LISTEN  1961/sshd
<span class=term_say># 咦!怎么会是 master 这个玩意儿?用 which 这个指令还找不到这个 master
# 那怎办?没关系,我们可以透过 locate 配合正规表示法找到这个指令的!</span>

[root@linux ~]# <span class=term_command>locate master | grep '/master$'</span>
/usr/libexec/postfix/<span class=term_write>master</span>
<span class=term_say># 嘿嘿!那个正规表示法就可以找到上述的输出结果,然后再由 rpm 来处理!</span>

[root@linux ~]# <span class=term_command>rpm -qf /usr/libexec/postfix/master</span>
postfix-2.2.2-2
<span class=term_say># 找到了!就是这个套件!所以将他关闭的方法可能就是∶</span>

[root@linux ~]# <span class=term_command>rpm -qc postfix | grep init</span>
/etc/rc.d/init.d/postfix
[root@linux ~]# <span class=term_command>/etc/init.d/postfix stop</span>
</pre></td></tr></table>

		透过上面的这个分析的流程,你可以利用系统提供的很多方便的工具来达成某个服务的关闭!
		为啥这么麻烦?不是利用 kill -9 2030 就可以删掉该服务了吗?
		是没错啦!不过,你知道该服务是做啥用的吗?你知道将他关闭之后,你的系统会出什么问题吗?
		如果不知道的话,那么利用上面的流程不就可以找出该服务套件,再利用 rpm 查询功能,
		不就能够知道该服务的作用了?所以说,这个方式还是对您会有帮助的啦!
		底下请您试著将您 CentOS 或者是其他版本的 Linux 的 Telnet 打开试看看。<br /><br />

<table border=1 width=90% cellspacing=0 cellpadding=5><tr><td>
例题∶我们知道系统的 Telnet 服务通常是以 super daemon 来控管的,请您启动您系统的 telnet 试看看。<br /><br />
答∶<ol>
<li>要启动 telnet 首先必须要已经安装了 telnet 的伺服器才行,所以请先以 rpm 查询看看是否有安装 telnet-server 呢?
『rpm -qa | grep telnet-server』如果没有安装的话,请利用原版光碟来安装,或者使用『yum install telnet-server』
安装一下先;
<li>由于是 super daemon 控管,所以请编辑 /etc/xinetd.d/telnet 这个档案,将其中的『disable = yes』改成
『disable = no』之后以『/etc/init.d/xinetd restart』重新启动 super daemon 吧!
<li>利用 netstat -tnlp 察看是否有启动 port 23 呢?
</ol>
</td></tr></table><br />
	</div>

	<hr /><a NAME="daemon_boot"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">设定开机时启动服务</span><br />
	<div class=block2>
		如果刚刚你已经利用类似前一节的方法将一些服务关闭了,但是下次再重新开机后,咦!
		怎么那些被关闭的服务又『春风吹又生』的给他『长』出来了?呵呵~没错啊,
		因为前一节的作法是可以立即将某个服务关闭,但是却不会影响到开机时是否会启动与否的设定。
		唉~伤脑筋~<br /><br />

		如果你想要在开机的时候就启动或不启动某项服务时,那就得要了解一下
		<a href="../linux_basic/0510osloader.php">基础学习篇里面谈到的开机流程管理</a> 的内容啦!
		在 Unix like 的系统当中我们都是透过 run level 来设定某些执行等级需要启动的服务,
		以 Red Hat 系统来说,这些 run level 启动的资料都是放置在 
		<span class=text_import2>/etc/rc.d/rc[0-6].d/</span> 里面的,那如何管理该目录下的 script 呢?
		手动处理吗?会疯掉的呐!所以你必须要熟悉
		<a href="../linux_basic/0560daemons.php#chkconfig">chkconfig</a> 或 
		<a href="../linux_basic/0560daemons.php#ntsysv">Red Hat 系统的 ntsysv</a> 这几个指令才行!<br />

		<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen">		这几个指令不熟吗?这个时候鸟哥不得不说了∶『有 man 堪用直需用,莫待无 man 空自猜』赶紧给他 man 下去啦!
		</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
<table border=1 width=90% cellspacing=0 cellpadding=5><tr><td>
例题∶(1)如何查阅 portmap 这个程式一开机就执行? (2)如果开机就执行,如何将他改为开机时不要启动? 
(3)如何立即关闭这个 portmap 服务?<br /><br />
答∶<ol>
<li>可以透过『 chkconfig --list | grep portmap 』与『 runlevel 』确认一下你的环境与 portmap 是否启动?
<li>如果有启动,可透过『 chkconfig --level 35 portmap off 』来设定开机时不要启动;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -