Linux端口与服务
一、linux端口与服务安全概述
网络传输安全、操作系统安全、应用软件安全构成了整个网络应用的安全;其中应用软件安全防范是整个网络安全的核心,安全设备都是在应用软件安全的基础上进行的。而应用软件安全在linux上的体现其实就是端口与服务。一个有效连接的建立,就是客户端的port与服务端的port建立连接的过程。
二、linux端口分类
Linux系统下共定义了65536个可用端口 ,这些端口又分为两部分,以1024为分割点,分别是:
(1)只有root用户才能启用的port,0—1023端口,需要用root身份才能启用,这些端口主要勇于系统的常见通信服务。
(2)客户端的port,1024—65535是给客户端软件使用的,客户端port不受root用户限制,例mysql端口为3306,有mysql用户启用;Oracle端口为1521,有Oracle用户启用;常见的web连接需先从本地启用一个大于或等于1024的随机端口,然后去连接web服务端的80端口。
在Linux系统中,/etc/services定义了各服务与端口的对应关系。
三、linux下查看端口状态
(1)查看当前服务器的端口监听状态
netstat -tunl
[root@bogon ~]# netstat -tunl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address
Foreign Address State
tcp
0 0 127.0.0.1:199 0.0.0.0:* LISTEN
tcp
0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp
0 0 0.0.0.0:81 0.0.0.0:* LISTEN
tcp
0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp
0 0 0.0.0.0:1723 0.0.0.0:* LISTEN
tcp
0 0 :::3690 :::* LISTEN
tcp
0 0 :::80 :::* LISTEN
tcp
0 0 :::22 :::* LISTEN
udp
0 0 0.0.0.0:161 0.0.0.0:*
udp
0 0 0.0.0.0:162 0.0.0.0:*
udp
0 0 192.168.0.200:123 0.0.0.0:*
udp
0 0 192.168.1.200:123 0.0.0.0:*
udp
0 0 127.0.0.1:123 0.0.0.0:*
udp
0 0 0.0.0.0:123 0.0.0.0:*
udp
0 0 ::1:123 :::*
udp
0 0 fe80::214:22ff:fe16:123 :::*
udp
0 0 fe80::214:22ff:fe16:123 :::*
udp
0 0 :::123 :::*
(2)查看端口已连接的连接状态
netstat -tun
[root@bogon ~]# netstat -tun
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address
Foreign Address State
tcp
0 0 ::ffff:192.168.1.200:22 ::ffff:192.168.1.190:2528 ESTABLISHED
local address表示服务器内部联机启用的端口,foreign address表示客户端联机启用的端口
(3)查看端口对应的服务
netstat -nltp
[root@bogon ~]# netstat -nltp
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:199 0.0.0.0:* LISTEN 21243/snmpd
tcp
0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 13171/php-cgi
tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2189/mysqld
tcp
0 0 0.0.0.0:81 0.0.0.0:* LISTEN 20624/nginx
tcp
0 0 127.0.0.1:25 0.0.0.0:* LISTEN 13481/sendmail: acc
tcp
0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 2579/pptpd
tcp
0 0 :::3690 :::* LISTEN 2167/svnserve
tcp
0 0 :::80 :::* LISTEN 1517/httpd
tcp
0 0 :::22 :::* LISTEN 1498/sshd
四、端口与系统的安全性
服务和端口是一个一一对应的关系,相互依赖,没有服务的运行也就无所谓端口,端口的开启和关闭也就是软件服务的开启和关闭。一般情况下在linux系统中会关闭不必要的端口,其实端口没有所谓的安全性,真正影响安全的不是端口,而是与端口对应的服务。
Linux下用rpm包安装的应用程序可以使用chkconfig来控制服务在哪种运行级别中启动或关闭,chkconfig --level 级别 服务 on | off,如果使用的是CentOS的话,可以使用ntsysv(图像化操作,更方便)来控制服务的启动,但需要预先安装。
yum install ntsysv
使用方向键来控制上下,使用空格来操作服务的启动与关闭;服务名前有符号“*”的开机启动,无此符号的不起的;配置完毕后按tab键切换到ok保存。
一般用tar包安装的服务,都是管理员自定义需要的服务,如果这些服务需要开机自动启动,则把服务启动的脚步添加到/etc/rc.locad
[root@bogon ~]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/apache/bin/apachectl -k start
/usr/local/subversion/bin/svnserve -d
service mysql start
/usr/local/nginx/sbin/nginx
/usr/local/php/sbin/php-fpm start
service snmpd start
注:rpm包也可用此方法来设置开启自动启动
五、linux一般开启的服务
(1)acpid 用于电源管理
(2)apnd 高级电源管理,可监控电池
(3)kudzu 检测硬件是否变化的服务
(4)crond crontab服务的简写,定时自动安排进程运行的服务
(5)atd at服务,定时自动安排进程运行的服务,但安排的进程只运行一次
(6)keytables 装载镜像键盘
(7)iptables linux内置的防火墙
(8)xinetd 支持多种网络服务的核心进程,此进程管理的服务有telnet、vsftp等
(9)xfs linux桌面图形程序,即x-windows
(10)network 激活配置的网卡
(11)sshd ssh远程联机服务
(12)syslog 记录系统日志的服务