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