我想在 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个权限:
- 允许阅读
iptables-save
- 写入权限
/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
我遇到了同样的问题,现已解决:
在rules.v4上将组更改为用户
sudo chgrp "usergroup" /etc/iptables/rules.v*
启用组的写权限
sudo chmod 664 /etc/iptables/rules.v*
再试一次
sudo iptables-save > /etc/iptables/rules.v4
这对我有用,我希望它有帮助。