防火墻
引子
在linux下玩耍多年,僅限于centos和ubuntu噢,雖不精通,但基本操作也是唰唰的(cd,pwd誰用誰都唰唰的)。當然主要不是為了玩耍,為了提供web服務。絕大多數情況下,安裝服務器后,首先關閉它的防火墻,Selinux,iptables。很好,外邊可以訪問我們的服務了。
但這樣真的可以嗎?
其實大家都明白,從我個人,到教我這么干的組長,再到領導都知道這樣是不好的,是錯的,但我們不改。不是因為我們懶,就是因為我們吃的虧不夠。
我們所布署的絕大多數項目都是這樣裸奔。
直到今天,我們自己的服務器,中了木馬,舊機器因CPU過熱宕機好幾次才發現。幾經努力,木馬雖已清除。在安全上也給我深深的上了一課,也由此決定開啟防火之路。
正文
開啟防火墻
chkconfig iptables on 或
service iptables start 或
/etc/init.d/iptables restart
規則制定
簡單理解防火墻的工作方式,就是讓哪個端口可以被外部的哪些ip訪問,哪些端口或哪些ip禁止訪問(請拍磚)
兩個關鍵字:
- ACCEPT 允許
- DROP 忽略
修改 /etc/sysconfig/iptables
可以手動調整規則
#開放本地和Ping
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
#配置內網白名單
-A INPUT -s 10.0.0.0/8 -j ACCEPT
-A INPUT -s 172.16.0.0/12 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -j ACCEPT
#配置外網白名單
-A INPUT -s 180.168.36.198 -j ACCEPT
-A INPUT -s 180.168.34.218 -j ACCEPT
-A INPUT -s 222.73.202.251 -j ACCEPT
#控制端口
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
#拒絕其它
-A INPUT -j DROP
-A FORWARD -j DROP
#開放出口
-A OUTPUT -j ACCEPT
COMMIT
#重啟生效
service iptables restart
#復查結果
iptables -nL --line-number