■山東 李瑞祥 劉楊青 湯彧
出于網(wǎng)絡(luò)安全的考慮,一臺(tái)Linux 服務(wù)器只需要開啟它所提供網(wǎng)絡(luò)服務(wù)的端口號(hào),除此之外的端口一律不需要開啟。這就要靠Linux 系統(tǒng)的防火墻來實(shí)現(xiàn)。
剛開始接觸Linux 的朋友,可能對(duì)于開啟防火墻有所顧忌,主要是擔(dān)心開啟后正常的網(wǎng)絡(luò)服務(wù)也不能提供了。這樣本來是為了提高系統(tǒng)的安全性,但是最后卻造成系統(tǒng)不能正常工作了,會(huì)被領(lǐng)導(dǎo)追究責(zé)任。
其實(shí)只要根據(jù)操作規(guī)范來開啟防火墻是不會(huì)對(duì)系統(tǒng)的正常服務(wù)造成影響的,而是相當(dāng)于給系統(tǒng)增加一道銅墻鐵壁,可以有效地防范來自外網(wǎng)的攻擊,下面我們就分三步來分享開啟和使用防火墻的心得。
我們所使用的Linux 系統(tǒng)為CentOS 7
系統(tǒng)自帶的是firewalld,這個(gè)不符合我們的使用習(xí)慣,所以就先停止該程序,并設(shè)置為禁止開機(jī)自啟動(dòng),命令如下:
然后編輯/etc/sysconfig 目錄下面的iptables 文件,設(shè)置開放的端口。
相關(guān)的設(shè)置如下所示:
最初在iptables這個(gè)配置文件里面只有一行,關(guān)于開放22端口(SSH 服務(wù))的:
-A INPUT -p tcp-m state --state NEW -m tcp --dport 22 -j ACCEPT
我們可以根據(jù)這一行進(jìn)行其他端口的開放,比如我們知道需要開啟80 端口,就可以加一行:
-A INPUT -p tcp -m state --state NEW -m tcp--dport 80 -j ACCEPT
在Linux 系統(tǒng)的/etc/services 文件中,列出了常用服務(wù)所使用的端口號(hào),我們可以對(duì)照查看,那么對(duì)于不是很常見的端口號(hào),我們?cè)撊绾蝸頊?zhǔn)確的開啟,下面還有兩個(gè)心得。
圖1 使用netstat 命令查看rsyslog 服務(wù)端口號(hào)
圖2 查看其使用了TCP 和UDP 協(xié)議
比如我們?cè)贚inux 服務(wù)器中安裝了MySQL 數(shù)據(jù)庫(kù),然后需要通過客戶端連接到這個(gè)MySQL 數(shù)據(jù)庫(kù)上,
這時(shí)在客戶端軟件上就可以看到在需要使用3306端口號(hào)進(jìn)行訪問,這時(shí)候就可以在iptables 文件里面添加一個(gè)3306 的端口號(hào),使用的是TCP 協(xié)議,一般網(wǎng)絡(luò)程序大多數(shù)使用的TCP 協(xié)議:
-A INPUT -p tcp -m state --state NEW -m tcp--dport 3306 -j ACCEPT
但是也有一些使用的是UDP 端口,如下所示。
比如我們?cè)谶@臺(tái)Linux服務(wù)器上運(yùn)行了rsyslog服務(wù),用來記錄網(wǎng)絡(luò)中各臺(tái)交換機(jī)的日志信息,那么rsyslog 服務(wù)具體是使用的什么端口號(hào)呢,就可以使用netstat 命令來查看,如圖1所示。
從第二行中就可以看到,rsyslog 使用是UDP 的514 端口,要想開放這個(gè)服務(wù),就可在iptables 里面這樣寫:
當(dāng)然有些可能既使用了TCP 協(xié)議又使用了UDP 協(xié)議,比如zabbix,通過netstat 命令查看,就會(huì)發(fā)現(xiàn)它同時(shí)使用了TCP 和UDP 協(xié)議,如圖2 所示。
如果要提供zabbix 服務(wù),就需要在Iptables 配置文件添加如下兩行:
通過在Linux 系統(tǒng)中開啟防火墻可有效提升系統(tǒng)安全性,而且開啟防火墻并不會(huì)影響系統(tǒng)的正常服務(wù)。以上是我們實(shí)際操作過程中總結(jié)的心得,供大家參考。