GCE에서 Squid를 사용하는 Proxy Server 입법
8675 단어 GCPGCEsquidproxyservertech
Squid 소개
Squid는 HTTP, HTTPS, FTP 등에 대응하는 caching proxy입니다.캐시와 자주 방문하는 사이트를 다시 사용하면 대역폭을 줄이고 응답 시간을 높일 수 있다.Squid는 광범위한 액세스 제어 기능을 갖추고 있어 서버의 기능을 향상시킬 수 있다.UNIX 및 Windows에서 실행되며 GNUGPL에서 라이센스를 받을 수 있습니다.
VM 인스턴스 만들기
※ 기재된 곳은 특별한 변경이 없습니다.
외부 IP의 예약 및 응용
방문지 등에 IP 제한을 두는 등 특정 IP 주소를 프록시 서버에 적용하려면 VPC 네트워크→외부 IP 주소 중 예약 후 적용할 VM 인스턴스를 선택해 대응한다.
VM 인스턴스에 SSH 연결
생성된 VM 인스턴스의 SSH 버튼에서 gcloud 명령을 가져와 실행하고 인스턴스에 연결하십시오.
Squid 설정
Squid 설치
sudo apt install squid
설치 완료 후 버전 확인sudo squid -v
squid.conf 설정
초기 설정을 보고 싶다면 아래 명령을 통해 확인할 수 있다.
$ grep -v '^#' /etc/squid/squid.conf | grep -v '^$'
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
include /etc/squid/conf.d/*
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims
refresh_pattern \/InRelease$ 0 0% 0 refresh-ims
refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern . 0 20% 4320
이하vim 열기sudo vim /etc/squid/squid.conf
1907행 포트 8080에서 192.168.0.2의 고객이 액세스할 수 있는 프록시 서버로 구성됩니다.http_port 8080
제1193행은 고객의 요청 허가를 받았다.acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
전송 소스 IP로 클라이언트 IP를 1196 행에 설정합니다.※ 클라이언트 IP 웹 사이트https://www.cman.jp/network/support/go_access.cgi 획득 가능
acl src allowaddress <client ip>/255.255.255.255
1392~1394 행에 방금 추가한 allowaddress
추가http_access allow localhost manager allowaddress
http_access deny manager
http_access allow allowaddress
최종적으로 다음과 같다.$ grep -v '^#' /etc/squid/squid.conf | grep -v '^$'
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl allowaddress src <client ip>/255.255.255.255
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager allowaddress
http_access deny manager
http_access allow allowaddress
include /etc/squid/conf.d/*
http_access allow localhost
http_access deny all
http_port 8080
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims
refresh_pattern \/InRelease$ 0 0% 0 refresh-ims
refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern . 0 20% 4320
squid.이상은conf의 설정입니다.설정을 반영하기 위해 squid를 다시 불러옵니다.다시 불러온 후 squid.conf 오류 등이 있으면 squid가 시작되지 않습니다. 정상적으로 시작되었는지 확인하십시오
액티브가 active라면 문제 없어요.만약 문제가 발생하면 아래에 오류 로그 등이 있을 테니 그 문제를 해결해 주세요.
$ sudo systemctl reload squid
포트 해방(방화벽 규칙 제작)
포트에 접근할 수 있습니다.
https://www.cman.jp/network/support/go_access.cgi 사이트를 통해 알 수 있는 IP 등
VM 인스턴스에 적용
인터넷 라벨이 이미
http-server
https-server
있다고 생각합니다. 거기에 방금 만든 use-8080
를 추가해 주세요.고객의 포트가 비어 있는 SSH 요청인지 여부
VM 인스턴스 생성 시 설정된 ssh의 공개 키 확인 포트 사용
$ sudo systemctl status squid
해방전
ssh -i ~/.ssh/<file_name> -v -p 8080 <vmインスタンス外部ip>
해방 후
$ ssh -i ~/.ssh/<file_name> -v -p 8080 <vmインスタンス外部ip>
...
ssh: connect to host <VMインスタンスIP> port 8080: Operation timed out
Curl로 프록시 소통 확인
200OK면 주문방송 정상 통과했으니까 소통 확인 완료!
$ ssh -i ~/.ssh/<file_name> -v -p 8080 <vmインスタンス外部ip>
...
debug1: Connection established.
...
ssh_exchange_identification: Connection closed by remote host
프록시 서버 사용
프록시 서버가 시작되었으니 Chrome에서 확장된 Proxy Helper를 사용하여 클라이언트 IP와 프록시 서버를 쉽게 전환할 수 있습니다!
Reference
이 문제에 관하여(GCE에서 Squid를 사용하는 Proxy Server 입법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/watson_sei/articles/aa179621734e22텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)