18.2. Squid 프록시

18.2.1. Squid 프록시 설치 및 설정

요약

다음 부분에서는 사용자 포털에서 Squid 프록시를 설치 및 설정하는 방법에 대해 설명합니다. Squid 프록시 서버는 컨텐츠 가속기로 사용됩니다. 이는 대역폭을 감소시키고 응답 시간을 개선하여 자주 확인되는 컨텐츠를 캐시합니다.

절차 18.4. Squid 프록시 설정

  1. Squid 프록시 서버의 HTTPS 포트 용 키 쌍 및 인증서를 가져옵니다. 이러한 키 쌍은 다른 SSL/TLS 서비스의 키 쌍을 얻는 방법과 동일한 방법으로 획득할 수 있습니다. 키 쌍은 개인 키 및 서명된 인증서가 들어 있는 두 개의 PEM 파일 형식으로 되어 있습니다. 이러한 절차에서는 이러한 파일 이름이 proxy.keyproxy.cer라고 지정되어 있다고 전제합니다.

    참고

    키 쌍 및 인증서는 engine 인증 기관을 사용하여 생성될 수 있습니다. 프록시에 대해 개인키와 인증서가 있어 engine 인증 기관을 통해 이를 생성하지 않으려면 다음 단계를 생략합니다.
  2. 프록시의 호스트 이름을 선택합니다. 그 후 프록시 용 고유의 인증서 이름의 다른 구성 요소를 선택합니다.

    참고

    engine 자체적으로 사용하는 것과 동일한 나라와 조직 이름을 사용하는 것이 좋습니다. Manager가 설치된 시스템에 로그인하고 다음과 같은 명령을 실행하여 정보를 찾을 수 있습니다:
    # openssl x509 -in /etc/pki/ovirt-engine/ca.pem -noout -subject
    
    이러한 명령의 출력 결과는 다음과 같습니다:
    subject= /C=US/O=Example Inc./CN=engine.example.com.81108
    
    여기서 관련된 부분은 /C=US/O=Example Inc.입니다. 이를 사용하여 프록시 인증서의 고유한 이름을 작성합니다:
    /C=US/O=Example Inc./CN=proxy.example.com
  3. 프록시 시스템에 로그인하고 인증서 서명 요청을 생성합니다:
    # openssl req -newkey rsa:2048 -subj '/C=US/O=Example Inc./CN=proxy.example.com' -nodes -keyout proxy.key -out proxy.req
    

    중요

    인용 부호를 사용하여 인증서 이름을 구별합니다. -nodes 옵션으로 개인키가 암호화되지 않도록합니다. 이는 프록시 서버를 시작할 때 암호를 입력할 필요가 없음을 의미합니다.
    이 명령은 proxy.keyproxy.req라는 두 개의 파일을 생성합니다. proxy.key는 개인키입니다. 이 파일을 안전한 장소에 보관합니다. proxy.req는 인증서 서명 요청 파일입니다. proxy.req에는 특별한 보안이 필요하지 않습니다.
  4. 서명된 인증서를 생성하려면 프록시 시스템에서 Manager 시스템으로 인증서 서명 요청 파일을 복사합니다:
    # scp proxy.req engine.example.com:/etc/pki/ovirt-engine/requests/.
    
  5. Manager 시스템에 로그인하고 인증서에 서명합니다:
    # /usr/share/ovirt-engine/bin/pki-enroll-request.sh --name=proxy --days=3650 --subject='/C=US/O=Example Inc./CN=proxy.example.com'
    
    이는 인증서를 서명하고 10년 (3650일) 동안 사용할 수 있습니다. 필요에 따라 인증서 만료 기간을 짧게 설정할 수 있습니다.
  6. 생성된 인증서 파일은 /etc/pki/ovirt-engine/certs 디렉토리에서 사용할 수 있으며 proxy.cer라고 이름을 지정해야 합니다. 프록시 시스템에 있는 Manager 시스템에서 현재 디렉토리로 이 파일을 복사합니다:
    # scp engine.example.com:/etc/pki/ovirt-engine/certs/proxy.cer .
    
  7. 프록시 시스템에 proxy.keyproxy.cer 모두가 표시되는지 확인합니다:
    # ls -l proxy.key proxy.cer
    
  8. 프록시 머신에 Squid 프록시 서버 패키지를 설치합니다:
    # yum install squid
    
  9. 개인키 및 서명된 인증서를 /etc/squid 디렉토리와 같이 프록시가 액세스할 수 있는 위치로 옮깁니다:
    # cp proxy.key proxy.cer /etc/squid/.
    
  10. squid 사용자가 이러한 파일을 읽을 수 있도록 권한을 설정합니다:
    # chgrp squid /etc/squid/proxy.*
    # chmod 640 /etc/squid/proxy.*
    
  11. Squid 프록시는 engine에 의해 사용되는 인증서를 확인합니다. Manager 인증서를 프록시 시스템에 복사합니다. 다음 예에서는 /etc/squid 파일 경로를 사용합니다:
    # scp engine.example.com:/etc/pki/ovirt-engine/ca.pem /etc/squid/.
    

    참고

    기본값 CA 인증서는 Manager 시스템 상의 /etc/pki/ovirt-engine/ca.pem에 위치합니다.
  12. squid 사용자가 인증서 파일을 읽을 수 있도록 권한을 설정합니다:
    # chgrp squid /etc/squid/ca.pem
    # chmod 640 /etc/squid/ca.pem
    
  13. SELinux가 강제 적용 모드일 경우 Squid가 포트 443을 사용할 수 있도록 허용하기 위해 semanage 도구를 사용하여 포트 443의 컨텍스트를 변경합니다:
    # yum install policycoreutils-python
    # semanage port -m -p tcp -t http_cache_port_t 443
    
  14. 기존 Squid 설정 파일을 다음으로 대체합니다:
    https_port 443 key=/etc/squid/proxy.key cert=/etc/squid/proxy.cer ssl-bump defaultsite=engine.example.com
    cache_peer engine.example.com parent 443 0 no-query originserver ssl sslcafile=/etc/squid/ca.pem name=engine
    cache_peer_access engine allow all
    ssl_bump allow all
    http_access allow all
    
  15. Squid 프록시 서버를 다시 시작합니다:
    # service squid restart
    
  16. 전체 URL을 사용하여 사용자 포털에 연결합니다. 예:
    https://proxy.example.com/UserPortal/org.ovirt.engine.ui.userportal.UserPortal/UserPortal.html

    참고

    https://proxy.example.com/UserPortal과 같이 짧은 형식의 URL은 작동하지 않습니다. 이러한 짧은 형식의 URL은 302 응답 코드와 위치 헤더를 사용하여 애플리케이션 서버에서 긴 형식의 URL로 리디렉션됩니다. Red Hat Enterprise Linux에서 Squid 버전은 이러한 헤더를 다시 작성하는 것을 지원하지 않습니다.

참고

기본 설정에서 Squid 프록시는 15 분 대기 상태 후 연결을 종료합니다. Squid 프록시가 연결 대기 상태를 종료하기 전 대기 시간을 늘리려면 squid.conf에 있는 read_timeout 옵션을 조정합니다 (예: read_timeout 10 hours).