https 웹 사이트를 차단하는 iptables


9

내 조직에서 페이스 북, 트위터 및 Gmail과 같은 https를 실행하는 일부 웹 사이트를 차단하고 싶습니다. 오징어는 고위 경영진의 명령에 따라 여기에 사용되지 않아야합니다. Untangle Lite Package 및를 사용할 수 있습니다 iptables.

이 작업을 수행하는 오징어 이외의 다른 옵션이 있습니까? iptables이러한 종류의 트래픽을 차단 하는 규칙도 도움이 될 것입니다.

나는 이것을 찾았다

iptables -t filter -I INPUT -m string --string facebook.com -j LOG --algo bm
iptables -t filter -I INPUT -m string --string facebook.com -j REJECT --algo bm

그러나 https는 여전히 로컬 시스템을 제외한 시스템에서 작동합니다.


2
개인 계정에 대한 https를 피하는 것은 회사 내부의 신원을 도용하고 모든 컴퓨터에 인증서를 배포하고 중간에 사람으로 행동하는 것이 누가 더 나은 사람인지 확인하는 것이기 때문에 좋은 아이디어가 아니라고 회사에 설명해야합니다. 페이스 북에 연결 중입니다. 또한 확실하지 않지만 https없이 Gmail을 연결하는 것은 더 이상 불가능하다고 생각합니다.
Kiwy

난 당신이 모든 IP 주소의 PLS 가지고 방법을 알고있다
Jagadeesh을

답변:


12

URL을 기준으로 일치시키는 대신 인증서 내용을 기준으로 일치를 시도하십시오.

iptables -t nat -I INPUT --sport 443 -m string \
                 --string www.facebook.com --algo bm -j REJECT

지문과 일치 할 수도 있지만 대상이 인증서를 변경하거나 업데이트하면 규칙이 무효화됩니다.


html 본문에서도 www.facebook.com과 일치하는 것을 차단할 수 있지만 주석 상자에서 이와 같이 합법적입니다. URL 수준에서 차단 될 수 있지만 ipaddress는 어떻습니까?
Nikhil Mulley

@NikhilMulley : 아니요, Facebook에서 제공 한 SSL 인증서와 일치합니다. 다른 모든 것은 암호화되어 볼 수 없습니다.
bahamat

2
연결의 첫 번째 패킷 만 nat테이블에 들어갑니다 (그리고 nat 테이블에는 INPUT chain이 없습니다) filter. 또한, 443 클라이언트 포트 패킷과 일치하는 (매우) 원격 기회가있다
스테판 Chazelas가

이 솔루션을 사용한 사람이 있습니까? -p tcp규칙 의 결여와는 별도로 , 이것은 유용한 것으로 보이지 않습니다 ..
ivanleoncz

10

URL이 암호화되어 있기 때문에 방화벽은 클라이언트가 액세스하려는 HTTPS URL을 제어 할 수 없습니다. 방화벽은 IP 주소를 사용하여 클라이언트가 연결하는 사이트 만 제어 할 수 있지만 사이트의 HTTP 및 HTTPS 버전이 동일한 URL에있는 경우에는 도움이되지 않습니다 (그렇지 않은 경우에도 방대한 IP 주소 목록을 유지하기 위해).

HTTPS를 차단하는 유일한 현실적인 방법은 HTTPS를 완전히 차단하는 것입니다. 모든 연결은 유효한 HTTP 여야합니다 (예 : 클라이언트는 HTTP회선 을 보내서 시작 합니다). IPtables만으로는 가능하지 않습니다. Squid와 같은 실제 프로토콜 인식 프록시가 필요합니다. (Untangle Lite의 기능이 무엇인지 모르겠습니다.)

거의 모든 HTTPS 서버가 해당 포트에 있으므로 포트 443으로 나가는 트래픽을 차단하여 대부분의 HTTPS 트래픽을 차단할 수 있습니다. 또는 화이트리스트 방식에 따라 포트 80 (일반 HTTP 포트)으로 나가는 트래픽 만 허용합니다.

다른 접근 방식은 모든 HTTP 및 HTTPS 연결을 프록시하는 것입니다. 그런 다음 URL로 일치시킬 수 있습니다. 이를 위해서는 클라이언트에 대한 중간자 공격이 필요합니다. 자신의 인증 기관을 모든 클라이언트 컴퓨터에 배포하고이를 신뢰할 수있는 루트로 등록하면 그렇게 할 수 있습니다. 이것은 비 윤리적 인 것으로 간주 될 수 있습니다.

어떤 작업을 수행하더라도 결정된 사용자는 환경 외부에 프록시를 설정하고 IP over HTTP 또는 이와 유사한 방식으로 IP를 실행합니다.

당신은 거의 작동하지 않는 기술적 수단으로 사회적 문제를 해결하려고하거나 관리에서 바보 같은 요구 사항을 구현하기 위해 최선을 다하려고합니다 (이 경우 포트 443을 차단하려고합니다. 아무리 아무리 쓸모가 있어도 일을 끝냈다 고보고 할 수있는 특정 IP).


1
Checkpoint와 같은 전문 방화벽은 최신 버전의 클라이언트 인증서를 배포하지 않고도 https 필터링을 허용하지만 어떻게 관리하는지 모르겠지만 작동합니다.
Kiwy

4

하나의 옵션을 알고 있습니다.

사용할 내부 DNS 서버가있는 경우 외부 연결을 설정하지 않으려는 도메인을 해결하는 정적 참조를 TLD 영역 데이터에 127.0.0.1로 설정하십시오. 이런 식으로 네트워크 내에서 중앙 DNS를 사용하는 모든 호스트는 (facebook.com/twitter.com 자체) 도메인을 루프백 주소로 확인하여 아무데도 이어지지 않습니다.

네트워크의 클라이언트 시스템 확인자 구성에 대한 완전한 권한 제어가있는 경우 작동합니다. 워크 스테이션 / 클라이언트에 / etc / hosts 또는 /etc/resolv.conf를 변경 / 편집 할 수있는 권한이 있으면이 옵션을 우회 할 수 있습니다.


+1입니다. 이 참조를 /etc/hosts파일 에 삽입하여 수행 할 수 있습니다 . 예 :127.0.0.1 www.facebook.com

2
또는보다 문명화 된 솔루션의 경우 DNS A 레코드 (또는 hosts / hosts.txt 항목)를 설정하여 사용자가 Facebook으로 전송되지 않은 이유 등을 정확하게 설명하는 웹 서버가있는 인트라넷 호스트를 참조하십시오. 의도 한 호스트 이름 (예 : www.facebook.com)이 인증서 CN과 일치하지 않기 때문에 HTTPS.
Alexios

@Alexios : OpenDNS는이를위한 훌륭한 솔루션입니다.
Kevin M

@KevinM : 감사합니다. 알면 도움이됩니다. (우리가 직장에서 우리 자신의 작은의 DNS 농장을하지만) 나는 적극 반영하겠습니다
알렉 시우스

2

옵션은 라우트를 네트워크 블록으로 블랙홀하는 것입니다.

ip route add blackhole 69.171.224.0/19
ip route add blackhole 74.119.76.0/22 
ip route add blackhole 204.15.20.0/22
ip route add blackhole 66.220.144.0/20
ip route add blackhole 69.63.176.0/20
ip route add blackhole 173.252.64.0/18

1
아니, 그것은 더 이상 자신의 IP 범위 범위를 통신하지 않는 페이스 북 트위터 또는 구글에 대한 IP의 목록을 유지하는 복잡한 방법입니다.
Kiwy

1

일반 컨텐츠 필터가 SSL 사이트를 차단할 수 없습니다.

snort / suricata 와 같은 침입 방지 도구를 사용하십시오 .

샘플 IPS 규칙 : 특정 IP 주소에 대한 SSL URL을 차단합니다.

drop ip any 443 -> 192.168.3.30 any (content:".facebook.com"; msg:"Simplewall Ssl block for User30 : Urls => .facebook.com " sid:26648513;rev:1;)

drop ip any 443 -> 192.168.3.30 any (content:".fbcdn.net"; msg:"Simplewall Ssl block for User30 : Urls => .fbcdn.net " ;sid:11469443;rev:1;)

drop ip any 443 -> 192.168.3.30 any (content:".youtube.com"; msg:"Simplewall Ssl block for User30 : Urls => .youtube.com " ;sid:13989722;rev:1;)

Simplewall 다운로드 : Squid + Suricata IPS가 공유하는 Simplewall 정책 규칙.


0

FORWARD 체인에 이것을 넣어야합니다. 예 :

iptables -I FORWARD  -m string --string "facebook.com" \
                     --algo bm --from 1 --to 600 -j REJECT

방화벽을 제외한 네트워크의 다른 시스템에 영향을 미칩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.