iptables 无法通过 iptables-restore 加载

iptables 无法通过 iptables-restore 加载

我制定了以下 iptables 规则文件:

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:sshguard - [0:0]

-A INPUT -i enp3s0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow incoming SSH"
-A INPUT -i enp3s0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "Allow outgoing SSH"
-A INPUT -i enp3s0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow incoming HTTP"
-A INPUT -i enp3s0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow incoming HTTPS"
-A INPUT -i enp3s0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "Allow outgoing HTTP"
-A INPUT -i enp3s0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "Allow outgoing HTTPS"
-A INPUT -i enp3s0 -p udp --sport 53 -j ACCEPT -m comment --comment "Allow outgoing DNS"

-A INPUT -i lo -j ACCEPT -m comment --comment "Allow ALL from localhost"

-A INPUT -p icmp --icmp-type echo-request -j ACCEPT -m comment --comment "Allow incoming ping"
-A INPUT -p icmp --icmp-type echo-reply -j ACCEPT -m comment --comment "Allow outgoing ping"
-A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT -m comment --comment "Prevent DoS attacks"
-A INPUT -p tcp --dport 443 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT -m comment --comment "Prevent DoS attacks"
-A INPUT -p tcp -m tcp --dport 22 -j sshguard -m comment --comment "SSH access protection"
COMMIT

但是当我尝试加载它时iptables-restore < iptables.rules,出现此错误:

iptables-restore:第 22 行失败

我做错什么了吗?

编辑 :

  • 我的Linux版本是:linux44 4.4.48-1
  • 我的 iptables 版本是:iptables 1.6.0-1
  • uname:Linux ARCH 4.4.41-1-MANJARO #1 SMP PREEMPT 2017 年 1 月 9 日星期一 12:43:09 UTC i686 GNU/Linux

编辑2: 经过多次测试,似乎 目录中缺少ipt_state.ko.gz和模块ipt_comment.ko.gz/lib/modules/4.4.48-1-MANJARO/kernel/net/ipv4/netfilter

有人知道如何添加这些模块吗?

答案1

好的,请关注该论坛:https://bbs.archlinux.org/viewtopic.php?id=195108,我意识到我的内核最近从 -41 更新到了 -48,模块发现是基于 uname(已经过时了),这就是模块无法加载的原因。简单的重启解决了所有问题 :D

相关内容