Centos6與Centos7防火牆設置與端口開放

        Centos升級到7以後,內置的防火牆已經從iptables變成了firewalld。因此,端口的開啓仍是要從兩種狀況來講明的,即iptables和firewalld。bash

1、firewalld

        Centos7默認安裝了firewalld,若是沒有安裝的話,可使用 yum install firewalld firewalld-config 進行安裝。服務器

        

    一、firewalld的基本使用


        啓動: systemctl start firewalld
        查看狀態: systemctl status firewalld 
        中止: systemctl disable firewalld
        禁用: systemctl stop firewalld
 
    2.  systemctl是CentOS7的服務管理工具中主要的工具,它融合以前service和chkconfig的功能於一體


        啓動一個服務:systemctl start firewalld.service
        關閉一個服務:systemctl stop firewalld.service
        重啓一個服務:systemctl restart firewalld.service
        顯示一個服務的狀態:systemctl status firewalld.service
        在開機時啓用一個服務:systemctl enable firewalld.service
        在開機時禁用一個服務:systemctl disable firewalld.service
        查看服務是否開機啓動:systemctl is-enabled firewalld.service
        查看已啓動的服務列表:systemctl list-unit-files|grep enabled
        查看啓動失敗的服務列表:systemctl --failedtcp

    3. 配置firewalld-cmd

        查看版本: firewall-cmd --version
        查看幫助: firewall-cmd --help
        顯示狀態: firewall-cmd --state
        查看全部打開的端口: firewall-cmd --zone=public --list-ports
        更新防火牆規則: firewall-cmd --reload
        查看區域信息:  firewall-cmd --get-active-zones
        查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0
        拒絕全部包:firewall-cmd --panic-on
        取消拒絕狀態: firewall-cmd --panic-off
        查看是否拒絕: firewall-cmd --query-panic
 工具


    4. 那怎麼開啓一個端口呢

        添加this

firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,沒有此參數重啓後失效)


        從新載入spa

firewall-cmd --reload


        查看rest

firewall-cmd --zone= public --query-port=80/tcp


        刪除code

firewall-cmd --zone= public --remove-port=80/tcp --permanent

        參數說明接口

說明:
–zone 做用域
–add-port=8080/tcp 添加端口,格式爲:端口/通信協議
–permanent #永久生效,沒有此參數重啓後失效

2、iptables

        1. 打開/關閉/重啓防火牆

開啓防火牆(重啓後永久生效):chkconfig iptables on

關閉防火牆(重啓後永久生效):chkconfig iptables off

開啓防火牆(即時生效,重啓後失效):service iptables start

關閉防火牆(即時生效,重啓後失效):service iptables stop

重啓防火牆:service iptables restartd

 

        2. 查看打開的端口

/etc/init.d/iptables status

        3. 打開某個端口(以8080爲例)
 

(1)開啓端口

        iptables -A INPUT -p tcp --dport 8080 -j ACCEPT 
(2)保存並重啓防火牆

        /etc/rc.d/init.d/iptables save
        /etc/init.d/iptables restart

        4. 打開49152~65534之間的端口

iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT  


        一樣,這裏須要對設置進行保存,並重啓防火牆。ip

        5.  其餘打開方式

        咱們還能夠經過修改/etc/sysconfig/iptables文件的方式開啓端口,以下

vi /etc/sysconfig/iptables


        而後在文件中增長一行

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

 

        參數說明:

–A 參數就當作是添加一條規則
–p 指定是什麼協議,咱們經常使用的tcp 協議,固然也有udp,例如53端口的DNS
–dport 就是目標端口,當數據從外部進入服務器爲目標端口
–sport 數據從服務器出去,則爲數據源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收

 

3、切換到iptables服務

        一、關閉firewall:

service firewalld stop
systemctl disable firewalld.service #禁止firewall開機啓動

        二、安裝iptables防火牆

yum install iptables-services #安裝

        三、編輯iptables防火牆配置

vi /etc/sysconfig/iptables #編輯防火牆配置文件
Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

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

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

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

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

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

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

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

COMMIT

        4. 開啓防火牆iptables

service iptables start #開啓
systemctl enable iptables.service #設置防火牆開機啓動
相關文章
相關標籤/搜索