CentOS防火墙配置(资源)
2019獨角獸企業重金招聘Python工程師標準>>>
防火墻簡介
? ? ? ?防火墻,一種高級訪問控制設備,置于不同網絡安全域之間,它通過相關的安全策略來控制(允許、拒絕、監視、記錄)進出網絡的訪問行為。防火墻主要由服務訪問規則、驗證工具、包過濾和應用網關4個部分組成。實質上是指由軟硬件組合成的一個在內外網之間構造的一種保護屏障,它是一種隔離技術。因此從物理上區分,可以分為軟件和硬件防火墻,從邏輯上區分,可以分為主機和網絡防火墻,而我們現在要講到的iptables,是屬于防火墻中的軟件防火墻的范疇,但它只是一個命令行工具或者說是一種客戶端代理,并不是真正的防火墻,用戶通過這個代理,把安全設定執行到真正的防火墻框架中,這個框架叫做Netfilter。
防火墻掃描流經它的網絡通信,通過這樣的做法能夠過濾掉一些攻擊,以免其在目標計算機上被執行。防火墻還可以關閉不使用的端口,而且還能禁止特定端口的流出通信,封鎖特洛伊木馬。最后,它可以禁止來自特殊站點的訪問,從而防止來自不明入侵者的所有通信。
防火墻原理
防火墻的作用
工作于主機或網絡的邊緣,對于進出本主機或網絡的報文根據定義好的檢查規則作匹配檢測,對于能夠被規則匹配到的報文做出相應處理的組件;
防火墻的種類
主機防火墻
網絡防火墻
?
防火墻的功能
1、網絡安全的屏障
2、強化網絡安全策略
3、監控審計
4、監控審計
5、數據包過濾
6、網絡IP地址轉換
7、虛擬專用網絡
8、日志記錄與事件通知
?
iptables的優點
最大優點是它可以配置有狀態的防火墻,有狀態的防火墻能夠指定并記住為發送或接收信息包所建立的連接的狀態。防火墻可以從信息包的連接跟蹤狀態獲得該信息。在決定新的信息包過濾時,防火墻 所使用的這些狀態信息可以增加其效率和速度。這里有4種有效狀態,名稱分別為ESTABLISHED、INVALID、NEW和RELATED。
?
?
防火墻的四表功能
filter :過濾 ,防火墻
nat : network , adress ?,translation , 網絡地址轉換
mangle : 拆解報文, 做出修改 ,封裝報文 。
raw : 關閉nat 表上啟用的連接追蹤機智
注意 ? : nat : Network Address Translation ,安全性,網絡層+傳輸層;
Proxy : ?代理,應用層;
nat :?
SNAT : 只修改請求報文的源地址;
DNAT : 只修改請求報文的目標地址;
源地址轉換 : iptables -t nat -A POSTROUTING -s LocalNET ! -d?LocalNET -j SNAT --to -source ExtIP
iptables -t nat -A?POSTROUTING -s LocalNET ! -d?LocalNET -j MASQUERADE
目標地址轉換 : iptables -t nat -A POSTROUTING -d ExtIP --p tcp|udp --dport PORT -j DNAT --to-destination InterServerIP[:PORT]
?
數據包過濾匹配流程
鍵 (內置) :
PREROUTTING
INPUT
FORWARD
OUTPUT
POSTROUTING
報文流向
流入 : PREROUTING -->INPUT
流出 : OUTPUT --> POSTROUTING
轉發 :PREROUTING --> FORWARD -->POSTROUTING
?
各功能的分別實現 的位置:
filter : INPUT , FORWARD ,OUTPUT
nat : PREROUTING( DNAT ?), OUTPUT ,POSTROUTING ( SNAT )
mangle : PREROUTING , INPUT ,FORWARD , OUTPUT ,POSTROUTING
raw : PREROUTING , OUTPUT
路由發生的時刻 :
報文進入本機后:
判斷目標主機 :
報文發出之前 :
判斷經由哪個接口送出下一跳 :
iptables : 四表五鏈
添加規則時的考慮點 :
(1) ?要實現哪種功能 : 判斷添加在哪張表上;
(2) ?報文流經的路徑 ?: ? ?判斷添加在哪張鏈上;
鏈 : 鏈上規則的次序,即為檢查的次序 :因此隱含一定的法則
(1) 同類規則(訪問同一應用),匹配范圍小的放上面;
(2)不同類規則(訪問不同應用),匹配到報文頻率較大的放上面;
(3)將那些可由一條規則描述的多個規則合并為一個;
(4)設置默認策略;
功能優先級次序 ?: raw > mangle > nat c >filter
?
規則 :
組成部分 : 報文的匹配條件,匹配到之后處理動作
匹配條件 : 根據協議報文特征指定
基本匹配條件 :
擴展匹配條件 :
處理動作:
內建處理機制
自定義處理機制
注意 : 報文不會經過自定義鏈, 只能在內置鏈上通過規則經行引用后生效。
iptables : 規則管理工具
添加、修改、刪除、顯示等;
規則和鏈有計數器:
pkgs : 由規則或鏈所匹配到報文的個數;
bytes : 由規則或鏈匹配到的所有報文大小之和;
目標 :
-j TARGET : jump 指定的TARGET
? ? ? ?? ?ACCEPT : 接收
? ? ?? ? ?DROP : 丟棄
?? ? ? ? ?REJECT : 拒絕
? ? ? ?? ?RETURN : 返回調用鏈
?? ? ? ? ?REDIRECT : 端口重定向
?? ? ? ? ?LOG : 記錄日志
? ? ?? ? ?MARK : 做防火墻標記
? ? ?? ? ?DNAT : 目標地址轉換
? ? ?? ? ?SNAT : 源地址轉換
? ? ?? ? ?MASQUERADE : 地址
核心轉發 : /proc/sys/net/ipv4/ip_forward
? ? ?? ? ?? ? ?/etc/sysct.conf
? ? ?? ? ?? ? ?net.ipv4.ip_forward = 1
擴展匹配 :-m(指定擴展名)
隱式擴展 :對-p ?protocol指明的協議進行的擴展,可省略-m選項;
顯式擴展 : 必須顯式指明使用的擴展模塊(rpm -ql iptables | grep "\.so")
multiport 擴展 :以離散方式定義多端口匹配,最多指定15個端口;
# iptables -I INPUT??-s 172.168.122.1/16 -d 172.168.120 -p tcp -m multiport -dports 22.80 -j ACCEPT
#?iptables -I INPUT??-d?172.168.122.1/16 -s?172.168.120 -p tcp -m multiport -dports 22.80 -j ACCEPT
iprange擴展
指明連續的(但一般是不能擴展為整個網絡)IP地址范圍時使用:
conlimit 擴展
根據每客戶端IP(也可以是地址塊)做并發連接數數量匹配
--connlimit-above n :連接的數量大于n
--connlimit-upto n :連接的數量小于等于n
limit擴展
基于收發報文的速率做檢查
令牌桶過濾器
--limit rate [/second|/minute|/hour|/day]
--limit-burst number
state擴展
根據連接追蹤機制檢查連接的狀態
調整連接追蹤功能所能夠容納的最大連接數量
/proc/sys/net/nf_conntrack_max
已經追蹤到并記錄下的連接
/proc/net/nf_conntrack
可追蹤的連接狀態
NEW : 新發出的請求:連接追蹤模板中不存此連接相關的信息條目,因此,將其識別為第一次發出的請求。
ESTABLISHED :NEW 狀態之后,連接追蹤模板中為其建立的條目失效之前期間內所進行的通信的狀態;
INVALIED : 無法識別的連接
?
擴展
查看iptables使用說明
CentOS 6 : man iptables
CentOS 7 : man iptables-extensions
?
防火墻【原理】
Netfilter是Linux中的一個子項目,它的主要功能是進行數據包過濾、連接跟蹤、地址轉換等,而iptables則是netfilter提供的對用戶數據包進行過濾、修改等操作的一種命令行工具,當數據包通過網卡進入進入內核時,它得先經過iptables的五條鏈,這些鏈都有相應的處理數據包的規則,而我們正是通過在這些鏈上設置規則來控制管理數據包,從而達到防火墻的功能。每當數據包到達一個鏈時,iptables就會從鏈中的所有規則逐一開始校驗該數據包是否符合規則中限定的條件。若滿足,系統就會根據每個規則定義的方法來處理該數據包;若不滿足,iptables則繼續檢查下一條規則,如果該數據包不符合鏈中的任意規則,iptables則會該鏈的默認策略去處理該數據包。
防火墻4種類型:特殊設計的硬件防火墻、數據包過濾型、電路層網關和應用級網關。安全性能高的防火墻系統都是組合運用多種類型防火墻,構筑多道防火墻“防御工事”。
常見的防火墻品牌? ?:? 華為、天融信、深信服、H3C、網域、思科、山石網科、中科網威、飛塔、Juniper、綠盟科技、銳捷網絡、啟明星辰、佑友、網康、網御星云、NETGEAR、中新金盾、梭子魚、清信安、D-Link、網神、SonicWALL、迪普科技、東軟、博達、paloalto、交大捷普、Check Point、利譜、漢柏。
注意? :?服務器對DDoS攻擊流量進行攔截主要是依靠硬件防火墻完成的,
?
服務器機房常用的防火墻介紹
1、金盾抗DDOS防火墻
金盾抗DDOS防火墻是一款針對ISP接入商、IDC服務商開發的專業性比較強的專業防火墻。測試的效果表明,目前的防御算法對所有已知的拒絕服務攻擊是免疫的,也就是說,是完全可以抵抗已知DoS/DDoS攻擊的。(下圖金盾硬件防火墻價格大約88W一臺)
2、深信服防火墻
深信服防火墻可以徹底解決所有dos/ddos攻擊(synflood、ackflood、udpflood、icmpflood、igmpflood、arpflood、全連接等),針對CC攻擊,已推出DosNipe V8.0版本,此核心極其高效安全,在以往抵御一切拒絕服務攻擊的基礎上,新增加了抵擋CC攻擊,新算法可以高效的抵御所有CC攻擊及其變種,識別準確率為100%,沒有任何誤判的可能性。(深信服防火墻)
3、綠盟黑洞抗DDoS防火墻
綠盟黑洞抗DDoS防火墻是國內高防服務器機房中應用比較廣泛的一款抗DoS、DDoS攻擊產品,其技術比較成熟,而且防護效果顯著,已經得到各大IDC機構的共同認可。黑洞目前分百兆、千兆兩款產品,分別可以在相應網絡環境下實現對高強度攻擊的有效防護,性能遠遠超過同類防護產品。(下圖綠盟防火墻)
綠盟黑洞抗DDoS防火墻所帶來的防護:
·自身安全:無IP地址,網絡隱身。
·能夠對SYN Flood、UDP Flood、ICMP Flood和(M)Stream Flood等各類DoS攻擊進行防護。
·可以有效防止連接耗盡,主動清除服務器上的殘余連接,提高網絡服務的品質、抑制網絡蠕蟲擴散。
·可以防護DNS Query Flood,保護DNS服務器正常運行。
·可以給各種端口掃描軟件反饋迷惑性信息,因此也可以對其它類型的攻擊起到防護作用
4、Dosnipe防火墻:
Dosnipe防火墻硬件架構部分主體采取工業計算機(工控機),可以承受惡劣的運行環境,保障設備穩定運行;軟件平臺是FreeBSD,核心部分算法是自主研發的單向一次性非法數據包識別方法,所有的Filter機制都是在掛在驅動級。可以徹底解決所有dos/ddos攻擊(synflood、ackflood、udpflood、icmpflood、igmpflood、arpflood、全連接等),針對CC攻擊,已推出DosNipe V8.0版本,此核心極其高效安全,在以往抵御一切拒絕服務攻擊的基礎上,新增加了抵擋CC攻擊,新算法可以高效的抵御所有CC攻擊及其變種,識別準確率為100%,沒有任何誤判的可能性。
Dosnipe防火墻升級之后,具備更多的新特性:
·徹底解決最新的M2攻擊。
·支持多線路,多路由接入功能。
·支持流量控制功能。
·更強大的過濾功能。
·最新升級,徹底高效的解決所有DDOS攻擊,cc攻擊的識別率為100%
?
主要類型:
網絡層防火墻 :網絡層防火墻可視為一種 IP 封包過濾器
應用層防火墻 :應用層防火墻可以攔截進出某應用程序的所有封包,并且封鎖其他的封包(通常是直接將封包丟棄)可分為:包過濾型防火墻、應用層網關型防火墻、服務器型防火墻。
**數據庫防火墻? ?:?**是一款基于數據庫協議分析與控制技術的數據庫安全防護系統。基于主動防御機制,實現數據庫的訪問行為控制、危險操作阻斷、可疑行為審計。
防火墻的核心技術 :1、??包過濾(工作在網絡層) 2、??應用代理(工作在應用層) 3、??狀態檢測(工作在2-4層) 4、??完全內容檢測()
?
包過濾防火墻技術原理
1、??簡單包過濾防火墻不檢查數據區
2、??簡單包過濾防火墻不建立連接狀態表
3、??前后報文無關
4、??應用層控制很弱
應用代理防火墻技術原理
1、??不檢查IP\TCP報頭
2、??不建立連接狀態表
3、??網絡層保護比較弱
?
防火墻分為網絡防火墻和應用層防火墻
1、網絡防火墻
網絡防火墻就是一個位于計算機和它所連接的網絡之間的防火墻。該計算機流入流出的所有網絡通信均要經過此防火墻。防火墻對流經它的網絡通信進行掃描,這樣能夠過濾掉一些攻擊以免其在目標計算機上被執行。防火墻還可以關閉不使用的端口。而且它還能禁止特定端口的流出通信,封鎖特洛伊木馬。最后,它可以禁止來自特殊站點的訪問,從而防止來自不明入侵者的所有通信。
2、應用層防火墻
應用層防火墻是在 TCP/IP 堆棧的“應用層”上運作,您使用瀏覽器時所產生的數據流或是使用 FTP 時的數據流都是屬于這一層。應用層防火墻可以攔截進出某應用程序的所有封包,并且封鎖其他的封包(通常是直接將封包丟棄)。理論上,這一類的防火墻可以完全阻絕外部的數據流進到受保護的機器里。
因為應用層防火墻的算法會更復雜,過慮更為嚴格,所以在部署防火墻的時候,要把應用層防火墻部署到網絡防火墻的里邊。
Linux防火墻體系主要工作在網絡層,針對TCP/IP數據包實施過濾和限制,屬于典型的包過濾防火墻(網絡層防火墻)。
?
二、iptables的表鏈結構
1、iptables簡介
平時說iptables是防火墻,其實iptables是iptables/netfilter組合中的一個,只有iptables/netfilter才應該叫做防火墻,它是基于軟件方式工作的網絡防火墻。iptables工作于用戶空間,是防火墻的規則編寫工具,使用iptables編寫規則并且發送到netfilter;防火墻的規則剛放到netfilter中,它是一個能夠讓規則生效的網絡架構,工作于內核空間。
【四個表】
iptables的結構是由tables組成,而tables是由鏈組成,鏈又是由具體的規則組成。因此我們在編寫iptables的規則時,通過要先指定表,再指定鏈。tables的作用是區分不同功能的規則,并且存儲這些規則。
tables的類型分別有:
2、iptables的表、鏈結構
iptables是由四表五鏈組成的,想要配置iptables必須先了解這四表五鏈
優先級:raw表? >? mangle表 >? nat表? >? filter表
①、raw表
RAW表只使用在PREROUTING鏈和OUTPUT鏈上,因為優先級最高,從而可以對收到的數據包在連接跟蹤前進行處理。一但用戶使用了RAW表,在某個鏈上,RAW表處理完后,將跳過NAT表和ip_conntrack處理,即不再做地址轉換和數據包的鏈接跟蹤處理了。
RAW表可以應用在那些不需要做nat的情況下,以提高性能。如大量訪問的web服務器,可以讓80端口不再讓iptables做數據包的鏈接跟蹤處理,以提高用戶的訪問速度。
raw內含有兩個鏈:PREROUTING和OUTPUT
②、mangle表
mangle表一般是對數據包進行修改用的
比如在網絡的轉發過程中,數據包要從X到Z,中間夾了一個Y,當數據從X到Y的時候,Y要運行拆包,看是不是自己的,如果是就收下了,如果不就是重新封裝,把源IP改為自己的,而不再是X的了,再進行轉發。
mangle表中含五個鏈:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
③、nat表
用于nat功能(端口映射,地址映射等)
主要用來處理一些將要到達本機路由和將要離開本機路由的數據包,修改數據包中的源、目標IP地址或端口;其對應的模塊為iptable_nat。
nat表內含三個鏈:PREROUTING、POSTROUTING、OUTPUT
④、filter表
一看名字就知道是用來做過濾用的。filter表是iptables的默認表,如果在設置規則時,不指定表,則默認就是在filter表上操作
filter表內含三個鏈:INPUT、FORWARD、OUTPUT
?
2)五鏈
這五條鏈其實就是針對防火墻策略的規則
①、PREROUTING
路由前,數據包在經過防火墻前應做如何處理
②、INPUT
在數據包進行進入本機前就做何處理,目標是本機,不是網絡內的主機
③、OUTPUT
在數據包離開本機時做何處理,源是本機,目標是其它主機
④、FORWARD
對于轉發數據包做如何處理,因為本機可能是一臺代理服務器,網絡內的其它主機在與互聯網通信時都需要經過這臺服務器的轉發
⑤、POSTROUTING
在數據包離開防火墻時做如何處理
INPUT、OUTPUT鏈主要用在“主機型防火墻”中,即主要針對服務器本機進行保護的防火墻;而FORWARD、PREROUTING、POSTROUTING鏈多用在“網絡型防火墻”中,
簡化版【五條鏈】
鏈,也稱為鉤子函數,它是一系列規則的一個組合,當數據包經過這些狗子函數時,她必須完全匹配每一個鉤子函數中的所有規則,方能進入下一個鉤子函數。
【語法規則】
語法:iptables [-t 表名] 命令選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]
1)常用的命令選項:
? ? ? ? ? ? ? ? ? ?-t:指定要操縱的表(四個表);
? ? ? ? ? ? ? ? ? ?-A:向規則鏈中添加條目;
? ? ? ? ? ? ? ? ? ?-D:從規則鏈中刪除條目;
? ? ? ? ? ? ? ? ? ?-i:向規則鏈中插入條目;
? ? ? ? ? ? ? ? ? ?-R:替換規則鏈中的條目;
? ? ? ? ? ? ? ? ? ?-L:顯示規則鏈中已有的條目;
? ? ? ? ? ? ? ? ? ?-F:清楚規則鏈中已有的條目;
? ? ? ? ? ? ? ? ? ?-Z:清空規則鏈中的數據包計算器和字節計數器;
? ? ? ? ? ? ? ? ? ?-N:創建新的用戶自定義規則鏈;
? ? ? ? ? ? ? ? ? ?-P:定義規則鏈中的默認目標;
? ? ? ? ? ? ? ? ? ?-h:顯示幫助信息;
? ? ? ? ? ? ? ? ? ?-p:指定要匹配的數據包協議類型;
? ? ? ? ? ? ? ? ? ?-s:指定要匹配的數據包源
2)常用的處理動作:
? ? ? ? ? ? ? ? ? ?ACCEPT:允許數據包通過
? ? ? ? ? ? ? ? ? ?DROP:直接丟棄數據包,不給任何回應信息
? ? ? ? ? ? ? ? ? ?REJECT: 拒絕數據包通過,必要時會給數據發送端一個響應的信息。
? ? ? ? ? ? ? ? ? ?LOG:在/var/log/messages文件中記錄日志然后將數據包傳遞給下一條規則
? ? ? ? ? ? ? ? ? ?REDIRECT:??端口映射。
? ? ? ? ? ? ? ? ? ?SNAT?:源地址轉換,修改包來源IP為某IP或IP范圍,做內網和公網之間的轉換。
? ? ? ? ? ? ? ? ? ?DNAT::目標地址轉換。?修改數據包目的地IP為某 Ip 或 IP 范圍。
?
3)常用的條件匹配:
1、狀態匹配:-m state --state 連接狀態
? ? ? ? ? ? ? ? ? ?NEW:與任何連接無關的
? ? ? ? ? ? ? ? ? ?ESTABLISHED:響應請求或已建立連接的
? ? ? ? ? ? ? ? ? ?RELATED:與已有連接有相關性的,如FTP數據連接
2、MAC地址匹配:-m mac --mac-source MAC地址
? ? ? ? ? ? ? ? ? ?eg:iptables -A INPUT -m mac --mac-source f0:1b:12:12:22:4f -j DROP
3、IP范圍匹配:-m iprange --src-range? IP范圍
? ? ? ? ? ? ? ? ? ?eg:iptables -A FORWARD -p tcp -m iprange --src-range 192.168.0.1-192.168.0.10 -j ACCEPT
?
4、多端口匹配:-m multiport --sports 源端口列表 ?和 ?-m multiport --sports 目的端口列表
? ? ? ? ? ? ? ? ? ?eg:iptables -A INPUT -p tcp -m multiport --dport 11,29,116,121 -j ACCEPT
?
4)常用的一些iptables策略:
1、拒絕轉發來自192.168.2.33主機的數據
iptables -A FORWARD -s 192.168.2.33 -j REJECT
2、允許轉發來自192.168.2.1/99網段的數據
iptables?-A FORWARD -s 192.168.2.1/99 -j ACCEPT
3、允許本機開放從TCP端口20-1024提供的應用服務。
iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT
iptables?-A OUTPUT -p tcp --sport 20:1024 -j ACCEPT
?
4、只允許管理員從202.13.0.0/16網段使用SSH遠程登錄防火墻主機。
iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT
iptables?-A INPUT -p tcp --dport 22 -j DROP
5、?允許轉發來自192.168.0.0/24局域網段的DNS解析請求數據包。
iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT
iptables?-A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT
?
6、屏蔽ip 110.1.1.1的訪問
iptables -I INPUT -s 110.1.1.1 -j DROP
7、屏蔽從123.0.0.1到123.255.255.254? ?:? iptables -I INPUT -s 123.0.0.0/8 -j DROP
?
8、屏蔽從從123.45.0.1到123.45.255.254? ?:? iptables -I INPUT -s 124.45.0.0/16 -j DROP
9、屏蔽從從123.45.6.1到123.45.6.254? ?:? iptables -I INPUT -s 123.45.6.0/24 -j DROP
?
10、允許所有本機向外的訪問? ?:? iptables -A OUTPUT -j ACCEPT
11、允許訪問22端口? ?:? iptables -A INPUT -p tcp --dport 22 -j ACCEPT
?
12、打開3306端口
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd?--zone=public?--add-port=80/tcp?--permanent ? ? ?#開啟3306端口
?
5)常用的iptables命令:
1、查看當前 IPTABLES 規則
service iptables status
2、?將所有iptables以序號標記顯示
iptables -L -n --line-numbers
3、 比如要刪除INPUT里序號為22的規則
iptables -D INPUT 22
iptables數據包的過濾流程
為了更直觀的表現數據包的過濾流程,請參考第二步及下圖
更多介紹? ?:??http://blog.51cto.com/linuxgentoo/1542782
?
注意? :
在centos6上,我們用的是iptables服務,iptables: 包過濾型的防火墻
在centos7上,我們用的是firewalld服務。
同樣的,centos6上安裝的是iptables包,而centos7上安裝的是firewalld包。
centos6還是centos7,核心其實都是netfilter,netfilter是linux的一個內核模塊,iptables命令是linux內核自帶的。
?
防火墻的類型
1. 從軟、硬件形式上分為 軟件防火墻和硬件防火墻以及芯片級防火墻。 2.從防火墻技術分為 “包過濾型”和“應用代理型”兩大類。 3.從防火墻結構分為 < 單一主機防火墻、路由器集成式防火墻和分布式防火墻三種。 4. 按防火墻的應用部署位置分為 邊界防火墻、個人防火墻和混合防火墻三大類。 5. 按防火墻性能分為 百兆級防火墻和千兆級防火墻兩類。
CentOS6.5 防火墻
| [linux@localhost ~]$service iptable status ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看防火墻的狀態
[linux@localhost ~]$servcie iptables stop? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--臨時關閉防火墻
[linux@localhost ~]$servcie iptables off ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--永久關閉防火墻
|
(1)查看iptables開機狀態:
[root@localhost ~]# chkconfig --list | grep iptables iptables ? ? 0:關閉 ? ?1:關閉 ? ?2:關閉 ? ?3:關閉 ? ?4:關閉 ? ?5:關閉 ? ?6:關閉
(2)關閉selinux
[root@localhost ~]# vim /etc/selinux/config
#SELINUX=enforcingSELINUX=disabled ? ? ? ? ? ? ? ? ? ? ? # 修改為disabled# SELINUXTYPE= can take one of these
?
LINUX開啟允許對外訪問的網絡端口命令 ?:
LINUX通過下面的命令可以開啟允許對外訪問的網絡端口:
/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT? ? ? ? ? ? ? ? ? ? ? ? ? #開啟8000端口
/etc/rc.d/init.d/iptables save? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #保存配置
/etc/rc.d/init.d/iptables restart? ? ? ? ? ? ? ? ? ? ? ? ? #重啟服務
查看端口是否已經開放
/etc/init.d/iptables status
要開放22,80,8080 端口,輸入以下命令即可
/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp –dport 8080 -j ACCEPT
2. 修改文件
vim /etc/rc.d/init.d/iptables
添加上述文本
3. 保存:
/etc/rc.d/init.d/iptables save
4. 查看打開的端口:
/etc/init.d/iptables status
5. 重啟
5.1 /etc/init.d/iptables restart (臨時有效)
5.2 chkconfig iptables off/on (永久有效)
當服務器成為肉雞時候,采取的措施 ?:
臨時采取的防范措施就是:利用iptables阻止服務器向外發送udp數據包。然后再查找應用,查找漏洞清除木馬文件。
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -P OUTPUT DROP
這個規則就是阻止了除了DNS要用到的53端口的其他一切udp端口,因為在此之前做了只是封掉7000端口,等會兒發現攻擊改變了端口。
在服務器流量很大的時候分析本地新增哪些udp端口
netstat -lpnut|grep udp
查找出了是1833端口,然后根據1833端口查找相關的進程
ps -ef|grep 1833
得出的進程為freebsd
然后根據進程查找所對應的應用的位置
lsof | grep -i freebsd
iptables更多介紹:http://www.cnblogs.com/MYue/p/7000821.html
?
CentOS?7?防火墻
firewalld有圖形界面和工具界面,由于我在服務器上使用,圖形界面請參照官方文檔,本文以字符界面做介紹
firewalld的字符界面管理工具是?firewall-cmd?
firewall-cmd --state #查看默認防火墻狀態(關閉后顯示notrunning,開啟后顯示running);
firewalld默認配置文件有兩個:/usr/lib/firewalld/ (系統配置,盡量不要修改)和 /etc/firewalld/ (用戶配置地址)
?
安裝firewalld
# yum install firewalld firewall-config
# systemctl enable firewalld
# systemctl start firewalld
?關閉防火墻:
systemctl stop firewalld.service ? ? ? ? ? ? ? ? ? ? ? ? ? ?#停止firewall
systemctl disable firewalld.service ? ? ? ? ? ? ? ? ? ? ?#禁止firewall開機啟動
服務
啟動一個服務:systemctl start firewalld.service
關閉一個服務:systemctl stop firewalld.service
重啟一個服務:systemctl restart firewalld.service
顯示一個服務的狀態:systemctl status firewalld.service
在開機時啟用一個服務:systemctl enable firewalld.service
在開機時禁用一個服務:systemctl disable firewalld.service
查看服務是否開機啟動:systemctl is-enabled firewalld.service;echo $?
查看已啟動的服務列表:systemctl list-unit-files|grep enabled
Centos 7 firewall 命令:
firewall-cmd --list-ports ? ? ? ? ? ? ? ? ? ? ? ?#查看已經開放的端口
# firewall-cmd --zone=public --list-ports? ? ? ? ? ? ? ? ? ? ? ? # 查看所有開放的端口
#firewall-cmd --zone=public --add-port=9000-9999/tcp --permanent? ? ? ? ? ? ?#開啟一個范圍的端口
#firewall-cmd --zone=public --remove-port=80/tcp --permanent? ? ? ? ? #刪除一個端口
#firewall-cmd --reload? ? ? ? ? ? ? ? ? ? ? ? ? #更新防火墻規則
firewall-cmd --zone=public --add-port=80/tcp --permanent ? ? ? ? ? ? ? ? ?#開啟端口
命令含義:
–zone ? ? ? #作用域
–add-port=80/tcp ? ? ?#添加端口,格式為:端口/通訊協議
–permanent ? ? ? ? ? ? ?#永久生效,沒有此參數重啟后失效
運行、停止、禁用firewalld
systemctl start ?firewalld ? ? ? ? ? ? ? ? ? ? ? ? ? #啟動firewall
firewall-cmd --reload ? ? ? ? ? ? ? ? ? ? ? ? ? #重啟firewall
#關閉狀態
systemctl stop firewalld.service ? ? ? ? ? ? ? ? ?#停止/禁用firewall
systemctl disable firewalld.service ? ? ? ? ? ? ? ? ? ? ? ? #禁止firewall開機啟動
firewall-cmd --state ?= systemctl status firewalld?? ? ? ? ? ? ? ? ?#查看默認防火墻狀態(關閉后顯示notrunning,開啟后顯示running;關閉狀態(disabled ))
zone 增刪查改設
查看全部的zone
# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
查看Firewalld的當前運行狀態,輸入如下命令:
$?firewall-cmd?--state
羅列出預定義的區域:
$?firewall-cmd?--get-zones
獲取任何特定區域的所有相關信息:
$?firewall-cmd?--zone=?--list-all
你也能列出所有支持的服務:
$?firewall-cmd?--get-services
更新firwalld:
$?firewall-cmd?--set-default-zone=
添加或刪除額外的服務。
$?firewall-cmd--zone=--add-service=?$?firewall-cmd--zone=--remove-service=
你能通過如下命令列出任何特定區域中所有開放的端口:
$?firewall-cmd?--zone=?--list-ports
你可用如下方式管理TCP/UDP端口的增加與刪除:
$?firewall-cmd--zone=--add-port=?$?firewall-cmd--zone=--remove-port=
你可以如下命令添加或刪除端口的轉發:
$?firewall-cmd--zone=--add-forward-port=??$?firewall-cmd--zone=--remove-forward-port=
查看默認的zone
# firewall-cmd --get-default-zone
public
修改默認的zone
# firewall-cmd --set-default-zone=work
success
指定網卡查詢zone
# firewall-cmd --get-zone-of-interface=ens33
work
# firewall-cmd --get-zone-of-interface=ens37
no zone
給指定網卡設置zone
# firewall-cmd --zone=public --add-interface=ens37
success
給指定網卡修改zone
# firewall-cmd --zone=dmz --change-interface=lo
success
給指定網卡刪除zone
# firewall-cmd --zone=dmz ?--remove-interface=lo
success
# firewall-cmd --get-zone-of-interface=lo
no zone
查看所有網卡所在的zone
# firewall-cmd --get-active-zones
dmz
interfaces: ens37
work
interfaces: ens33
?
service?增刪查改設
查看所有的service,(其實都是一些服務的名字)
# firewall-cmd ?--get-services
查看當前zone的service
# firewall-cmd --list-services
ssh dhcpv6-client
查看指定zone下的service
# firewall-cmd --zone=public --list-service
ssh dhcpv6-client
把http服務添加指定zone里面
# firewall-cmd --zone=public --add-service=http
success
# firewall-cmd --zone=public --list-service
ssh dhcpv6-client http
把http服務添加指定zone里面,并寫入配置文件
# firewall-cmd --zone=public --add-service=http --permanent
success
# cat /etc/firewalld/zones/public.xml
<service name="http"/>
刪掉指定zone的http服務
# firewall-cmd --zone=public --remove-service=http
success
?
firewalld 文件
/etc/firewalld/zones/?是zone類型開頭.xml格式文件。還有前面文件.old結尾的文件的備份。例如:
public.xml ?public.xml.old。分別保存了現在的文件,和修改之前的備份,用于恢復。
/etc/firewalld/services/?是service類型的文件。
/usr/lib/firewalld/?里面的 zones 和 services 目錄里,分別保存了模板文件。用于手動添加firewalld規則。
?
實例
需求:ftpd服務端口21修改為1121。在 work zone下放行。
新增service文件
# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
# vim /etc/firewalld/services/ftp.xml
<port protocol="tcp" port="21"/> 修改為 ?<port protocol="tcp" port="1121"/>
新增work文件
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
# vim /etc/firewalld/zones/work.xml
新增一行 ?<service name="ftp"/>
重載firewalld
# ?firewall-cmd --reload
查看work zone
# firewall-cmd --zone=work --list-services
ssh dhcpv6-client ftp
?
CentOS 7 以下版本 iptables 命令
如要開放80,22,8080 端口,輸入以下命令即可
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
然后保存:
/etc/rc.d/init.d/iptables save
查看打開的端口:
/etc/init.d/iptables status
?
關閉防火墻?
1) 永久性生效,重啟后不會復原
開啟: chkconfig iptables on
關閉: chkconfig iptables off
?
2) 即時生效,重啟后復原
開啟: service iptables start
關閉: service iptables stop
查看防火墻狀態: service iptables status
CentOS7和6的默認防火墻的區別
CentOS 7默認使用的是firewall作為防火墻,使用iptables必須重新設置一下
1、直接關閉防火墻
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
2、設置 iptables service
yum -y install iptables-services
如果要修改防火墻配置,如增加防火墻端口3306
vi /etc/sysconfig/iptables
增加規則
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service? ? ? ? ? ? ? ? ? ? ? ?#重啟防火墻使配置生效
systemctl enable iptables.service ? ? ? ? ? ? ? ? ? ? ? #設置防火墻開機啟動
最后重啟系統使設置生效即可。
systemctl start iptables.service? ? ? ? ? ? ? ? ? ? ? ? ? ?# 打開防火墻
systemctl stop iptables.service? ? ? ? ? ? ? ? ? ? ? ? ? ?#關閉防火墻
?
iptables將本機80端口轉發到本地8080端口
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
?
解決主機不能訪問虛擬機CentOS中的站點
前陣子在虛擬機上裝好了CentOS6.2,并配好了apache+php+mysql,但是本機就是無法訪問。一直就沒去折騰了。
具體情況如下
1. 本機能ping通虛擬機
2. 虛擬機也能ping通本機
3.虛擬機能訪問自己的web
4.本機無法訪問虛擬機的web
后來發現是防火墻將80端口屏蔽了的緣故。
檢查是不是服務器的80端口被防火墻堵了,可以通過命令:telnet server_ip 80 來測試。
解決方法如下:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
然后保存:
/etc/rc.d/init.d/iptables save
重啟防火墻
/etc/init.d/iptables restart
CentOS防火墻的關閉,關閉其服務即可:
查看CentOS防火墻信息:/etc/init.d/iptables status
關閉CentOS防火墻服務:/etc/init.d/iptables stop
本篇文章來源于 Linux公社網站(www.linuxidc.com) ?原文鏈接:https://www.linuxidc.com/Linux/2016-12/138979.htm
?
iptables規則持久化
設定防火墻規則
iptables -A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 22 -j DROPiptables -A INPUT -s 2.2.2.2/32 -p tcp -m tcp --dport 22 -j DROPiptables -A INPUT -s 3.3.3.3/32 -p tcp -m tcp --dport 22 -j DROPiptables -A INPUT -s 4.4.4.4/32 -p tcp -m tcp --dport 22 -j DROP保存防火墻規則
iptables-save > /etc/sysconfig/iptables設定開機自動恢復iptables規則
vim /etc/rc.d/rc.localiptables-restore < /etc/sysconfig/iptablesiptables關機自動保存
先清空防火墻規則
iptables -F保存iptables規則,也就是說將/etc/sysconfig/iptables文件清空
iptables-save > /etc/sysconfig/iptables手動生成一些iptables規則
iptables -A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 22 -j DROPiptables -A INPUT -s 2.2.2.2/32 -p tcp -m tcp --dport 22 -j DROPiptables -A INPUT -s 3.3.3.3/32 -p tcp -m tcp --dport 22 -j DROPiptables -A INPUT -s 4.4.4.4/32 -p tcp -m tcp --dport 22 -j DROP查看iptables規則是否生效
[root@ecs-7740 init.d]# iptables -nvLChain INPUT (policy ACCEPT 27 packets, 1978 bytes)pkts bytes target prot opt in out source destination0 0 DROP tcp -- * * 1.1.1.1 0.0.0.0/0 tcp dpt:220 0 DROP tcp -- * * 2.2.2.2 0.0.0.0/0 tcp dpt:220 0 DROP tcp -- * * 3.3.3.3 0.0.0.0/0 tcp dpt:220 0 DROP tcp -- * * 4.4.4.4 0.0.0.0/0 tcp dpt:22設定關機時自動保存iptables規則
? ? 創建關機時要執行的腳本,并且確保其有執行權限
創建軟連接文件至rcN.d路徑下,N為運行等級
查看linux的防火墻是否阻止80端口
?
iptables?-vnL? | grep ":80?"
?
?
常見問題 ?:
1、Linux中,提供TCP/IP包過濾功能的軟件叫什么?
答案 :iptables
2.使用iptables 寫一條規則:把來源IP為192.168.1.101訪問本機80端口的包直接拒絕
iptables -I INPUT -s 192.168.1.101 -p tcp --dport 80 -j REJECT
3.要想把iptable的規則保存到一個文件中如何做?如何恢復?
使用iptables-save重定向到文件中:iptables-save > 1.ipt
使用iptables-restore反重定向回來:iptables-restore < 1.ipt
4.如何將本地80端口的請求轉發到8080端口,當前主機IP為192.168.16.1,其中本地網卡eth0:
#iptables-tnat -A PREROUTING -d 192.168.16.1 -p tcp –dport 80 -j DNAT –to192.168.16.1:8080
或 者:
#iptables-t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
?
5.包過濾防火墻與代理應用防火墻有什么區別,能列舉幾種相應的產品嗎?
包過濾防火墻是根據包頭進行的過濾,并且是處于網絡層的,根據包的源ip地址,目標ip地址,協議類型,端口號,進行過濾;代理應用防火墻工作在應用層,他使用代理服務器技術,將內網對外網的訪問,變為防火墻對外網的訪問,可以對包的內容進行分辨,從而過濾。
代理應用防火墻:天融信GFW4000
包過濾防火墻:華為NE 16E
?
6.iptables是否支持time時間控制用戶行為,如有請寫出具體操作步驟。
支持。需要增加相關支持的內核補丁,并且要重新編譯內核。
或者使用crontab配合iptables,首先:vi /deny.bat 輸入/sbin/iptables -A OUTPUT -p tcp -s 192.168.1.0/24 --dport 80 -j DROP保存退出
打開crontab-e
輸入:00 21* * * /bin/sh /deny.bat
7.如何將本地 80 端口的請求轉發到 8080 端口,當前主機 IP 為 192.168.2.1
Iptables -A PREROUTING -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT
–to-destination 10.0.0.18:9000
?
8.如何將本地 80 端口的請求轉發到 8080 端口,當前主機 IP 為 192.168.16.1,其中本地
網卡 eth0:
答:
#iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp --dport 80 -j DNAT --to
192.168.16.1:8080
或者:
#iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp --dport
80 -j REDIRECT --to-ports 8080
?
9、iptables 是否支持 time 時間控制用戶行為,如有請寫出具體
?
10、用 iptables 添加一個規則允許 192.168.0.123 訪問本機 3306 端口
iptables -I INPUT 1 -p tcp -m tcp --dport 3306 -s 192.168.0.123 -j ACCE
?
11、
?
?
12、
?
參考鏈接? ?:
http://blog.51cto.com/linuxgentoo/1542782
防火墻技術原理學習筆記
https://blog.csdn.net/sdgihshdv/article/details/78163591
高防服務器中防火墻的功能在哪里?? ?:https://mp.weixin.qq.com/s/y0A8qKePVG0NWXlPFX3gTg
鏈接:
CentOS 7開放端口和關閉防火墻? ?:??http://www.voidcn.com/code/p-gxqovbjl-p.html
CentOS 7 上的防火墻設置簡明教程 | 以阿里云為例?(實戰):?https://mp.weixin.qq.com/s?__biz=MzA3OTgyMDcwNg==&mid=2650635171&idx=1&sn=376e5c3f1e3f4e58e3f080b90bb896f5&chksm=87a4796eb0d3f0784c082223886fb00efb36ccd3b04d2cec614c9cbbbf982b03fda23b99d1fb#rd
iptables基礎 ? ? ? ? : ? ? ??https://blog.csdn.net/XiaoXiao__cc/article/details/81000397
配置使用rsyslog+loganalyzer收集防火墻及交換機日志 ?: ?http://blog.51cto.com/11555417/2046796
linux學習-iptabls簡單使用 : ?http://blog.51cto.com/11555417/2146095
基礎運維:iptables防火墻入門到掌握 ? : ?http://blog.51cto.com/leoheng/2162158
遠程連接配置LINUX iptables : ?http://blog.chinaunix.net/uid-25266990-id-96064.html
常用iptables腳本 ?: ?http://blog.chinaunix.net/uid-25266990-id-3182792.html
Linux上iptables基礎應用 ?:http://blog.51cto.com/xiaogongju/2060940
屏蔽端口 iptables 規則 ?:http://blog.51cto.com/xiaogongju/2060962
| 更多iptables相關教程見以下內容:
CentOS 7.0關閉默認防火墻啟用iptables防火墻? http://www.linuxidc.com/Linux/2015-05/117473.htm
iptables使用范例詳解 http://www.linuxidc.com/Linux/2014-03/99159.htm
Linux防火墻iptables詳細教程 http://www.linuxidc.com/Linux/2013-07/87045.htm
iptables的備份、恢復及防火墻腳本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm
Linux下防火墻iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm
Linux下iptables防火墻設置 http://www.linuxidc.com/Linux/2015-10/123843.htm
|
業務訪問加速實戰 | 借助Iptables實現全NAT高速轉發:https://mp.weixin.qq.com/s/aVkHpPah1NxUeJ1Y9HwTiw
Iptables與Firewalld防火墻?: https://www.linuxprobe.com/chapter-08.html
Linux iptables防火墻原理詳解 :?https://blog.csdn.net/liupeifeng3514/article/details/79054442
Linux iptables/netfilter命令參數詳解中文手冊 :https://blog.csdn.net/liupeifeng3514/article/details/79054425
Linux防火墻詳解(一) :?http://blog.51cto.com/hmtk520/2046884
Linux防火墻詳解(二) :?http://blog.51cto.com/hmtk520/2046938
CentOS下iptables封IP的命令講解 :?https://www.jb51.net/os/RedHat/545204.html
CentOS下iptables詳解 :?https://www.jb51.net/os/RedHat/545198.html
centos 6.6默認iptable規則詳解 :?https://www.jb51.net/os/RedHat/528120.html
CentOS Linux防火墻配置及關閉方法 :?https://www.jb51.net/os/RedHat/86187.html
Redhat(CentOS)下配置iptables防火墻的方法 :?https://www.jb51.net/os/RedHat/86191.html
CentOS Linux防火墻配置及關閉方法 :?https://www.jb51.net/os/RedHat/86187.html
centOS防火墻iptables的設置教程 ?: ?https://www.jb51.net/os/RedHat/68744.html
CentOS 5.4 防火墻配置80端口的方法(適用于centos5.3以上版本) :?https://www.jb51.net/os/RedHat/32186.html
LINUX下防火墻iptables的日志管理 ? : ?https://www.jb51.net/os/RedHat/1181.html
完全免費自建Linux防火墻的方法 ? : ?https://www.jb51.net/os/RedHat/list92_57.html
Linux系統防火墻防止DOS和CC攻擊的方法 ? ?: ?https://www.jb51.net/os/RedHat/1064.html
防火墻基礎知識 ? :?https://www.jianshu.com/p/47baebc39923
轉 ?Iptables的增刪改查 ? ?: ?https://blog.csdn.net/u012402276/article/details/78655808
iptables學習筆記? ? ? ? ?:? ? ?https://www.jianshu.com/p/d4211c947ebf
iptables總結? ? ? ? ? ?:? ? ?https://www.jianshu.com/p/f5efb649b1c6
?
Linux下設置防火墻白名單(RHEL 6和CentOS 7)的步驟 :https://www.jb51.net/article/98622.htm
?
iptables/netfilter基于layer7實現應用層過濾? ? ? ? ?:? ? ? ?http://blog.51cto.com/scholar/1638149
iptables原理知識 薦? ? ? ? ? ? ?:? ? ? ??http://blog.51cto.com/guoting/1543295
Linux防火墻基礎知識及應用;設置SNAT策略,局域網共享上網;DNAT策略,發布內部服務器 薦 置頂? ? ?:? ? ?http://blog.51cto.com/13728740/2153394
CentOS 下利用Iptables配置IP地址白名單 : http://blog.51cto.com/nanchunle/1647311
轉 ?出口網關雙鏈路接入不同運營商舉例(負載分擔) ? : ??https://blog.csdn.net/u012402276/article/details/50834984
原 ?IATF信息保障技術框架的核心思想--縱深防護 ? ?: ?https://blog.csdn.net/u012402276/article/details/50067783
原 ?HuaWei-USG6000系列防火墻清除Console登錄密碼 ? : ??https://blog.csdn.net/u012402276/article/details/49305605
Centos7-----firewalld詳解? ? ? ? ? ? ?:? ??http://blog.51cto.com/11638832/2092203
【原】WAF 防火墻 部署? ? ? ?:? ? ??https://www.jianshu.com/p/2027ac4333f2
解決CentOS 7安裝mysql后3306端口不通?: ??https://www.cnblogs.com/love-wife/p/10903876.html
?
?
轉載于:https://my.oschina.net/u/3803405/blog/1821325
總結
以上是生活随笔為你收集整理的CentOS防火墙配置(资源)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《空中大灌篮》bt下载地址
- 下一篇: 自定义广告联盟接入解决方案,适用所有广告