1. 程式人生 > >CentOS中防火牆相關的命令(CentOS7中演示)

CentOS中防火牆相關的命令(CentOS7中演示)

         關鍵字: Linux  CentOS  firewall iptables

        CentOS中防火牆程式主要是firewall和iptables,CentOS7中firewall服務已經預設安裝好了,而iptables服務需要自己用yum  install  iptabes-services來安裝。

       說明:以下演示均在CentOS7中進行,其他版本也大同小異

1、firewall相關的操作

    檢視防火牆狀態

firewall-cmd    --state


關閉防火牆

systemctl  stop   firewalld.service


開啟防火牆

systemctl  start   firewalld.service


禁止開機啟動啟動防火牆

systemctl   disable   firewalld.service

2、iptables相關的操作

2.1常規命令

       iptables服務需要自己安裝,命令是:

yum install  iptables-services

如圖: 

        

         開啟iptables防火牆的命令是:

systemctl  start  iptables.service

        重啟iptables防火牆的命令是:

systemctl  restart  iptables.service

關閉iptables防火牆的命令是:

systemctl  stop  iptables.service

檢視iptables防火牆狀態的命令是:

systemctl  status  iptables.service

如圖:

   

2.2使用編輯檔案的方式開放特定的埠

         很多時候,需要開啟防火牆,但是放行某些特定的埠,如何在防火牆開啟的狀態下,放行50007埠?按照下面的步驟做。

2.2.1修改規則

    主要是編輯/etc/sysconfig/iptables檔案,編輯方法很多,可以使用vim編輯,也可以直接把該檔案下載到本地,用本地工具編輯。

    將原來的內容    :INPUTACCEPT [0:0]

   修改為     :INPUT DROP[0:0]

    將原來的內容    :FORWARDACCEPT [0:0]  修改為    :FORWARD  DROP[0:0]

將原來的內容     :OUTPUT ACCEPT [0:0]    修改為        :OUTPUTACCEPT [0:480]

2.2.2新增放行的埠

          iptables檔案的末尾有如下三行內容:

-A INPUT -j REJECT--reject-with icmp-host-prohibited

-A FORWARD -j REJECT--reject-with icmp-host-prohibited

COMMIT

          在這這三行的前面新增一行放行50070埠的配置內容:

-A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT

          同理,如果要放行80埠,就新增一行:

-A INPUT -p tcp -m tcp --dport  80 -j ACCEPT

          修改完成後,我的/etc/sysconfig/iptables檔案是這樣的:

*filter

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT ACCEPT [0:480]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22-j ACCEPT

-A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

2.2.3重啟iptables防火牆

執行重啟iptables防火牆的命令,命令是:

       systemctl  restart  iptables.service

       如圖:

      

2.2.4測試埠放行效果

在使用命令systemctl  stop firewalld.service關閉防火牆,使用命令systemctl  start  iptables.service開啟防火牆,但是為配置/etc/sysconfig/iptables檔案,未放行50070埠的情況下,訪問以下地址http://192.168.27.134:50070/dfshealth.html#tab-overview

是訪問不了的,如圖:

      

      在配置了/etc/sysconfig/iptables檔案,添加了放行50070埠,並且重啟了iptables防火牆的情況下,在訪問該地址:http://192.168.27.134:50070/

      發現OK了,如圖:

     

 2.3使用執行命令的方式開放特定埠

 2.3.1執行命令

在不手動修改iptables防火牆的配置檔案的情況下,使用命令做到放行某些常用埠,命令集合是:

iptables -P INPUT ACCEPT

iptables -F 

iptables -X 

iptables -Z 

iptables -A INPUT -i lo -jACCEPT 

iptables -A INPUT -p tcp --dport22 -j ACCEPT 

iptables -A INPUT -p tcp --dport21 -j ACCEPT 

iptables -A INPUT -p tcp --dport80 -j ACCEPT 

iptables -A INPUT -p tcp --dport8080 -j ACCEPT

iptables -A INPUT -p tcp --dport8088 -j ACCEPT

iptables -A INPUT -p tcp --dport443 -j ACCEPT 

iptables -A INPUT -p icmp--icmp-type 8 -j ACCEPT 

iptables -A INPUT -p tcp --dport50070 -j ACCEPT 

iptables -A INPUT -m state --stateRELATED,ESTABLISHED -j ACCEPT 

iptables -P INPUT DROP 

iptables -P OUTPUT ACCEPT 

iptables -P FORWARD DROP 

service  iptables save 

systemctl  restart  iptables.service

如圖:

    

2.3.2測試

測試方法同2.2.4章節,開放埠的效果是一樣的。