iptables的似乎并不承认--dport有-p all。
iptables -A INPUT -p all --dport www -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
产量:
iptables v1.4.4: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.
--destination-port doesn't work either: iptables v1.4.4: unknown option `--destination-port'
Run Code Online (Sandbox Code Playgroud)
为-p tcp和添加两个单独的规则-p udp工作正常,那么为什么它不适用于-p all?
以防万一,这是在带有 iptables 包版本 1.4.4-2ubuntu2 的 Ubuntu 10.04 LTS 服务器上
今天我在主机系统上的 iptables nat停止工作,我不知道发生了什么!(这很糟糕,我知道)
所有命令都以 root 用户身份执行。
如果我运行,$ iptables -t nat -L我会收到以下错误消息:
$ iptables -t nat -L
iptables v1.4.7: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Run Code Online (Sandbox Code Playgroud)
没有可用的进一步更新。我还用几个旧内核重新启动了服务器,但我总是收到相同的错误消息。
我的服务器在 CentOS 上运行,使用最新版本的官方 OpenVZ 内核。
$ uname -r
2.6.32-042stab088.4
Run Code Online (Sandbox Code Playgroud)
还测试了内核版本:2.6.32-042stab85.20 和 2.6.32-042stab084.26
grub.conf 中的第一个内核:
title OpenVZ (2.6.32-042stab088.4)
root (hd0,1)
kernel /vmlinuz-2.6.32-042stab088.4 ro root=/dev/md2 rd_NO_LUKS rd_NO_DM nomodeset crashkernel=auto SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=de
initrd /initramfs-2.6.32-042stab088.4.img
Run Code Online (Sandbox Code Playgroud)
安装了以下更新:
$ …Run Code Online (Sandbox Code Playgroud) 我有一个 Redhat 服务器 ( Red Hat Enterprise Linux Server release 7.2 (Maipo)),它在重新/启动时重置 iptable 规则。
根据版本 6 文档,我执行:
/sbin/service iptables save
Run Code Online (Sandbox Code Playgroud)
返回:
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
Run Code Online (Sandbox Code Playgroud)
如果我正确理解了消息,我尝试了以下操作:
sudo systemctl iptables save
Run Code Online (Sandbox Code Playgroud)
返回:
Unknown operation 'iptables'.
Run Code Online (Sandbox Code Playgroud)
我找不到关于保存 ip 表的版本 7 文档,但以前的版本支持相同的命令。
我应该运行什么命令来保存 iptables 配置?
以供参考:
防火墙 d 状态:
systemctl status firewalld
firewalld.service
Loaded: not-found (Reason: No such file …Run Code Online (Sandbox Code Playgroud) 假设同一网络上存在两个网关。如果我理解正确,发件人计算机上的 IP 路由表决定哪些数据包通过哪个网关路由。
IP 路由表包含网关的 IP 地址。
这个网关的IP地址在发送IP数据包时是如何使用的?
设置 iptables 时,您可以命名将使用端口 22 的端口 ssh。是否有所有命名端口的列表?具体来说,我需要 ssh、http、https 和 mysql。
我有一个带有路由器的小型网络,它与 Internet、服务器和本地网络中的一些工作站保持连接。

服务器旨在从 Internet 访问,并且在路由器 iptables 中设置了几个 DNAT 条目,如下所示:
-A PREROUTING -i ppp0 -p tcp -m multiport --dports 22,25,80,443 -j DNAT --to-destination 192.168.2.10
Run Code Online (Sandbox Code Playgroud)
外部数据包通过ppp0接口到达路由器,内部数据包来自br-lan,实际上包括交换机和 WLAN 适配器。问题是,虽然外部访问工作正常,但尝试通过 DNS 解析的外部 IP(分配给ppp0)从 LAN 内部访问服务器失败。
我能够发明的唯一解决方案是向路由器添加/etc/hosts指向内部 IP 的静态条目,但由于没有通配符(并且我至少为该系统分配了三个顶级域,不包括数十个子域),这相当脆而且容易失败。你能提出更好的建议吗?
我只找到了这个问题,这不是很有帮助。
如果这是相关的,路由器运行带有 dnsmasq 的 OpenWRT 10.03 Kamikaze。
我一直在许多网站上阅读如何在 Linux 中使用 iptables 将一个端口重新路由到另一个端口。例如,将端口 80 重新路由到 8080 看起来像这样......
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
Run Code Online (Sandbox Code Playgroud)
我担心的是,如果我改变主意了怎么办?我没有读过任何提供纠正它的语法的地方。我认为有一种(简单的?)方法可以做到这一点,但我对 Linux 太陌生了,无法直观地弄清楚如何在不重新安装操作系统的情况下将端口 80 恢复到其原始行为。
我正在转换我的旧的基于 IPV4 的 iptables 防火墙脚本,并希望将 CLASS A/B/C/D/E 保留地址空间替换为在 IPV6 中找到的地址空间。我的目标是拒绝来自这些地址的任何数据包,因为它们无法到达公共网络,因此它们必须被欺骗。
到目前为止,我已经找到了这些,是否还有更多保留空间,没有数据可以进入 IPV6 网络服务器?
环回::1
全球单播(目前)2000::/3
唯一本地单播 FC00::/7
链接本地单播 FE80::/10
多播 FF00::/8
我每次都试图在不重新启动 Fail2Ban 的情况下解除对 IP 地址的阻止,这样做的最佳方法是什么?或者你能指出我有用指南的方向吗?
正如您在下面看到的,我尝试删除的 IP 地址是:89.31.259.161
# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
fail2ban-apache-badbots tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443
fail2ban-httpd tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
fail2ban-sasl tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 25,465,143,220,993,110,995
fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
fail2ban-httpd tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
fail2ban-httpd tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
fail2ban-vsftpd tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT …Run Code Online (Sandbox Code Playgroud) 当我输入类似的东西时sudo apt-get install firefox,一切正常,直到它问我:
After this operation, 77 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Run Code Online (Sandbox Code Playgroud)
然后显示错误消息: Failed to fetch: <URL>
我的iptables规则如下:
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我应该添加什么以允许 apt-get 下载更新?谢谢