use*_*704 2 linux iptables apt
我开始使用 iptables(新手)来保护 linux 服务器(特别是 Debian 5.0)。在配置 iptables 设置之前,我可以毫无问题地使用 apt-get。但是在我配置 iptables 后,apt-get 停止工作。例如我在 iptables 中使用这个脚本:
#!/bin/sh
IPT=/sbin/iptables
## FLUSH
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 22 -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 443 -j ACCEPT
# Allow FTP connections @ port 21
$IPT -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# Allow Active FTP Connections
$IPT -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
# Allow Passive FTP Connections
$IPT -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
#DNS
$IPT -A OUTPUT -p udp --dport 53 --sport 1024:65535 -j ACCEPT
$IPT -A INPUT -p tcp --dport 1:1024
$IPT -A INPUT -p udp --dport 1:1024
$IPT -A INPUT -p tcp --dport 3306 -j DROP
$IPT -A INPUT -p tcp --dport 10000 -j DROP
$IPT -A INPUT -p udp --dport 10000 -j DROP
Run Code Online (Sandbox Code Playgroud)
然后当我运行 apt-get 时,我得到:
core:~# apt-get update
0% [Connecting to ftp.us.debian.org] [Connecting to security.debian.org] [Conne
Run Code Online (Sandbox Code Playgroud)
它停止了。我需要配置哪些规则才能使其工作。
谢谢
附录:
经过一些尝试,我发现问题出在 INPUT 策略中,而不是在 OUTPUT 策略中,如果将 $IPT -P OUTPUT 修改为 $IPT -P OUTPUT ACCEPT 问题仍然存在。但是如果我将 $IPT -P INPUT 更改为 $IPT -P INPUT ACCEPT 那么它就开始工作了。
您需要允许第一个数据包打开 HTTP 连接 OUT,然后允许返回应答。
尝试:
$IPT -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
小智 5
要解决此问题,您需要在 IPT 中添加下一条规则:
# Apt-Get without problem
$IPT -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34718 次 |
最近记录: |