칸아카데미를 제외한 모든 웹사이트 차단

칸아카데미를 제외한 모든 웹사이트 차단

우분투 사용자가 Kahnacademy 튜토리얼 웹사이트에 액세스할 수 있도록 설정하려고 합니다. 특히 유튜브를 차단하고 싶어요. 여기에 대한 지침하지만 나는 그들을 작동시킬 수 없습니다. 기본적으로 /etc/hosts 파일을 이용해서 유튜브를 차단할 수 있는데, 동영상이 재생되지 않거나, 동영상은 재생되는데 유튜브가 차단 해제됩니다. Kahnacademy 웹사이트의 트래픽만 YouTube에 액세스하도록 허용하는 쉬운 방법이 있나요?

답변1

/etc/hosts의 IIRC 차단 사이트는 실제로 연결을 차단하는 대신 시스템의 DNS 조회만 무시하므로 아이들은 주소 표시줄의 IP로 직접 이동하여 YouTube에 계속 액세스할 수 있습니다.

이를 위해 iptables 방화벽을 사용하므로 규칙 체인은 다음과 같습니다.

iptables --append OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 

설정된 연결을 작동하게 만듭니다.

그런 다음 메인 Khan Academy 사이트의 IP와 화이트리스트에 등록해야 하는 가이드에 언급된 모든 사이트에 대해( dig +short youtube-nocookie.comdnsutils:

iptables --append OUTPUT --destination [IP of site] -j ACCEPT

이렇게 하면 이 사이트로의 모든 나가는 연결이 허용됩니다.

그런 다음 사용자가 이전 규칙에서 수락하지 않은 모든 나가는 연결 요청을 제거하고,

iptables --append OUTPUT -m owner --uid-owner [Ubuntu-Username] -j DROP 

그런 다음 구성을 저장/설정합니다.

iptables-save 

그래서 효과적인 방법은

(UbuntuUser requests connection, sending output packet)
=> (if packet is part of an ongoing relationship, Accept (send) it)
=> (if packet destination is a khanacademy site, Accept it) 
=> (if packet is from this user, and hasn't been accepted already, drop it) 

단점은 화이트리스트에 추가해야 하는 사이트의 IP가 변경되면 iptables 규칙을 재구성해야 하며 이 방법을 사용하려면 해당 시스템에 대한 관리자 권한이 있어야 한다는 것입니다. 커널 수준의 네트워크 패킷으로 인해 누군가가 해결 방법을 찾기가 더 어려워집니다.

아직 수행하지 않은 경우 INPUT 체인과 유사한 작업을 수행하고 싶을 수도 있지만 위의 작업은 (이론적으로는 실제로 시도한 적이 없음) 필요한 것을 달성해야 합니다.

가이드가 최신 버전이 아닐 수도 있으며, 허용된 첫 번째 웹사이트가 온라인 상태가 아닌 것 같습니다.

관련 정보