
와 같은 것을 입력하면 sudo apt-get install firefox
다음과 같은 메시지가 표시될 때까지 모든 것이 작동합니다.
After this operation, 77 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
그런 다음 오류 메시지가 표시됩니다.Failed to fetch: <URL>
내 iptables 규칙은 다음과 같습니다.
-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
apt-get이 업데이트를 다운로드할 수 있도록 하려면 무엇을 추가해야 합니까? 감사해요
답변1
apt-get은 거의 항상 HTTP를 통해 다운로드하지만 FTP를 사용할 수도 있으므로 짧은 대답은 아마도 아웃바운드 HTTP 연결과 DNS도 허용하는 것입니다.
이제 귀하의 구성은 나가는 모든 네트워크 트래픽을 허용하지 않습니다. ( 체인 ESTABLISHED
에 있는 규칙은 OUTPUT
어떤 세션도 설정되지 않으므로 효과적이지 않습니다.) 허용해야 하나요?오직다른 모든 것을 허용하지 않으면서 적절한 업데이트를 받으시겠습니까? iptables
실제로 URL을 해석하고 HTTP 전송을 선택적으로 허용하지 않으므로 해당 작업에 잘못된 도구일 수 있습니다. 이 작업에는 HTTP 프록시 서버를 사용하려고 합니다.
apt-get 다운로드를 허용하는 더 간단한 설정을 사용할 수 있지만 이는 원하는 것이 아닐 수도 있는 다른 모든 나가는 DNS 및 HTTP 연결도 허용한다는 점에 유의하세요.
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
APT 소스에 HTTPS나 FTP 소스 또는 80이 아닌 포트의 HTTP 소스가 포함되어 있는 경우 해당 포트도 추가해야 합니다.
다음으로, 반환 트래픽을 허용해야 합니다. 설정된 연결을 허용하는 다음 단일 규칙을 사용하여 이를 수행할 수 있습니다.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(연결 추적을 사용할 때는 설정된 모든 인바운드 연결을 허용하는 것이 안전합니다. 달리 허용한 연결만 ESTABLISHED 상태가 되기 때문입니다.)
답변2
http 프로토콜을 통한 적절한 전송 파일이므로 포트 80 및 8080의 서버에서 데이터를 허용하도록 컴퓨터를 설정해야 합니다. 그런 다음 iptables 규칙은 다음과 같아야 합니다.
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