iptables基礎實戰練習

来源:http://www.cnblogs.com/zllong/archive/2017/07/25/7237171.html
-Advertisement-
Play Games

目錄: 一、基本規則練習 二、SNAT源地址轉移 三、DNAT目標地址轉移 一、基礎規則練習 (1) 放行ssh (埠:22) (2)修改預設規則鏈(關閉所有埠) (3)放行web(80)埠 httpd nginx (4)修改預設規則鏈後,我們發現ping不通自己,也ping不通別的主機 (5 ...


目錄:

  一、基本規則練習

  二、SNAT源地址轉移

  三、DNAT目標地址轉移

 


一、基礎規則練習


 

(1) 放行ssh (埠:22)

1 iptables -A INPUT -d 192.168.42.153 -p tcp --dport 22 -j ACCEPT
2 iptables -A  OUTPUT -s  192.168.42.153  -p tcp  --sport  22 -j ACCEPT

 

(2)修改預設規則鏈(關閉所有埠)

1 iptables -P INPUT DROP
2 iptables -P OUTPUT DROP
3 iptables -P FORWARD DROP

 

(3)放行web(80)埠 httpd nginx

1 iptables -I INPUT -d 192.168.42.153 -p tcp --dport 80 -j ACCEPT
2 iptables -I OUTPUT -s 192.168.42.153 -p tcp --sport 80 -j ACCEPT

 

(4)修改預設規則鏈後,我們發現ping不通自己,也ping不通別的主機

1 iptables -t filter -I INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo  -j ACCEPT 
2 iptables -t filter -I OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo  -j ACCEPT

 

(5)允許自己ping別的主機

1 iptables -t filter -I OUTPUT -s 192.168.42.153 -d 0/0  -p icmp --icmp-type 8 -j ACCEPT
2 iptables -t filter -I INPUT -s 0/0 -d 192.168.42.153 -p icmp --icmp-type 0 -j ACCEPT

 

(6)允許任何人來ping本機

1 iptables -t filter -I INPUT -s 0/0 -d 192.168.42.153 -p icmp --icmp-type 8 -j ACCEPT
2 iptables -t filter -I OUTPUT -s 192.168.42.153 -d 0/0  -p icmp --icmp-type 0 -j ACCEPT

 

(7)同時開發多個埠(多埠匹配)

1 iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp -m multiport --dports 22,80,3306 -j ACCEPT
2 iptables -I INPUT -d 0/0 -s 192.168.42.153 -p tcp -m multiport --sports 22,80,3306 -j ACCEPT

 

(8)iptables -vnL –line-numbers #顯示數字

iptables  -vnL INPUT  --line-numbers 
Chain INPUT (policy DROP 1 packets, 229 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        8   576 ACCEPT     icmp --  *      *       0.0.0.0/0            192.168.42.153       icmptype 8
2       12  1008 ACCEPT     icmp --  *      *       0.0.0.0/0            192.168.42.153       icmptype 0
3       16  1226 ACCEPT     all  --  lo     *       127.0.0.1            127.0.0.1           
4       88  7565 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.42.153       tcp dpt:80
5     2135  163K ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.42.153       tcp dpt:22

 

(9) 源地址,目的地址範圍匹配
1 iptables -I INPUT -d 192.168.42.153 -p tcp --dport 23 -m iprange --src-range 192.168.42.150-192.168.42.158 -j ACCEPT
2 iptables -I OUTPUT -s 192.168.42.153 -p tcp --dport 23 -m iprange --dst-range  192.168.42.150-192.168.42.158 -j ACCEPT

 

(10)禁止包含”old”字元的頁面出來

1 iptables -I OUTPUT -s 192.168.42.153 -d 0/0 -p tcp --sport 80 -m string --algo bm --string "old" -j DROP

 

(11)基於時間限定,9點到19點,禁止訪問80埠

1 iptables -I INPUT -s 0/0  -d 192.168.42.153 -p tcp --dport 80  -m time --timestart 09:00:00 --timestop 19:00:00 --kerneltz  -j DROP

 

(12)周一到周五9點到19點禁止訪問80埠

1 iptables -I INPUT  -d 192.168.42.153 -p tcp --dport 80  -m time --timestart 09:00:00 --timestop 19:00:00 --kerneltz --weekdays 1,2,3,4,5  -j DROP

 

(13)埠大於2個併發連接(禁止)

1 iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp  --dport 22 -m connlimit --connlimit-above 2 -j DROP

 

(14)埠同一個客戶端小於3個併發連接

1 iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp  --dport 22 -m connlimit ! --connlimit-above 3 -j DROP

 

(15)目標地址和埠轉換示例(對22埠的轉換)

1 iptables -t nat -A PREROUTING -d 10.1.249.125 -p tcp --dport 22022 -j DNAT --to-destination 192.168.2.4:22

 

 


 二、SNAT源地址轉移


 

SNAT:源地址轉換。內網主機在訪問互聯網的時候所有源地址都轉換為防火牆的外網地址,起到隱藏內網客戶機的目的。同時,也解決了IPV4公網地址不夠用的需求。

1 iptables -t nat -A POSTROUTING -s 10.1.249.158 -j SNAT --to-source 192.168.2.3 

 


 三、DNAT目標地址轉移


 

 

 

DNAT:目的地址轉換。當外網主機訪問內網的某台伺服器的時候,如果直接暴露伺服器的IP於公網,可能會遭受各種各樣的攻擊,而DNAT的主要作用就是在伺服器前面添加一臺防火牆。將防火牆的地址公佈出去,讓外網客戶端通過訪問防火牆的地址就可以訪問到本地伺服器。這樣就起到了保護伺服器的目的;

1 iptables -t nat -A PREROUTING -d 10.1.249.125 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.4

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 漢堡包菜單,也叫側邊欄菜單。它由三個堆疊線條(你可以形象的想象成漢堡包中上下的兩個麵包和中間的肉)的圖標用於表示菜單。點擊圖標時,會顯示可用的導航選項。很多設計師寫的有關漢堡包菜單設計的文章,都不看好這種設計。總結其缺點,主要體現在:1.可發現性較低;2.效率較低;3.與系統的導航模式衝突;4.不夠 ...
  • 在CentOS上安裝MySQL,參考網上的一些文章,整理了一下,希望可以幫到需要的朋友。 首先我們先查看一下自己的系統是否已經安裝了MySQL,因為有一些Linux發行版集成了MySQL資料庫,我們可以通過 命令來查看系統是否已經安裝了MySQL資料庫。 ![rpm命令結果][1] 如果已經安裝了M ...
  • 以上兩句都是將'源表'的數據插入到'目標表',但兩句又有區別的: 第一句(select into from)要求目標表不存在,因為在插入時會自動創建。 第二句(insert into select from)要求目標表存在,由於目標表已經存在,所以我們除了插入源表的欄位外,還可以插入常量,如例中的: ...
  • 筆者經過flask web(Miguel著,封面是一條狗)一書的學習,打算實現一個旅游類網站,在此過程中發現,相對於書中的flasky博客程式,需要作出一些改變: 1. 註冊郵箱:國內要使用126,qq等郵箱。預設讀者瞭解過flasky郵件的實現方式,而使用126、qq郵箱的不同之處有: 第一,郵箱 ...
  • 通常意義上,資料庫也就是數據的集合,具體到電腦上資料庫可以是存儲器上一些文件的集合或者一些記憶體數據的集合。 我們通常說的MySql資料庫,sql server資料庫等等其實是資料庫管理系統,它們可以存儲數據,並提供查詢和更新資料庫中的數據的功能等等。根據資料庫如何存儲數據和如何操作數據的實現機制不 ...
  • 今天下午閑著沒事幹,組長讓我熟悉下C++連接資料庫,並對其進行操作,整個過程還算順利,為了記憶和下次使用,現把整個過程記錄下來: 1.安裝mysql 略 2.建立C++控制台程式,新建CPP源文件,如:sqlconn.cpp 3.在工程項目中屬性->c/C++->常規->附加包含目錄中添加mysql ...
  • 在遷移或升級SQL Server資料庫伺服器時,很多場景下我們不能還原msdb,所以我們必須手工遷移SQL Server相關作業。如果手工生成每一個作業的腳本話,費時又費力,其實SQL Server中有好幾種方法可以批量生成作業腳本的方法, 下麵介紹一下。 1:SSMS客戶端工具批量生成創建作業腳本... ...
  • 準備工作 1、 四台已安裝windows server 2008 r2 系統的虛擬機,配置如下: CPU : 1核 MEMORY : 2GB DISK : 40GB(未分區) NetAdapter : 2塊 2、 網卡設置: 本地連接:外網IP(由於虛擬機本身處於內網網段,192.168.1.2-1 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...