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