iptables案例,NAT表應用

10.15 iptables filter表案例html

10.16/10.17/10.18 iptables nat表應用linux

擴展bash

  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

10.15 iptables filter表案例

  • service iptables save 保存 restart 重啓
  • iptables 參數
    • -F 清空規則 -Z 清空計數器
    • -nvL 查看
    • -A 規則放後面 -I 放前面 -D 扔
    • INPUT OUTPUT
    • -p 協議(tcp udp)
    • -s 源IP --sport 源端口 -d 去IP --dport 去端口 -i 接收網卡 -o 發送網卡
  • policy 修改 iptables -P INPUT DROP 注意會導遠程終端斷開,且iptables -F不會恢復,須要改回ACCEPT

**需求案例:**服務器的22端口能夠被192.168.83網段訪問,再放行80、21端口。其餘禁止服務器

  • 腳本實現
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
#! /bin/bash
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
#因爲是腳本執行因此會執行徹底部命令
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#-m是指定檢測狀態,--state指定數據包狀態(配合-m使用),該命令行的目的是使數據處理(通訊)更順暢
$ipt -A INPUT -s 192.168.83.0/24 -p tcp --dport 22 -j ACCEPT
#對指定源網段放行22端口(用於遠程)
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

  • 要保證遠程設備終端的網段爲規則網段。不然將沒法繼續遠程網絡

  • 外網不能往裏ping,裏往外能夠tcp

[root@axiang ~]#iptables -I INPUT -p icmp --icmp-type 8 -j DROP

10.16 -10.18 iptables nat表應用

NAT假裝

**場景:**A機器兩塊網卡ens33(192.168.83.131)、ens37(192.168.100.1),ens33能夠上外網,ens37僅僅是內部網絡,B機器只有ens37(192.168.100.100),和A機器ens37能夠通訊互聯。命令行

添加網卡 添加虛擬內網rest

  • 需求1:可讓B機器鏈接外網
  • 思路:A開啓內核轉發功能,NAT假裝,B設置網關及DNS

A:code

[root@axiang ~]# ifconfig ens37 192.168.100.1/24
[root@axiang ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@axiang ~]# echo "1" > !$	開啓內核轉發
echo "1" > /proc/sys/net/ipv4/ip_forward
[root@axiang ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@axiang ~]# iptables -t nat -nvL
[root@axiang ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
#NAT表增長轉發:對源自192.168.100.0/24網段。轉給ens33端口,加工方式:假裝
[root@axiang ~]# iptables -t nat -nvL
...
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      ens33   192.168.100.0/24     0.0.0.0/0

B:server

route add default gw 192.168.100.1 #網關指向100.1(若是有別的網口,先ifdown掉)
vi /etc/resolv.conf ##配置DNS
增長一行nameserver 119.29.29.29

效果:B能夠ping通外網,物理主機C的虛擬網卡(192.168.83.1)不能ping通B

NAT轉換

需求2:C機器只能和A通訊,讓C機器能夠直接連通B機器的22端口

思路:NAT網址轉換

A開啓內核轉發功能,B設置網關及DNS 同上

A:

[root@axiang ~]# iptables -t nat -A PREROUTING -d 192.168.83.131 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
#當有IP包經過TCP訪問A的1122端口,則將該IP目的轉爲訪問B的22端口
[root@axiang ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.83.131
#當有源自B的IP包須要轉發,則將IP包的源改成A

效果:

注意訪問A的IP的1122端口!不是B的。有時候須要重啓物理網卡

相關文章
相關標籤/搜索