Articles of iptables

端口转发防止容器更新

我在我的主机上使用以下路由将所有stream量传递给运行在8080端口的NGINX服务器。 -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080 不幸的是,当我启用该规则时,所有的LXD容器(Ubuntu的LXC)都不能使用: apt-get update 因为它解决了回购作为我的领域。 我可以以某种方式防止?

重新加载IPTables禁用访问站点

我有CentOS 7 VPS。 IPtables包含2000个IP块规则。 重新加载时需要80秒才能完成重新加载。 在那80秒,我注意到大约15秒,我的网站变得没有反应,并且浏览器不能访问页面。 当重新加载完成时,网站返回并且可以访问页面。 我想问的是当IPTables规则再次被重新加载时,预期的networking无响应? 这是主要结构: /sbin/iptables -F FORWARD /sbin/iptables -F OUTPUT /sbin/iptables -Z FORWARD /sbin/iptables -Z OUTPUT /sbin/iptables -P INPUT DROP /sbin/iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p tcp ! –syn -m state –state NEW -j REJECT –reject-with tcp-reset /sbin/iptables -A INPUT -m state –state […]

在linux ubuntu上configurationiptables只在两个networking之间路由特定的IP

我不是一个Linux专家,我需要设置这种情况。 我有一个Hyper-V主机,我有两个虚拟networking接口,他们都被添加到Linux的Ubuntu的机器,eth0和eth1。 现在我在networkingeth1上有一堆Windows机器,我已经configuration它们使用ubuntu机器作为网关。 现在我想让内部networking上的Windows机器只能访问eth0上的几台机器 。 这是我设置的基本configuration echo 1 > /proc/sys/net/ipv4/ip_forward sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o eth1 -m state –state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 现在,eth1中的所有机器都可以访问eth0中的所有机器,而eth0中的所有机器都可以访问eth1中的所有机器。 我现在需要的是阻塞到eth0的eth1stream量,除了两个IP(域控制器),而对于我来说,eth0中的所有机器都可以访问eth1中的机器。 我应该做些什么iptables来阻止从eth1到eth0的所有stream量,除了一堆IP地址? 谢谢。 [编辑]我已经设法使用这个configuration,它似乎运作良好,但如果它是错误的,或者如果有更好的解决scheme,我想要一些评论。 sudo iptables -t nat -A POSTROUTING […]

当我更改SSH端口时,SFTP无法访问,但SSH工作正常吗?

我使用CloudFlare whitelist为httpd使用iptables防火墙。 这是我的iptables规则,我已经将SSH端口更改为2204 Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp — 199.27.128.0/21 anywhere multiport dports http,https ACCEPT tcp — 198.41.128.0/17 anywhere multiport dports http,https ACCEPT tcp — 197.234.240.0/22 anywhere multiport dports http,https ACCEPT tcp — 190.93.240.0/20 anywhere multiport dports http,https ACCEPT tcp — 188.114.96.0/20 anywhere multiport dports http,https ACCEPT tcp — […]

在Linux中限制每个连接的带宽

我真的不能谷歌,这让我感到惊讶,但也许我只是看错了方向…我想限制每个TCP连接的带宽,即。 所有的连接都来到一个单一的接口,使用相同的源地址,具有相同的目的地端口,每个连接应限制在例如。 5 Mbit / s。 这个想法是模拟数百个使用一个20 Gbit / s接口的DSL线路较慢的用户。 我想必须有一种方法来标记属于特定连接的所有数据包的唯一标记,然后使用此标记来限制速度,但我从来没有以这种方式使用iptables / tc: 非常感谢您的任何build议! 托马斯

为什么这些ip6tables规则在iptables版本允许通过IPv4时阻止通过IPv6的ssh

我有以下iptables规则,旨在允许lo , eth1和eth2上的所有stream量,并允许eth0上的传出stream量,但阻止eth0传入stream量,除了端口22,80,443,1194,5222和5269。规则成功允许通过端口22通过IPv4访问ssh。 # Generated by iptables-save v1.4.12 on Sat Nov 16 13:03:07 2013 *raw :PREROUTING ACCEPT [247:18556] :OUTPUT ACCEPT [278:35544] COMMIT # Completed on Sat Nov 16 13:03:07 2013 # Generated by iptables-save v1.4.12 on Sat Nov 16 13:03:07 2013 *mangle :PREROUTING ACCEPT [247:18556] :INPUT ACCEPT [247:18556] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [278:35544] :POSTROUTING […]

为什么通过processn匹配数据包返回unkown选项

我试图在iptabes中按进程名称匹配数据包。 我正在尝试用ping和我得到的一个例子: https : //www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH 我input的命令是: iptables -N mychain iptables -A OUTPUT -m owner –cmd -owner ping -j mychain 但是,我得到: iptables v1.4.21: unknown option "–cmd-owner" Try 'iptables -h' or 'iptables –help' for more information. 当我这样做时,我看不到“–cmd-owner”选项。 这是因为这个选项不再可用在iptables v1.4.21吗? 任何人都可以告诉我,如果这个选项不再可用我怎么可以在我的主机上的每个进程math数据包?

使用docker的iptables端口redirect

我有一台运行Jenkins的Linux服务器(端口8080上的HTTP),同一台服务器也运行Docker 1.12.1。 我使用了一些iptables规则(按照官方的Jenkins安装文档)将8080端口redirect到主机端口80,这样默认的HTTP可以用于Jenkins(即http://myserver而不是http://myserver:8080 ): iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8080 iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 –dport 80 -j REDIRECT –to-ports 8080 然而,这些规则破坏了Docker在docker build命令期间通过HTTP下载正确资源的能力。 例如, RUN apt-get update失败,出现多个“未能下载”的错误。 在容器中执行wget http://www.google.com返回Jenkins主页面的HTML。 来自主机的HTTP GET正常工作。 删除iptables规则导致RUN apt-get update再次工作。 所以我认为这些iptables规则正在干扰docker的networking机制。 这样的端口redirect可以与Docker共存吗? 如果是这样的话,那么如何写一个iptables规则来解决这个问题呢?

Proxmox防火墙将规则应用于vms

这是我目前的情况: 我在云端有一个proxmox服务器。 我安装了2个vms,它有不同的ips(与主proxmox服务器不在同一个子网上 – 请参阅这个了解原因) 在proxmox机器本身,我已经build立了一个完美的iptables规则列表。 # Allow localhostinterface /sbin/iptables -A INPUT -i lo -j ACCEPT #icmp /sbin/iptables -A INPUT -p ICMP -j ACCEPT #home network /sbin/iptables -A INPUT -s xx.xx.xx.xx -j ACCEPT # Allow already established connections /sbin/iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j […]

在某些端口将Internet用户从eth0转发到ppp +(VPN客户端)

我有VPN客户端的计算机上运行的VNC服务器,端口5900,将连接到我的VPN服务器(ppp),它可以通过互联网用户访问。 VPN服务器是CentOS 6.8 x64。 但是,当前的VPN客户端ISP(而不是VPN服务器)不允许来自外部/互联网的传入连接。 换句话说,他们已经和防火墙做了一些事情。 目前,我的VPN客户端能够: 连接到没有VPN服务器的Internet 使用VPN服务器连接到Internet VNC服务器打开5900端口,这样每个人都可以从LAN / MAN / WAN连接 由于ISP阻塞端口,能够接收5900(仅限LAN) 我的VPN服务器能够: – 从VPN和互联网接收和传输 在VPN Server中,这是Centos 6.8,这些是iptables,我的VPN客户端可以通过VPN服务器访问Internet: -A POSTROUTING -o eth0 -j MASQUERADE -A INPUT -p tcp -m tcp –dport 5900 -j ACCEPT -A FORWARD -d 210.48.222.2/32 -i eth0 -o ppp+ -p tcp -m tcp –dport 5900 -j ACCEPT -A FORWARD […]