iptable和nat表應用
阿新 • • 發佈:2018-05-10
iptable nat表 iptables小案例
-
需求:把80,22,21端口放行,22端口只有某個IP段可以訪問。
[root@aminglinux-02 ~]# vim /usr/local/sbin/iptables.sh #! /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檢測數據包狀 態,--state 指定狀態,這條命令為了使通信更順暢 $ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -p tcp --dport 80 -j ACCEPT $ipt -A INPUT -p tcp --dport 21 -j ACCEPT # 增加規則
- icmp示例
- iptables -I INPUT -p icmp --icmp-type 8 -j DROP //禁止其他機器ping本機,本機可以ping其他機器
nat表的應用
- A機器兩塊網卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外網,ens37僅僅是內部網絡,B機器只有ens37(192.168.100.100),和A機器ens37可以通信互聯。
- 準備:創建兩個虛擬機,A機器配置兩塊網卡,ens33設置ip:192.168.133.130,ens37設置Ip:192.168.100.1。B機器配置一塊網卡ens37ip:192.168.100.100。這裏虛擬機的兩個內網卡需要選擇LAN區段模式
- ifconfig ens37 192.168.100.1/24可以臨時設置ip,永久要修改配置文件
- 需求1:可以讓B機器連接外網
- A機器上打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward //該命令是更改內核設置,打開路由轉發功能,默認值是0
[root@akuilinux01 ~]# cat /proc/sys/net/ipv4/ip_forward 0 [root@akuilinux01 ~]# echo "1" > !$ echo "1" > /proc/sys/net/ipv4/ip_forward [root@akuilinux01 ~]# cat /proc/sys/net/ipv4/ip_forward 1
- A上執行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //把100網段偽裝成ens33網卡
- B上設置網關為192.168.100.1,命令為route add default gw 192.168.100.1 。route -n查看網關
- B配置DNS
vim /etc/resolv.conf # Generated by NetworkManager nameserver 119.29.29.29
- A機器上打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward //該命令是更改內核設置,打開路由轉發功能,默認值是0
- 需求2:C機器只能和A通信,讓C機器可以直接連通B機器的22端口,不同網段機器通信
- A上打開路由轉發echo "1">/ proc/sys/net/ipv4/ip_forward
- A上執行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 //把B的22端口,映射到A的1122端口上
- A上執行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 //端口轉發
- B上設置網關為192.168.100.1
擴展
- iptables應用在一個網段
- sant,dnat,masquerade
- iptables限制syn速率
iptable和nat表應用