20.2. squid Proxy
20.2.1. Squid 프록시 설치 및 구성
요약
이 섹션에서는 사용자 포털에 Squid 프록시를 설치하고 구성하는 방법을 설명합니다. Squid 프록시 서버는 콘텐츠 가속기로 사용됩니다. 자주 보는 콘텐츠를 캐시하고 대역폭을 줄이고 응답 시간을 개선합니다.
절차 20.4. Squid 프록시 구성
- Squid 프록시 서버의 HTTPS 포트에 대한 키 쌍 및 인증서를 가져옵니다. 이 키 쌍은 다른 SSL/TLS 서비스에 대한 키 쌍을 가져오는 것과 동일한 방식으로 가져올 수 있습니다. 키 쌍은 개인 키와 서명된 인증서를 포함하는 두 개의 PEM 파일 형식으로 되어 있습니다. 이 절차에서는 이름이
proxy.key
및proxy.cer
인 것으로 가정합니다.참고키 쌍 및 인증서는 엔진의 인증 기관을 사용하여 생성할 수도 있습니다. 프록시의 개인 키와 인증서가 있고 엔진 인증 기관을 사용하여 생성하지 않으려면 다음 단계로 건너뜁니다. - 프록시의 호스트 이름을 선택합니다. 그런 다음 프록시에 대한 인증서 고유 이름의 다른 구성 요소를 선택합니다.참고엔진 자체에서 사용하는 것과 동일한 국가와 동일한 조직 이름을 사용하는 것이 좋습니다. 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=ECDHE Inc.
입니다. 이를 사용하여 프록시의 인증서에 대한 완전한 고유 이름을 빌드합니다./C=US/O=Example Inc./CN=proxy.example.com
- 프록시 시스템에 로그인하고 인증서 서명 요청을 생성합니다.
# openssl req -newkey rsa:2048 -subj '/C=US/O=Example Inc./CN=proxy.example.com' -nodes -keyout proxy.key -out proxy.req
중요인증서의 고유 이름에 따옴표를 포함해야 합니다. -nodes 옵션을 사용하면 개인 키가 암호화되지 않도록 합니다. 즉, 프록시 서버를 시작하기 위해 암호를 입력할 필요가 없습니다.이 명령은proxy.key
및proxy.req
파일 두 개를 생성합니다.proxy.key
는 개인 키입니다. 이 파일을 안전하게 보관하십시오.proxy.req
는 인증서 서명 요청입니다.proxy.req
에는 특별한 보호 기능이 필요하지 않습니다. - 서명된 인증서를 생성하려면 프록시 시스템에서 Manager 시스템으로 인증서 서명 요청 파일을 복사합니다.
# scp proxy.req engine.example.com:/etc/pki/ovirt-engine/requests/.
- 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일) 동안 유효합니다. 원하는 경우 이전에 만료되도록 인증서를 설정합니다. - 생성된 인증서 파일은
/etc/pki/ovirt-engine/certs
디렉터리에서 사용할 수 있으며 이름이proxy.cer
여야 합니다. 프록시 시스템에서 Manager 시스템에서 현재 디렉터리로 이 파일을 복사합니다.# scp engine.example.com:/etc/pki/ovirt-engine/certs/proxy.cer .
- 프록시 시스템에
proxy.key
및proxy.cer
이 모두 있는지 확인합니다.# ls -l proxy.key proxy.cer
- 프록시 시스템에 Squid 프록시 서버 패키지를 설치합니다.
# yum install squid
- 개인 키와 서명된 인증서를 프록시가 액세스할 수 있는 위치로 이동합니다(예:
/etc/squid
디렉토리).# cp proxy.key proxy.cer /etc/squid/.
squid
사용자가 다음 파일을 읽을 수 있도록 권한을 설정합니다.# chgrp squid /etc/squid/proxy.* # chmod 640 /etc/squid/proxy.*
- Squid 프록시는 엔진에서 사용하는 인증서를 확인해야 합니다. Manager 인증서를 프록시 시스템에 복사합니다. 이 예에서는 파일 경로
/etc/squid
:를 사용합니다.# scp engine.example.com:/etc/pki/ovirt-engine/ca.pem /etc/squid/.
참고기본 CA 인증서는 Manager 시스템의/etc/pki/ovirt-engine/ca.pem
에 있습니다. squid
사용자가 인증서 파일을 읽을 수 있도록 권한을 설정합니다.# chgrp squid /etc/squid/ca.pem # chmod 640 /etc/squid/ca.pem
- SELinux가 강제 모드인 경우 semanage 툴을 사용하여 포트 443 컨텍스트를 변경하여 Squid가 포트 443을 사용하도록 허용합니다.
# yum install policycoreutils-python # semanage port -m -p tcp -t http_cache_port_t 443
- 기존 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
- Squid 프록시 서버를 다시 시작합니다.
# systemctl restart squid.service
- 전체 URL을 사용하여 사용자 포털에 연결합니다. 예를 들면 다음과 같습니다.
https://proxy.example.com/UserPortal/org.ovirt.engine.ui.userportal.UserPortal/UserPortal.html
참고더 짧은 URL(예:https://proxy.example.com/UserPortal
)이 작동하지 않습니다. 이러한 짧은 URL은 302 응답 코드와 Location 헤더를 사용하여 애플리케이션 서버에서 긴 URL로 리디렉션됩니다. Red Hat Enterprise Linux의 Squid 버전은 이러한 헤더 재작성 기능을 지원하지 않습니다.
참고
기본 구성의 squid Proxy는 15개의 유휴 분 후에 연결을 종료합니다. Squid Proxy가 유휴 연결을 종료하기 전의 시간을 늘리려면
squid.conf
에서 read_timeout
옵션을 조정합니다(예: read_timeout 10 hours
).