平常運維(四)

iptables 規則

默認規則保存在配置文件中/etc/sysconfig/iptableshtml

iptables -F 清空規則
service iptables save 保存當前規則到配置文件裏
###默認規則在 filter 表裏  +t 更改指定的表  默認就是filter表
iptables -Z 清空計數器
iptables -A 增長到最後   
iptables -I  install 插入最前 優先級從前日後  默認就是filter表
iptables -D 刪除
iptables -nvL --line-number   序號
iptables -D INPUT 7 根據序號7刪除規則
iptables -P 默認的規則
iptables -P OUTPUT DPOR
iptables -A  INPUT -s 192.168.100.1 -p tcp --sport 80 -d 192.168.100.10 --dport 8080 -j DROP

具體參數linux

·-p:協議(tcp) 
·-s:發起源,源IP地址
·-d:目標地址,目標IP地址
·- -sport:發起端源端口,指定要匹配的端口
·- -dport:目標端口,指定匹配目標端口
·- -dports:端口斷
·-m:原有規則補充(tcp、state、malitiport)
    iptables -A INPUT -m state - -state RELATED,ESTABLISHED -j ACCEPT

建立一個iptables規則腳本,一次寫入bash

`#!/bin/bash`
ipt="/usr/sbin/iptables"    #必須全局變量
`$ipt -F   #清空原規則
`$ipt -Z   #清空計數器
`$ipt -X   #刪除指定的鏈
`$ipt -P INPUT DROP   #默認策略
`$ipt -P OUTPUT ACCEPT  #默認策略
`$ipt -P FORWARD ACCEPT  #默認策略
`$ipt -A INPUT -m state - -state RELATED,ESTABLISHED -j ACCEPT #放行相關數據包
`$ipt -A INPUT -s 192.168.100.0/24 -p tcp - -dport 22 -j ACCEPT
`$ipt -A INPUT -p tcp - -dprot 80 -j ACCEPT
`$ipt -A INPUT -p tcp - -dprot 21 -j ACCEPT
`$ipt -A INPUT -p icmp --icmp-type 8  -j DROP#能夠PING外網,不能被別人ping本身

service iptables save     #保存策略

實地操做時 發現報錯
[root@huidou01 sh]$ /bin/bash iptables.sh
iptables: Bad built-in chain name.         #壞的鏈

查了腳本發現 OUTPUT 寫錯了 ,更改後正確執行 ssh

nat 表

nat 表應用tcp

/proc/sys/net/ipv4/ip_forward    端口轉發默認爲0

打開端口轉發 echo 1 > /proc/sys/net/ipv4/ip_forward ide

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE

不用指定SNAT的目標ip了,無論如今eth33的出口得到了怎樣的動態ip,MASQUERADE會自動讀取eth33如今的ip地址而後作SNAT出去,這樣就實現了很好的動態SNAT地址轉換。ui

mii-tool ens37 命令行檢查交換機狀態

端口轉發

A1:192.168.100.100
A2:192.168.50.50
B1:192.168.50.100命令行

  1. A機器添加新的硬件網卡,而且選擇LAN區段,分配內網區段
  2. B機器添加新的硬件網卡,而且選擇和A機器相同的LAN區段
  3. A、B啓動
  4. 設定A2(ens37)網卡,設定ip 爲192.168.50.50
    臨時命令設置ifconfig ens37 192.168.50.1/24,永久須要寫入配置文件
  5. ifdown ens33,設定B1網卡(ens37)ifconfig ens37 192.168.50.100/24
  6. 相同網段相互ping 通
  7. A機器上打開路由轉發,echo "1" > /porc/sys/net/ipv4/ip_forward 修改內核參數
  8. 設置規則
    iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE
    IP欺騙
  9. B設備設置網關,route -n 查看
    route add default gw 192.168.50.1
    #B機器上的網關要和A機器上的第二塊內網網卡設置同樣的IP才行,不然最後ping不通A1
  10. B1 ping 通A1 is OK
  11. B1 設置DNS
    vi /etc/resolv.conf -> nameserver 119.29.29.29
  12. ping 公網通 is OK

端口映射

  1. 打開端口轉發
    A機器上打開路由轉發,echo "1" > /porc/sys/net/ipv4/ip_forward 修改內核參數
  2. 清空規則從新設定code

    iptables -F
    iptables -t nat -A PREROUTING -d 192.168.100.100 -p tcp - -dport 1122 -j DNAT - -to 192.168.50.100:22  
    #進去的包

    #把進來的包 從目標(-d)IP是192.168.100.100(A1),目標端口(指定的)是1122端口 ,作端口轉發到192.168.50.100:22(B1的22端口) 端口上去(端口映射)server

##數據包從公網進來,到個人可連公網的A1機器上去,設置它是TCP協議的數據包,端口映射到A1機器的1122端口,在從1122端上作DNAT轉發到個人目標B1地址端口上去。

iptables -t nat -A POSTROUTING -s 192.168.50.100 -j SNAT - -to 192.168.100.100   
#回來的包

#回來的包通過A1機器作一個SNAT,把目標地址改爲192.168.100.100(源IP)
##從B1機器源IP(-s) SNAT轉發出去到我A1機器IP去。實現通信,實際上仍是使用192.168.100.100分配的IP192.168.100.1IP登陸的
3.設置網關 192.168.50.50

  1. sshd 鏈接成功 is OK!

擴展

  1. iptables應用在一個網段 http://www.aminglinux.com/bbs/thread-177-1-1.html
  2. sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html
  3. iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.html
相關文章
相關標籤/搜索