[linux] 리눅스에 프록시 서버 간단구축
급하게 프록시서버를 구축할 일이 있어서.. 언제나 그렇듯 구글링을 잠간 해봤다.
아래 글을 보고 apache를 통한 프록시 구성을 해보고, 나중에 내가 보려고 간략히 적어놓는다.
(↓↓원본 출처)
우선.. 프록시도 2가지가 있다.
- Forward Proxy : 일반적으로 아는 프록시. 사용자 앞단에서 사용자를 대신해서 웹서핑을 해준다.
- Reverse Proxy : 서버 앞단에서.. 서버 대신 응대를 해준다.
부하분산 목적 또는 보안 이슈가 있을경우 혹은 서버 내에 내부서비스가 존재할 경우 사용.
난 간단하게 포워드 프록시 사용하기 위해 구축
다음은 설정방법
우선 Proxy 모듈 활성화
user@debian:~$ su - root@debian:~# a2enmod ssl root@debian:~# a2enmod proxy root@debian:~# a2enmod proxy_connect root@debian:~# a2enmod proxy_ajp root@debian:~# a2enmod proxy_balancer root@debian:~# a2enmod proxy_html root@debian:~# a2enmod proxy_http
Forward Proxy를 위한 설정
우선 사이트 설정에서 VirtualHost 설정
root@debian:~# vi /etc/apache2/sites-enabled/000-default.conf ## 파일에 추가 <VirtualHost *:8080> ProxyRequests On ProxyVia On # <Proxy "*"> # Require ip 0.0.0.0 # </Proxy> ErrorLog ${APACHE_LOG_DIR}/error_forward_proxy.log CustomLog ${APACHE_LOG_DIR}/access_forward_proxy.log combined </VirtualHost>
특정 IP에서만 접속을 허용하고 싶다면, 주석처리 해놓은 부분을 해제하고 Require ip 에 특정 ip를 입력한다.
그리고 8080포트를 사용하지 않았다면 포트설정에 추가
root@debian:~# vi /etc/apache2/ports.conf ## 파일에 추가 Listen 8080
설정이 끝났으면 서비스 재시작
root@debian:~# service apache2 restart
일단 간단히 사용해보는데.. 잘 되는것 같다.
Reverse Proxy 설정은… 귀찮다.. 일단 코드만 남겨놓는다.
자세한 건 위 원본링크 확인하기 바람.
<VirtualHost *:443> ServerName hiseon.me SSLEngine on SSLCertificateKeyFile /etc/ssl/hiseon.me/privkey.pem SSLCertificateFile /etc/ssl/hiseon.me/cert.pem SSLCertificateChainFile /etc/ssl/hiseon.me/fullchain.pem SSLProxyEngine On SSLProxyCACertificateFile /etc/ssl/hiseon.me/fullchain.pem ProxyPreserveHost On ProxyRequests Off ProxyPass / https://172.17.0.2:443/ ProxyPassReverse / https://172.17.0.2:443/ ErrorLog ${APACHE_LOG_DIR}/hiseon.me.error.log CustomLog ${APACHE_LOG_DIR}/hiseon.me.access.log combined <Directory /> AllowOverride All Options All Require all granted </Directory> </VirtualHost>
위의 웹 서버 설정은 https://hiseon.me 의 요청을 내부망 (172.17.0.2)으로 전달하여 처리하는 내용이라 함.
Forward Proxy 설정은 SSL 연결을 그대로 전달하여 인증서가 없지만 Reverse Proxy 의 경우 내부적으로 요청을 처리해야 하기 때문에 SSL 인증서가 필요하다 함.