Articles of iptables

我将如何让这个路由在两个子网之间工作? 不确定我是否过度复杂化了我的networking

我试图操作2个子网, 192.168.0.0/24范围内的第一个子网可以自由访问任何东西,包括第二个子网上的机器。 10.0.0.0/24范围内的第二个子网仅限于能够访问外部世界。 我不希望具有10.0.0.0/24以内的源的机器能够访问192.168.0.0/24范围内的机器,但我确实希望它能够出去。 最重要的是,在192.168.0.0/24范围内,我也想要2个网关,第一个是通过VPN路由stream量的默认网关(目前是Ubuntu VM的forms),其地址是192.168.0.250 ,第二个网关(这是面向互联网的TP-Link无线路由器)在192.168.0.1 (也是192.168.0.0/24范围的DHCP和DNS服务器) 我也有第三个网关桥接两个子网,另一个有2个NICS的Ubuntu VM,第一个是192.168.0.251 ,第二个是10.0.0.1 现在我已经解释了我想要的networking,这是我的设置和我正在经历的: Ubuntu虚拟机192.168.0.250 192.168.0.250上的路由表如下所示: Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.8.0.1 128.0.0.0 UG 0 0 0 tun0 default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 10.0.0.0 192.168.0.251 255.255.255.0 UG 0 0 0 eth0 10.8.0.0 * 255.255.0.0 U 0 […]

IPsec和pinging权限子网

我一直在为此而绞尽脑汁。 我有openswan跑,我已经能够得到隧道。 不幸的是,当我尝试在我的右侧子网上ping电脑时,我无法得到任何回应。 我有一台使用Elastic ips的Amazon ec2机器。 当我执行netstat -nr网关指向一个IP地址,因此通过互联网而不是隧道。 任何指针来解决这个问题? leftsourceip=10.71.19.196 – {amazon elastic ip} leftsubnets=10.71.19.196/32 {amazon elastic ip} leftnexthop=%defaultroute right=196.201.212.240 rightsubnets={196.201.214.95/32, 196.201.214.127/32,} 当ping说192.201.214.127我得不到回应。 似乎默认为本地IP网关192.169.16.1。 任何想法我做错了什么?

ICMP ECHO REPLY没有被正确的SNAT

我正在尝试使用OpenVPN在两个远程LANnetworking(10.0.0.0/24,10.0.1.0/24)之间提供L3连接,并使用以下设置: +—————-+ +———————+ +———————+ |VM A | |VM B (OpenVPN Server)| |VM C (OpenVPN Client)| |eth0:10.0.0.5/24|–|eth0:10.0.0.4/24 | |eth0:10.0.1.4/24 | +—————-+ |tun0:10.8.0.1/32 |==|tun0:10.8.0.2/32 | +———————+ +———————+ 提供以下IP表规则: iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 10.0.0.4 Pinging VMC-> VMA(10.0.0.5)在VM B上,ICMP回显请求的IP被正确的SNAT: VM-B# tcpdump -i eth0 icmp 09:27:36.170555 IP 10.0.0.4 > 10.0.0.5: ICMP echo request, id […]

将来自虚拟接口的所有stream量路由到临时tun0

我想在家里设置一个自动化的洪stream客户端,下载一些我在工作中生成的大型GIS数据库,并以.torrent文件forms发布。 我的家庭服务器是一个带有一个以太网接口的Raspberry PI,我select的Torrent客户端是Transmission(我的testing中最轻的)。 我通过OpenVPN客户端configuration连接到我的工作networking。 由于传输不能被绑定到一个接口,而只是一个IP,并且OpenVPNconfiguration(我不控制)在每个连接上向每个客户端释放一个dynamicIP地址,所以我创build了一个在树莓上启动VPN的脚本在午夜,读取分配的IP,closures传输,并重新启动它绑定到这个地址。 传输在服务器上全天候运行,所以在早上同样的脚本停止VPN,closures传输,重新启动它到回送接口,所以没有洪streamstream量产生,但传输仍然可以接收新的数据库版本的通知,并添加他们到下载队列(这是用守护进程完成的)。 这完美的工作(VPN客户端设置新的默认网关),但我想消除closures和启动传输一天两次的麻烦。 我的想法是使用静态IP设置一个虚拟接口eth0.1,并将其绑定到tun0,以使得在eth0.1上生成的所有stream量将通过tun0,然后将传输绑定到eth0.1的静态IP。 这将允许传输24/7全天候运行,但当tun0closures时,洪streamstream量将被丢弃。 当VPN启动时,torrentstream量将通过tun0。 这是我第一次用IPtables弄脏我的手,所以我不知道这是否会工作,如何做到这一点,所以我不是要求一个解决scheme,而是只是针对一些很好的教程这件事,因为我发现的那些不在现场 谢谢。

iptables根据目的地址redirect多个端口

我有iptables设置select性路由。 在当前configuration中,它检查dst地址是否在特定链中列出,如果不是,则将stream量redirect到在端口1080上处于活动状态的代理端口。 这工作正常与以下设置: iptables -t nat -N PROXY # Do not redirect iptables -t nat -A PROXY -d external.proxy.address.1 -j RETURN iptables -t nat -A PROXY -d external.proxy.address.2 -j RETURN iptables -t nat -A PROXY -d 211.96.0.0/255.240.0.0 -j RETURN iptables -t nat -A PROXY -d 211.128.0.0/255.128.0.0 -j RETURN iptables -t nat -A PROXY -d 218.0.0.0/255.128.0.0 […]

如何configurationIpset来阻止整个国家的IP

我需要阻止一些使用ipset和iptables的国家。 我到目前为止所做的(创build新的ipset set'geoblock'): sudo ipset create geoblock hash:net,port 然后我创build了以下脚本/usr/sbin/ipsetfirewall.sh #!/bin/bash for IP in $(wget -O – http://www.ipdeny.com/ipblocks/data/countries/{cn,iq,af,ir,ae,sg,hk,kw,kg}.zone) do # ban everything – block countryX sudo ipset add geoblock $IP done 正如我在这里解释的,我也试过 wget -O – http://www.ipdeny.com/ipblocks/data/countries/{cn,iq,af,ir,ae,sg,hk,kw,kg}.zone –header "Referer: www.ipdeny.com" 我也试过(因为我使用的是ipv4) wget -4 http://www.ipdeny.com/ipblocks/data/countries/{cn,iq,af,ir,ae,sg,hk,kw,kg}.zone 对于我所有的尝试,我得到这个相同的错误: /usr/sbin$ sudo sh ipsetfirewall.sh –2016-04-21 15:40:58– http://www.ipdeny.com/ipblocks/data/countries/%7Bcn,iq,af,ir,ae,sg,hk,kw,kg%7D.zone Resolving www.ipdeny.com (www.ipdeny.com)… 192.241.240.22 Connecting […]

使用iptables将ipsec路由到openvpn

我不是一个非常有经验的用户,但我确实有决心,一个星期后,没有进步,它变得越来越粗糙。 我有两个网卡,一个面向互联网,一个面向内部networking。 来自内部networking的两台电脑和来自互联网的道路战士都使用ipsec连接并访问服务器资源。 客户端应该能够在与ipsec连接的情况下浏览互联网。 所有的互联网交通应该通过openvpn隧道。 —————————–| SERVER |—————————– —————————–|192.168.1.1 192.168.2.1|—————————– ————-{INTERNET}======{eth0 eth1}==<ROUTER>==<INTERNAL NETWORK> —————————–| \ / |—————————– —————————–| {openvpn—tun0} |—————————– —————————–| / |—————————– <ROADWARRIOR>==>{INTERNET}==>{eth0————– |—————————– —————————–|192.168.1.1 |—————————– IPSec的作品,我可以连接到服务器。 OpenVPN的作品也是如此。 这是主要问题的路由。 如何通过openVPN隧道将所有通往互联网的通讯打包出去? 我有以下的iptables规则,但他们不工作。 我错过了什么? iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -i tun0 -j ACCEPT iptables -A INPUT […]

DNAT通过代理连接到互联网的子网

DNAT通过代理连接到互联网的子网 我想通过代理服务器将子网中的服务器连接到Internet。 但是我不能ping通互联网上的主机(www)。 实际上,子网服务器和代理服务器共享一个通用的专用服务器(使用docker进行虚拟化)。 有两个网卡(代理服务器为eth0,子网服务器为t39)。 所以总体布局是这样的: 互联网<==> 171.16.0.39 | 191.167.1.1 <==> 191.167.1.2 191.167.1.2是子网服务器的内部地址,而171.16.0.39是外部地址,191.167.1.1是代理服务器的内部地址。 首先,我在子网服务器上设置了一条静态路由: ip route add 171.16.0.39 via 191.167.1.1 问题1:我还需要明确地定义一个像这样的默认网关吗? route add default gw 191.167.1.1 eth0或者会select外部地址是正确的方法? 然后我在代理服务器的iptable中设置了一个伪装: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 现在可以从子网服务器ping到代理服务器。 但是我无法从代理服务器ping到互联网(例如8.8.8.8)。 为了解决我的问题,我也考虑像这样(在代理服务器上)build立DNAT: iptables -t nat -A PREROUTING -d 171.16.0.39 -j DNAT –to-destination 191.167.1.2 但是没有解决我的问题。 我仍然无法从子网服务器ping到互联网。 问题3:我需要configurationDNAT与MASQUERADE一起pingnetworking吗? 如果是这样,我select了错误的地址? […]

从文件加载黑名单到IPTABLES

在一个单独的文件中,我创build了一个IP地址列表来阻止。 这个文件将会每天添加或删除IP地址。 我想“引用”这个IP文件到/ etc / sysconfig / iptables中,但我不确定这是否可能。 如果是,请描述如何做到这一点(即:ExternalList = / var / tmp / myblacklist.txt)? 如果这种types的引用在IPTABLES中是不可能的,将myblacklist.txt中的条目添加到iptables中并从iptables中删除不再出现在myblacklist.txt文件中的条目是一个好脚本? 我诚实地寻找一个简单的bash脚本,可能会利用sed。 否则,我认为我会走下一条路,把所有想要允许/阻止的IP放入一个MySQL表中,并且每天build立一个脚本来编译一个新的iptable。 这种方式可以在sql数据库中完成,而iptables只会打印数据库中的任何内容。 但是,在我select这个选项之前,我可以逃脱一些简单的bash脚本吗?

巨大的性能损失在gbit链路与ip转发/通过清除VPN隧道伪装

我的家庭计算机和远程服务器之间的IP转发有问题(来自online.net)。 我的家庭连接是1 Gbit / s的FTTH,远程服务器的带宽是2.5 Gbit / s。 上下文 我在我的家用电脑和在线的远程服务器之间运行一个清晰的 OpenVPN隧道。 目前,我没有使用任何encryption,所以我不会因为encryption而面临任何性能损失。 服务器机器:Intel Atom C2750 / 2GB RAM / SSD 客户端机器:VMware托pipe的Ubuntu服务器16.04 64位,具有8 GB RAM / SSD / Intel i5(Mac mini 2013后面) 服务器 openvpn命令: # openvpn –dev tun –proto tcp-server –port 11000 –ifconfig 10.200.0.1 10.200.0.2 –cipher none –auth none –fragment 0 –mssfix 0 –tun-mtu 48000 –sndbuf […]