在 Debian 8 中保存 iptable 规则时权限被拒绝

在 Debian 8 中保存 iptable 规则时权限被拒绝

我想在 Debian 8 服务器中打开端口 443,但出现权限被拒绝错误。

我的 Rules.v4 文件如下所示:

# Generated by iptables-save v1.4.21 on Wed Feb 15 14:42:03 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [208710:151335680]
-A INPUT -p icmp -m comment --comment "000 accept all icmp" -j ACCEPT
-A INPUT -i lo -m comment --comment "001 accept all to lo interface" -j ACCEPT
-A INPUT -m comment --comment "002 accept related established rules" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -m comment --comment "099 allow ssh access" -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -m comment --comment "100 allow http and https access" -j ACCEPT
-A INPUT -p tcp -m multiport --dports 1122 -m comment --comment "150 allow phpmyadmin access" -j ACCEPT
-A INPUT -m comment --comment "999 drop all" -j DROP
COMMIT
# Completed on Wed Feb 15 14:42:03 2017

进行更改后,/etc/iptables/rules.v4我尝试保存

sudo iptables-save > /etc/iptables/rules.v4

我收到错误消息-bash: /etc/iptables/rules.v4: Permission denied

当文件存在时我尝试使用sudo bash -C "iptables-save > /etc/iptables/rules.v4"i get 。no such file or directory

我也尝试过tee

sudo tee iptables-save > /etc/iptables/rules.v4

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

当我这样做时,netstat -tulnp | grep 443我没有任何输出。

答案1

该操作涉及2个权限:

  1. 允许阅读iptables-save
  2. 写入权限/etc/iptables/rules.v4

您不能在所需的第二个权限上使用 sudo。

您发布的最后一个命令应该可以工作,只需更改-C-c,否则使用以下命令删除到 root shell

sudo su -

答案2

你使用tee方法不对。该iptables-save命令创建什么内容应该被保存并将其发送到标准输出。该tee命令需要读取stdoutiptables-save并将其写入指定文件。

无需使用 root shell 即可保存路由的正确方法是将iptables-save内容通过管道传输到该内容,tee然后将标准输出保存到文件中。

sudo iptables-save | sudo tee /etc/iptables/rules.v4

答案3

我遇到了同样的问题,现已解决:

  1. 在rules.v4上将组更改为用户

    sudo chgrp "usergroup" /etc/iptables/rules.v*
    
  2. 启用组的写权限

    sudo chmod 664 /etc/iptables/rules.v*
    
  3. 再试一次

    sudo iptables-save > /etc/iptables/rules.v4
    

这对我有用,我希望它有帮助。

相关内容