亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

iptables是linux內(nèi)核自帶的防火墻,功能強(qiáng)大,但是因?yàn)槠渑渲帽容^復(fù)雜,往往會(huì)讓新手望而生畏。想當(dāng)年,我在學(xué)習(xí)iptbles的時(shí)候就花費(fèi)了不少精力,全憑自己零碎地摸索積累,著實(shí)走了不少彎路。接下來,我將給大家分享一下如何使用firewalld工具管理iptables。

1、使用firewalld的好處

首先,firewall-cmd是對(duì)iptables操作命令的封裝,使用簡單,新手比較容易接受。

其次,firewalld可靠性高,相對(duì)于直接使用iptables命令進(jìn)行配置,它幾乎不會(huì)出錯(cuò),特別適合在生產(chǎn)環(huán)境中使用。

2、查看firewalld狀態(tài)

大多數(shù)Linux系統(tǒng)都默認(rèn)安裝了firewalld包,提供的操作命令為firewall-cmd,我們可以使用--state參數(shù)查看firewalld的狀態(tài):

root@kali2020:~# firewall-cmd --state
running
root@kali2020:~# 

有時(shí)候,雖然firewalld已經(jīng)安裝,但不一定開啟,我們可以使用systemctl命令把它開起來:

root@kali2020:~# systemctl enable firewalld
Synchronizing state of firewalld.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable firewalld
root@kali2020:~# systemctl start firewalld
root@kali2020:~# 

3、查看當(dāng)前配置

我們可以使用--list-all參數(shù)查看當(dāng)前zone的配置,也可以使用--list-services、--list-ports等參數(shù)查看指定的配置:

root@kali2020:~# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ipsec ssh
  ports:
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
root@kali2020:~# 

默認(rèn)所有網(wǎng)卡都屬于默認(rèn)public zone,可以使用--zone參數(shù)指定其它zone,關(guān)于zone的概念新手可以先忽略。我們看到,防火墻默認(rèn)只允許dhcpv6-client、ipsec、ssh服務(wù),實(shí)際上相當(dāng)于允許服務(wù)響應(yīng)的端口,而服務(wù)跟端口之間的關(guān)系在/etc/service文件中定義。

4、開放指定端口或服務(wù)

對(duì)于一些默認(rèn)允許的服務(wù),我們可以使用--remove-service參數(shù)進(jìn)行刪除,加上--permanent參數(shù)可指定當(dāng)前操作為永久生效,否則在firewalld重啟后配置又恢復(fù)了:

root@kali2020:~# firewall-cmd --list-services
http ssh
root@kali2020:~# firewall-cmd --remove-service=ipsec --permanent
success
root@kali2020:~# firewall-cmd --remove-service=dhcpv6-client --permanent
success
root@kali2020:~# firewall-cmd --reload
success
root@kali2020:~# 

我們可以使用--add-service或--add-port方式允許相應(yīng)的端口,配置修改后不會(huì)立即生效,需要使用--reload參數(shù)重新加載配置文件,下面的例子分別添加了http服務(wù)及tcp443端口:

root@kali2020:~# grep http /etc/services 
# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
http            80/tcp          www             # WorldWideWeb HTTP
https           443/tcp                         # http protocol over TLS/SSL
http-alt        8080/tcp        webcache        # WWW caching service
root@kali2020:~# 
root@kali2020:~# iptables -L -nv | grep :80           tcp dpt:80 ctstate NEW,UNTRACKED
root@kali2020:~# 

5、添加rich rule

--add-service或--add-port參數(shù)只是簡單地開放某個(gè)端口,無法對(duì)源/目的IP、端口等進(jìn)行限制。要基于更多條件進(jìn)行限制,我們需要添加rich rule:

root@kali2020:~# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.30.88/32" port port=21 protocol="tcp"  accept' --permanent
success
root@kali2020:~# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.30.8/32" service name="http" reject' --permanent
success
root@kali2020:~# iptables -L -nv | grep 192.168.30.8
    0     0 REJECT     tcp  --  *      *       192.168.30.8         0.0.0.0/0            tcp dpt:80 ctstate NEW,UNTRACKED reject-with icmp-port-unreachable
    0     0 ACCEPT     tcp  --  *      *       192.168.30.88        0.0.0.0/0            tcp dpt:21 ctstate NEW,UNTRACKED
root@kali2020:~# 
root@kali2020:~# firewall-cmd --reload
success
root@kali2020:~# firewall-cmd --list-rich-rules
rule family="ipv4" source address="192.168.30.8/32" service name="http" reject
rule family="ipv4" source address="192.168.30.88/32" port port="21" protocol="tcp" accept
root@kali2020:~# 

上面的例子中,我們分別允許192.168.30.88訪問本機(jī)的21端口,以及拒絕192.168.30.8訪問本機(jī)的80端口。關(guān)于rich rule更多的參數(shù)信息請(qǐng)man firewalld.richlanguage。

6、添加direct rule

如果rich rule還不滿足我們的需求,我們可以使用--direct參數(shù)直接添加原生iptables規(guī)則:

root@kali2020:~# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 1 -m tcp -p tcp -s 192.168.30.0/24 --dport 10000 -j REJECT
success
root@kali2020:~# 
root@kali2020:~# firewall-cmd --reload
success
root@kali2020:~# 
root@kali2020:~# firewall-cmd --direct --get-rules ipv4 filter INPUT
1 -m tcp -p tcp -s 192.168.30.0/24 --dport 10000 -j REJECT
root@kali2020:~# 
root@kali2020:~# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: http ssh
  ports: 443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.30.8/32" service name="http" reject
        rule family="ipv4" source address="192.168.30.88/32" port port="21" protocol="tcp" accept
root@kali2020:~# 

在上面的例子中我們通過添加direct rule方式拒絕了192.168.30.0/24網(wǎng)段訪問本機(jī)的10000端口。查看當(dāng)前direct rule配置需要使用firewall-cmd --direct --get-rules ipv4 filter INPUT命令,其中filter表示iptbles的表,INPUT為指定的鏈(關(guān)于表鏈的知識(shí)這里暫時(shí)不做詳細(xì)解釋),通過--list-all參數(shù)是無法看到direct rule的。更多關(guān)于direct rule的幫助信息請(qǐng)man firewalld.direct。

7、其它需要注意的地方

  • --reload參數(shù)用于重新加載iptables,不會(huì)導(dǎo)致當(dāng)前已經(jīng)建立的網(wǎng)絡(luò)連接中斷,而使用--complete-reload參數(shù)重新加載配置則會(huì)使當(dāng)前已經(jīng)建立的連接中斷,因此不建議使用。
  • firewall-cmd工具實(shí)際上是修改/etc/firewalld目錄下的相應(yīng)文件,因此除了使用命令行,還可以直接修改這些配置文件,再使用--reload參數(shù)重新加載。
  • 可以使用iptables-save命令查看當(dāng)前所有原生配置。

好了,關(guān)于firewalld的基本使用就先介紹到這里,后續(xù)我會(huì)繼續(xù)分享firewalld更高級(jí)的用法,敬請(qǐng)關(guān)注,謝謝。

分享到:
標(biāo)簽:防火墻 iptables
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定