我正在build立以下networking,有三个系统,VPN应该介于防火墙和卡利之间。 让我们假设所有的系统都使用Ubuntu 16.04(最终我将在Ubuntu上安装Kali工具):

Iptables的VPN服务器:
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i tap0 -j ACCEPT iptables -A INPUT -i enp0s3 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE # Enmascarmiento IP iptables -A FORWARD -i tap0 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i enp0s3 -o tap0 -j ACCEPT
其他两个系统的iptables有一个接受所有的策略。
转发已启用VPN服务器。 我已经在/ proc / sys / net / ipv4 / ip_forward中设置了。
另外,系统有模块使用masquerada(lsmod):
ipt_MASQUERADE 16384 1 nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4 nf_conntrack 106496 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4 x_tables 36864 5 ip_tables,ipt_MASQUERADE,xt_conntrack,iptable_filter,iptable_mangle
我发现了这个错误:
12.5.0.0 * 255.255.255.0 U 0 0 0 tap0
问题是我在Kali系统中设置了这个路由的默认网关。 我必须指定输出所有通过10.8.0.1的stream量,在我看来这是多余的,因为这是唯一可行的方法。
您不允许在VPN服务器上转发或接受新的连接。 更改
iptables -A FORWARD -i tap0 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
至
iptables -A FORWARD -i tap0 -o enp0s3 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
并尝试是否有效。 如果是这样,请删除通用规则的NEW语句,并只创build一个新规则,并接受您需要转发的协议/端口,例如:
iptables -A FORWARD -i tap0 -o enp0s3 -p tcp --dport 22 -m state --state NEW -j ACCEPT
另外,如果要将外部请求转发到内部LAN,则必须使用目标NAT:
示例:将端口10022上的SSH转发到内部机器端口22:
iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to-destination 192.168.1.100:22 iptables -t nat -A POSTROUTING -p tcp --dport 10022 -j MASQUERADE
另外,您是否在/etc/sysctl.conf中永久设置了转发规则? 如果你只是echo 1 > /proc/sys/net/ipv4/ip_forward它只是活跃,直到下一次重新启动。
编辑:我刚刚发现我是盲人。 当然你的防火墙不会回复你的ARP请求,而是在另一个networking中。 每个定义ARP请求都不会被转发。 如果您的笔记本电脑想与防火墙进行通信,则不会直接通过网关(您的VPN)进行通信。 在路由表中,VPN作为与防火墙进行通信的网关存在,所以根本不应该向防火墙发送ARP请求。 ARP不是IP,它不会被转发。
你应该testing一下,如果NAT与SSH协同工作,试试之前发布的内容,并通过端口10022连接到你的路由器,你应该被转发到你的防火墙。