标签: iptables

iptables,默认策略与规则

使用默认策略丢弃不匹配的数据包与-j DROP最终丢弃有什么区别吗?

喜欢:

iptables -P INPUT DROP
iptables -A INPUT --dport 80 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

对比

iptables -A INPUT --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
Run Code Online (Sandbox Code Playgroud)

我之所以关心,是因为我无法使用日志创建链并将其作为默认策略,因此我需要使用第二个示例。

linux iptables

15
推荐指数
2
解决办法
5366
查看次数

您如何测试 iptables 规则以防止远程锁定和检查匹配?

当我学习 iptables 时,我犯了一些错误并将自己锁在外面。

您使用什么方法来测试规则而不锁定自己?

我正在使用 ubuntu 服务器 12.04 LTS


以下所有答案都有帮助。最后我使用了选项的组合。以防万一,IPMI 访问您的远程服务器也很有帮助!但理想情况下,在复制环境中本地测试规则并首先进行测试。Vagrant 在这方面有助于让测试设置快速工作。

linux iptables

15
推荐指数
2
解决办法
2万
查看次数

将防火墙规则减少一半 - tcp 和 udp 的 iptables 规则

我的防火墙上有许多 iptables 规则,如下所示:

iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

对于每个地址,是否有两个规则的快捷方式 - 一个用于 tcp,一个用于 udp?我的意思是我可以做这样的事情:

iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

firewall iptables tcp udp

15
推荐指数
1
解决办法
4万
查看次数

Debian '忽略' /etc/network/if-pre-up.d/iptables

我希望我的 iptables 规则在启动时自动加载。根据 Debian 上的 wiki,这可以通过在 /etc/network/if-pre-up.d/ 中放置一个名为 iptables 的脚本来完成,所以我做到了,这就是它的样子:

cat /etc/network/if-pre-up.d/iptables 
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules
Run Code Online (Sandbox Code Playgroud)

这个脚本有效:如果我以 root 身份运行它,我的防火墙规则就会被应用。但是在重新启动时没有防火墙规则。我究竟做错了什么?

根据要求:/etc/network/interfaces(我没有碰过这个文件)

user@DebianVPS:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)

networking debian iptables

15
推荐指数
2
解决办法
2万
查看次数

除了端口 80 之外,阻止美国以外的所有连接是否会导致服务器负载过高?

像大多数服务器(我假设)一样,我们有人试图 24/7 全天候暴力破解我们的服务。我有 cpHulk 将他们的 IP 列入黑名单,但如果他们一开始就没有走那么远似乎会更好。我和我的主机是唯一通过 80 以外的端口连接到服务器的人,所以我想阻止来自美国以外所有国家/地区的连接,端口 80 除外。我联系了我的主机进行设置,但他们犹豫不决,因为他们说这会造成异常高的服务器负载。它是一个专用的 Xeon 1230 服务器,具有 32GB RAM,运行 CentOS 6.6 和 iptables。

首先,有什么理由不这样做?其次,我的主人告诉我的是否正确?第三,有没有办法在不影响高性能的情况下实现这一点?

iptables

15
推荐指数
3
解决办法
3132
查看次数

Docker - 可从外部访问的暴露端口 - iptables 规则被忽略

我有一个 docker 容器运行如下:

 docker run --name some_container_1 -p 8080:80 -d some_image
Run Code Online (Sandbox Code Playgroud)

哪个工作正常。容器将它的端口 80 公开到 8080,并且可以从本地主机访问。

然而,出于某种原因,它完全忽略了 INPUT iptables 规则,并且也可以从外部访问。

如何限制对我的 Docker 容器的访问,只允许 ie IP 123.456.789.0 从外部访问它?

谢谢。


须藤 iptables -L -n -v --line-numbers

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
2      365 23380 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3        0     0 ACCEPT     tcp  --  * …
Run Code Online (Sandbox Code Playgroud)

iptables docker

15
推荐指数
2
解决办法
2万
查看次数

创建具有两个 Internet 连接和一个 LAN 连接的多宿主 linux 负载平衡器

好的,...这可能已经得到了回答,不幸的是,我没有找到任何看起来像是解决方案的东西。

我看过这些页面,他们有一些有用的信息,但不是完整的解决方案:

  1. Linux 上的负载平衡和 NAT-ing 多个 ISP 连接
  2. 两个 Internet 连接和 1 个 NIC,可能吗?
  3. Linux 拆分访问(具有负载平衡的多个 Internet 连接)
  4. linux防火墙+负载均衡ISP连接

我将使用 Debian 8、Ubuntu 16.04 Desktop 或 Ubuntu 16.04 Server(老实说,很可能是 Debian)。

好的,所以我将安装三个网卡,两个千兆位和板载 100 mbps LAN 连接。ISP 连接将通过两个网卡上的 PPPoE 身份验证使用千兆 LAN 卡(如果这甚至可能,否则我将在 DSL 调制解调器上使用非桥接模式)。两个网络都将分配一个静态 IP。目前(这将改变)主要连接有一组五个。我需要将来自这些 IP 地址之一的流量路由到网络上的正确服务器。

以下是我的问题:

  1. 我该如何设置?我是否使用 NATing、IP Chans、IP Masquerading、Routing 等...?
  2. 如何将从外部进入系统的流量路由到网络上的特定 IP 地址?

请温柔点,这是我第一次尝试过这样的事情:)。

编辑 1

忘记添加网络拓扑:

内部网络布局

编辑 2

刚刚意识到一些事情......为了进行 PPPoE 身份验证,我将不得不强制对特定接口上的凭据进行身份验证。这是怎么做的?

我在这里发布了这个问题:

创建具有两个 Internet 连接和一个 LAN 连接的多宿主 linux 负载平衡器

更新 1

仍然无法让多跳循环工作。我尝试按照以下网站中列出的步骤进行操作,但没有成功:

  1. Linux 上的负载平衡和 NAT-ing 多个 ISP 连接
  2. Linux …

networking nat iptables load-balancing linux-networking

15
推荐指数
1
解决办法
3万
查看次数

根据 Apache 日志数据自动修改 iptables 以阻止行为不良的客户端

Linux上有没有什么工具可以根据对Apache日志的分析自动修改iptables来屏蔽麻烦的客户端?我帮助运营一个有时会被来自特定用户的请求所淹没的网站。唯一的解决方案是在 iptables 中添加一个条目来阻止有问题的客户端。通常到我可以手动做出反应时已经太晚了 - 因此,我想要一些基于规则的机制来修改 iptables。我猜想某种模糊的逻辑或统计分析是必要的。

linux iptables apache-2.2

14
推荐指数
1
解决办法
2318
查看次数

无法在 Shell 脚本上设置 UID

谁能帮我找出这里发生了什么?我有一些设置跟踪数据包计数的规则。当我以 root 身份运行以下脚本时:

#!/bin/bash
iptables -t mangle -xnvL
Run Code Online (Sandbox Code Playgroud)

我得到我期望的输出:

//snip
233203 199929802 MARK  //blah blah blah
//snip
Run Code Online (Sandbox Code Playgroud)

但是,我想将它作为 cacti 的一部分运行,它作为 apache 运行。现在apache不能运行iptables,这就是我有脚本的原因。我将其设置为 SUID 根

-rwsr-sr-x 1 root root   37 May 14 23:06 iptables_packet_report.sh
Run Code Online (Sandbox Code Playgroud)

但是后来我得到了这个输出:

server # sudo -u apache ./iptables_packet_report.sh
iptables v1.4.2: can't initialize iptables table `mangle': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Run Code Online (Sandbox Code Playgroud)

显然我的内核很好,而且我以非 root 用户身份运行它的事实搞砸了一些事情,但我不明白为什么。我确实用 [演示]( http://en.wikipedia.org/wiki/Setuid#Demonstration )仔细检查了 SUID并确认它正在工作。

server # sudo -u apache …
Run Code Online (Sandbox Code Playgroud)

linux iptables suid

14
推荐指数
2
解决办法
6948
查看次数

网络服务器的良好 iptables 启动规则?

我正在安装一个新的 centos 5.4 服务器,我想有一套干净的规则让 mu iptables 启动。

什么是好的规则开始?

这是一个好的起点吗:

# Allow outgoing traffic and disallow any passthroughs

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Allow traffic already established to continue

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ssh, ftp and web services

iptables -A INPUT -p tcp --dport ssh -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport ftp -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport …
Run Code Online (Sandbox Code Playgroud)

iptables

14
推荐指数
1
解决办法
2万
查看次数