E.2. squid Proxy
E.2.1. Squid 프록시 설치 및 구성
이 섹션에서는 VM 포털에 Squid 프록시를 설치하고 구성하는 방법을 설명합니다. Squid 프록시 서버는 콘텐츠 가속기로 사용됩니다. 자주 보는 콘텐츠를 캐시하고 대역폭을 줄이고 응답 시간을 개선합니다.
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 login=PASSTHRU cache_peer_access engine allow all ssl_bump allow all http_access allow all
Squid 프록시 서버를 다시 시작합니다.
# systemctl restart squid.service
기본 구성의 squid Proxy는 15개의 유휴 분 후에 연결을 종료합니다. Squid Proxy가 유휴 연결을 종료하기 전의 시간을 늘리려면 squid.conf (예: read_timeout
10 시간 )에서 read_timeout옵션을 조정합니다.