Linux Firewall 命令大全整理

firewalld跟iptables比起來至少有兩大好處:

firewalld可以動態(tài)修改單條規(guī)則,而不需要像iptables那樣牢酵,在修改了規(guī)則后必須得全部刷新才可以生效力试。

firewalld在使用上要比iptables人性化很多,即使不明白“五張表五條鏈”而且對TCP/ip協(xié)議也不理解也可以實現(xiàn)大部分功能。

firewalld自身并不具備防火墻的功能艺智,而是和iptables一樣需要通過內(nèi)核的netfilter來實現(xiàn),也就是說firewalld和

iptables一樣,他們的作用都是用于維護規(guī)則互广,而真正使用規(guī)則干活的是內(nèi)核的netfilter,只不過firewalld和iptables的結(jié)

構(gòu)以及使用方法不一樣罷了卧土。啟動CentOS/RHEL

7后惫皱,防火墻規(guī)則設(shè)置由firewalld服務(wù)進程默認(rèn)管理。一個叫做firewall-cmd的命令行客戶端支持和這個守護進程通信以永久修改防火墻規(guī)則.尤莺。

命令格式

1#firewall-cmd [選項 ... ]

選項

通用選項

-h, --help? ? # 顯示幫助信息旅敷;-V, --version # 顯示版本信息. (這個選項不能與其他選項組合);-q, --quiet? # 不打印狀態(tài)消息颤霎;

狀態(tài)選項

-state? ? ? ? ? ? ? ? # 顯示firewalld的狀態(tài)媳谁;--reload? ? ? ? ? ? ? # 不中斷服務(wù)的重新加載;--complete-reload? ? ? # 中斷所有連接的重新加載友酱;--runtime-to-permanent # 將當(dāng)前防火墻的規(guī)則永久保存晴音;--check-config? ? ? ? # 檢查配置正確性;

日志選項

--get-log-denied? ? ? ? # 獲取記錄被拒絕的日志缔杉;--set-log-denied= # 設(shè)置記錄被拒絕的日志锤躁,只能為'all','unicast','broadcast','multicast','off'其中的一個;

實例

實例應(yīng)用前必須知道的命令

# 安裝firewalldyuminstallfirewalld firewall-config

systemctl start? firewalld # 啟動

systemctl status firewalld # 或者 firewall-cmd --state 查看狀態(tài)

systemctl disable firewalld # 停止

systemctl stop firewalld? # 禁用

# 關(guān)閉服務(wù)的方法

# 你也可以關(guān)閉目前還不熟悉的FirewallD防火墻或详,而使用iptables进苍,命令如下:

systemctl stop firewalld

systemctl disable firewalldyuminstalliptables-services

systemctl start iptables

systemctl enable iptables

實例1

# firewall-cmd --list-all-zones? ? #查看所有的zone信息

# firewall-cmd --get-default-zone? ? #查看默認(rèn)zone是哪一個

# firewall-cmd --zone=internal --change-zone=p3p1? #臨時修改接口p3p1所屬的zone為internal

# firewall-cmd --add-service=http? ? #暫時開放http

# firewall-cmd --permanent --add-service=http? #永久開放http

# firewall-cmd --zone=public --add-port=80/tcp --permanent? #在public中永久開放80端口

# firewall-cmd --permanent --zone=public --remove-service=ssh? #從public zone中移除服務(wù)

# firewall-cmd --reload? #重新加載配置

實例2

# firewall-cmd --zone=public --add-port=80/tcp --permanent? ? #開放80 端口

命令含義:--zone #作用域--add-port=80/tcp? #添加端口,格式為:端口/通訊協(xié)議--permanent? #永久生效鸭叙,沒有此參數(shù)重啟后失效

實例3

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="127.0.0.1/32" protocol value="icmp" accept"#增加指定源為127.0.0.1的主機觉啊,允許訪問icmp協(xié)議。

詳細的實例總結(jié)

配置firewall

firewall-cmd --version? # 查看版本

firewall-cmd --help? ? # 查看幫助

# 查看設(shè)置:

firewall-cmd --state? # 顯示狀態(tài)

firewall-cmd --get-active-zones? # 查看區(qū)域信息

firewall-cmd --get-zone-of-interface=eth0? # 查看指定接口所屬區(qū)域

firewall-cmd --panic-on? # 拒絕所有包

firewall-cmd --panic-off? # 取消拒絕狀態(tài)

firewall-cmd --query-panic? # 查看是否拒絕

firewall-cmd --reload # 更新防火墻規(guī)則

firewall-cmd --complete-reload

# 兩者的區(qū)別就是第一個無需斷開連接沈贝,就是firewalld特性之一動態(tài)添加規(guī)則杠人,第二個需要斷開連接,類似重啟服務(wù)

# 將接口添加到區(qū)域,默認(rèn)接口都在public

firewall-cmd --zone=public --add-interface=eth0

# 永久生效再加上 --permanent 然后reload防火墻

# 設(shè)置默認(rèn)接口區(qū)域嗡善,立即生效無需重啟

firewall-cmd --set-default-zone=public

# 查看所有打開的端口:

firewall-cmd --zone=dmz --list-ports

# 加入一個端口到區(qū)域:

firewall-cmd --zone=dmz --add-port=8080/tcp

# 若要永久生效方法同上

# 打開一個服務(wù)辑莫,類似于將端口可視化,服務(wù)需要在配置文件中添加罩引,/etc/firewalld 目錄下有services文件夾各吨,這個不詳細說了,詳情參考文檔

firewall-cmd --zone=work --add-service=smtp

# 移除服務(wù)

firewall-cmd --zone=work --remove-service=smtp

# 顯示支持的區(qū)域列表

firewall-cmd --get-zones

# 設(shè)置為家庭區(qū)域

firewall-cmd --set-default-zone=home

# 查看當(dāng)前區(qū)域

firewall-cmd --get-active-zones

# 設(shè)置當(dāng)前區(qū)域的接口

firewall-cmd --get-zone-of-interface=enp03s

# 顯示所有公共區(qū)域(public)

firewall-cmd --zone=public --list-all

# 臨時修改網(wǎng)絡(luò)接口(enp0s3)為內(nèi)部區(qū)域(internal)

firewall-cmd --zone=internal --change-interface=enp03s

# 永久修改網(wǎng)絡(luò)接口enp03s為內(nèi)部區(qū)域(internal)

firewall-cmd --permanent --zone=internal --change-interface=enp03s

服務(wù)管理

# 顯示服務(wù)列表?

Amanda, ftp, Samba和tftp等最重要的服務(wù)已經(jīng)被FirewallD提供相應(yīng)的服務(wù)袁铐,可以使用如下命令查看:

firewall-cmd --get-services

# 允許ssh服務(wù)通過

firewall-cmd --enable service=ssh# 禁止SSH服務(wù)通過

firewall-cmd --disable service=ssh# 打開TCP的8080端口

firewall-cmd --enable ports=8080/tcp

# 臨時允許Samba服務(wù)通過600秒

firewall-cmd --enable service=samba --timeout=600# 顯示當(dāng)前服務(wù)

firewall-cmd --list-services

# 添加HTTP服務(wù)到內(nèi)部區(qū)域(internal)

firewall-cmd --permanent --zone=internal --add-service=http

firewall-cmd --reload? ? # 在不改變狀態(tài)的條件下重新加載防火墻

端口管理

# 打開443/TCP端口

firewall-cmd --add-port=443/tcp

# 永久打開3690/TCP端口

firewall-cmd --permanent --add-port=3690/tcp

# 永久打開端口好像需要reload一下揭蜒,臨時打開好像不用,如果用了reload臨時打開的端口就失效了

# 其它服務(wù)也可能是這樣的剔桨,這個沒有測試

firewall-cmd --reload

# 查看防火墻屉更,添加的端口也可以看到

firewall-cmd --list-all

直接模式

# FirewallD包括一種直接模式,使用它可以完成一些工作洒缀,例如打開TCP協(xié)議的9999端口

firewall-cmd --direct -add-rule ipv4 filter INPUT0-p tcp --dport9000-j accept

firewall-cmd --reload

自定義服務(wù)管理

(末尾帶有 [P only] 的話表示該選項除了與(--permanent)之外瑰谜,不能與其他選項一同使用!)

--new-service=<服務(wù)名> 新建一個自定義服務(wù) [P only]

--new-service-from-file=<文件名>

[--name=<服務(wù)名>]??????????????????????????????? 從文件中讀取配置用以新建一個自定義服務(wù) [P only]

--delete-service=<服務(wù)名>? ? ? ? ? ? ? ? ? ? ? 刪除一個已存在的服務(wù) [P only]

--load-service-defaults=<服務(wù)名>? ? ? ? ? ? ? ? ? ? ? Load icmptype default settings [P only]

--info-service=<服務(wù)名>? ? ? ? ? ? ? ? ? ? ? 顯示該服務(wù)的相關(guān)信息

--path-service=<服務(wù)名>? ? ? ? ? ? ? ? ? ? ? 顯示該服務(wù)的文件的相關(guān)路徑 [P only]--service=<服務(wù)名>

--set-description=<描述>? ? ? ? ? ? ? ? ? ? ? 給該服務(wù)設(shè)置描述信息 [P only]--service=<服務(wù)名>

--get-description????????????????????????????????????? ? 顯示該服務(wù)的描述信息 [P only]? ? ? ? ? ? ? ?

--service=<服務(wù)名>

--set-short=<描述>? ? ? ? ? ? ? ? ? ? ? 給該服務(wù)設(shè)置一個簡短的描述 [P only]

--service=<服務(wù)名>

--get-short? ? ? ? ? ? ? ? ? ? ? 顯示該服務(wù)的簡短描述 [P only]--service=<服務(wù)名>

--add-port=<端口號>[-<端口號>]/? ? ? ? ? ? ? ? ? ? ? 給該服務(wù)添加一個新的端口(端口段) [P only]

--service=<服務(wù)名> --remove-port=<端口號>[-<端口號>]/? ? ? ? ? ? ? ? ? ? ? 從該服務(wù)上移除一個端口(端口段) [P only]

--service=<服務(wù)名> --query-port=<端口號>[-<端口號>]/? ? ? ? ? ? ? ? ? ? ? 查詢該服務(wù)是否添加了某個端口(端口段) [P only]

--service=<服務(wù)名>

--get-ports????????????????????????? 顯示該服務(wù)添加的所有端口 [P only]?? ? ? ? ? ? ? ?

--service=<服務(wù)名>

--add-protocol=? ? ? ? ? ? ? ? ? ? ? 為該服務(wù)添加一個協(xié)議 [P only]

--service=<服務(wù)名>

--remove-protocol=? ? ? ? ? ? ? ? ? ? ? 從該服務(wù)上移除一個協(xié)議 [P only]

--service=<服務(wù)名>

--query-protocol=? ? ? ? ? ? ? ? ? ? ? 查詢該服務(wù)是否添加了某個協(xié)議 [P only]

--service=<服務(wù)名>

--get-protocols??????????????????????????? ?? 顯示該服務(wù)添加的所有協(xié)議 [P only]? ? ? ? ? ? ? ?

--service=<服務(wù)名>

--add-source-port=<端口號>[-<端口號>]/? ? ? ? ? ? ? ? ? ? ? 添加新的源端口(端口段)到該服務(wù) [P only]

--service=<服務(wù)名>

--remove-source-port=<端口號>[-<端口號>]/? ? ? ? ? ? ? ? ? ? ? 從該服務(wù)中刪除源端口(端口段) [P only]

--service=<服務(wù)名>

--query-source-port=<端口號>[-<端口號>]/? ? ? ? ? ? ? ? ? ? ? 查詢該服務(wù)是否添加了某個源端口(端口段) [P only]

--service=<服務(wù)名>

--get-source-ports??????????????????????????????????????????????????????? 顯示該服務(wù)所有源端口 [P only]?? ? ? ? ? ? ? ? ??

--service=<服務(wù)名>

--add-module=? ? ? ? ? ? ? ? ? ? ? 為該服務(wù)添加一個模塊 [P only]

--service=<服務(wù)名> -

-remove-module=? ? ? ? ? ? ? ? ? ? ? 為該服務(wù)移除一個模塊 [P only]

--service=<服務(wù)名>

--query-module=? ? ? ? ? ? ? ? ? ? ? 查詢該服務(wù)是否添加了某個模塊 [P only]

--service=<服務(wù)名>

--get-modules ? ? ? ? ? ? ? ? ? ? ? ?? 顯示該服務(wù)添加的所有模塊 [P only]

--service=<服務(wù)名>

--set-destination=:[/]??????????????? Set destination foripv to addressin service [P only]

--service=<服務(wù)名>

--remove-destination=? ? ? ? ? ? ? ? ? ? ? Disable destination for ipv i service [P only]

--service=<服務(wù)名>

--query-destination=:[/]??????????????????? ? Return whether destination ipv is set for service [P only]? ? ? ? ? ? ? ?

--service=<服務(wù)名>

--get-destinations????????????????????????????? ? List destinations inservice [P only]


控制端口/服務(wù)

可以通過兩種方式控制端口的開放树绩,一種是指定端口號另一種是指定服務(wù)名萨脑。雖然開放

http 服務(wù)就是開放了 80

端口,但是還是不能通過端口號來關(guān)閉饺饭,也就是說通過指定服務(wù)名開放的就要通過指定服務(wù)名關(guān)閉渤早;通過指定端口號開放的就要通過指定端口號關(guān)閉。還有一個要注意的就是指定端口的時候一定要指定是什么協(xié)議砰奕,tcp

還是 udp蛛芥。知道這個之后以后就不用每次先關(guān)防火墻了提鸟,可以讓防火墻真正的生效军援。

firewall-cmd --add-service=mysql? ? ? ? # 開放mysql端口

firewall-cmd --remove-service=http? ? ? # 阻止http端口

firewall-cmd --list-services? ? ? ? ? ? # 查看開放的服務(wù)

firewall-cmd --add-port=3306/tcp? ? ? ? # 開放通過tcp訪問3306

firewall-cmd --remove-port=80tcp? ? ? ? # 阻止通過tcp訪問3306

firewall-cmd --add-port=233/udp? ? ? ? # 開放通過udp訪問233

firewall-cmd --list-ports? ? ? ? ? ? ? # 查看開放的端口

偽裝IP

firewall-cmd --query-masquerade # 檢查是否允許偽裝IP

firewall-cmd --add-masquerade? # 允許防火墻偽裝IP

firewall-cmd --remove-masquerade# 禁止防火墻偽裝IP

端口轉(zhuǎn)發(fā)

'''端口轉(zhuǎn)發(fā)可以將指定地址訪問指定的端口時,將流量轉(zhuǎn)發(fā)至指定地址的指定端口称勋。轉(zhuǎn)發(fā)的目的如果不指定 ip 的話就默認(rèn)為本機胸哥,如果指定了 ip 卻沒指定端口,則默認(rèn)使用來源端口赡鲜。 如果配置好端口轉(zhuǎn)發(fā)之后不能用空厌,可以檢查下面兩個問題:

比如我將 80 端口轉(zhuǎn)發(fā)至 8080 端口,首先檢查本地的 80 端口和目標(biāo)的 8080 端口是否開放監(jiān)聽了

其次檢查是否允許偽裝 IP银酬,沒允許的話要開啟偽裝 IP

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080? # 將80端口的流量轉(zhuǎn)發(fā)至8080

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1# 將80端口的流量轉(zhuǎn)發(fā)至192.168.0.1firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080# 將80端口的流量轉(zhuǎn)發(fā)至192.168.0.1的8080端口'''

當(dāng)我們想把某個端口隱藏起來的時候嘲更,就可以在防火墻上阻止那個端口訪問,然后再開一個不規(guī)則的端口揩瞪,之后配置防火墻的端口轉(zhuǎn)發(fā)赋朦,將流量轉(zhuǎn)發(fā)過去。

端口轉(zhuǎn)發(fā)還可以做流量分發(fā),一個防火墻拖著好多臺運行著不同服務(wù)的機器宠哄,然后用防火墻將不同端口的流量轉(zhuǎn)發(fā)至不同機器壹将。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毛嫉,隨后出現(xiàn)的幾起案子诽俯,更是在濱河造成了極大的恐慌,老刑警劉巖承粤,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暴区,死亡現(xiàn)場離奇詭異,居然都是意外死亡密任,警方通過查閱死者的電腦和手機颜启,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浪讳,“玉大人缰盏,你說我怎么就攤上這事⊙妥瘢” “怎么了口猜?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長透揣。 經(jīng)常有香客問我济炎,道長,這世上最難降的妖魔是什么辐真? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任须尚,我火速辦了婚禮,結(jié)果婚禮上侍咱,老公的妹妹穿的比我還像新娘耐床。我一直安慰自己,他們只是感情好楔脯,可當(dāng)我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布撩轰。 她就那樣靜靜地躺著,像睡著了一般昧廷。 火紅的嫁衣襯著肌膚如雪堪嫂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天木柬,我揣著相機與錄音皆串,去河邊找鬼。 笑死眉枕,一個胖子當(dāng)著我的面吹牛恶复,可吹牛的內(nèi)容都是我干的娇唯。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼寂玲,長吁一口氣:“原來是場噩夢啊……” “哼塔插!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拓哟,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤想许,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后断序,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體流纹,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年违诗,在試婚紗的時候發(fā)現(xiàn)自己被綠了漱凝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡诸迟,死狀恐怖茸炒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阵苇,我是刑警寧澤壁公,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站绅项,受9級特大地震影響紊册,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜快耿,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一囊陡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掀亥,春花似錦撞反、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垛膝。三九已至鳍侣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吼拥,已是汗流浹背倚聚。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凿可,地道東北人惑折。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓授账,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惨驶。 傳聞我的和親對象是個殘疾皇子白热,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,666評論 2 350