16.2. LDAP 인증을 사용하여 캐싱 프록시로 Squid 설정


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

사전 요구 사항

  • 이 절차에서는 /etc/squid/squid.conf 파일이 squid 패키지에서 제공하는 것으로 가정합니다. 이전에 이 파일을 편집한 경우 파일을 제거하고 패키지를 다시 설치합니다.
  • uid=proxy_user,cn=users,cn=accounts,dc=example,dc=com 과 같은 서비스 사용자가 LDAP 디렉터리에 있습니다. Squid는 이 계정을 인증 사용자를 검색하기 위해서만 사용합니다. 인증 사용자가 있는 경우 Squid는 이 사용자로 을 디렉터리에 바인딩하여 인증을 확인합니다.

절차

  1. squid 패키지를 설치합니다.
    # yum install squid
    Copy to Clipboard Toggle word wrap
  2. /etc/squid/squid.conf 파일을 편집합니다.
    1. basic_ldap_auth 도우미 유틸리티를 구성하려면 /etc/squid/squid.conf의 맨 위에 다음 설정 항목을 추가하십시오.
      auth_param basic program /usr/lib64/squid/basic_ldap_auth -b "cn=users,cn=accounts,dc=example,dc=com" -D "uid=proxy_user,cn=users,cn=accounts,dc=example,dc=com" -W /etc/squid/ldap_password -f "(&(objectClass=person)(uid=%s))" -ZZ -H ldap://ldap_server.example.com:389
      Copy to Clipboard Toggle word wrap
      다음은 위의 예제에서 basic_ldap_auth 도우미 유틸리티에 전달된 매개변수를 설명합니다.
      • -B base_DN 은 LDAP 검색 기반을 설정합니다.
      • -d proxy_service_user_DN 은 디렉터리의 인증 사용자를 검색하는 데 Squid 사용 계정의 DN(고유 이름)을 설정합니다.
      • -w path_to_password_file 은 프록시 서비스 사용자의 암호가 포함된 파일의 경로를 설정합니다. 암호 파일을 사용하면 운영 체제의 프로세스 목록에 암호가 표시되지 않습니다.
      • -f LDAP_filter 는 LDAP 검색 필터를 지정합니다. Squid는 인증 사용자가 제공하는 사용자 이름으로 %s 변수를 대체합니다.
        예제의 (&(objectClass=person)(uid=%s)) 필터는 사용자 이름이 uid 특성에 설정된 값과 일치해야 하고 디렉터리 항목에 person 오브젝트 클래스가 포함되어 있음을 정의합니다.
      • -ZZSTARTTLS 명령을 사용하여 LDAP 프로토콜에 TLS 암호화 연결을 적용합니다. 다음과 같은 상황에서 -ZZ 를 생략합니다.
        • LDAP 서버는 암호화된 연결을 지원하지 않습니다.
        • URL에 지정된 포트는 LDAPS 프로토콜을 사용합니다.
      • H LDAP_URL 매개 변수는 프로토콜, 호스트 이름 또는 IP 주소, LDAP 서버의 포트를 URL 형식으로 지정합니다.
    2. Squid가 인증된 사용자만 프록시를 사용하도록 허용하는 다음 ACL 및 규칙을 추가합니다.
      acl ldap-auth proxy_auth REQUIRED
      http_access allow ldap-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는 캐시를 메모리에 저장합니다.
  3. 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 패키지를 설치합니다.
  4. LDAP 서비스 사용자의 암호를 /etc/squid/ldap_password 파일에 저장하고 파일에 적절한 권한을 설정합니다.
    # echo "password" > /etc/squid/ldap_password
    # chown root:squid /etc/squid/ldap_password
    # chmod 640 /etc/squid/ldap_password
    Copy to Clipboard Toggle word wrap
  5. 방화벽에서 3128 포트를 엽니다.
    # firewall-cmd --permanent --add-port=3128/tcp
    # firewall-cmd --reload
    Copy to Clipboard Toggle word wrap
  6. squid 서비스를 시작합니다.
    # systemctl start squid
    Copy to Clipboard Toggle word wrap
  7. 시스템이 부팅될 때 squid 서비스가 자동으로 시작되도록 활성화합니다.
    # systemctl enable squid
    Copy to Clipboard Toggle word wrap

검증 단계

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

문제 해결 단계

도우미 유틸리티가 올바르게 작동하는지 확인하려면 다음을 수행하십시오.
  1. auth_param 매개변수에 사용한 것과 동일한 설정으로 도우미 유틸리티를 수동으로 시작합니다.
    # /usr/lib64/squid/basic_ldap_auth -b "cn=users,cn=accounts,dc=example,dc=com" -D "uid=proxy_user,cn=users,cn=accounts,dc=example,dc=com" -W /etc/squid/ldap_password -f "(&(objectClass=person)(uid=%s))" -ZZ -H ldap://ldap_server.example.com:389
    Copy to Clipboard Toggle word wrap
  2. 유효한 사용자 이름과 암호를 입력하고 Enter 키를 누릅니다.
    user_name password
    Copy to Clipboard Toggle word wrap
    도우미 유틸리티에서 OK 를 반환하면 인증이 성공했습니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat