1. 程式人生 > >關於centos中firewalld埠相關配置

關於centos中firewalld埠相關配置

參考文章:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls

     https://www.cnblogs.com/moxiaoan/p/5683743.html

  http://www.sa-log.com/282.html

CentOS7使用firewalld開啟關閉防火牆與埠

1、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 --failed

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   那怎麼開啟一個埠呢 新增 firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,沒有此引數重啟後失效) 重新載入 firewall-cmd --reload 檢視 firewall-cmd --zone= public --query-port=80/tcp 刪除 firewall-cmd --zone= public --remove-port=80/tcp --permanent

CentOS7使用firewalld詳解

在CentOS7開始,預設是沒有iptables的,而是使用了firewall防火牆.
與時俱進,簡單的整理了一下firewall的使用方法.
關於詳細的介紹參考官網,就不搬字了.這個網站有中文選項.可以直接看中文.關於CentOS7 非常多是資料這裡面都能找到.
官方文件地址:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld

正文開始
FirewallD 提供了支援網路/防火牆區域(zone)定義網路連結以及介面安全等級的動態防火牆管理工具。

什麼是動態防火牆?

我們首先需要弄明白的第一個問題是到底什麼是動態防火牆。為了解答這個問題,我們先來回憶一下 iptables service 管理防火牆規則的模式:使用者將新的防火牆規則新增進  /etc /sysconfig /iptables 配置檔案當中,再執行命令 service iptables reload 使變更的規則生效。在這整個過程的背後,iptables service 首先對舊的防火牆規則進行了清空,然後重新完整地載入所有新的防火牆規則,而如果配置了需要 reload 核心模組的話,過程背後還會包含解除安裝和重新載入核心模組的動作,而不幸的是,這個動作很可能對執行中的系統產生額外的不良影響,特別是在網路非常繁忙的系統中。

如果我們把這種哪怕只修改一條規則也要進行所有規則的重新載入的模式稱為靜態防火牆的話,那麼 firewalld 所提供的模式就可以叫做動態防火牆,它的出現就是為了解決這一問題,任何規則的變更都不需要對整個防火牆規則列表進行重新載入,只需要將變更部分儲存並更新到執行中的 iptables 即可。

這裡有必要說明一下 firewalld 和 iptables 之間的關係, firewalld 提供了一個 daemon 和 service,還有命令列和圖形介面配置工具,它僅僅是替代了 iptables service 部分,其底層還是使用 iptables 作為防火牆規則管理入口。firewalld 使用 python 語言開發,在新版本中已經計劃使用  c++ 重寫 daemon 部分。

什麼是區域(zone)?

firewalld將網絡卡對應到不同的區域(zone),zone 預設共有 9個,block dmz drop external home internal public trusted work.
不同的區域之間的差異是其對待資料包的預設行為不同,根據區域名字我們可以很直觀的知道該區域的特徵,在CentOS7系統中,預設區域被設定為public.
在最新版本的fedora(fedora21)當中隨著 server 版和 workstation 版的分化則添加了兩個不同的自定義 zone FedoraServer 和 FedoraWorkstation 分別對應兩個版本。

使用下面的命令分別列出所有支援的 zone 和檢視當前的預設 zone:

[root @ test ~ ] # firewall-cmd --get-zones
block dmz drop external home internal public trusted work
[root @ test ~ ] # firewall-cmd --get-default-zone
public

區域(zone)說明如下:
iptables service 在 /etc/sysconfig/iptables 中儲存配置
firewalld 將配置儲存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各種 XML 檔案裡

在/etc/firewalld/的區域設定是一系列可以被快速執行到網路介面的預設定。列表並簡要說明如下:

drop(丟棄)
任何接收的網路資料包都被丟棄,沒有任何回覆。僅能有傳送出去的網路連線。
block(限制)
任何接收的網路連線都被 IPv4 的 icmp-host-prohibited 資訊和 IPv6 的 icmp6-adm-prohibited 資訊所拒絕。
public(公共)
在公共區域內使用,不能相信網路內的其他計算機不會對您的計算機造成危害,只能接收經過選取的連線。
external(外部)
特別是為路由器啟用了偽裝功能的外部網。您不能信任來自網路的其他計算,不能相信它們不會對您的計算機造成危害,只能接收經過選擇的連線。
dmz(非軍事區)
用於您的非軍事區內的電腦,此區域內可公開訪問,可以有限地進入您的內部網路,僅僅接收經過選擇的連線。
work(工作)
用於工作區。您可以基本相信網路內的其他電腦不會危害您的電腦。僅僅接收經過選擇的連線。
home(家庭)
用於家庭網路。您可以基本信任網路內的其他計算機不會危害您的計算機。僅僅接收經過選擇的連線。
internal(內部)
用於內部網路。您可以基本上信任網路內的其他計算機不會威脅您的計算機。僅僅接受經過選擇的連線。
trusted(信任)
可接受所有的網路連線。
指定其中一個區域為預設區域是可行的。當介面連線加入了 NetworkManager,它們就被分配為預設區域。安裝時,firewalld 裡的預設區域被設定為公共區域。

什麼是服務?

在  /usr /lib /firewalld /services / 目錄中,還儲存了另外一類配置檔案,每個檔案對應一項具體的網路服務,如  ssh 服務等.
與之對應的配置檔案中記錄了各項服務所使用的 tcp /udp 埠,在最新版本的 firewalld 中預設已經定義了  70+ 種服務供我們使用.
當預設提供的服務不夠用或者需要自定義某項服務的埠時,我們需要將 service 配置檔案放置在  /etc /firewalld /services / 目錄中.
service 配置的好處顯而易見:
第一,通過服務名字來管理規則更加人性化,
第二,通過服務來組織埠分組的模式更加高效,如果一個服務使用了若干個網路埠,則服務的配置檔案就相當於提供了到這些埠的規則管理的批量操作快捷方式。

每載入一項 service 配置就意味著開放了對應的埠訪問,使用下面的命令分別列出所有支援的 service 和檢視當前 zone 種載入的 service:

[root @ test ~ ] # firewall-cmd --get-services
RH-Satellite- 6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns  ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp  ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
[root @ test ~ ] # firewall-cmd --list-services
dhcpv6-client  ssh

動態新增一條防火牆規則如下:
假設自定義的 ssh 埠號為 12222,使用下面的命令來新增新埠的防火牆規則:

firewall-cmd  --add-port= 12222 /tcp  --permanent

如果需要使規則儲存到 zone 配置檔案,則需要加引數 –permanent
舉例如下:

[root @ test zones ] # firewall-cmd --add-port=12222/tcp
success
[root @ test zones ] # cat /etc/firewalld/zones/public.xml
<?xml  version= "1.0"  encoding= "utf-8"? >
<zone >
<short >Public </short >
<description >For use  in public areas. You  do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. </description >
<service  name= "dhcpv6-client" />
<service  name= "ssh" />
</zone >
[root @ test zones ] # firewall-cmd --add-port=12222/tcp --permanent
success
[root @ test zones ] # cat /etc/firewalld/zones/public.xml
<?xml  version= "1.0"  encoding= "utf-8"? >
<zone >
<short >Public </short >
<description >For use  in public areas. You  do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. </description >
<service  name= "dhcpv6-client" />
<service  name= "ssh" />
<port  protocol= "tcp"  port= "12222" />
</zone >

# 注意:防火牆配置檔案也可以手動修改,修改後記得過載,過載方法請看下文.

#####firewalld命令#####

# 關閉firewalld
[root @ test zones ] # systemctl stop firewalld.service

# 啟動firewalld
[root @ test zones ] # systemctl start firewalld.service

# 把firewalld加入到系統服務
[root @ test zones ] # systemctl enable firewalld.service

# 從系統服務移除
[root @ test zones ] # systemctl disable firewalld.service
rm  '/etc/systemd/system/basic.target.wants/firewalld.service'
rm  '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

# 檢視firewalld狀態 兩種方法2選1即可
[root @ test zones ] # firewall-cmd --state
running
[root @ test zones ] # systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded  ( /usr /lib /systemd /system /firewalld.service; enabled )
Active: active  (running ) since Tue  2015- 10-06  11: 49:06 CST; 2s ago
Main PID:  21716  (firewalld )
CGroup:  /system.slice /firewalld.service
└─ 21716  /usr /bin /python  -Es  /usr /sbin /firewalld  --nofork  --nopid

Oct 06  11: 49:06  test systemd [ 1 ]: Starting firewalld - dynamic firewall daemon...
Oct 06  11: 49:06  test systemd [ 1 ]: Started firewalld - dynamic firewall daemon.

# 重讀防火牆
# 以 root 身份輸入以下命令,重新載入防火牆,並不中斷使用者連線,即不丟失狀態資訊:

[root @ test ~ ] # firewall-cmd --reload
success

# 以 root 身份輸入以下資訊,重新載入防火牆並中斷使用者連線,即丟棄狀態資訊:

[root @ test ~ ] # firewall-cmd --complete-reload
success

# 注意:通常在防火牆出現嚴重問題時,這個命令才會被使用。比如,防火牆規則是正確的,但卻出現狀態資訊問題和無法建立連線。

# 獲取支援的區域(zone)列表

[root @ test zones ] # firewall-cmd --get-zones
block dmz drop external home internal public trusted work

# 獲取所有支援的服務

[root @ test zones ] # firewall-cmd --get-services
RH-Satellite- 6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns  ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp  ssh telnet tftp tftp-client transmission-client vnc-server wbem-https

# 獲取所有支援的ICMP型別

[root @ test zones ] # firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded

# 列出全部啟用的區域的特性

[root @ test zones ] # firewall-cmd --list-all-zones
# 輸出格式是:
<zone >
interfaces:  <interface1 > ..
services:  <service1 > ..
ports:  <port1 > ..
forward-ports:  <forward port1 > ..
icmp-blocks:  <icmp type1 > ..

# 輸出區域 <zone> 全部啟用的特性。如果生略區域,將顯示預設區域的資訊。
firewall-cmd [–zone=<zone>] –list-all

[root @ test zones ] # firewall-cmd --list-all
public  (default, active )
interfaces: eno16777736
sources:
services: dhcpv6-client  ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root @ test zones ] # firewall-cmd --zone=work --list-all
work
interfaces:
sources:
services: dhcpv6-client ipp-client  ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

# 獲取預設區域的網路設定

[root @ test zones ] # firewall-cmd --get-default-zone
public

# 設定預設區域

[root @ test zones ] # firewall-cmd --set-default-zone=work
success

# 注意:流入預設區域中配置的介面的新訪問請求將被置入新的預設區域。當前活動的連線將不受影響。

# 獲取活動的區域

[root @ test zones ] # firewall-cmd --get-active-zones
work
interfaces: eno16777736

# 根據介面獲取區域
firewall-cmd –get-zone-of-interface=<interface>

[root @ test zones ] # firewall-cmd --get-zone-of-interface=eno16777736
public

## 以下關於區域和介面的操作,就不一一舉例了,可以根據實際情況修改.
# 將介面增加到區域

firewall-cmd  [--zone= <zone > ]  --add-interface= <interface >

# 如果介面不屬於區域,介面將被增加到區域。如果區域被省略了,將使用預設區域。介面在重新載入後將重新應用。

# 修改介面所屬區域

firewall-cmd  [--zone= <zone > ]  --change-interface= <interface >

# 這個選項與 –add-interface 選項相似,但是當介面已經存在於另一個區域的時候,該介面將被新增到新的區域。

# 從區域中刪除一個介面

firewall-cmd  [--zone= <zone > ]  --remove-interface= <interface >

# 查詢區域中是否包含某介面

firewall-cmd  [--zone= <zone > ]  --query-interface= <interface >

# 注意:返回介面是否存在於該區域。沒有輸出。

# 列舉區域中啟用的服務

firewall-cmd  [  --zone= <zone >  ]  --list-services

# 這兩條簡單點說,就是斷網和連網.
# 啟用應急模式阻斷所有網路連線,以防出現緊急狀況

firewall-cmd  --panic-on

# 禁用應急模式

firewall-cmd  --panic-off

# 查詢應急模式

firewall-cmd  --query-panic

# 啟用區域中的一種服務

firewall-cmd  [--zone= <zone > ]  --add-service= <service >  [--timeout= <seconds > ]

# 此舉啟用區域中的一種服務。如果未指定區域,將使用預設區域。如果設定了超時時間,服務將只啟用特定秒數。如果服務已經活躍,將不會有任何警告資訊。
# 例: 使區域中的 ipp-client 服務生效60秒:

firewall-cmd  --zone=home  --add-service=ipp-client  --timeout= 60

相關推薦

關於centosfirewalld相關配置

參考文章:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls      https://ww

在 eclipse 創建 web 版的 maven 工程以及 進一步了解 pom.xml scope 的相關配置設置問題

maven scope web 版的 maven 工程 pom.xml 1、在 eclipse中 創建 web 版的 maven 工程: a、和 創建 java 版的 maven 工程一樣,先選中一個簡單的工程(跳過經典模式),後填寫坐標(不了解的看先前的博文),在打包方式中選擇 war

阿裏雲CentOSvsftp安裝、配置、卸載

配置文件 列表 span 安裝配置 conn gre vsftp 設置 div --------------------------------------------------------- 阿裏雲CentOS中vsftp安裝、配置、卸載 1--卸載 查

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

accep host input 文件的 ref acc fill -h target CentOS中防火墻程序主要是firewall和iptables,CentOS7中firewall服務已經默認安裝好了,而iptables服務需要自己用yum install ip

centosjava安裝跟配置

目錄 class jdk1.8 lib 宋體 jar ash oracl 安裝配置 安裝配置java環境 [root@JxateiLinux src]# Wget http://download.oracle.com/otn-pub/java/jdk/8u161-b12/

CentOSvsftp安裝、配置、卸載

r12 different restart AC ble can http listen users 1. 安裝VSFTP yum -y install vsftpd 2. 配置vsftpd.conf文件 vim /etc/vsftpd/vsftpd.conf #

xampp mysql的相關配置

setting mat 源碼 data 回車 sin 成功 upd 啟動mysql 最近開始接觸PHP,而一般搭建PHP環境使用的都是xampp 這個集成環境,由於之前我的系統中已經安裝了mysql服務,所以在啟動mysql的時候出現一些列錯誤,我通過查詢各種資料解決了這個

CentosMaven的安裝配置

1.下載地址 http://maven.apache.org/download.cgi ##選擇二進位制的tar.gz檔案下載apache-maven-3.5.4-bin.tar.gz 2.安裝 解壓檔案到指定路徑,tar -zxvf apach

CentOS環境變數和配置檔案

什麼是環境變數 bash shell用一個叫做 環境變數(environment variable) 的特性來儲存有關shell會話和工作環境的資訊。即允許在記憶體中儲存資料,使得在程式或shell中執行的指令碼能夠訪問它們。 在bash shell中,環境變數分為兩類: 全域性變數 區域性變數 全域性環

Centos作業系統安裝及相關配置

1.將計算機的BIOS設定為光碟機引導,並插入CentOS-7光碟,正常情況會進入安裝頁面,如下: 2.選擇Test this media & install CentOS 7 3.等待載入完成進入歡迎介面。 4.選擇安裝過程所用的語言,我們可以選擇中文(簡體)

eclipse Tomcat的相關配置操作總結之45秒啟動限制

1.修改Tomcat的45秒啟動超時:1.1到eclipse的工作空間,找到工作空間中.metadata/.plugins/org.eclipse.wst.server.core目錄中的servers.xml檔案,修改servers.xml,eg:F:\java_worksp

Eclipsetomcat的相關配置

部署路徑問題 我記得在學習Java的時候,一開始是使用Eclipse編寫JavaSE程式,當開始編寫JavaEE即Web程式的時候,就改用MyEclipse了,MyEclipse配置好Tomcat後是預設使用配置的tomcat的安裝目錄即自己的tomcat下的webapp

Firewalld on Centos 7 相關配置

firewalld centos 7Centos 7 默認使用防火墻為Firewalld防火墻,如下是關於Firewalld防火墻的一些配置介紹。在使用firewalld之前,我們需要先檢查一下firewalld的狀態[[email protected]/* */ ~]# firewall-c

CentOS與網絡相關的常用

p地址 har 位數 主機名 strong mac sha 邏輯地址 led CentOS中與網絡相關的常用配置文件 1. 常見的網絡配置文件 /etc/hosts      本地域名解析表,用於解析主機名。對應於win系統中的C:\Windows\Sy

centosvpn配置---pptp

比較 撥號 速度 internet 表示 服務 ini alt pass pptp配置比較簡單,速度也很快,但安全穩點方面不如openvpn 1、安裝pptp yum install pptpd -y 2、修改options.pptpd添加nds c

virtualboxcentos虛擬機網絡配置

get 區別 地址轉換 nat alt 網絡 橋接 img 使用   本文講述的是如何在Oracle VM VirtualBox安裝的CentOS虛擬機中進行網絡配置,使得虛擬機可以訪問宿主主機,也能訪問外網,宿主主機可以訪問虛擬機,虛擬機之間也可以相互訪問。   在Vir

centos 7安裝nginx並配置nginx反向代理

nginx linux proxy 反向代理 Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特點是占有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好,中國大陸使用ngi

CentOS 6.5 x64相關安全,優化配置

deny login 最長 註銷時間 max efs system roo style 一、安全   1、修改密碼長度:     [root@CentOS64 ~]# vi /etc/login.defs       PASS_MAX_DAYS 99999 //用

CentOS 配置 Nginx 支持 https

day nod fire sys perm http gin 證書 art 一、基礎設置: 1、yum -y update 2、yum -y install openssl* 3、cd /usr/local/nginx/conf 4、mkdir ./ssl 5、cd .

03: centos配置使用svn

roo serve svnadmin pass 是否 log sys 控制 .... 1.1 centos7.3源碼搭建svn----安裝各種依賴包   1、安裝zlib-1.2.8.tar.xz       xz -d zlib-1.2.8.tar.xz       ta