# 设置本机的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
需求1:
两台机器,机器A能够访问内网和外网(两块网卡),机器B只能访问内网(一块网卡),让机器B经过机器A实现访问外网的功能vim
目前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
route add default gw 192.168.77.1 #B机器上添加网关
添加以下行: nameserver 119.29.29.29server
需求2:
C机器只能和A通讯,让C机器能够直接连通B机器的22端口 A机器:内网外网均可以访问 B机器:只有一个内网IP C机器:个人主电脑ip
echo "1">/proc/sys/net/ipv4/ip_forward
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