F.2. Squiid 프록시
F.2.1. Squid 프록시 설치 및 구성
이 섹션에서는 VM 포털에 대한 Squid 프록시를 설치하고 구성하는 방법을 설명합니다. Squid 프록시 서버는 컨텐츠 액셀러레이터로 사용됩니다. 자주 표시되는 콘텐츠를 캐시하고 대역폭을 줄이고 응답 시간을 개선합니다.
절차
Squid 프록시 서버의 HTTPS 포트에 대한 키 쌍 및 인증서를 가져옵니다. 이 키 쌍을 다른 SSL/TLS 서비스의 키 쌍을 가져오는 것과 동일한 방식으로 가져올 수 있습니다. 키 쌍은 개인 키와 서명된 인증서를 포함하는 두 개의 PEM 파일의 형식입니다. 이 절차에서는 이름이 proxy .key 및 proxy. cer 라고 가정합니다.
참고엔진의 인증 기관을 사용하여 키 쌍 및 인증서를 생성할 수도 있습니다. 프록시에 대한 개인 키와 인증서가 이미 있고 엔진 인증 기관을 사용하여 생성하지 않으려면 다음 단계로 건너뜁니다.
프록시의 호스트 이름을 선택합니다. 그런 다음 프록시의 고유 이름인 다른 구성 요소를 선택합니다.
참고엔진 자체에서 사용하는 동일한 국가와 동일한 조직 이름을 사용하는 것이 좋습니다. Manager가 설치된 시스템에 로그인하고 다음 명령을 실행하여 이 정보를 찾습니다.
openssl x509 -in /etc/pki/ovirt-engine/ca.pem -noout -text | grep DirName
이 명령은 다음과 같이 출력됩니다.
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
프록시 머신에 로그인하고 인증서 서명 요청을 생성합니다.
# 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 프록시 서버 패키지를 설치합니다.
# dnf install squid
개인 키와 서명된 인증서를 프록시가 액세스할 수 있는 위치로 이동합니다(예: /etc/squid 디렉토리).
# cp proxy.key proxy.cer /etc/squid/.
squid
사용자가 다음 파일을 읽을 수 있도록 권한을 설정합니다.# chgrp squid /etc/squid/proxy.* # chmod 640 /etc/squid/proxy.*
Squid 프록시는 엔진에서 사용하는 인증서를 확인해야 합니다. 관리자 인증서를 프록시 머신에 복사합니다. 이 예에서는 파일 경로 /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가 강제 모드인 경우 Squid가 포트 443을 사용하도록
semanage
도구를 사용하여 포트 443의 컨텍스트를 변경합니다.# dnf 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 프록시는 15분 후에 연결을 종료합니다. Squid Proxy가 유휴 연결을 종료하기 전의 시간을 늘리려면 squid.conf (예: read_timeout
10 시간)에서 read_timeout옵션을 조정하십시오.