iptables를 사용하여 https 페이스북 웹사이트를 차단하는 방법

iptables를 사용하여 https 페이스북 웹사이트를 차단하는 방법

중복 가능성:
iptables는 https 웹사이트를 차단합니다.

Zentyal Os를 방화벽으로 사용하고 있는데 http 사이트를 차단하는 것처럼 잘 작동하지만 https facebook 사이트를 차단할 수 없습니다. 내 유일한 목표는 포트 443을 차단해야 하는 것처럼 https 페이스북 웹사이트도 차단해야 한다는 것입니다.

따라서 iptables 및 투명 모드를 사용하여 제어할 수 있는 기회가 있습니까?

답변1

참고: 이 글은 몇 시간 전에 썼지만 Sandy의 방해로 인해 나가서 제출 버튼을 누르는 것을 잊어버렸습니다.

따라서 이를 달성하는 방법에는 두 가지가 있으며 둘 다 서로 다른 작업을 수행합니다. 누구든지 프록시 사이트를 사용하여 제한을 우회할 수 있기 때문에 실제로 Facebook을 차단하는 것은 불가능합니다. 또한 SSH 터널을 통해 무제한 서버에 연결할 수도 있습니다. 그래도 우리는 여기...

iptables

bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.247.21 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 66.220.149.88 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 66.220.152.16 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.234.21 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.237.16 --dport 443 -j REJECT

단점은 이것이 Facebook이 해결을 위해 facebook.com에 대한 새 IP 주소를 추가하는 것을 막지 못한다는 것입니다. 지속적으로 실행하고 최신 정보를 얻을 수 있는 스크립트를 작성할 수 있습니다.

#!/bin/bash
for i in $(host facebook.com | grep "has address " | cut -d' ' -f4)
do iptables -A OUTPUT -p tcp -d $i --dport 443 -j REJECT
done

참고: 오류가 발생할 수 있으므로 약간의 수정이 필요합니다.

도메인 이름 서버

이 솔루션도 완벽하지 않습니다. DNS는 명명 시스템의 기초일 뿐이므로 IP 주소를 직접 입력하면 승리합니다. 네트워크의 내부 이름 서버가 있는 경우 facebook.com에 대한 항목을 다른 곳에서 확인하도록 설정할 수 있습니다. 나는 이것을 위의 iptables와 함께 사용할 것입니다.

안전 벨트--전혀 권장되지 않음

우리는 한 단계 더 나아갈 수도 있습니다. 네트워크에 Facebook을 차단하려는 모든 컴퓨터가 있는 경우 루트 CA 인증서를 생성하고 모든 컴퓨터에 공개 키를 설치할 수 있습니다. 중개인은 인증서를 사용하는 모든 웹사이트에 대한 모든 SSL 트래픽을 삭제하고 Facebook 연결을 적극적으로 종료합니다. 그러나 이는 위험한 생각이며 개인 정보 보호에 영향을 미칩니다(특히 기업 환경에서).

답변2

나는 zentyal이 snort IDS에 대한 통합 지원을 제공한다고 믿기 때문에 facebook.com이 포함된 일반 이름을 기반으로 하는 서버 인증서를 기반으로 SSL 패킷이 포함된 SSL 패킷을 탐지하고 차단하는 snort 규칙을 추가할 수 있습니다. 이는 또한 프록시를 통한 액세스를 해결합니다(프록시 자체에 대한 연결이 암호화되지 않는 한).

또 다른 접근 방식은 모든 DNS 트래픽이 DNS 서버를 통과하도록 강제하고(DNS 서버 이외의 도메인에 대한 트래픽 차단) 모든 facebook.com 도메인에 대한 쿼리에 대해 잘못된 콘텐츠를 반환하는 것입니다(그러나 프록시를 통한 액세스는 중지하지 않음).

답변3

이 규칙은 당신에게 효과적입니다

iptables -A OUTPUT -d facebook.com -dport 443 -j REJECT --reject-with tcp-reset

편집: 어떤 이유로든 iptables 버전이 주소 대신 URL을 사용하는 것을 좋아하지 않는 경우 Facebook은 여러 IP를 확인할 수 있으므로 다음을 수행할 수 있습니다.

 for blockip in `resolveip facebook.com | cut -d " " -f 6`; do
 iptables -A OUTPUT -o eth0 -p tcp -m tcp -d $blockip -j REJECT --reject-with tcp-reset
 done

관련 정보