사용자 ID를 iptables 규칙에 전달하도록 IPSec 구성

사용자 ID를 iptables 규칙에 전달하도록 IPSec 구성

안녕하세요, 저는 이 분야에 대해 매우 새로운 내용이므로 매우 구체적으로 설명해야 합니다.

VPN을 사용할 수 있도록 CentOS에 IPSec을 설정했습니다. 사용자 ID는 /etc/ppp/chap-secrets주로 내가 사용하는 설정 스크립트에서 작동하는 방식으로 저장됩니다.

이제 사용자를 기반으로 특정 웹사이트를 차단하는 몇 가지 규칙을 작성하고 싶습니다. 나는 시도했다:

iptables -t nat -A PREROUTING  -s badsite.com -m owner --uid-owner 100 -i eth0 -p tcp -s --dport 80 -j REDIRECT --to-destination http://myserver.com/blockedsitewarning

여기서 100은 내 아이의 Unix 계정 ID입니다. 하지만 이는 chap-secrets계정이 계정과 완전히 분리되어 있기 때문에 작동하지 않습니다 passwd.

동일한 인증 시스템과 사용자 ID를 사용하도록 IPSec 및/또는 iptables를 어떻게 구성합니까? 추상화나 매뉴얼 페이지 링크가 아닌 실제 구성 파일을 게시하십시오. 감사해요! ! !

답변1

당신은 이것을 아주 잘 할 수 없으며 아마도 어쨌든 작동하지 않을 것입니다.

"--목적지에 도달" 이유http://myserver.com/blockedsitewarning"사이트가 아닌 URL이고 iptablesURL에 대해 아무것도 모르기 때문에 작동하지 않습니다. TCP/IP 주소 및 포트 수준에서 작동합니다. 할 수 있는 최선의 방법은 "myserver.com"으로 리디렉션하는 것입니다.

또한 일부 웹사이트(예: google.com, Microsoft 및 일부 트래픽이 많은 포르노 사이트)에는 여러 IP 주소가 있거나 소위 "CDN"(콘텐츠 전송 네트워크)을 통해 액세스됩니다. iptables에 google.com을 차단하라고 지시하면 iptables해결될 것입니다.그 순간google.com 주소를 입력하고 그때부터 해당 번호를 사용하세요. 따라서 google.com의 DNS 시스템에서 반환된 주소를 차단하게 됩니다.쿼리에 대한 특정 순간에, 그리고 아마도 얼마 후에 동일한 쿼리가 반환될 것입니다.다른방금 주어진 규칙에 포함되지 않는 주소입니다.

예방하려면 어떻게 해야 할까요?웹사이트완전히 다른 것입니다.

  • 하나 설치투명 프록시호스트와 URL에 대한 모든 것을 알고 iptables포트 80 및 443을 localhost로 리디렉션하는 데 사용되는 Squid와 같습니다(이전 튜토리얼을 찾을 수 있음)여기하지만 Google은 당신의 친구입니다.) 이제 모든 트래픽이 를 iptables통해 전달됩니다 squid.
  • 오징어를 세팅해 보세요거부 목록- 당신은 그것을 사용할 수 있습니다오징어 가드하지만 '어린이 블랙리스트'를 게시하는 조직도 있다는 것을 알고 있습니다.
  • Squid에게 거부된 모든 액세스를 컴퓨터의 오류 페이지나 로컬 사이트에 매핑하도록 지시합니다.

관련 정보