限制Linux对外联机的端口

概述:当我们启用了一个daemon时,就可能会造成主机的Port在进行Listen的动作,此刻该daemon就是已经对网络上面提供服务了。

什么是port:

       网络联机是[双向]的,要达成一条server/client的联机,需要一组Socket pair来建立联机。

       主机端的监听(Listen):主机所启用的 port 其实是由某些网络服务 (program)所启动的。而为了连接上的方便,因此很多服务所开启的 port 是固定的。 www<->80  mail<->25

       客户端的port:是随机产生的,主要是开启>1024以上的端口,这个port也是由某些软件所产生的。

所谓的【监听】是某个服务程序会一直常驻在内存当中,所以该程序启动的port就会一直存在。至于port在传输过程中的判断,那就由TCP/UDP等通讯协议的表头数据来记录的。

了解:共65536个port,分成2部分,以1024区分。小于等于1023的端口,需要root身份才能启动,这些port主要用于一些常见的通讯服务。记录在/etc/services里面。对安全真正有危害的是【某些不安全的服务】而不是【开了哪些port】

观察port:netstat 和 nmap

      netstat:在本机上面以自己的程序监测自己的 port

      nmap:透过网络的侦测软件辅助,可侦测非本机上的其他网络主机,但有违法之虞。系统管理员用来管理系统安全性查核的工具!

      列出在监听的网络服务:netstat -tunl

      列出已联机的网络联机状态:netstat -tun

      删除已建立或在监听当中的联机:netstat -tunp

      nmap [扫描类型] [扫描参数] [hosts 地址与范围]

                使用预设参数扫描本机所启用的port:nmap localhost

                同时分析TCP/UDP这2个常见的通讯协议:nmap -sTU localhost

                了解有几部主机活在你的网络当中:nmap -sP 192.168.10.0/24

                在以上基础上侦测各个主机的启动port:nmap 192.168.10.0/24

Port的启用与关闭

       stand alone 与 super daemon

       stand alone:就是直接执行该服务的执行档,让该执行文件直接加载到内存当中运作,用这种方式来启动可以让该服务具有较快速响应的优点。通常放置在/etc/init.d/下

       super daemon:用一个超级服务作为总管,以管理一些网络服务。/etc/xinetd.d。响应速度比较慢,可以透过super daemon 额外提供一些管控,例如控制何时启动,何时可以进行联机。

关闭系统上面的 port 25 步骤:

     1、netstat -tnlp

     2、locate master | grep '/master$'      

     3、rpm -qf /usr/libexec/postfix/master

     4、rpm -qc postfix | grep init

流程: 找出该服务套件--->rpm查询功能得知服务的作用--->关闭

启动系统的Telnet

      1、[rpm -qa | grep telnet-server] 以rpm查询看看是否有安装 telnet-server

      2、没有安装,则yum install telnet-server

      3、由于是 super daemon 管控,所以编辑/etc/xinetd.d/telnet这个档案,置[disable = no]重启super daemon。/etc/init.d/xinetd restart

      4、利用 netstat -tulp 察看是否有启动 port 23

设定开机时启动服务:

       1、如何查阅 portmap 这个程序一开机就执行

            答: chkconfig --list | grep portmap       与runlevel确认一下你的环境与portmap是否启动

       2、如果开机就执行,如何将他改为开机时不要启动

            答:如果有启动,可透过【chkconfig --level 35 portmap off】来设定开机时不要启动

       3、如何立即关闭这个portmap服务

            答:可以透过【/etc/init.d/portmap stop】来立即关闭它

常见的必须要存在的系统服务 

      acpid:新版的电源管理模块,通常建议开启。

      atd:在管理单一预约命令执行的服务,应该要启动的。

      crond:在管理工作排程的重要服务,请务必启动啊

      iptables:Linux内建的防火墙软件,这个也可以启动啊

      keytables:如果你的键盘非正规的格式时,这个服务的启动获取可以帮助你喔

      network:是网络就要有他

      sshd:这个系统预设会启动的,可以让你在远程以文字形态的终端机登入喔

      syslog:系统的登陆文件记录,很重要,务必启动啊

      xinetd:就是那个 super daemon 嘛!所以也要启动啦!

      xfs:用来管理x window字形数据的服务,如果你会需要x window时,这个服务要启动。

查看主机上面有多少 port 被打开了

  1.       netstat -tunlp         观察已经在监听的port与服务的对应
  2.       netstat -tunp          已建立的联机
  3.       nmap IP                   不在Linux本机上

如何观察程序

      利用[ps -aux] 或 [top] 都可以,另外,[pstree -p]则可以了解所有程序相依性,而[lsof]则可以察看所有程序所开的档案喔!

LISTEN的 port 与 daemon 的关系:正在 LISTEN 当中的端口均是由某些(daemon)所启动的,所以要启动端口就得启用某个服务,要了解某个端口是由哪个 daemon 所启动的,就利用 netstat -tulp 来查阅。

stand alone & super daemon :Linux系统的服务有独立启动(stand alone)及超级服务员(super daemon)两种启动的方式。挂在super daemon底下的服务可以经由super daemon的管控,以加强一些安全功能,不过由于还要经过 super daemon 的管理,所以服务的连接速度上会比stand alone慢一点。

 daemon启动与关闭的scripts与档案放置的目录

        /etc/init.d/        各个daemons的启动与关闭的scripts

        /etc/rc.d/init.d     Red Hat 系统

        /etc/xinetd.d       super daemon的控管参数

阻断式服务:利用三向交握程序的漏洞,多个client端持续发送tcp封包的联机要求,但却不理会server端的SYN/ACK的封包,导致server端会持续启动很多的port在等待client端的回应,那我们知道一般port有65536个,万一用完了,那系统网络就瘫痪了!所以DDoS会造成系统网络瘫痪问题。另外,由于多个client同时要求,所以网络频宽也会被用光。

猜你喜欢

转载自xqgogopp.iteye.com/blog/1682094