天天看點

linux-firewalld

############# Firewalld ############

*)實驗『使不同網段之間通信』######################

準備實驗環境:

真機檢視

配置好雙網卡主機

第三台主機配置如下:

ip設定與雙網卡主機内網在同一網段,網關設為雙網卡eth1

效果如下:

*)啟用 firewalld ############################

#yum install -y firewalld firewall-config    安裝服務

#systemctl start firewalld                        開啟服務

#systemctl enable firewalld                    開機開啟

#systemctl disable firewalld                      開機關閉

#systemctl stop firewalld                          關閉服務

*)網絡區域名稱及預設設定##################################

[root@desktop ~]# firewall-config &   調用圖形

看到如下界面!可在圖形界面更改設定

[root@desktop ~]# firewall-cmd --list-all   檢視火牆

public (default, active)

  interfaces: eth0

  sources: 

  services: dhcpv6-client ssh

  ports: 

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

圖形勾選 http

[root@desktop ~]# firewall-cmd --list-all

  services: dhcpv6-client http ssh   <-------

*)安裝 http 服務###########################

[root@desktop ~]# yum install httpd -y

編輯 /var/www/html/index.html 檔案,使實驗效果明顯

測試 在浏覽器輸入:172.25.12.10  效果如下

編輯配置檔案 更改端口

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 

[root@localhost ~]# systemctl restart httpd

測試:

在圖形界面添加端口

如下指令檢視http服務端口

*)火牆的相關指令###################################

[root@desktop ~]# firewall-cmd --state     檢視火牆狀态

[root@desktop ~]# firewall-cmd --get-active-zones  檢視活躍區域

[root@desktop ~]# firewall-cmd --get-default-zone   檢視預設區域

[root@desktop ~]# firewall-cmd --get-zones    檢視所有網絡區域

[root@desktop ~]# firewall-cmd --zone=public --list-all 檢視public區域資訊

[root@desktop ~]# firewall-cmd --get-services  列出所有服務

[root@desktop ~]# firewall-cmd --list-all-zones  列出所有

[root@desktop ~]# firewall-cmd --set-default-zone=dmz 設定預設區域為dmz

[root@desktop ~]# firewall-cmd --list-all-zones  列出所有

*)在 /etc/firewalld/zones 有關于火牆配置的一些檔案#####################

列如在public.xml中 可檢視火牆的一些相關配置,也可通過修改該檔案,改變火牆配置

在此檔案中加入443端口,重新開機火牆看到如下

一些相關指令:

[root@desktop ~]# firewall-cmd --permanent --add-port=8080/tcp  永久加入80端口

[root@desktop ~]# firewall-cmd --permanent --remove-port=8080/tcp 永久移除80端口

[root@localhost ~]# firewall-cmd --permanent --zone=internal --add-source=172.25.0.0./24 加入--源

[root@localhost ~]# firewall-cmd --permanent --zone=internal --removesource=172.25.0.0./24 移除--源

[root@desktop ~]# firewall-cmd --add-interface=eth1 --zone=public     把eth1加入public

[root@desktop ~]# firewall-cmd --permanent --remove-interface=eth1 --zone=public 把eth1從public移除

[root@desktop ~]# firewall-cmd --permanent --add-interface=eth1 --zone=trusted 把eth1加入trusted

[root@desktop zones]# firewall-cmd --change-interface=eth1 --zone=public 更改所屬區域

[root@desktop ~]# firewall-cmd --permanent --add-service=http  加入http服務

[root@desktop ~]# firewall-cmd --permanent --remove-service=http 移除服務

[root@localhost ~]# firewall-cmd --permanent --zone=internal --add-interface=eth0 加入

[root@localhost ~]# firewall-cmd --permanent --zone=internal --remove-interface=eth0 移除

[root@desktop services]# firewall-cmd --reload  重新加載

*)reload 與complete-reload ################################

實驗環境:

[root@desktop zones]# firewall-cmd --get-active-zones 

public

trusted

  interfaces: eth1

[root@desktop zones]# firewall-cmd --permanent --add-source=172.25.12.250 --zone=block  拒絕250連接配接

[root@desktop zones]# firewall-cmd --list-allpublic (default, active)

[kiosk@foundation12 ~]$ ssh [email protected]  如下連接配接失敗

[root@desktop zones]# firewall-cmd --permanent --remove-source=172.25.12.250 --zone=block  取消拒絕250

250連接配接上後

[root@desktop zones]# firewall-cmd --reload 

success

已連接配接上的未斷開

[root@desktop zones]# firewall-cmd --complete-reload   斷開所有連接配接

隻好用以下指令斷開連接配接,恢複

*)添加政策################################################

[root@desktop ~]# firewall-cmd --direct --get-all-rules   目前沒有

[root@desktop ~]#

如下:station可連接配接

加入規則:

[root@desktop ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.12.12 -p tcp --dport 22 -j REJECT  

                                                                                                                                               拒絕12主機的ssh服務

效果如下:連接配接不上

特殊服務:

[root@desktop ~]# yum install vsftpd  安裝服務

[root@desktop ~]# systemctl restart vsftpd  開啟服務

[root@desktop ~]# ss -antulpe | grep vsftpd  檢視端口

tcp    LISTEN     0      32                    :::21                   :::*      users:(("vsftpd",19346,3)) ino:165904 sk:ffff88007b53a000 <->

[root@desktop ~]# firewall-cmd --add-service=ftp  寫入火牆政策

設定如下:

隻允許250連接配接lftp

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.250 -p tcp --dport 21 -j REJECT

檢視   cat /usr/lib/firewalld/services/ftp.xml 

  <port protocol="tcp" port="21"/>

  <module name="nf_conntrack_ftp"/>    相比其他服務,多了此子產品,該子產品為跟蹤子產品,可跟蹤随機端口

[root@desktop ~]# lsmod | grep ftp  可檢視服務子產品

*)僞裝#############################################

[root@desktop ~]# firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.12.12  将desktop(10)的22端口僞裝到12主機上

[root@desktop ~]# firewall-cmd --add-masquerade 開啟僞裝

測試:當主機(250)連接配接10時,連接配接到了12上

[root@desktop ~]# firewall-cmd --remove-masquerade 關閉僞裝

 本文轉自 huanzi2017 51CTO部落格,原文連結:http://blog.51cto.com/13362895/2047448

繼續閱讀