squid proxy 를 활용한 object storage 접근 제어
특정 IP 만 object storage 에 접근하도록 설정하고 싶을 때 squid proxy 를 활용할 수 있다.
아래 링크에도 나오지만 폐쇄망에 존재하는 서버들이 object storage 또는 Yum repo 에 접근해야 할 때 참고할 수 있는 구성이다.
설치와 구성방법은 간단하다. 먼저 squid proxy 용도로 사용할 서버를 생성하고 object storage 에 접근할 수 있도록 Security Group 을 설정하고 아래와 같이 squid proxy 패키지를 설치한다.
필자의 경우에는 네이버클라우드플랫폼에 서버를 만들었고, object storage 에 접근할 때 squid proxy 를 통과하는지 확인하는 테스트 환경을 구성했다.
1. Client 서버와 Squid Proxy 서버 생성
- Client 서버 (squid proxy 를 통해 object storage 에 접근해야 하는 서버) : 10.45.XX.XX
- Squid proxy 서버 : 10.41.XXX.XXX
- object storage endpoint : kr.object.ncloudstorage.com
2. squid proxy 패키지 설치 (CentOS7 사용)
# yum install epel-release -y # yum install squid -y # systemctl start squid # systemctl enable squid |
3. squid proxy 설정
# vi /etc/squid/squid.conf ->> 아래와 같이 룰 추가
|
>> 설정 예제
4. Client 서버에 proxy 설정
http , https 프로토콜에 대해서는 squid proxy 서버로 통신할 것에 대한 설정을 추가함
squid proxy 는 3128 포트로 통신하기 때문에 squid proxy 서버의 security group 에 3128 inbound 가 허용되어야 한다.
또한 proxy.sh 설정 이후 ssh 로그아웃/로그인을 다시해야 export 설정이 적용된다.
# vi /etc/profile.d/proxy.sh -> proxy.sh 없을 경우 신규로 생성
|
이제 squid proxy 사용을 위한 설정은 완료되었다. client 서버에서 object storage 로 접근할 때 squid proxy 를 통과하는지 확인해 보도록 한다.
Client 서버에서 object storage 에 업로드 한 파일을 Curl 로 호출해 본다.
# curl -v https://kr.object.ncloudstorage.com/bucketXX/vpntest/index.html -l |
object storage 의 주소를 호출했으나 proxy 서버인 10.41.1XX.1XX IP 로 접속을 시도한 후 http proxy tunnel 을 통해 object storage 에 접근하는 것을 확인할 수 있다.
Squid proxy 서버에서 access log 를 확인해 보면 client 서버 IP 인 10.45.XX.XX 에서 squid proxy 에 접근한 로그를 확인할 수 있다.
# tail -f /var/log/squid/access.log |