如果是这样,我该怎么做?
如果没有,除了 iptables 之外,有没有更简单的方法可以在 CentOS 上设置一些基本规则?
我更像是应用程序开发人员,而不是系统管理员。
我试图在我的 Ubuntu 12.04 机器上设置防火墙。经过一番挣扎,我得到了以下内容。这听起来是不是有点奇怪?
thomas@thomas-K40IJ:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
21/tcp ALLOW OUT Anywhere
80 ALLOW OUT Anywhere
22 ALLOW OUT Anywhere
21/tcp ALLOW OUT Anywhere (v6)
80 ALLOW OUT Anywhere (v6)
22 ALLOW OUT Anywhere (v6)
thomas@thomas-K40IJ:~$ sudo ufw reload
Firewall not enabled (skipping reload)
thomas@thomas-K40IJ:~$ sudo ufw enable
ERROR: Could not load logging rules
thomas@thomas-K40IJ:~$
Run Code Online (Sandbox Code Playgroud)
重启后我的防火墙似乎也被禁用了。我错过了什么?
我有一个服务在端口 的主机上运行8545。我有几个需要访问主机上的此服务的 docker 容器。主机运行的是ubuntu。我已经配置成功了
extra_hosts:
- "host.docker.internal:host-gateway"
Run Code Online (Sandbox Code Playgroud)
在 docker-compose 文件中,我用它来启动我的 docker 容器。但是,我发现容器无法访问host.docker.internal:8545,除非我使用以下命令打开主机上的该端口
ufw allow 8545
Run Code Online (Sandbox Code Playgroud)
然而,这会向任何人开放该端口,这是不希望的。
如何仅向主机上运行的 docker 容器开放此端口?
编辑:我已经看到该docker0接口的 IP 为172.17.0.1. 我尝试运行sudo ufw allow from 172.17.0.1,但这并没有使我的容器能够访问8545主机上的端口。
root@localhost:~/code/metis/ops# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Anywhere ALLOW 172.17.0.1
22/tcp (v6) ALLOW Anywhere (v6)
root@localhost:~/code/metis/ops# docker exec -it ops_l2geth-mainnet_1 /bin/sh
/ # geth attach http://host.docker.internal:8545
Fatal: Failed to start the JavaScript …Run Code Online (Sandbox Code Playgroud) 我有一台运行一些服务的服务器。但是,出于安全原因,我配置了服务器,以便从外部访问除 SSH 之外的任何内容。
不过,我想做的是让服务器允许任何成功通过 SSH 登录的人访问其所有服务(一旦该人断开连接,再次关闭所有端口,除了 SSH 端口应该保持打开状态)。
有没有办法做到这一点?
我在服务器上使用 Arch Linux 并ufw管理防火墙。
我已经成功地使用 tunnelbroker.net 为我的 Raspberry Pi 设置了 IPv6。但是,我想分享我在网络中的其他设备中获得的 /64。网络的路由器是Virgin Media Super Hub (VMDG480),不支持IPv6。
这是我用于 Raspberry Pi 的 /etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.3
gateway 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:470:1f09:4f8::2
netmask 64
endpoint 216.66.80.26
local 192.168.0.3
ttl 255
gateway 2001:470:1f08:4f8::1
Run Code Online (Sandbox Code Playgroud)
这是我从隧道经纪人那里得到的信息:
Client IPv6 Address: 2001:470:1f08:4f8::2/64
Routed /64: 2001:470:1f09:4f8::/64
Routed /48: 2001:470:6c92::/48
Run Code Online (Sandbox Code Playgroud)
我尝试过使用 radvd、dibbler 和 isc-dhcp-server - 没有人能够为我的网络中的其他计算机提供 IPv6 连接。有人可以帮助阐明这种情况吗?
我经营一家小旅馆,网络配置如下:
Router1 (192.168.1.1) ??? (192.168.1.2) Ubuntu Samba+SSH Server
?? (192.168.1.X) Router 2 (192.168.2.1) ??? (192.168.2.X) GuestPC1
?? (192.168.1.X) AdminPC1 ?? (192.168.2.X) GuestPC2
?? (192.168.1.X) AdminPC2 ?? (192.168.2.X) GuestPC3
: :
: :
?? etc. ?? etc.
Run Code Online (Sandbox Code Playgroud)
192.168.1.X 是 ADMIN 网络,我们希望对 GUEST 网络 (192.168.2.X) 保密,以保存 192.168.1.2 上的一些共享 Samba 文件夹。
两个网络上的所有计算机都通过 DHCP 获取其 IP 地址,但使用静态 IP 的 Samba+SSH 服务器除外。
我注意到 GuestPC 能够访问 Ubuntu Samba+SSH 服务器,尽管将 ufw 配置为仅允许 192.168.1.0/24。
在 Internet 上进行了一些研究后,似乎由于路由器 2 上的 NAT,来自 GuestPC 的连接能够伪装到我的 ADMIN 网络上。因此,仅考虑上述 ufw 规则,GuestPC 能够完全访问 Samba …
我一直在致力于一个接近完成的项目:只需按一下按钮就能终止我孩子的互联网连接。我基本上通过调用实现了部分解决方案:
ufw 拒绝 IP
杀死他们的互联网的威胁在一半的情况下有效,而上述的方法在剩下的一半中有效。我遇到问题的地方是 YouTube 长视频。有时继续现有连接很方便,但我还希望有一个按钮可以终止所有进出该 IP 的现有流量。事实证明,这比预期要困难得多。
我尝试过 cutt,它似乎甚至无法在 Ubuntu 14.04 上运行。我试过tcpkill。它似乎在运行,但似乎没有做任何事情(我提供了两个以太网接口)并且似乎想要继续运行。虽然我的 ufw 是持久的,但我宁愿立即无状态地终止并删除所有现有连接。
Conntrack 听起来很有希望(http://conntrack-tools.netfilter.org/manual.html),并且有以下内容:
删除一个条目,如果出现以下情况,这可用于阻止流量:
您有一个有状态的规则集,可以阻止处于无效状态的流量。
您已将 /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_loose 或 /proc/sys/net/netfilter/nf_conntrack_tcp_loose(具体取决于您的内核版本)设置为零。
命令
conntrack -D -s <IP>
Run Code Online (Sandbox Code Playgroud)
似乎删除并显示了某些内容,但 YouTube 视频一直在嗡嗡作响,当我这样做时,我看到连接正在重组
conntrack -L
Run Code Online (Sandbox Code Playgroud)
我已经搞定了
echo 0 > nf_conntrack_tcp_loose
Run Code Online (Sandbox Code Playgroud)
并对其进行cat'ed以确保它卡住,但它似乎并没有删除连接。
我不是 100% 确定“阻止无效状态流量的有状态规则集”是什么意思,但我确实看到了以下规则
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
Run Code Online (Sandbox Code Playgroud)
当执行“iptables -L -n”时,如果这就是它引用的内容。
我发现了以下内容:
iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP
Run Code Online (Sandbox Code Playgroud)
它对我不起作用,但这可能是因为它按照允许内部网络上的所有流量的一般规则进行,并且通过重新排序它可能会起作用。我不想将 iptables 命令与 ufw 命令混合使用。鉴于 UFW 已经设置了 iptables 来拒绝任何新连接,在 iptables 中设置一个 drop 似乎是多余的,如果可以的话,我真的不想将 UFW 与 iptable 命令混合在一起。 …
按照/sf/answers/3238673021/(@mkubaczyk回答“Ubuntu 下 docker + ufw 的最佳实践是什么”)指南正确配置 Docker 和 UFW,但仍然无法在容器中访问 Internet。
可能是什么问题?
我对 iptables 非常熟悉,而且我觉得iptables -L -v很容易阅读。备份很容易,我对此很满意。
然而,在最近版本的 Ubuntu 中有 ufw 会严重污染 iptables。除了干净的规则列表之外,我还有很多不易阅读的规则:
$ iptables -L -v
Chain INPUT (policy DROP 6114 packets, 331K bytes)
pkts bytes target prot opt in out source destination
131K 76M ufw-before-logging-input all -- any any anywhere anywhere
131K 76M ufw-before-input all -- any any anywhere anywhere
6618 368K ufw-after-input all -- any any anywhere anywhere
6191 346K ufw-after-logging-input all -- any any anywhere anywhere
6191 346K ufw-reject-input all -- any any anywhere anywhere
6191 …Run Code Online (Sandbox Code Playgroud) 如何一次删除多条ufw规则?通过使用
$ ufw status numbered
Status: Aktiv
Zu Aktion Von
-- ------ ---
[ 1] 80/tcp ALLOW IN Anywhere
[ 2] 53 ALLOW IN Anywhere
[ 3] 53 ALLOW OUT Anywhere (out)
[ 4] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 5] 53 (v6) ALLOW IN Anywhere (v6)
[ 6] 53 (v6) ALLOW OUT Anywhere (v6) (out)
Run Code Online (Sandbox Code Playgroud)
我得到了规则的编号,并且可以使用例如删除单个规则
$ ufw delete 2
Run Code Online (Sandbox Code Playgroud)
但有没有办法一次性删除多条规则呢?就像是
ufw delete 2 3 5 6
Run Code Online (Sandbox Code Playgroud)
会很好(但不起作用)。
这是 Ubuntu 20.4 或 Ubuntu 22.04 的全新安装,但当我尝试从 Ubuntu 控制台启用 ufw 时,它们都失败了,并出现如下错误。
sudo ufw enable
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ufw/util.py", line 427, in under_ssh
ppid = get_ppid(pid)
File "/usr/lib/python3/dist-packages/ufw/util.py", line 419, in get_ppid
ppid = open(name).readlines()[0].split(')')[1].split()[1]
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/sbin/ufw", line 138, in <module>
not ui.continue_under_ssh():
File "/usr/lib/python3/dist-packages/ufw/frontend.py", line 901, in continue_under_ssh
if self.backend.do_checks and ufw.util.under_ssh(): # pragma: no cover
File …Run Code Online (Sandbox Code Playgroud) 昨晚我犯了一个最烦人的错误。在 Ubuntu 14.04 服务器上,我启用了 ufw 但忘记允许 ssh。然后我注销了。
当然,我现在被 ssh 锁定了。
幸运的是,我的主机提供了修复功能,使我能够访问服务器文件系统来修复此类内容。
如何使用文件系统完全手动禁用防火墙?
或者
如何在 ufw 中手动添加允许 ssh 访问的规则?
我试图在 /lib/ufw/user.rules 中设置规则,但没有用。
任何帮助表示赞赏。
我想要做的是在 VPN 连接中断时完全禁用互联网连接。我正在通过 Viscosity 连接到我的 VPN (privatevpn.com)。
我已经尝试了书中的所有内容。我曾尝试在 Viscosity 中使用断开连接的脚本,但它们永远不会触发,或触发不一致并使我的连接容易受到攻击。我也在 Viscosity 中尝试了路由技巧,但它也不起作用。
在我的 Ubuntu 机器上,我有一个完美的解决方案,我使用 ufw 规则来控制防火墙。为了连接到我的 VPN,我需要禁用 UFW,然后一旦 VPN 连接我启用 UFW,它可以防止连接泄漏。
Mac 上有一种叫做 pf 的东西。我也许可以将 pf 配置为与我的 ufw 规则的工作方式相同,但我不明白如何配置它。
这是我也想在 Mac 上运行的 UFW 规则,也许有人可以帮助我配置 pf 以使用相同的规则?
状态:活动 登录:开(低) 默认值:拒绝(传入、拒绝(传出)、禁用(路由) 新配置文件:跳过
从任何地方开始 193.180.119.0/24 任何地方都允许 193.180.119.0/24