/etc/hosts를 사용하여 텔레그램 차단

/etc/hosts를 사용하여 텔레그램 차단

저는 액세스하고 싶지 않은 도메인을 차단하기 위해 /etc/hosts를 사용하는데, 이는 대부분의 도메인에서 작동합니다. 다만, 텔레그램 웹채팅(web.telegram.org)에서는 작동하지 않는 것 같습니다.

내 파일에 다음 줄이 있습니다.

0.0.0.0 web.telegram.org
0.0.0.0 www.telegram.org
0.0.0.0 telegram.org

하지만 여전히 웹사이트에 액세스하고 웹 앱의 전체 기능을 사용할 수 있습니다. 내가 뭐 잘못 했어요?

답변1

/etc/hosts를 편집하고 있으므로 루트 액세스 권한이 있습니다. 가장 좋고 가장 우아한 방법은 iptables를 사용하는 것입니다(즉, 패킷이 상자에서 www.telegram.org로 나가는 것을 방지합니다).

명령줄에 iptables 명령을 입력하여 이를 테스트할 수 있습니다.

# iptables -A OUTPUT -d www.telegram.org -j REJECT

다음 규칙을 추가한 것을 확인할 수 있습니다.

# iptables -S OUTPUT

-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable

다음을 사용하여 이에 대한 액세스 시도를 테스트할 수 있습니다.

# wget  web.telegram.org                                                     
--2017-04-26 14:38:01--  http://web.telegram.org/
Resolving web.telegram.org... 149.154.167.120, 2001:67c:4e8:fa60:3:0:811:140
Connecting to web.telegram.org|149.154.167.120|:80... failed: Connection refused.
Connecting to web.telegram.org|2001:67c:4e8:fa60:3:0:811:140|:80... failed: Network is unreachable.

실행 중인 OS가 무엇인지 알려주지 않았으므로 최신 버전의 iptables가 없을 수 있으므로 -S 스위치가 누락되었을 수 있습니다. -L을 사용할 수 있습니다.

# iptables -L OUTPUT

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             149.154.167.120     reject-with icmp-port-unreachable 

방금 추가한 규칙을 삭제하려면 위 명령에서 -A를 -D로 바꾸면 됩니다.

참고: 이러한 규칙을 재부팅 후에도 영구적으로 적용하려면 해당 iptables-save > /etc/sysconfig/iptables규칙을 /etc/sysconfig/iptables에 수동으로 추가해야 합니다.

iptables는 꽤 복잡하지만 매뉴얼 페이지는 매우 유용합니다.

(저는 서버에서 CentOS 6과 7을 실행하고 있습니다. 방화벽은 CentOS 7의 새로운 기본 프런트엔드이지만 iptables-services를 설치하고 사용했는데 이는 완전히 지원됩니다.)

답변2

그런데 호스트를 0.0.0.0 대신 127.0.0.1로 설정했습니다....이것이 원래 문제였을 수도 있습니다.

어쨌든, 또 다른 비결은 문제의 IP 번호에 대한 특수 경로를 추가하는 것입니다.

 # route add -host 10.11.12.13 dev lo

재부팅 시 이러한 규칙이 다시 생성되도록 하려면 이를 rc.local(또는 동등한 파일)에 추가해야 합니다.

나는 그것을 사용하여 사람들이 내 웹사이트 회사 비밀번호를 알아내려는 것을 막습니다.

답변3

메시지를 받기 위해 웹소켓을 사용합니다.

다음에 추가

0.0.0.0 zws2.web.telegram.org

추신: Chrome devtools에서 웹소켓을 디버깅하는 방법을 확인하세요.

관련 정보