jail.local 文件是作为 jail.conf 的覆盖还是作为 jail.conf 的替代?
当我从教程中学习Fail2Ban时,他们中的大多数人通常会说要么将 jail.conf 复制到 jail.local 并在那里进行编辑,其中一些人说要创建一个新的 jail.local 文件并提供一堆要复制的设置和粘贴。但他们没有解决的是 jail.local 如何与 jail.conf 一起工作。这些是2个场景:
覆盖:如果jail.local 充当jail.conf 文件的覆盖,那么我需要做的只是将我想要覆盖的必要配置添加到jail.conf 中给出的默认值中。在这种情况下,我不需要添加 SSH 配置等,因为它已经包含在 jail.conf 中。
替换:如果jail.conf 在jail.local 存在时无效,那么我需要在jail.local 中添加所有规则,然后编辑我想要修改的规则。
你能确认当 jail.local 存在时 jail.conf 会发生什么吗?如果 jail.local 的行为就像是在 jail.conf 文件之上的覆盖,那么对我来说,只需添加几行我想添加的规则就更容易了,这也使维护和可读性变得容易。什么是最好的方法?
我当前的场景涉及允许各种规则,但我需要可以从任何地方访问 ftp。操作系统是 Cent 5,我使用的是 VSFTPD。我似乎无法获得正确的语法。所有其他规则都能正常工作。
## Filter all previous rules
*filter
## Loopback address
-A INPUT -i lo -j ACCEPT
## Established inbound rule
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## Management ports
-A INPUT -s x.x.x.x/24 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s x.x.x.x/23 -p …Run Code Online (Sandbox Code Playgroud) 我的家庭服务器有两个主要接口,eth1(一个标准的互联网连接)和tun0(一个 OpenVPN 隧道)。我想iptables用来强制 UID 1002 拥有的本地进程生成的所有数据包通过 退出tun0,所有其他数据包通过 退出eth1。
我可以轻松标记匹配的数据包:
iptables -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 11
Run Code Online (Sandbox Code Playgroud)
现在,我想在 POSTROUTING 链(可能是 mangle 表的)中放置一些规则来匹配标有 11 的数据包并将它们发送到tun0,然后是匹配所有数据包并将它们发送到 的规则eth1。
我找到了 ROUTE 目标,但这似乎只是重写了源接口(除非我读错了)。
iptables 有这个能力吗?我是否必须弄乱路由表(通过ip route或仅使用旧route命令)?
编辑:我想也许我应该提供更多信息。我目前没有其他iptables规则(虽然我可能会创建一些规则来执行不相关的任务)。此外,输出ip route为:
default via 192.168.1.254 dev eth1 metric 203
10.32.0.49 dev tun0 proto kernel scope link src 10.32.0.50
85.17.27.71 via 192.168.1.254 dev eth1
192.168.1.0/24 dev eth1 …Run Code Online (Sandbox Code Playgroud) 我一直在尝试(几个小时)配置 iptables 以允许对我的 DNS 服务器进行 DNS 查询,但刚刚发现我的 iptables 由于我一直在使用的规则添加选项而一直阻止访问。大多数论坛都建议了类似于以下内容的规则:
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
但是,就我而言,我必须将规则更改为一种insert类型才能使其正常工作:
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我知道一个规则用于附加,另一个用于插入以及这两个术语的含义,但是有人可以解释一下两者之间的区别以及何时使用哪个选项吗?我查找了 Ubuntu 的 iptables how to 但在那里没有看到太多信息。
最近,我遇到了将 Internet 访问限制为特定程序的问题。有人可以推荐一种不使用任何特定软件的好方法吗?
在定义规则时,命令 iptables 不再识别最常用的选项之一:--dport.
我收到此错误:
[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP
iptables v1.4.7: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.
Run Code Online (Sandbox Code Playgroud)
上面的添加规则命令只是启用 Terraria 连接的一个示例。
这是我目前拥有的准系统 iptables 配置(listiptables别名为iptables -L -v --line-numbers),很明显,--dport它在过去有效:
root@dragonweyr /home/calyodelphi]# listiptables
Chain INPUT (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 39 4368 ACCEPT all -- lo any anywhere anywhere
2 114 10257 ACCEPT all …Run Code Online (Sandbox Code Playgroud) 当我从笔记本电脑对 www.google.com 域进行跟踪时,我使用的是 icmp 还是 udp ?
我以为是 icmp 类型 11,但是在搜索其他内容时,我遇到了使用 icmp 类型 30 的规则,并且看到了使用 udp 的规则。
有人可以向我解释这是如何工作的吗?
我正在为虚拟专用服务器开发防火墙(iptables)。
在 Linux 系统上,有没有办法阻止所有进出流量,除非它通过 Tor 网络。这包括任何形式的 IP 通信,而不仅仅是 TCP 连接。例如,我希望 UDP 被完全阻止,因为它不能通过 Tor。我希望这个系统的互联网使用完全匿名,我不希望任何应用程序泄漏。
我意识到这可能很复杂,因为 Tor 本身需要以某种方式与中继节点通信。
我经常看到 iptables 被配置为允许所有包到相关连接,以及特定服务端口到新连接。
说NEW的理由是什么?如果连接不是新的,我猜它是相关的,所以特定的端口规则不会执行。那么为什么要使用 NEW 而不仅仅是协议和端口号明确定义服务端口呢?
我正在努力iptables遵守一些规则。我是iptables. 我找到了一些资源,可以在其中获得与iptables. 这存储在将要执行的文件中。
[0:0] -A PREROUTING -s 10.1.0.0/24 -p tcp -m tcp --dport 81 -j DNAT --to-destination 10.1.0.6:3128
谁能解释一下 [0:0] 是什么意思?此外,iptables欢迎一些与此相关的链接。
提前致谢!
PS如果您需要更多规则,请告诉我。