16.3. Kerberos 인증을 사용하여 캐싱 프록시 설정


이 섹션에서는 Kerberos를 사용하여 사용자를 AD(Active Directory) 인증하는 캐싱 프록시로 Squid의 기본 구성에 대해 설명합니다. 이 절차에서는 인증된 사용자만 프록시를 사용할 수 있도록 구성됩니다.

사전 요구 사항

  • 이 절차에서는 /etc/squid/squid.conf 파일이 squid 패키지에서 제공하는 것으로 가정합니다. 이전에 이 파일을 편집한 경우 파일을 제거하고 패키지를 다시 설치합니다.
  • Squid를 설치할 서버는 AD 도메인의 멤버입니다. 자세한 내용은 Red Hat Enterprise Linux 7 시스템 관리자 가이드에서 Samba를 도메인 멤버로 설정을 참조하십시오.

절차

  1. 다음 패키지를 설치합니다.
    # yum install squid krb5-workstation
    Copy to Clipboard Toggle word wrap
  2. AD 도메인 관리자로 인증합니다.
    # kinit administrator@AD.EXAMPLE.COM
    Copy to Clipboard Toggle word wrap
  3. Squid에 사용할 키탭을 생성하고 /etc/squid/HTTP.keytab 파일에 저장합니다.
    # export KRB5_KTNAME=FILE:/etc/squid/HTTP.keytab
    # net ads keytab CREATE -U administrator
    Copy to Clipboard Toggle word wrap
  4. HTTP 서비스 주체를 keytab에 추가합니다.
    # net ads keytab ADD HTTP -U administrator
    Copy to Clipboard Toggle word wrap
  5. 키탭 파일의 소유자를 squid 사용자로 설정합니다.
    # chown squid /etc/squid/HTTP.keytab
    Copy to Clipboard Toggle word wrap
  6. 필요한 경우 키탭 파일에 프록시 서버의 FQDN(정규화된 도메인 이름)에 대한 HTTP 서비스 주체가 포함되어 있는지 확인합니다.
    #  klist -k /etc/squid/HTTP.keytab
    Keytab name: FILE:/etc/squid/HTTP.keytab
    KVNO Principal
    ---- --------------------------------------------------------------------------
    ...
       2 HTTP/proxy.ad.example.com@AD.EXAMPLE.COM
    ...
    
    Copy to Clipboard Toggle word wrap
  7. /etc/squid/squid.conf 파일을 편집합니다.
    1. negotiate_kerberos_auth 도우미 유틸리티를 구성하려면 /etc/squid/squid.conf의 맨 위에 다음 설정 항목을 추가하십시오.
      auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -k /etc/squid/HTTP.keytab -s HTTP/proxy.ad.example.com@AD.EXAMPLE.COM
      Copy to Clipboard Toggle word wrap
      다음은 위의 예제에서 negotiate_kerberos_auth 도우미 유틸리티에 전달된 매개변수를 설명합니다.
      • -K 파일 은 키 탭 파일의 경로를 설정합니다. squid 사용자는 이 파일에 대한 읽기 권한이 있어야 합니다.
      • -s HTTP/host_name@kerberos_realm 은 Squid에서 사용하는 Kerberos 주체를 설정합니다.
      선택적으로 다음 매개변수 중 하나 또는 둘 다를 도우미 유틸리티에 전달하여 로깅을 활성화할 수 있습니다.
      • -I는 인증 사용자와 같은 정보 메시지를 기록합니다.
      • -d 는 디버그 로깅을 활성화합니다.
      squid는 도우미 유틸리티의 디버깅 정보를 /var/log/squid/cache.log 파일에 기록합니다.
    2. Squid가 인증된 사용자만 프록시를 사용하도록 허용하는 다음 ACL 및 규칙을 추가합니다.
      acl kerb-auth proxy_auth REQUIRED
      http_access allow kerb-auth
      Copy to Clipboard Toggle word wrap
      중요
      http_access가 모든 규칙을 거부하기 전에 이러한 설정을 지정합니다.
    3. 다음 규칙을 제거하여 localnet ACL에 지정된 IP 범위에서 프록시 인증을 우회하지 않도록 비활성화합니다.
      http_access allow localnet
      Copy to Clipboard Toggle word wrap
    4. 다음 ACL은 기본 구성에 있으며 HTTPS 프로토콜을 사용하는 포트로 443 을 정의합니다.
      acl SSL_ports port 443
      Copy to Clipboard Toggle word wrap
      사용자가 다른 포트에서도 HTTPS 프로토콜을 사용할 수 있어야 하는 경우 다음 각 포트에 대한 ACL을 추가합니다.
      acl SSL_ports port port_number
      Copy to Clipboard Toggle word wrap
    5. 연결을 설정할 수 있는 포트를 구성하도록 aclSafe_ports 규칙 목록을 업데이트합니다. 예를 들어 프록시를 사용하여 클라이언트가 포트 21(FTP), 80(HTTP) 및 443(HTTPS)의 리소스에만 액세스할 수 있도록 구성하려면 구성에서 다음 aclSafe_ports 문만 유지합니다.
      acl Safe_ports port 21
      acl Safe_ports port 80
      acl Safe_ports port 443
      Copy to Clipboard Toggle word wrap
      기본적으로 이 구성에는 Safe_ports ACL에 정의되지 않은 포트에 대한 액세스 거부를 정의하는 http_access deny !Safe _ports 규칙이 포함됩니다.
    6. cache 유형, 캐시 디렉터리의 경로, 캐시 크기 및 cache _dir 매개변수의 추가 캐시 유형별 설정을 구성합니다.
      cache_dir ufs /var/spool/squid 10000 16 256
      Copy to Clipboard Toggle word wrap
      다음 설정이 필요합니다.
      • squid는 ufs 캐시 유형을 사용합니다.
      • Squid는 캐시를 /var/spool/squid/ 디렉터리에 저장합니다.
      • 캐시는 최대 10000 MB까지 증가합니다.
      • squid는 /var/spool/squid/ 디렉토리에 16 level-1 하위 디렉토리를 만듭니다.
      • Squid는 각 level-1 디렉토리에 256 개의 하위 디렉토리를 생성합니다.
      cache_dir 지시문을 설정하지 않으면 Squid는 캐시를 메모리에 저장합니다.
  8. cache _dir 매개변수에서 /var/spool/squid/ 와 다른 캐시 디렉토리를 설정하는 경우:
    1. 캐시 디렉토리를 생성합니다.
      # mkdir -p path_to_cache_directory
      Copy to Clipboard Toggle word wrap
    2. 캐시 디렉토리에 대한 권한을 구성합니다.
      # chown squid:squid path_to_cache_directory
      Copy to Clipboard Toggle word wrap
    3. 강제 모드에서 SELinux를 실행하는 경우 캐시 디렉터리에 대한 squid_cache_t 컨텍스트를 설정합니다.
      # semanage fcontext -a -t squid_cache_t "path_to_cache_directory(/.*)?"
      # restorecon -Rv path_to_cache_directory
      Copy to Clipboard Toggle word wrap
      semanage 유틸리티를 시스템에서 사용할 수 없는 경우 policycoreutils-python-utils 패키지를 설치합니다.
  9. 방화벽에서 3128 포트를 엽니다.
    # firewall-cmd --permanent --add-port=3128/tcp
    # firewall-cmd --reload
    Copy to Clipboard Toggle word wrap
  10. squid 서비스를 시작합니다.
    # systemctl start squid
    Copy to Clipboard Toggle word wrap
  11. 시스템이 부팅될 때 squid 서비스가 자동으로 시작되도록 활성화합니다.
    # systemctl enable squid
    Copy to Clipboard Toggle word wrap

검증 단계

프록시가 올바르게 작동하는지 확인하려면 curl 유틸리티를 사용하여 웹 페이지를 다운로드합니다.
# curl -O -L "https://www.redhat.com/index.html" --proxy-negotiate -u : -x "proxy.ad.example.com:3128"
Copy to Clipboard Toggle word wrap
curl 에서 오류를 표시하지 않고 index.html 파일이 현재 디렉터리에 있는 경우 프록시가 작동합니다.

문제 해결 단계

Kerberos 인증을 수동으로 테스트하려면 다음을 수행합니다.
  1. AD 계정에 대한 Kerberos 티켓을 받습니다.
    # kinit user@AD.EXAMPLE.COM
    Copy to Clipboard Toggle word wrap
  2. 선택적으로 티켓을 표시합니다.
    # klist
    Copy to Clipboard Toggle word wrap
  3. negotiate_kerberos_auth_test 유틸리티를 사용하여 인증을 테스트합니다.
    # /usr/lib64/squid/negotiate_kerberos_auth_test proxy.ad.example.com
    Copy to Clipboard Toggle word wrap
    도우미 유틸리티에서 토큰을 반환하면 인증이 성공했습니다.
    Token: YIIFtAYGKwYBBQUCoIIFqDC...
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat