linux系統:firewall和iptables有什麼區別?

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防火牆
linux系統:firewall和iptables有什麼區別?


  • 安裝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


分享到:


相關文章: