어린이에게 친숙한 Linux PC를 설정하는 방법

오늘날 인터넷은 방대한 정보와 잠재적인 위험 요소들이 공존하는 복잡한 공간입니다. 때로는 인터넷의 양면성이 극명하게 드러나기 때문에, 부모들은 자녀 보호 및 상업적 필터링 솔루션을 고려하게 됩니다. 이러한 솔루션들은 나름의 역할을 하지만, 어린이 친화적인 Linux PC 환경을 구축하는 데에는 한계가 있습니다.

하지만 다행스럽게도, Linux 사용자들을 위한 훌륭한 오픈 소스 자녀 보호 프로그램이 존재합니다. 바로 DansGuardian입니다. 이 프로그램은 설정이 용이한 웹 필터링 시스템으로, 상업용 필터와는 달리 미리 정의된 “금지 사이트” 목록에 의존하지 않습니다. 대신 사용자가 필요에 맞게 필터를 맞춤화하여 온라인에서 부적절한 콘텐츠로부터 자녀를 효과적으로 보호할 수 있습니다.

DansGuardian 필터링 소프트웨어는 모든 Linux 배포판에서 작동하며, Ubuntu는 초보자에게 특히 좋은 시작점이 될 수 있습니다. 따라서 이 가이드에서는 Ubuntu Linux를 중심으로 설명하겠지만, 다른 운영 체제를 사용하는 경우에도 공식 웹사이트에서 추가 정보를 얻을 수 있습니다.

DansGuardian 설치 과정

먼저 터미널을 열고 다음 명령어를 입력하여 설치를 시작합니다.

sudo apt install iptables dansguardian squid

소프트웨어 설치 후에는 Ubuntu 시스템 업데이트를 통해 모든 패치가 최신 상태인지 확인하는 것이 좋습니다.

sudo apt update
  sudo apt upgrade -y

업데이트를 완료하면, 시스템에 최신 버전의 DansGuardian이 설치됩니다. 다음 단계는 프록시 시스템을 설정하는 것입니다.

Squid 프록시 설정

Squid는 웹 캐싱 프록시로, DansGuardian과 함께 작동하여 필터링 성능을 향상시키고 웹 트래픽 속도를 높입니다. Squid 설정에서는 몇 가지 포트 설정만 변경하면 됩니다. sed 도구를 사용하여 http_port를 수정합니다.

sudo sed -i 's/http_port 3128/http_port 3128 transparent/g' /etc/squid/squid.conf

http_port 수정 후에는 always_direct 설정도 “모두 허용”으로 변경해야 합니다. 다음 명령어를 사용하여 업데이트합니다.

sudo sed -i 's/# always_direct allow local-servers/always_direct allow all/g' /etc/squid/squid.conf

이제 Squid가 올바르게 구성되었으므로, 다음 명령으로 실행합니다.

sudo squid start

DansGuardian 구성하기

Squid 프록시가 실행 중입니다. 이제 필터 소프트웨어에서 “금지 목록”을 수정할 차례입니다. 모든 부모의 요구 사항이 다르기 때문에, 이 튜토리얼에서는 특정 사이트나 URL에 대한 “금지 목록”을 제공하지 않습니다. Nano 편집기를 사용하여 구성 파일에서 차단하려는 콘텐츠를 직접 지정할 수 있습니다.

참고: 아이들은 창의력이 뛰어나기 때문에, 필터링 우회 방법을 찾을 수 있습니다. 따라서 최상의 결과를 얻으려면 육아 포럼에서 추가 정보를 확인하는 것이 좋습니다.

DansGuardian에서 금지할 확장자 목록을 수정하려면 다음 명령어를 사용합니다.

sudo nano /etc/dansguardian/lists/bannedextensionlist

DansGuardian에서 금지할 웹사이트 목록을 수정하려면 다음 명령어를 사용합니다.

sudo nano /etc/dansguardian/lists/bannedsitelist

마지막으로, DansGuardian에서 금지할 URL 목록을 수정하려면 다음 명령어를 사용합니다.

sudo nano /etc/dansguardian/lists/bannedurllist

변경 사항을 저장하려면 Ctrl + O를 누르고, Nano 편집기를 종료하려면 Ctrl + X를 누릅니다.

DansGuardian은 도메인 외에도 URL 및 웹사이트에 대한 IP 주소를 요구할 수 있습니다. 터미널에서 ping 명령어를 사용하여 공개 웹사이트의 IP 주소를 찾을 수 있습니다. 예를 들어, 다음 명령어를 실행하면:

ping facebook.com -c1

Facebook의 공인 IP 주소는 괄호 안에 표시됩니다.

Squid 재구성

Squid가 작동 중이므로, 몇 가지 설정을 더 변경해야 합니다. 먼저 구성 파일에서 “구성되지 않음” 항목을 제거합니다.

sudo sed -i 's/UNCONFIGURED - Please remove this line after configuration/#UNCONFIGURED - Please remove this line after configuration/g' /etc/dansguardian/dansguardian.conf

그런 다음 “filterip” 옵션을 localhost IP(127.0.0.1)와 같게 변경합니다.

sed -i 's/filterip =/filterip = 127.0.0.1/g' /etc/dansguardian/dansguardian.conf

DansGuardian 구성 파일에서 daemonuser 항목을 proxy로 변경합니다.

sed -i 's/#daemongroup = 'dansguardian'/daemongroup = 'proxy'/g' /etc/dansguardian/dansguardian.conf

dansguardian.conf 파일에서 accessdeniedaddress를 올바른 URL로 변경합니다.

sed -i 's/accessdeniedaddress="https://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl"/accessdeniedaddress="https://localhost/cgi-bin/dansguardian.pl"/g' /etc/dansguardian/dansguardian.conf

이제 프록시를 통과하는 연결을 제외하고 PC의 모든 연결을 차단합니다.

sudo iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j DROP
sudo bash -c "iptables-save > /etc/dansguardian/iptables.save"
sudo sed -i "/exit 0/d" /etc/rc.local
sudo echo "iptables-restore /etc/dansguardian/iptables.save
  exit 0
  " >> /etc/rc.local

또는 다음 명령어를 사용하여 특정 사용자만 차단 해제하고 나머지 사용자를 차단할 수 있습니다. “USER”를 실제 사용자 이름으로 바꿔야 합니다.

sudo iptables -A OUTPUT -o lo -p tcp --dport 3128 -m owner --uid-owner USER -j ACCEPT
sudo bash -c "iptables-save > /etc/dansguardian/iptables.save"
sudo sed -i "/exit 0/d" /etc/rc.local
sudo echo "iptables-restore /etc/dansguardian/iptables.save
  exit 0
  " >> /etc/rc.local

마지막으로, 프록시 사용자가 액세스할 수 있도록 DansGuardian 로그 파일의 소유권을 변경하고 DansGuardian을 시작합니다.

sudo chown -R proxy:proxy /var/log/dansguardian
  sudo systemctl enable dansguardian
  sudo systemctl start dansguardian

프록시 설정

DansGuardian을 사용하려면 터미널을 열고 다음 프록시 명령어를 입력하십시오.

gsettings set org.gnome.system.proxy mode 'manual'
  gsettings set org.gnome.system.proxy.http host 'localhost'
  gsettings set org.gnome.system.proxy.http port 8080

완료되면 터미널을 닫습니다. 이제 Ubuntu에서 DansGuardian 프록시를 사용할 수 있습니다.