日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

iptables是linux內核自帶的防火墻,功能強大,但是因為其配置比較復雜,往往會讓新手望而生畏。想當年,我在學習iptbles的時候就花費了不少精力,全憑自己零碎地摸索積累,著實走了不少彎路。接下來,我將給大家分享一下如何使用firewalld工具管理iptables。

1、使用firewalld的好處

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

其次,firewalld可靠性高,相對于直接使用iptables命令進行配置,它幾乎不會出錯,特別適合在生產環境中使用。

2、查看firewalld狀態

大多數Linux系統都默認安裝了firewalld包,提供的操作命令為firewall-cmd,我們可以使用--state參數查看firewalld的狀態:

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

有時候,雖然firewalld已經安裝,但不一定開啟,我們可以使用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、查看當前配置

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

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:~# 

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

4、開放指定端口或服務

對于一些默認允許的服務,我們可以使用--remove-service參數進行刪除,加上--permanent參數可指定當前操作為永久生效,否則在firewalld重啟后配置又恢復了:

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方式允許相應的端口,配置修改后不會立即生效,需要使用--reload參數重新加載配置文件,下面的例子分別添加了http服務及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參數只是簡單地開放某個端口,無法對源/目的IP、端口等進行限制。要基于更多條件進行限制,我們需要添加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訪問本機的21端口,以及拒絕192.168.30.8訪問本機的80端口。關于rich rule更多的參數信息請man firewalld.richlanguage。

6、添加direct rule

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

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網段訪問本機的10000端口。查看當前direct rule配置需要使用firewall-cmd --direct --get-rules ipv4 filter INPUT命令,其中filter表示iptbles的表,INPUT為指定的鏈(關于表鏈的知識這里暫時不做詳細解釋),通過--list-all參數是無法看到direct rule的。更多關于direct rule的幫助信息請man firewalld.direct。

7、其它需要注意的地方

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

好了,關于firewalld的基本使用就先介紹到這里,后續我會繼續分享firewalld更高級的用法,敬請關注,謝謝。

分享到:
標簽:防火墻 iptables
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定