Articles of iptables

用iptables限制所有非ipsecstream量

我正在隧道模式下使用IPSEC,并且我需要确保这台计算机上的某个用户的所有stream量都被限制在VPN连接上,如果VPNclosures,数据包将被拒绝。 如此有效,除非用户是“myuser”,否则所有stream量都是允许的。 如果所有者是“myuser”,则必须拒绝所有非IPsec数据包(input和输出)。 我试图这样想,第一个规则将捕获所有的ipsecstream量,并允许它,然后阻止所有非ipsecstream量。 但是,这只会阻止myuser的所有stream量: iptables -A OUTPUT -m owner –uid-owner myuser -m policy –pol ipsec –dir out -j ACCEPT iptables -A OUTPUT -m owner –uid-owner myuser -j REJECT

iptables桥redirect也redirect其他接口

运行一个Ubuntu 14.04LTS家庭服务器机器。 我有一个小的物联网设备,发送HTTPpost到我想redirect到本地进程的远程web服务器(基本上拦截它的post到我自己的本地进程)。 服务器使用eth0(内置以太网端口),IOT设备在eth1上,这是一个USB以太网适配器。 我在/ etc / network / interfaces中创build了一个桥 auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 eth1 我使用下面的iptables规则redirect到本地端口22041桥stream量。这工作正常。 iptables -t nat -A PREROUTING -i br0 -p tcp –dport 80 -j REDIRECT –to-port 22041 问题是,当局域网上的任何东西试图访问网页时,似乎也将端口80的stream量redirect到服务器。 如果我从服务器运行“firefox http://127.0.0.1/page ”,它工作正常。 如果我从LAN上的另一台机器上运行“firefox httpt:// server_ip / […]

针对特定本地盒子的多个外部IP

我有一个托pipe的服务器与4个IP在数据中心。 4个黑匣子和1个linux服务器在本地networking中,在我的工作场所后面的路由器。 而且我需要从我的托pipe服务器分配每个黑匣子中的一个,这也需要是静态的。 这两个服务器运行debian拉伸。 除了设置IP和网关我没有访问黑匣子。 我需要TCP和UDP支持。 什么是最好的方式来实现呢? 我只能想到在我的本地网关作为网关的2台服务器之间的VPN? 但我不真的需要一个VPN开销一个简单的代理就足够了。 而我将如何做到这一点?

转发连接到泊坞亭容器内的虚拟机

我正在努力实现的 在工作中,我们使用一个特定的操作系统,我们(开发人员)在virtualbox中运行。 虚拟化的操作系统正在运行我们用来访问操作系统的Samba服务器和rsh。 此外,虚拟化的操作系统需要访问我们networking上的多台服务器。 我想实现的是有一种方法来快速启动虚拟机作为Docker安装程序的一部分。 这个想法是有一个docker容器,将提供虚拟机的访问,一个容器,在虚拟机上运行testing,并在未来的一些其他容器,将提供例如。 系统的分析。 问题是什么 我有一个docker容器,用桥接networking设置一个VirtualBox机器。 我可以从启动它的容器中使用rsh访问虚拟机,没有任何问题。 但是,我不能从其他容器使用rsh访问虚拟机(呃,我发现了一个解决scheme,我将在下面描述,但我不认为这是一个好的)。 有趣的是,ping工作正常。 现在设置看起来像这样: 虚拟容器 容纳虚拟机的Docker容器 IP地址:172.18.0.5 网关:172.18.0.1 networking掩码:255.255.0.0 VirtualBox机器 在虚拟容器内运行 IP地址:172.18.1.5 网关:172.18.0.1 networking掩码:255.255.0.0 工人容器 一个容器,我想连接到VirtualBox机器 IP地址:172.18.0.6 网关:172.18.0.1 networking掩码:255.255.0.0 到目前为止,我发现只有一个解决scheme如何使用rsh连接到VirtualBox机器,那就是添加一个路由: ip route add 172.18.1.5 via 172.18.0.5 然后rsh到172.18.1.5。 但是,这有一个严重的问题。 因为我需要知道分配给虚拟机的地址,所以我必须将virtualbox地址设置为一个可以容易地从正在运行的容器的地址中猜出的地址。更改容器内的路由也意味着容器需要特权,我想保持特权容器的数量最less。 我想要更多的是能够直接向虚拟容器(172.18.0.5)发送消息。 这样我就不必猜测虚拟机的IP,但是我可以使用docker-compose的虚拟主机名。 我以为我可以使用NAT来实现这一点。 我所做的是: 将虚拟机的网关更改为虚拟机的IP地址 公开虚拟的所有端口 将以下两条规则添加到虚拟容器中: iptables -t nat -A PREROUTING – 目标172.18.0.5 -j DNAT – […]

只能通过VPN路由WLAN

我正在尝试设置我的RP3,使WiFi连接通过L2TP VPN进行路由。 我已经得到了VPN的工作,并通过以下设置,所有通信都通过VPN连接进行路由(ppp0是VPN通道设备): route add VPN_PUBLIC_IP gw 192.168.1.1 route add default dev ppp0 但是,正如我的标题所示,我只想要WLANstream量通过VPN连接路由。 我如何做到这一点? 下面你会发现一些可能有帮助的其他设置。 使用ifconfig: root@raspberrypi:/home/pi# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.110 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::966b:f8b2:31f3:89c9 prefixlen 64 scopeid 0x20<link> ether b8:27:eb:f0:e4:76 txqueuelen 1000 (Ethernet) RX packets 151 bytes 13560 (13.2 KiB) RX errors 0 dropped 0 overruns 0 frame […]

iptables SNAT返回的stream量没有到达客户端

我有以下devise: client linuxserver destination 192.168.160.34 192.168.163.196 192.168.18.1 我可以从服务器从客户端和客户端ping服务器,他们都在同一个子网, 192.168.160/22 ,我也可以从服务器ping目的地 客户端ip路由列表: default via 192.168.163.196 dev ens192 192.168.160.0/22 dev ens192 proto kernel scope link src 192.168.160.34 客户端的iptables策略在所有链上都可以接受,并且已经刷新。 服务器的iptables在所有链上都可以接受,有一些docker + kvm规则等等。 我继续在服务器上添加以下内容: iptables -t nat -A POSTROUTING -s 192.168.160.34 -j SNAT –to 192.168.163.196 我还添加了net.ipv4.ip_forward=1并将其应用于内核参数。 我仍然无法ping客户端的目的地。 tcpdump的: 00:00:00.000000 IP (tos 0x0, ttl 64, id 3182, offset 0, flags […]

奇怪的AWS EC2可访问性问题 – Ubuntu,nginx,iPad

我不会说我是一个服务器pipe理的新手,但显然我错过了这里的一些关键时刻… 问题:从某个特定设备(运行Safari的Apple iPad(版本8.4.1(12H321)型号:MD515HC / A)访问网站时,连接到服务器的连接丢失(如通过服务器上的防火墙locking) 一段时间的ipad不活动后,连接回来。 如果在locking之前有一个到服务器的主动SSH连接 – 连接保持正常,但是无法build立到服务器的新连接(就好像所有的端口都closures了一样)。 Iptables的input/输出策略设置为ACCEPT。 Amazon EC2已将我的IP地址设置为允许所有stream量。 # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain f2b-sshd (0 references) target prot opt source destination 常规的日志文件显示绝对没有相关信息。 # apparmor_status […]

conntrack删除不会停止大文件的runnig副本

我有一个NAT端口转发configuration的路由器。 我通过NAT启动了一个大文件的http副本。 http服务器托pipe在包含要下载的大文件的LAN PC上。 我从WAN PC启动文件下载。 当文件复制运行时,我禁用了nat规则。 文件的副本保持不变。 我想用conntrack-tool禁用nat转发规则时停止文件的拷贝。 我的conntrack列表包含以下conntrack会话 # conntrack -L | grep "33.13" tcp 6 431988 ESTABLISHED src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 [ASSURED] use=1 我尝试使用以下命令将其删除: # conntrack -D –orig-src 192.168.33.13 tcp 6 431982 ESTABLISHED src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 [ASSURED] use=1 conntrack v1.4.3 (conntrack-tools): 1 flow […]

iptables:将IP:PORT的所有stream量路由到接口

我想要将所有tcp出站stream量从192.168.2.99:16881路由到一个接口:tun1我也想要从$ PORT上tun1的所有tcp传入stream量redirect到192.168.2.99:16881。 我现在所拥有的是这个脚本: #1 Get the PORT PORT=`./port_forwarding.sh` #2 Accept incoming traffinc on $PORT iptables -A INPUT -p tcp –dport $PORT -j ACCEPT #3 Route all TCP incoming trafinc on $PORT to 192.168.2.99:16881 iptables -t nat -A PREROUTING -j DNAT -p tcp –dport $PORT –to-destination 192.168.2.99:16881 #4 Route all TCP outgoing traffic from 192.168.2.99 to […]

如何通过VPN转发路由器的Web界面

我通过VPN使用SSH访问远程Ubuntu服务器。 现在我想configuration远程服务器。 我试图转发到我的隧道端口80传入stream量的路由器地址,但它不工作: sudo iptables -A FORWARD -i tun0 -o enp3s0 -p tcp –syn –dport 80 -m conntrack –ctstate NEW -j ACCEPT sudo iptables -A FORWARD -i tun0 -o enp3s0 -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A FORWARD -i enp3s0 -o tun0 -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -P FORWARD DROP […]