限制Linux对外联机的端口简析



限制Linux对外联机的端口简析
 
概述:当我们启用了一个daemon时,就可能会造成主机的Port在进行Listen的动作,此刻该daemon就是已经对网络上面提供服务了。
   www.2cto.com  
什么是port:
       网络联机是[双向]的,要达成一条server/client的联机,需要一组Socket pair来建立联机。
       主机端的监听(Listen):主机所启用的 port 其实是由某些网络服务 (program)所启动的。而为了连接上的方便,因此很多服务所开启的 port 是固定的。 www<->80  mail<->25
       客户端的port:是随机产生的,主要是开启>1024以上的端口,这个port也是由某些软件所产生的。
 
所谓的【监听】是某个服务程序会一直常驻在内存当中,所以该程序启动的port就会一直存在。至于port在传输过程中的判断,那就由TCP/UDP等通讯协议的表头数据来记录的。
   www.2cto.com  
了解:共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 额外提供一些管控,例如控制何时启动,何时可以进行联机。
   www.2cto.com  
关闭系统上面的 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是否启动  www.2cto.com  
       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时,这个服务要启动。
   www.2cto.com  
查看主机上面有多少 port 被打开了
      netstat -tunlp         观察已经在监听的port与服务的对应
      netstat -tunp          已建立的联机
      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慢一点。
   www.2cto.com  
 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同时要求,所以网络频宽也会被用光。

相关内容

    暂无相关文章