
Quando digito algo como sudo apt-get install firefox
, tudo funciona até que me pergunte:
After this operation, 77 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Em seguida, mensagens de erro são exibidas:Failed to fetch: <URL>
Minhas regras do iptables são as seguintes:
-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
O que devo adicionar para permitir que o apt-get baixe atualizações? Obrigado
Responder1
O apt-get quase sempre baixa por HTTP, mas também pode usar FTP, então a resposta curta provavelmente é permitir conexões HTTP de saída... e também DNS, é claro.
A configuração que você tem agora proíbe todo o tráfego de rede de saída (a ESTABLISHED
regra que você tem na OUTPUT
cadeia não é eficaz, pois nenhuma sessão será estabelecida). Você precisa permitirAPENASapt-get updates enquanto ainda proíbe todo o resto? iptables
é provavelmente a ferramenta errada para esse trabalho, pois não interpretará URLs e permitirá transferências HTTP seletivamente. Você gostaria de usar um servidor proxy HTTP para este trabalho.
Você pode usar uma configuração mais simples que permitirá downloads do apt-get, mas esteja ciente de que isso também permite todas as outras conexões DNS e HTTP de saída, que podem não ser o que você deseja.
iptables -F OUTPUT # remove your existing OUTPUT rule which becomes redundant
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Se suas fontes APT incluírem fontes HTTPS ou FTP ou fontes HTTP em portas diferentes de 80, você terá que adicionar essas portas também.
Em seguida, você terá que permitir o tráfego de retorno. Você pode fazer isso com esta única regra que permite qualquer conexão estabelecida:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(É seguro permitir todas as conexões de entrada estabelecidas ao usar o rastreamento de conexões, porque somente as conexões que você permitiu de outra forma chegarão ao estado ESTABLISHED.)
Responder2
O arquivo de transporte apt através de protocolos http, então você deve configurar seu computador para aceitar os dados do servidor das portas 80 e 8080. Então as regras do iptables devem ser
iptables -A INPUT -p tcp --sport 80 -m conntrack --state NEW -j ACCEPT
iptables -A INPUT -p tcp --sport 8080 -m conntrack --state NEW -j ACCEPT