firewall
1、Introduction
在具體介紹zone之前介紹幾個相關的名詞,因為如果不理解這幾個名詞zone就無從入手。
target:默認行為,有四個可選值:default、ACCEPT、%%REJECT%%、DROP,如果不設置默認為default
service:這個在前面學生已經給大家解釋過了,他表示一個服務
port:端口,使用port可以不通過service而直接對端口進行設置
interface:接口,可以理解為網卡
source:源地址,可以是ip地址也可以是ip地址段
icmp-block:icmp報文阻塞,可以按照icmp類型進行設置
masquerade:ip地址偽裝,也就是按照源網卡地址進行NAT轉發
forward-port:端口轉發
rule:自定義規則
查看狀態:firewall-cmd –stat
重啟:service firewalld restart
iptables查看狀態 service iptables status
2、系統配置目錄(建議不要改)
目錄中存放定義好的網絡服務和端口參數,系統參數,不能修改。
對於一個接受到的請求具體使用哪個zone,firewalld是通過三種方法來判斷的:
1、source,也就是源地址
2、interface,接收請求的網卡
3、etc/firewalld/firewalld.conf中配置的默認zone
3、用戶配置目錄
[root@xxx]# vim /etc/firewalld/
firewalld.conf lockdown-whitelist.xml
helpers/ services/
icmptypes/ zones/
ipsets/
4、命令行使用
#添加端口,允許訪問,永久有效
firewall-cmd --permanent --add-port=9527/tcp
firewall-cmd [--permanent] [--zone=zone] --list-sources
firewall-cmd [--permanent] [--zone=zone] --query-source=source[/mask]
firewall-cmd [--permanent] [--zone=zone] --add-source=source[/mask]
firewall-cmd [--zone=zone] --change-source=source[/mask]
firewall-cmd [--permanent] [--zone=zone] --remove-source=source[/mask]
#firewall-cmd 參數介紹
#--list-sources:用於列出指定zone的所有綁定的source地址
#--query-source:用於查詢指定zone是否跟指定source地址進行了綁定
#--add-source:用於將一個source地址綁定到指定的zone(只可綁定一次,第二次綁定到不同的zone會報錯)
#--change-source:用於改變source地址所綁定的zone,如果原來沒有綁定則進行綁定,這樣就跟--add-source的作用一樣了
#--remove-source:用於刪除source地址跟zone的綁定
查看當前所有起作用的zone firewall-cmd –get-active-zones 要將在80端口接收到tcp請求轉發到8080端口可以使用下面的命令 firewall-cmd –add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd [–permanent] [–zone=zone] –list-ports
5、修改配置文件的方式添加端口
<zone>
<short>Public/<short>
<description>For use in public areas./<description>
<rule>
<source>
<port>
<accept>
/<rule>
<rule>
<source>
<port>
<accept>
/<rule>
<rule>
<source> 放通指定ip,指定端口、協議
<port>
<accept>
/<rule>
<rule> 放通任意ip訪問服務器的9527端口
<port>
<accept>
/<rule>
/<zone>
1、添加需要的規則,開放通源ip為122.10.70.234,端口514,協議tcp;
2、開放通源ip為123.60.255.14,端口10050-10051,協議tcp;/3、開放通源ip為任意,端口9527,協議tcp;
3、在不改變狀態的條件下重新加載防火牆: firewall-cmd –reload
4、設置某個ip 訪問某個服務 firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4” source address=”192.168.0.4/24” service name=”http” accept”
iptables
由於CenterOS7.0以上版本並沒有預裝Iptables,我們需要自行安裝。
- 安裝前先關閉firewall防火牆
- 安裝iptables:
yum install iptables
- 安裝iptables-services:
yum install iptables-services
使用
- 開啟防火牆:
systemctl start iptables.service
- 關閉防火牆:
systemctl stop iptables.service
- 查看防火牆狀態:
systemctl status iptables.service
- 設置開機啟動:
systemctl enable iptables.service
- 禁用開機啟動:
systemctl disable iptables.service
- 查看filter表的幾條鏈規則(INPUT鏈可以看出開放了哪些端口):
iptables -L -n
iptables命令是Linux上常用的防火牆軟件,是netfilter項目的一部分。可以直接配置,也可以通過許多前端和圖形界面配置。
iptables -t 表名 規則鏈名 [規則號] -p 協議名 --sport 源端口 --dport 目標端口 -j 動作
--------------------------------
表名包括:
raw:高級功能,如:網址過濾。
mangle:數據包修改(QOS),用於實現服務質量。
net:地址轉換,用於網關路由器。
filter:包過濾,用於防火牆規則。
-------------------------------
規則鏈名包括:
INPUT鏈:處理輸入數據包。
OUTPUT鏈:處理輸出數據包。
PORWARD鏈:處理轉發數據包。
PREROUTING鏈:用於目標地址轉換(DNAT)。
POSTOUTING鏈:用於源地址轉換(SNAT)。
-------------------------------
動作包括:
accept:接收數據包。
DROP:丟棄數據包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址轉換。
DNAT:目標地址轉換。
MASQUERADE:IP偽裝(NAT),用於ADSL。
LOG:日誌記錄。
-------------------------------
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允許訪問22端k
iptables -A OUTPUT -j ACCEPT #允許所有本機向外的訪問
iptables -A INPUT -j reject #禁止其他未允許的規則訪問
iptables -L -n -v #查看規則
-------------------------------
格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION
-t table :3個filter nat mangle
COMMAND:定義如何對規則進行管理
chain:指定你接下來的規則到底是在哪個鏈上操作的,當定義策略的時候,是可以省略的
CRETIRIA:指定匹配標準
-j ACTION :指定如何進行處理
-P :設置默認策略的(設定默認門是關著的還是開著的)
默認策略一般只有兩種
iptables -P INPUT (DROP|ACCEPT) 默認是關的/默認是開的
比如:
iptables -P INPUT DROP 這就把默認規則給拒絕了。並且沒有定義哪個動作,所以關於外界連接的所有規則包括Xshell連接之類的,遠程連接都被拒絕了
————————————————
轉載:https://blog.csdn.net/qq_36464836/article/details/79545275
閱讀更多 Linux雲計算架構 的文章