1. 程式人生 > >CentOS7防火牆改為iptables和20條IPTables防火牆規則用法

CentOS7防火牆改為iptables和20條IPTables防火牆規則用法

CentOS 7 預設使用的是firewall作為防火牆,這裡改為iptables防火牆。 1、關閉firewall systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動 2、安裝iptables防火牆 yum install iptables-services #安裝 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 -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT :wq! #儲存退出 systemctl restart iptables.service #最後重啟防火牆使配置生效 systemctl enable iptables.service #設定防火牆開機啟動

20條IPTables防火牆規則用法

IPTables 包括一組內建和由使用者定義規則的「鏈」,管理員可以在「鏈」上附加各種資料包處理規則。
  • FILTER 預設過濾表,內建的鏈有:
  • INPUT:處理流入本地的資料包
  • FORWARD:處理通過系統路由的資料包
  • OUTPUT:處理本地流出的資料包
  • NAT 實現網路地址轉換的表,內建的鏈有:
  • PREROUTING:處理即將接收的資料包
  • OUTPUT:處理本地產生的資料包
  • POSTROUTING:處理即將傳出的資料包
  • MANGLE 此表用於改變資料包,共 5 條鏈:
  • PREROUTING:處理傳入連線
  • OUTPUT:處理本地生成的資料包
  • INPUT:處理報文
  • POSTROUTING:處理即將傳出資料包
  • FORWARD:處理通過本機轉發的資料包
接下來我們將由簡入難介紹 25 條 Linux 管理員最常會用到的 IPTables 規則。
1、啟動、停止和重啟IPTables 雖然 IPTables 並不是一項服務,但在 Linux 中還是可以像服務一樣對其狀態進行管理。 基於SystemD的系統 systemctl start iptablessystemctl stop iptablessystemctl restart iptables 基於SysVinit的系統  /etc/init.d/iptables start/etc/init.d/iptables stop/etc/init.d/iptables restart 2、檢視IPtables防火牆策略 你可以使用如下命令來檢視 IPtables 防火牆策略:  iptables -L -n -v 以上命令應該返回資料下圖的輸出: 以上命令是檢視預設的 FILTER 表,如果你只希望檢視特定的表,可以在 -t 引數後跟上要單獨檢視的表名。例如只檢視 NAT 表中的規則,可以使用如下命令:  iptables -t nat -L -v –n 3、遮蔽某個IP地址 如果你釋出有某個 IP 向伺服器匯入攻擊或非正常流量,可以使用如下規則遮蔽其 IP 地址:  iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP 注意需要將上述的 XXX 改成要遮蔽的實際 IP 地址,其中的 -A 引數表示在 INPUT 鏈的最後追加本條規則。(IPTables 中的規則是從上到下匹配的,一旦匹配成功就不再繼續往下匹配) 如果你只想遮蔽 TCP 流量,可以使用 -p 引數的指定協議,例如: iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP 4、解封某個IP地址 要解封對 IP 地址的遮蔽,可以使用如下命令進行刪除:  iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP 其中 -D 引數表示從鏈中刪除一條或多條規則。 5、使用IPtables關閉特定埠 很多時候,我們需要阻止某個特定埠的網路連線,可以使用 IPtables 關閉特定埠。 阻止特定的傳出連線:  iptables -A OUTPUT -p tcp --dport xxx -j DROP 阻止特定的傳入連線: iptables -A INPUT -p tcp --dport xxx -j ACCEPT 6、使用Multiport控制多埠 使用 multiport 我們可以一次性在單條規則中寫入多個埠,例如: iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT 7、在規則中使用 IP 地址範圍 在 IPtables 中 IP 地址範圍是可以直接使用 CIDR 進行表示的,例如: iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT 8、配置埠轉發 有時我們需要將 Linux 伺服器的某個服務流量轉發到另一埠,此時可以使用如下命令: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525 上述命令會將所有到達 eth0 網絡卡 25 埠的流量重定向轉發到 2525 埠。 9、遮蔽HTTP服務Flood攻擊 有時會有使用者在某個服務,例如 HTTP 80 上發起大量連線請求,此時我們可以啟用如下規則: iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT 上述命令會將連線限制到每分鐘 100 個,上限設定為 200。 10、禁止PING 對 Linux 禁 PING 可以使用如下規則遮蔽 ICMP 傳入連線: iptables -A INPUT -p icmp -i eth0 -j DROP 11、允許訪問迴環網絡卡 環回訪問(127.0.0.1)是比較重要的,建議大家都開放: iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT 12、遮蔽指定MAC地址 使用如下規則可以遮蔽指定的 MAC 地址: iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP 13、限制併發連線數 如果你不希望來自特定埠的過多併發連線,可以使用如下規則: iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT 以上規則限制每客戶端不超過 3 個連線。 14、清空IPtables規則 要清空 IPtables 鏈可以使用如下命令: iptables -F 要清空特定的表可以使用 -t 引數進行指定,例如: iptables -t nat –F 15、儲存IPtables規則 預設情況下,管理員對 IPtables 規則的操作會立即生效。但由於規則都是儲存在記憶體當中的,所以重啟系統會造成配置丟失,要永久儲存 IPtables 規則可以使用 iptables-save 命令: iptables-save > ~/iptables.rules 儲存的名稱大家可以自己改。 16、還原IPtables規則 有儲存自然就對應有還原,大家可以使用 iptables-restore 命令還原已儲存的規則: iptables-restore < ~/iptables.rules 17、允許建立相關連線 隨著網路流量的進出分離,要允許建立傳入相關連線,可以使用如下規則: iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 允許建立傳出相關連線的規則: iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT 18、丟棄無效資料包 很多網路攻擊都會嘗試用黑客自定義的非法資料包進行嘗試,我們可以使用如下命令來丟棄無效資料包: iptables -A INPUT -m conntrack --ctstate INVALID -j DROP 19、IPtables遮蔽郵件傳送規則 如果你的系統不會用於郵件傳送,我們可以在規則中遮蔽 SMTP 傳出埠: iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT 20、阻止連線到某塊網絡卡 如果你的系統有多塊網絡卡,我們可以限制 IP 範圍訪問某塊網絡卡: iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP 源地址可以是 IP 或 CIDR。 儲存設定的規則到配置檔案 service iptables save iptables –F  #刪除已經存在的規則  iptables -P INPUT DROP  #配置預設的拒絕規則。基本規則是:先拒絕所有的服務,然後根據需要再新增新的規則。  iptables -A INPUT -p tcp --dport 80 -j ACCEPT  #開啟WEB服務埠的tcp協議  iptables -A INPUT -p tcp --dport 110 -j ACCEPT  #開啟POP3服務埠的tcp協議  iptables -A INPUT -p tcp --dport 25 -j ACCEPT  #開啟SMTP服務埠的tcp協議  iptables -A INPUT -p tcp --dport 21 -j ACCEPT  #開啟FTP服務埠的tcp協議  iptables -A INPUT -p tcp -s 202.106.12.130 --dport 22 -j ACCEPT  #允許IP地址為202.106.12.130這臺主機連線本地的SSH服務埠  iptables -A INPUT -p tcp --dport 53 -j ACCEPT  #允許DNS服務埠的tcp資料包流入  iptables -A INPUT -p udp --dport 53 -j ACCEPT  #允許DNS服務埠的udp資料包流入  iptables -A INPUT -p icmp -icmp-type echo-request -i eth1 -j DROP  #防止死亡之ping,從介面eth1進入的icmp協議的請求全部丟棄。  iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT  #防止SYN Flood (拒絕服務攻擊) iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.226 -j MASQUERADE #允許 192.168.0.226通過eth1 IP偽裝出外網 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.4 -p tcp --dport 25 -j MASQUERADE #允許 192.168.0.4通過eth0 偽裝訪問外網的 25埠

相關推薦

CentOS7防火牆iptables20IPTables防火牆規則用法

CentOS 7 預設使用的是firewall作為防火牆,這裡改為iptables防火牆。 1、關閉firewall systemctl stop firewalld.service #停止firewall systemctl disable firewalld.se

判斷資料庫是否

String sql = "select count(*) from info"; Cursor cursor = db.rawQuery(sql, null);

20:私有方法名加前綴

avi 機制 warning 習慣 動態 tina 小寫 blog 特性   本條要點:(作者總結) 給私有方法的名稱加上前綴,這樣可以很容易地將其同公共方法區分開。 不要單用一個下劃線做私有方法的前綴,因為這樣做法是預留給蘋果公司用的。   一個類所做的事情通常

Linux6.xLinux7.x關閉防火牆iptables命令區別

Linux7.x系統關閉防火牆iptables命令如下: 檢視防火牆的狀態:firewall-cmd --state或者使用iptables -L 關閉防火牆:systemctl stop firewalld.service,但是開機之後還會啟動防火牆 systemctl disab

centos7以前版本的防火牆設定

CentOS6.5檢視防火牆的狀態(centos7之前的版本): [[email protected] ~]$service iptable status   顯示結果: [[email protected] ~]$service iptable status R

css程式碼書寫規範css程式碼優化建議20

1、謹慎使用外邊距屬性 當一個元素的下邊距和一個元素的上邊距相遇,兩者中大的會被留下 2、利用盒子模型佈局 Flexbox更容易精確建立我們想要的佈局設計,瀏覽器對Flexbox的支援已經接近完美。 .container{ display:flex; displa

(轉)http協議https協議(免費證書收費證書)

1、免費證書 一、CMD執行以下程式碼: %JAVA_HOME%\bin\keytool -genkey -alias server -keyalg RSA -keystore e:\server.keystore-validity 3650 -alias是指定一個別名,類似於Map的k

Linux 防火牆:關於 iptables firewalld 的那些事

以下是如何使用 iptables 和 firewalld 工具來管理 Linux 防火牆規則。 這篇文章摘自我的書《Linux in Action》,尚未釋出的第二個曼寧出版項目。 防火牆 防火牆是一組規則。當資料包進出受保護的網路區域時,進出內容(特別是關於其來

centos7怎麼檢視、開啟關閉防火牆

剛使用centos7會發現,用以前的方式檢視、開啟和關閉防火牆都無效了。這是因為centos7的防火牆改用firewalld,而不再使用iptables了 接著先是看centos7的防火牆的狀態,檢視的命令為 sudo systemctl status firewalld。

VMware虛擬機器首次安裝centos7.15後配置網路關閉防火牆

聽了朋友的意見打算學下linux,學習當然是從安裝開始了,網上找了個最新版的邊看教程邊裝。 網上看了好幾個不同的教程,安裝的時候還不難,都比較詳細,但配置網路時都說的不太清楚。畢竟我沒什麼基礎,如果不說清楚的話,很多地方我也不太懂。看了很多個教程整合了一下,總算把網路配置完了,現在記錄一個稍

學計算機專業的都會修電腦?避免尷尬,請牢記修電腦軍規20

汽車研發製造、零部件採購、物流、市場分析、司機、汽車銷售都得會修車麼? 讓汽車修理廠情何以堪? 是個醫生就得包治百病,耳鼻喉科醫生解決不了心臟病、面板病等問題,就要被嘲笑很“Low”? 問題在於,為什麼軟體使用經驗、搜尋引擎、維修電腦書籍,這些對於所有人都一樣,且計算機專業並不會學修電腦電腦的情況下

Centos中iptablesfirewall防火牆開啟、關閉、檢視狀態、基本設定等

iptables防火牆 1、基本操作 # 檢視防火牆狀態 service iptables status   # 停止防火牆 service iptables stop   # 啟動防火牆 service iptables start   # 重啟防火牆 s

Unity3D——使用UGUI角色新增名字

轉載http://www.jianshu.com/p/a9fd13594f18        學習Unity3D有一段時間了,龐大的U3D系統可能只學了一些皮毛。最近做東西時又要為怪物製作血條,但一時間竟然忘記了該怎麼弄,於是翻翻以前的專案,同時在這裡記下來,作為學習參考。

修改Centos7的網絡卡名稱ens160、eno16777984eth0

1. 修改網絡卡配置檔案 vim /etc/sysconfig/network-scripts/ifcfg-eno16777984 修改下面兩個配置項 NAME=eno16777984 DEVICE=eno16777984 改為 NAME=eth0 DEVICE=eth0

【第二課:C++opencv】灰度圖儲存圖片

這個程式和【第一課】差不多,只是增加儲存函式imwrite()和cvtColor() 【編譯環境:opencv2.4.4和VS2008】 #include "stdafx.h" #include "opencv2/opencv.hpp" using namespace c

2017-03-01-你的Github生成漂亮的徽章進度

github上常見的徽章標籤和進度條 平時在上github的時候看到別人寫的精美的README,我總是感到非常的羨慕.近來我也開始使用markdown寫部落格,看到之前有一些專案的README的開始部分總是會有例如 這樣的徽章樣式的標籤.

伺服器8080埠80埠(直接訪問網站不用新增埠專案名。)

新手教材。很多人購買伺服器和域名後,全部弄好後,只能通過   ip:8080/專案名   (或者     域名:8080/專案名 )的方式進行訪問。 這裡講解的就是如何去掉埠和專案名,直接用  ip (或者

死磕Linux防火牆(iptablesfirewalld)

對於Linux防火牆無論是使用方式上還是實現機制上理解的都不是很深刻。例如,在windows做埠對映很方便,但是到了linux下面卻很頭疼,今天打算徹底搞懂它。 一、Linux防火牆概述 1.1、背景 1) iptables和firewalld並不是真正的防火牆,他們兩個只是管理工具

Linux下安裝python3.62.7版本,如何將python預設的2.7版本的方法

1、首先要檢視python的安裝路徑:    $ which python查詢的是系統預設的版本(如果安裝了3.6版,那麼這裡顯示的是3.6版本的路徑)    $ which python2.7 查詢的是python2.7版本的路徑(一般預設為/usr/bin/python)

CentOS7 原裝中文系統全部英文的命令列方式(另有解決亂碼的方法)

最近開始搗鼓linux,然後裝系統的時候語言選為了中文,但是在之後的操作中發現命令列不支援中文顯示 於是回到了圖形介面將語言改為了英文,之後發現時間之類的一些東西還是亂碼顯示,但是苦於圖形介面中沒有找到合適的方法來修改 最後發現了語言環境的配置檔案,所以嘗試著直接修改試試