⑴ centos6.3防火牆怎麼保存
您好,很肆賣高興能夠回答您的問題。
一:通過命令保存:service iptables save
1.開啟防火牆:
service iptables start
2.設為開機自啟:
chkconfig –list iptables
3.清空原有的策略:
iptables -F
4.添運雹迅加策略:
iptables -A INPUT -s 192.168.42.133 -j REJECT
5.用192.168.42.133 ping 192.168.42.131:
6.保存
service iptables save
並且關機再啟
7.查看結果,再旁此次使用192.168.42.133 ping 192.168.42.131
⑵ 如何啟用iptables 防火牆
安裝iptables 包,使用下面的命令:
$sudo yum install iptables-services
設置iptables 防火牆服務開機自動啟動,輸入下面的命令:
$sudo systemctl enable iptables
如果你想使用/etc/init.d/iptables save 命令來保存已經更改的防火牆策略,那麼需要輸入下面的命令,將iptables.init 腳本用剛才安裝iptables 啟動腳本覆蓋,輸入下面的命令
$sudo /usr/libexec/iptables/iptables.init /etc/init.d/iptables
這個時候你就可以使用 /etc/init.d/iptables save 命令了
$sudo /etc/init.d/iptables save
⑶ centosstream9防火牆配置保存
操作系統
為CentOS系統配置防火牆設置
weixin_30649859
轉載
關注
0點贊·37人閱讀
在各種操作系統中,為冊轎了保護系統在網路中是相對安全的,我們通常都會給操作系統配置防火牆,通過檔返配置防火牆來限定哪些流量可以進來,哪些流量可以出去,通過這樣的一種方式,可以行姿飢有效的管理系統的流量,從一定程度上保證系統的安全。
下面襄陽網站優化就來講講 CentOS 這款常用的伺服器操作系統的防火牆配置情況:
在CentOS 系列的系統中,CentOS_7.x以上默認firewall為防火牆配置,為了解決防火牆安全這個問題,我們使用iptables配置 來代替原有的 firewall 配置。
一、首先查看默認防火牆狀態
1firewall-cmd --state
(關閉後顯示not running,開啟後顯示running)
如果 firewall 正在運行,那麼我們先將它關閉,命令如下:
1
2systemctl stop firewalld.service
systemctl disable firewalld.service
下面在給大家提供一些關於默認firewlall防火牆的操作指令:
添加: firewall-cmd –zone=public –add-port=80/tcp –permanent (–permanent永久生效,沒有此參數重啟後失效)
重載: firewall-cmd –reload
查看: firewall-cmd –zone=public –query-port=80/tcp
刪除: firewall-cmd –zone= public –remove-port=80/tcp –permanent
二、配置 iptables 規則
在配置iptables前,我們需要安裝iptables服務:
1yum install iptables-services
安裝好後,開始編輯這個防火牆配置文件,該文件存放在 /etc/sysconfig/iptables 目錄中:
1vim /etc/sysconfig/iptables
加入以下代碼:
-A INPUT -p tcp -m state –state NEW
⑷ IPTABLES 詳解
引言
先來看一條常用的iptables命令:
Iptables(-t filter) -I INPUT -p tcp --dport ssh/22 -j ACCEPT
這一條命令,生成了一條規則。允許所有寬岩22埠的TCP連接。
這條規則作用表是filter表,即iptables默認表。作用鏈是INPUT鏈。
規則就是網路管理員預定義的條件,規則一般的定義為「如果數據包頭符合這樣的條件,就這樣處理這個數據包」。規則存儲在內核空間的信息包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數據包與規則匹配時,iptables就根據規則所定義的方法來處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火牆的主要工作就是添加、修改和刪除這些規則。
原理
Iptables通過對數據包的控制實現防火牆功能,看下圖:
數據包進入機器後,要根據數據包信息對數據包進行相關處理
(1) 一個數據包進入網卡時,它首先進入PREROUTING鏈,內核根據數據包目的IP判斷是否需要轉發出去。
(2) 如果數據包就是進入本機的,它就會沿著圖方向移動,到達INPUT鏈。數據包到了INPUT鏈後,任何進程都會收到它。本機上運行的程序可以發送數據包,這些數據包會經 過OUTPUT鏈,然後到達POSTROUTING鏈輸出。
(3)如果數據包是要轉發出去的,且內核允許轉發,數據包就會如圖所示方向移動,經過 FORWARD鏈,然後到達POSTROUTING鏈輸出。
鏈(chains)是規則校驗序列及數據包傳播的路徑,每一條鏈其實就是眾多規則中的一個檢查清單,每一條鏈中可以有一條或數條規則。當一個數據包到達一個鏈時,iptables就會從鏈中第一條規則開始檢查,看該數據包是否滿足規則所定義的條件。如果滿足,系統就會根據該條規則所定義的方法處理該數據包;否則iptables將繼續檢查下一條規則,如果該數據包不符合鏈中任一條規則,iptables就會根據該鏈預先定義的默認策略來處理數據包。
iptables -P INPUT (DROP|ACCEPT)默認是關的/默認是開的
該命令設置鏈的默認目標,即策略。所有與鏈中任何規則都不匹配的信息包都將被強制使用此鏈的策略
表(tables)是相同規則集合,iptables內置了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網路地址轉換、包重構(修改)和數據跟蹤處理四種不同的功能。
3、規則表之間的優先順序:
Raw——mangle——nat——filter
每個表包含的數據鏈不同,在進行處理的時候注意需求,要在哪一鏈上操作。
(1)RAW表
只使用在PREROUTING鏈和OUTPUT鏈上,因為優先順序最高,從而可以對收到的數據包在連接跟蹤前進行處理。一但用戶使用了RAW表,在 某個鏈上,RAW表處理完後,將跳過NAT表和 ip_conntrack處理,即不再做地址轉換和數據包的鏈接跟蹤處理了.
RAW表可以應用在那些不需慎陪御要做nat的情況下,以提高性能。如大亂培量訪問的web伺服器,可以讓80埠不再讓iptables做數據包的鏈接跟蹤處理,以提高用戶的訪問速度。
(2)mangle表
主要用於對指定數據包進行更改,在內核版本2.4.18 後的linux版本中該表包含的鏈為:INPUT鏈(處理進入的數據包),RORWARD鏈(處理轉發的數據包),OUTPUT鏈(處理本地生成的數據包)POSTROUTING鏈(修改即將出去的數據包),PREROUTING鏈(修改即將到來的數據包)
(3)nat表
主要用於網路地址轉換NAT,該表可以實現一對一,一對多,多對多等NAT 工作,iptables就是使用該表實現共享上網的,由於轉換的特性,需進行目的地網址轉換的數據包,就不需要進行來源網址轉換,反之亦然,因此為了提升改寫封包的效率,在防火牆運作時,每個封包只會經過這個規則表一次。如果我們把數據包過濾的規則定義在這個數據表裡,將會造成無法對同一包進行多次比對,因此這個規則表除了作網址轉換外,請不要做其它用途。NAT表包含了PREROUTING鏈(修改即將到來的數據包),POSTROUTING鏈(修改即將出去的數據包),OUTPUT鏈(修改路由之前本地生成的數據包)
(4)filter表
主要用於過濾數據包,該表根據系統管理員預定義的一組規則過濾符合條件的數據包。對於防火牆而言,主要利用在filter表中指定的規則來實現對數據包的過濾。Filter表是默認的表,如果沒有指定哪個表,iptables 就默認使用filter表來執行所有命令,filter表包含了INPUT鏈(處理進入的數據包),RORWARD鏈(處理轉發的數據包),OUTPUT鏈(處理本地生成的數據包)在filter表中只能允許對數據包進行接受,丟棄的操作,而無法對數據包進行更改
命令
iptables [-t 表] -命令 匹配 操作
-A是append命令,添加的規則在最後
-D是刪除命令,刪除第幾條規則
-I是插入命令,添加的規則在第一條
!是取反操作
Sport 是源埠
Dport 是目的埠
列出各個表的規則命令:
iptables -nvL
iptables -t nat -nvL
iptables -t mangle -nvL
iptables -t raw -nvL
iptables -t filter -nvL
iptables -t raw -A PREROUTING -s 182.50.124.75 -j ACCEPT
REJECT 攔阻該數據包,並返回數據包通知對方,可以返回的數據包有幾個選擇:ICMP port-unreachable、ICMP echo-reply 或是tcp-reset(這個數據包包會要求對方關閉聯機),進行完此處理動作後,將不再比對其它規則,直接中斷過濾程序。 範例如下:
iptables -A INPUT -p TCP --dport 22 -j REJECT --reject-with ICMP echo-reply
DROP 丟棄數據包不予處理,進行完此處理動作後,將不再比對其它規則,直接中斷過濾程序。
REDIRECT 將封包重新導向到另一個埠(PNAT),進行完此處理動作後,將會繼續比對其它規則。這個功能可以用來實作透明代理 或用來保護web 伺服器。例如:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT--to-ports 8081
MASQUERADE 改寫封包來源IP為防火牆的IP,可以指定port 對應的范圍,進行完此處理動作後,直接跳往下一個規則鏈(mangle:postrouting)。這個功能與 SNAT 略有不同,當進行IP 偽裝時,不需指定要偽裝成哪個 IP,IP 會從網卡直接讀取,當使用撥接連線時,IP 通常是由 ISP 公司的 DHCP伺服器指派的,這個時候 MASQUERADE 特別有用。範例如下:
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 21000-31000
LOG 將數據包相關信息紀錄在 /var/log 中,詳細位置請查閱 /etc/syslog.conf 配置文件,進行完此處理動作後,將會繼續比對其它規則。例如:
iptables -A INPUT -p tcp -j LOG --log-prefix "input packet"
SNAT 改寫封包來源 IP 為某特定 IP 或 IP 范圍,可以指定 port 對應的范圍,進行完此處理動作後,將直接跳往下一個規則煉(mangle:postrouting)。範例如下:
iptables -t nat -A POSTROUTING -p tcp-o eth0 -j SNAT --to-source 192.168.10.15-192.168.10.160:2100-3200
DNAT 改寫數據包包目的地 IP 為某特定 IP 或 IP 范圍,可以指定 port 對應的范圍,進行完此處理動作後,將會直接跳往下一個規則鏈(filter:input 或 filter:forward)。範例如下:
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.10.1-192.168.10.10:80-100
MIRROR 鏡像數據包,也就是將來源 IP與目的地IP對調後,將數據包返回,進行完此處理動作後,將會中斷過濾程序。
QUEUE 中斷過濾程序,將封包放入隊列,交給其它程序處理。透過自行開發的處理程序,可以進行其它應用,例如:計算聯機費用.......等。
RETURN 結束在目前規則鏈中的過濾程序,返回主規則鏈繼續過濾,如果把自訂規則煉看成是一個子程序,那麼這個動作,就相當於提早結束子程序並返回到主程序中。
MARK 將封包標上某個代號,以便提供作為後續過濾的條件判斷依據,進行完此處理動作後,將會繼續比對其它規則。範例如下:
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 22
保存規則
使用iptables程序建立的規則只會保存在內存中,通常我們在修改了iptables的規則重啟 iptables 後,之前修改的規則又消失了。那麼如何保存新建立的規則呢?
方法1、對於RHEL和ceontos系統可以使用service iptables save將當前內存中的規則保存到 /etc/sysconfig/iptables 文件中
[root@lampbo ~]# service iptables save
方法2、修改/etc/sysconfig/iptables-config 將裡面的IPTABLES_SAVE_ON_STOP="no", 這一句的"no"改為"yes"這樣每次服務在停止之前會自動將現有的規則保存在 /etc/sysconfig/iptables 這個文件中去。
加入開機啟動項
chkconfig --level 345 iptables on
UBUNTU系統
沒有上述東西,只能使用保存命令保存當前規則。
重啟的就用自啟動腳本載入已經保存的規則。
/etc/network/interfaces腳本自動應用
auto eth0 iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules post-down iptables-save > /etc/iptables.up.rules
iptables --save
https://wangchujiang.com/linux-command/c/iptables.html#%E5%90%AF%E5%8A%A8%E7%BD%91%E7%BB%9C%E8%BD%AC%E5%8F%91%E8%A7%84%E5%88%99
其他問題
ip_conntrack: table full, dropping packet的問題
在啟用了iptables web伺服器上,流量高的時候經常會出現下面的錯誤:
ip_conntrack: table full, dropping packet
這個問題的原因是由於web伺服器收到了大量的連接,在啟用了iptables的情況下,iptables會把所有的連接都做鏈接跟蹤處理,這樣iptables就會有一個鏈接跟蹤表,當這個表滿的時候,就會出現上面的錯誤。iptables的鏈接跟蹤表最大容量為/proc/sys/net/ipv4/ip_conntrack_max,鏈接碰到各種狀態的超時後就會從表中刪除。所以解決方法一般有兩個:(1)加大 ip_conntrack_max 值vi /etc/sysctl.confnet.ipv4.ip_conntrack_max = 393216net.ipv4.netfilter.ip_conntrack_max = 393216(2):降低 ip_conntrack timeout時間vi /etc/sysctl.confnet.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120上面兩種方法打個比喻就是燒水水開的時候,換一個大鍋。一般情況下都可以解決問題,但是在極端情況下,還是不夠用,怎麼辦?這樣就得反其道而行,用釜底抽薪的辦法。iptables的raw表是不做數據包的鏈接跟蹤處理的,我們就把那些連接量非常大的鏈接加入到iptables raw表。如一台web伺服器可以這樣:iptables -t raw -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j NOTRACKiptables -A FORWARD -m state --state UNTRACKED -j ACCEPT
使用注意事項
在默認鏈規則是accept的情況下,規則最後要加drop或reject,否則相當於沒加規則
一般先添加允許自己IP的所有數據包的規則,否則添加drop規則後會被屏蔽
⑸ iptables詳解
netfilter/iptables (簡稱為iptables)組成Linux平台下的包過濾防火牆,與大多數的Linux軟體一樣,這個包過濾防火牆是免費的,它可以代替昂貴的商業防火牆解決方案,完成封包過濾、封包重定向和網路地址轉換(NAT)等功能。
iptables和netfilter的關系:
這是第一個要說的地方,Iptables和netfilter的關系是一個很容易讓人搞不清的問題。很多的知道iptables卻不知道 netfilter。其實iptables只是Linux防火牆的管理工具而已,位於/sbin/iptables。真正實現防火牆功能的是 netfilter,它是Linux內核中實現包過濾的內部結構。
規則 (rules)其實就是網路管理員預定義的條件,規則一般的定義為「如果數據包頭符合這樣的條件,就這樣處理這個數據包」。規則存儲在內核空間的信息包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數據包與規則匹配時,iptables就根據規則所定義的方法來處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火牆的 主要工作就是添加、修改和刪除這些規則。
① 當一個數據包進入網卡時,它首先進入PREROUTING鏈,內核根據數據包目的IP判斷是否需要轉送出去。
② 如果數據包就是進入本機的,它就會沿著圖向下移動,到達INPUT鏈。數據包到了INPUT鏈後,任何進程都會收到它。本機上運行的程序可以發送數據包,這些數據包會經過OUTPUT鏈,然後到達POSTROUTING鏈輸出。
③ 如果數據包是要轉發出去的,且內核允許轉發,數據包就會如圖所示向右移動,經過FORWARD鏈,然後到達POSTROUTING鏈輸出。
過程圖如下:
Iptables採用「表」和「鏈」的分層結構。
表 (tables)提供特定的功能,iptables內置了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網路地址轉換、包重構(修改)和數據跟蹤處理。
(1)filter表——三個鏈:INPUT、FORWARD、OUTPUT
作用:過濾數據包 內核模塊:iptables_filter.
(2)Nat表——三個鏈:PREROUTING、POSTROUTING、OUTPUT
作用:用於網路地址轉換(IP、埠) 內核模塊:iptable_nat
(3)Mangle表——五個鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改數據包的服務類型、TTL、並且可以配置路由實現QOS內核模塊:iptable_mangle(別看這個表這么麻煩,咱們設置策略時幾乎都不會用到它)
(4)Raw表——兩個鏈:OUTPUT、PREROUTING
作用:決定數據包是否被狀態跟蹤機制處理 內核模塊:iptable_raw
Raw——mangle——nat——filter
鏈 (chains)是數據包傳播的路徑,每一條鏈其實就是眾多規則中的一個檢查清單,每一條鏈中可以有一 條或數條規則。當一個數據包到達一個鏈時,iptables就會從鏈中第一條規則開始檢查,看該數據包是否滿足規則所定義的條件。如果滿足,系統就會根據 該條規則所定義的方法處理該數據包;否則iptables將繼續檢查下一條規則,如果該數據包不符合鏈中任一條規則,iptables就會根據該鏈預先定 義的默認策略來處理數據包。
(1)INPUT——進來的數據包應用此規則鏈中的策略
(2)OUTPUT——外出的數據包應用此規則鏈中的策略
(3)FORWARD——轉發數據包時應用此規則鏈中的策略
(4)PREROUTING——對數據包作路由選擇前應用此鏈中的規則
(記住!所有的數據包進來的時侯都先由這個鏈處理)
(5)POSTROUTING——對數據包作路由選擇後應用此鏈中的規則(所有的數據包出來的時侯都先由這個鏈處理)
從外界到達防火牆的數據包,先被PREROUTING規則鏈處理(是否修改數據包地址等),之後會進行路由選擇(判斷該數據包應該發往何處),如果數據包 的目標主機是防火牆本機(比如說Internet用戶訪問防火牆主機中的web伺服器的數據包),那麼內核將其傳給INPUT鏈進行處理(決定是否允許通 過等),通過以後再交給系統上層的應用程序(比如Apache伺服器)進行響應。
來自外界的數據包到達防火牆後,首先被PREROUTING規則鏈處理,之後會進行路由選擇,如果數據包的目標地址是其它外部地址(比如區域網用戶通過網 關訪問QQ站點的數據包),則內核將其傳遞給FORWARD鏈進行處理(是否轉發或攔截),然後再交給POSTROUTING規則鏈(是否修改數據包的地 址等)進行處理。
防火牆本機向外部地址發送的數據包(比如在防火牆主機中測試公網DNS伺服器時),首先被OUTPUT規則鏈處理,之後進行路由選擇,然後傳遞給POSTROUTING規則鏈(是否修改數據包的地址等)進行處理。
iptables-save把規則保存到文件中,再由目錄rc.d下的腳本(/etc/rc.d/init.d/iptables)自動裝載
使用命令iptables-save來保存規則。一般用
iptables-save > /etc/sysconfig/iptables
生成保存規則的文件 /etc/sysconfig/iptables,
也可以用
service iptables save
它能把規則自動保存在/etc/sysconfig/iptables中。
當計算機啟動時,rc.d下的腳本將用命令iptables-restore調用這個文件,從而就自動恢復了規則。
刪除INPUT鏈的第一條規則:
1.拒絕進入防火牆的所有ICMP協議數據包
2.允許防火牆轉發除ICMP協議以外的所有數據包
說明:使用「!」可以將條件取反。
3.拒絕轉發來自192.168.1.10主機的數據,允許轉發來自192.168.0.0/24網段的數據
說明:注意要把拒絕的放在前面不然就不起作用了啊。
4.丟棄從外網介面(eth1)進入防火牆本機的源地址為私網地址的數據包
5.封堵網段(192.168.1.0/24),兩小時後解封。
說明:這個策略咱們藉助crond計劃任務來完成,就再好不過了。
[1] Stopped at now 2 hours
6.只允許管理員從202.13.0.0/16網段使用SSH遠程登錄防火牆主機。
說明:這個用法比較適合對設備進行遠程管理時使用,比如位於分公司中的SQL伺服器需要被總公司的管理員管理時。
7.允許本機開放從TCP埠20-1024提供的應用服務。
8.允許轉發來自192.168.0.0/24區域網段的DNS解析請求數據包。
9.禁止其他主機ping防火牆主機,但是允許從防火牆上ping其他主機
10.禁止轉發來自MAC地址為00:0C:29:27:55:3F的和主機的數據包
說明:iptables中使用「-m 模塊關鍵字」的形式調用顯示匹配。咱們這里用「-m mac –mac-source」來表示數據包的源MAC地址。
11.允許防火牆本機對外開放TCP埠20、21、25、110以及被動模式FTP埠1250-1280
說明:這里用「-m multiport –dport」來指定目的埠及范圍
12.禁止轉發源IP地址為192.168.1.20-192.168.1.99的TCP數據包。
說明:此處用「-m –iprange –src-range」指定IP范圍。
13.禁止轉發與正常TCP連接無關的非—syn請求數據包。
說明:「-m state」表示數據包的連接狀態,「NEW」表示與任何連接無關的,新的嘛!
14.拒絕訪問防火牆的新數據包,但允許響應連接或與已有連接相關的數據包
說明:「ESTABLISHED」表示已經響應請求或者已經建立連接的數據包,「RELATED」表示與已建立的連接有相關性的,比如FTP數據連接等。
15.只開放本機的web服務(80)、FTP(20、21、20450-20480),放行外部主機發住伺服器其它埠的應答數據包,將其他入站數據包均予以丟棄處理。