iptables nat表應用

iptables例子

# 設置本機的21,22,80端口容許訪問,22端口只容許某個網段通行
vim /usr/local/sbin/iptables.sh
#!/bin/bash
ipt="/usr/sbin/iptables" #定義了ipt變量,把iptables命令複製給ipt變量
$ipt -F
$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.1.1/25 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT


iptables -I INPUT -p icmp --icmp-type 8 -j DROP # 禁止ping本機ip

iptables nat表應用

需求1:
兩臺機器,機器A能夠訪問內網和外網(兩塊網卡),機器B只能訪問內網(一塊網卡),讓機器B經過機器A實現訪問外網的功能vim

  1. 先將兩個虛擬機A和B各添加一個張網卡,A機器的一張網卡能夠訪問外網,第二張添加的網卡設置LAN區域,B機器添加網卡,第一張網卡禁掉,第二張添加網卡設置LAN區段和A的保持一致
  2. 設置網卡完成後能夠選擇開機,
  3. 設置A機器新添加網卡IP,新添加的網卡名字爲ens37, ifconfig ens37 192.168.77.1/24 #設置ens37網卡的IP地址 4.設置B機器的第1張網卡Down掉,第二張新網卡添加一個IP,執行以下的命令 ifdown ens33 #關閉ens33網卡 ifconfig ens37 192.168.77.2/24 #設置ens37網卡的IP地址 經過ifconfig命令設置的IP只在內存中生效,若是要永久保存的話須要寫到網卡的配置文件裏面去
  4. 能夠嘗試A和B機器是否能夠相互ping通

目前A機器有2塊網卡分別爲:ens33(192.168.1.100) 、ens37(192.168.77.1)。ens33能夠與外網通訊,ens37則是內部網絡 B機器有1塊網卡ens37(192.168.77.2),不能夠與外網通訊,可是能夠和A機器的ens37互聯。 須要讓B機器可以訪問外網。bash

實現:
1.在A機器上執行如下命令,查看配置文件,是否開啓端口轉發功能,顯示0表示沒有開啓端口轉發網絡

[root@lx003 ~]# cat /proc/sys/net/ipv4/ip_forward  
0

2.開啓A機器的端口轉發功能,執行如下命令開啓tcp

[root@lx003 ~]# echo "1">/proc/sys/net/ipv4/ip_forward #將1重定向到文件中,開啓內核轉發
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward #能夠cat如下文件,查看是否開啓
1

3.在A機器上添加規則,執行如下命令code

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.77.0/24 -o ens33 -j MASQUERADE
  1. 在B機器上設置網關,執行以下命令
route add default gw 192.168.77.1 #B機器上添加網關
  1. 在B機器上添加網關,實現訪問外網的功能 vi /etc/resolv.conf #編輯配置文件

添加以下行: nameserver 119.29.29.29server

需求2:
C機器只能和A通訊,讓C機器能夠直接連通B機器的22端口 A機器:內網外網均可以訪問 B機器:只有一個內網IP C機器:個人主電腦ip

  1. A機器上打開端口轉發
echo "1">/proc/sys/net/ipv4/ip_forward
  1. 刪除以前建立的規則
iptables -t nat -D POSTROUTING -s 192.168.77.0/24 -o ens33 -j MASQUERADE

3.添加如下規則內存

iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp --dport 1122 -j DNAT --to 192.168.77.2:22
iptables -t nat -A POSTROUTING -s 192.168.77.2 -j SNAT --to 192.168.1.100

4.在B機器上添加網關虛擬機

route add default gw 192.168.77.1
相關文章
相關標籤/搜索