Facebook, Twitter, Gmail 등 https에서도 실행되는 조직 내 일부 웹사이트를 차단하고 싶습니다. 상부 경영진의 지시에 따라 여기에는 오징어를 사용하면 안 됩니다. Untangle Lite 패키지와 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는 로컬 컴퓨터가 아닌 다른 컴퓨터에서도 계속 실행될 수 있습니다.
답변1
URL 기반 매칭이 아닌, 인증서 내용 기반 매칭을 시도해보세요.
iptables -t nat -I INPUT --sport 443 -m string \
--string www.facebook.com --algo bm -j REJECT
지문으로 일치시킬 수도 있지만 대상이 인증서를 변경하거나 업데이트하면 규칙이 적용되지 않습니다.
답변2
URL은 암호화되어 있으므로 방화벽은 클라이언트가 액세스하려고 하는 HTTPS URL을 제어할 수 없습니다. 방화벽은 클라이언트가 IP 주소를 사용하여 연결하는 사이트만 제어할 수 있지만 사이트의 HTTP 및 HTTPS 버전이 동일한 URL에 있는 경우에는 도움이 되지 않습니다. IP 주소 목록).
HTTPS를 차단하는 유일한 현실적인 방법은 완전히 차단하는 것입니다. 모든 연결은 유효한 HTTP여야 한다고 주장합니다(즉, 클라이언트는 라인 HTTP
등을 전송하여 시작합니다). 이는 IPtables만으로는 수행할 수 없으며 Squid와 같은 실제 프로토콜 인식 프록시가 필요합니다. (Untangle Lite가 무엇을 하는지는 모르겠습니다.)
거의 모든 HTTPS 서버가 해당 포트에 있으므로 포트 443으로 나가는 트래픽을 차단하여 대부분의 HTTPS 트래픽을 차단할 수 있습니다. 또는 화이트리스트 접근 방식을 사용하고 포트 80(일반 HTTP 포트)으로 나가는 트래픽만 허용합니다.
또 다른 접근 방식은 모든 HTTP 및 HTTPS 연결을 프록시하는 것입니다. 그런 다음 URL로 일치시킬 수 있습니다. 이를 위해서는 클라이언트에 대한 중간자 공격이 필요합니다. 모든 클라이언트 컴퓨터에 자체 인증 기관을 배포하고 이를 신뢰 루트로 등록하면 이 작업을 수행할 수 있습니다. 이는 비윤리적인 것으로 간주될 수 있습니다.
당신이 무엇을 하든, 결정된 사용자는 당신의 환경 외부에 프록시를 설정하고 HTTP 또는 이와 유사한 것을 통해 IP를 실행할 것입니다.
당신은 거의 작동하지 않는 기술적 솔루션으로 사회 문제를 해결하려고 하거나 경영진의 어리석은 요청을 구현하기 위해 최선을 다하는 것 같습니다. 이 경우 포트 443을 차단하기로 선택할 것입니다. IP를 사용하면 아무리 쓸모없어도 작업을 완료했음을 보고할 수 있습니다.
답변3
나는 한 가지 선택지를 알고 있다.
내부 DNS 서버를 사용할 수 있는 경우 도메인(외부 연결을 원하지 않음)을 127.0.0.1로 확인하는 TLD 영역 데이터에 일부 정적 참조를 넣습니다. 이렇게 하면 중앙 DNS를 사용하는 네트워크의 모든 호스트가 도메인(facebook.com/twitter.com 자체)을 루프백 주소로 확인하지만 아무데도 가지 않습니다.
이는 네트워크의 클라이언트 시스템 확인자 구성에 대한 완전한 권한을 갖고 있는 경우에 작동합니다. 워크스테이션/클라이언트에 /etc/hosts 또는 /etc/resolv.conf를 변경/편집할 수 있는 권한이 있는 경우 이 옵션을 무시할 수 있습니다.
답변4
FORWARD 체인에 넣어야 합니다.
iptables -I FORWARD -m string --string "facebook.com" \
--algo bm --from 1 --to 600 -j REJECT
방화벽 외에 네트워크의 다른 시스템에도 영향을 미칩니다.