IPTABLES使用總結(內網模擬銀行網絡)

iptables中有如下三種類型的表:

  1. FILTER表,默認的表,包含如下三種內建鏈:mysql

    • INPUT鏈,發給本地sockets的包
    • FORWARD鏈,經由系統發送的包
    • OUTPUT鏈,本地生成併發出的包
  2. NAT表,當一個包試圖建立新鏈接時將訪問該表,該表包含如下內建鏈:sql

    • PREROUTING鏈,更改剛接收到的包
    • OUTPUT鏈,更改本地產生的包
    • POSTROUTING鏈,更改即將發出的包
  3. MANGLE表,用於包的更改:docker

    • PREROUTING鏈:更改傳入鏈接
    • OUTPUT鏈:更改本地產生的包
    • INPUT鏈:更改傳入的包
    • POSTROUTING鏈:更改即將發出的包
    • FORWARD鏈:更改通過的包

本次業務需求,咱們僅須要操做FILTER表。數據庫

使用iptables思路

  因爲每條tcp鏈接對於每一個主機來講,都須要兩個端口。對服務端來講,須要監聽端口,即inputPort,也須要對客戶端進行響應的出端口,即 outputPort。對客戶端來講,也須要兩個端口,一個去鏈接服務端的outputPort,一個接受服務端返回數據的inputPort。服務器

 

  限制端口,能夠在客戶端進行限制,也能夠在服務端進行限制。通常都是客戶端去鏈接服務端的某個指定端口,全部只有服務端的inputPort是固定的,客戶端的inputPort、outputPort和服務端的outPort都是隨機端口,每次從新鏈接後,都會改變。故咱們僅需用iptables對服務端的input端口進行限制便可。網絡

iptables 具體配置詳解

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

僅對input進行攔截。

iptables -P INPUT DROP
   iptables -P FORWARD ACCEPT
   iptables -P OUTPUT ACCEPT

清理原有全部iptables規則,並查看結果

sudo iptables -F && sudo iptables -X && sudo iptables -Z && sudo iptables -S

結果以下:併發

-P INPUT ACCEPT
   -P FORWARD DROP
   -P OUTPUT ACCEPT

容許迴環流量 

Loopback接口,也被稱爲lo ,就是一臺電腦用來進行網絡鏈接到自身。 
iptables -A INPUT -i lo -j ACCEPTsocket

容許下面端口被別人鏈接

由於output沒有作限制,因此只須要限制input便可。
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPTtcp

容許本身去鏈接別人的如下端口

由於對input作了限制,因此當本身去鏈接別家服務器的端口時,本身做爲客戶端,input端口須要開通,且該端口時隨機的,故只能對數據源端口進行區分
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPToop

容許docker容器間的通訊

首先先查看本機docker使用的網段,再進行設置,此處docker網段爲172.17.0.1/24,若不設置該規則,masami將沒法訪問mysql數據庫
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT

下面是目前使用的iptables規則

目前僅對kafka和baas進行了限制,未對k8s的slave和master進行限制

10.0.0.59 master1
10.0.0.69 slave1
10.0.0.71/192.168.9.28 baas1

10.0.0.70 master2
10.0.0.91 slave2
10.0.0.92/192.168.9.51 baas2

10.0.0.83 master3
10.0.0.95 slave3
10.0.0.74/192.168.9.32 baas3

10.0.0.55 master4
10.0.0.49 slave4
10.0.0.42/192.168.9.30 baas4

10.0.0.56 master5
10.0.0.61 slave5
10.0.0.73/192.168.9.29 baas5

10.0.0.65/192.168.9.45 kafka1
10.0.0.77/192.168.9.46 kafka2

清理原有規則 
iptables -F && iptables -X && iptables -Z && reboot

kafka1
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,2375 -j ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被特定ip鏈接
iptables -A INPUT -p tcp -s 10.0.0.69,10.0.0.91,10.0.0.95,10.0.0.49,10.0.0.61,10.0.0.65,10.0.0.77 -m multiport --dports 9092:9094,2181:2183,2888:2890,3888:3890 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,9092:9094,2181:2183,2888:2890,3888:3890 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許docker0和本地網卡流量
iptables -A INPUT -s 172.18.0.0/24 -d 10.0.0.65 -j ACCEPT
容許docker0內部流量
iptables -A INPUT -s 172.18.0.0/24 -d 172.18.0.0/24 -j ACCEPT


kafka2
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,2375 -j ACCEPT
容許下面端口被特定ip鏈接
iptables -A INPUT -p tcp -s 10.0.0.69,10.0.0.91,10.0.0.95,10.0.0.49,10.0.0.61,10.0.0.65,10.0.0.77 -m multiport --dports 9092:9094,2181:2183,2888:2890,3888:3890 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,9092:9094,2181:2183,2888:2890,3888:3890 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許docker0和本地網卡流量
iptables -A INPUT -s 172.18.0.0/24 -d 10.0.0.77 -j ACCEPT
容許docker0內部流量
iptables -A INPUT -s 172.18.0.0/24 -d 172.18.0.0/24 -j ACCEPT


baas5
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許masami和mysql通信
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT


baas4
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許masami和mysql通信
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT

baas3
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許masami和mysql通信
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT

baas2
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許masami和mysql通信
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT

baas1
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
容許迴環流量
iptables -A INPUT -i lo -j ACCEPT
容許下面端口被別人鏈接
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
容許本身去鏈接別人的如下端口
iptables -A INPUT -p tcp -m multiport --sports 22,443,31410,8080,38254,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
容許masami和mysql通信
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT轉載請註明出處:https://www.cnblogs.com/zooqkl
相關文章
相關標籤/搜索