我需要知道如何列出所有路由表的 ID。例如,我可以运行:
ip rule add fwmark 2 table 104
ip route add dev eth0 default via 192.168.3.7 table 104
Run Code Online (Sandbox Code Playgroud)
调用ip rule list显示:
0: from all lookup local
32765: from all fwmark 0x2 lookup 104
32766: from all lookup main
32767: from all lookup default
Run Code Online (Sandbox Code Playgroud)
并调用ip route show table 104显示:
default via 192.168.3.7 dev eth0
Run Code Online (Sandbox Code Playgroud)
如果我然后调用ip rule del table 104,随后的调用ip rule list显示:
0: from all lookup local
32766: from all lookup main
32767: …Run Code Online (Sandbox Code Playgroud) 我ufw在 Debian VPS 上拒绝了传入和传出连接。只定义了一个规则,即允许连接到 SSH 端口。
ufw 已启用并正常工作。
但是我仍然可以使用它的 IP 从我的笔记本电脑 ping 到服务器。如果传入和传出连接都被阻止(SSH 除外),为什么 ping 仍然有效?
为了防止对 ssh 的暴力攻击,我添加了一些iptables 规则(如下)。问题是:如何列出被阻止的 IP 地址?
(1)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
Run Code Online (Sandbox Code Playgroud) 我所在的环境是一个大规模的网络托管操作(管理着数百台服务器,几乎所有的公共地址等等——所以任何谈论管理 ADSL 链接的事情都不太可能运行良好),而且我们重新寻找能够轻松管理核心规则集(目前 iptables 中大约 12,000 个条目)以及我们为客户管理的基于主机的规则集的东西。我们的核心路由器规则集每天更改几次,而基于主机的规则集可能每月更改 50 次(跨所有服务器,因此每个月每五台服务器可能更改一次)。
我们目前正在使用 filtergen(一般来说是球,在我们的运营规模上是超级球),我过去曾在其他工作中使用过 shorewall(这比 filtergen 更可取,但我认为必须有比这更好的东西)。
我们为任何更换系统提出的“必须”是:
任何不符合所有这些标准的都不会被考虑。以下是我们的“好东西”:
我的 iptables 设置有很多规则(路由、ssh 禁止等),我还从http://blacklist.linuxadmin.org获取了要禁止的 IP 列表,现在它变得非常复杂。
我/etc/sysconfig/iptables的真的很长。有没有办法通过包含来自外部文件的规则来管理规则?
例如:
#include "pre_routing_rules"
#include "ssh_bans"
Run Code Online (Sandbox Code Playgroud)
这将包括在文件“pre_routing_rules”和“ssh_bans”中添加的规则这样我可以轻松管理我的规则而无需在cat /etc/sysconfig/iptables.
我已经安装的以太网桥br0,它包含两个接口eth0和tap0
brctl addbr br0
brctl addif eth0
brctl addif tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
Run Code Online (Sandbox Code Playgroud)
我的默认FORWARD连锁政策是DROP
iptables -P FORWARD DROP
Run Code Online (Sandbox Code Playgroud)
当我不添加以下规则时,流量不会通过桥。
iptables -A FORWARD -p all -i br0 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
据我了解iptables只负责IP层。
ebtables 应该负责过滤以太网桥上的流量。
那么为什么我必须在 iptable 的 FORWARD 链中添加 ACCEPT 规则呢?
正如标题所述,我有一个 linux 盒子。据我所知,我可以使用 hosts.allow / hosts.deny 或 iptables 来保护。有什么不同?是否有另一种机制可以使用?
好吧,可能是因为我很密集,或者可能只是没有找到合适的来源,但我不明白为什么这些 IPTABLES 设置中的一个会比另一个更好。
这是我的设置:
我有一个用作透明代理和路由器的盒子。它上面有两个接口,ETH0和ETH1,地址方案如下:
ETH0 = DHCP ETH1 = 192.168.5.1/24 为 192.168.5.0/24 网络的 DHCP 服务在 LAN 后面的客户端
我安装了 privoxy 并作为透明代理在端口 8080 上监听。我通过此设置完成的是能够将此框放入现有网络中,配置最少,并将客户端附加到代理。
这是我的原始 IPTABLES 文件
*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT
Run Code Online (Sandbox Code Playgroud)
此配置工作正常,流量来回流动没有问题。我在 privoxy 日志文件中获得了原始客户端的 IP 地址,并且生活很好。
当我开始查看其他人的配置并看到他们使用 DNAT 而不是 REDIRECT 时,我的困惑就出现了,我试图了解其中一个的真正好处。这是一个示例配置:
*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.5.1:8080
-A POSTROUTING -o eth0 -j …Run Code Online (Sandbox Code Playgroud) 我一直在尝试组合一个基本的服务器 iptables 脚本,该脚本适用于大多数使用 HTTP(S) 和 SSH(端口 80、443 和 22)运行基本网络服务器的站点。毕竟,大多数VPS只需要这些起始端口规则,以后可以根据需要添加邮件或游戏端口。
到目前为止,我有以下规则集,我想知道是否有人知道更好的脚本或可以添加的任何改进。
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS …Run Code Online (Sandbox Code Playgroud) UFW 对我来说工作得很好,除非它不...
我希望能够手动添加将在启动时应用的另一条规则?