squid3.5 Proxy 서버 구축(RHEL7.3)
개요
지금까지의 복습은 Linux 7 시스템으로 각종 서버를 구축하는 1탄을 겸하고 있다.
비즈니스 환경에서 구축해 운용한 적이 없으며 약 10년 전 사내 검증 환경에서 살짝 구축해 보았습니다.
squid 버전: 3.5.20
squid 설정 파일:/etc/squid/squid.conf
로그 파일 액세스:/var/log/squid/access.log
OS 버전: RHEL7.3
해보자.
AWS에서 PC에서 제작된 Proxy를 탐색하는 것이 목표입니다.
사전 준비
AWS에서 PC에서 제작된 Proxy를 탐색하는 것이 목표입니다.
사전 준비
RHEL7.3에서 인스턴스를 생성합니다.
기본 설정은 OK입니다. 마음에 드시면 로켈을 변경하십시오.
※ 일지 방문 시간
입국 프록시 서버에서 기다리는 포트를 허용해 주십시오.
squid 기본값은 31288080과 8008도 가능합니다.
squid 설치
기본적으로 squid가 설치되어 있지 않기 때문에yum에 설치합니다.
[ec2-user@ip-172-XX-XX-XX ~]$ sudo yum install squid
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package squid.x86_64 7:3.5.20-2.el7_3.3 will be installed
--> Processing Dependency:/usr/bin/perl for package: 7:squid-3.5.20-2.el7_3.3.x86_64
--> Processing Dependency: perl(DBI) for package: 7:squid-3.5.20-2.el7_3.3.x86_64
--> Processing Dependency: perl(Data::Dumper) for package: 7:squid-3.5.20-2.el7_3.3.x86_64
--> Processing Dependency: perl(Digest::MD5) for package: 7:squid-3.5.20-2.el7_3.3.x86_64
--> Processing Dependency: perl(English) for package: 7:squid-3.5.20-2.el7_3.3.x86_64
--> Processing Dependency: perl(FileHandle) for package: 7:squid-3.5.20-2.el7_3.3.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 7:squid-3.5.20-2.el7_3.3.x86_64
(생략)
perl-macros.x86_64 4:5.16.3-291.el7
perl-parent.noarch 1:0.225-244.el7
perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7
squid-migration-script.x86_64 7:3.5.20-2.el7_3.3
Complete!
[ec2-user@ip-172-XX-XX-XX ~]$
설치 완료!
설정
이번에는 단순히 고객의 PC에서 구축된 Proxy 서버를 통해 웹 조회를 할 수 있었으면 좋겠습니다.
설정 절차는 다음과 같다.
1. 프록시 서버에 연결할 수 있는 클라이언트 설정
2. 그룹을 명시적으로 승인하고 거부 설정
3. 포트 설정
4.squid 재시작
프록시 서버에 연결할 수 있는 클라이언트 설정
/etc/squid/squid.conf를 편집합니다.
기본적으로 주 내부 네트워크의 주소는 다음과 같습니다.
/# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
이번에는 상관없기 때문에 위의 기재를 모두 논평하고 자신의 IP 기록을 조사한다.
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#acl localnet src fc00::/7 # RFC 4193 local private network range
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl localnet src 115.XXX.XX.XX/32 #me
그룹을 명시적으로 허용하고 마지막으로 설정을 거부합니다.
기본적으로 localnet,localhost는 허용되며, 마지막으로deny all가 있기 때문에 확인만 합니다.
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
포트 설정
squid에서 기본적으로 3128을 기다립니다.
# Squid normally listens to port 3128
http_port 3128
변경하고 싶을 때, 이곳의 포트 번호를 수정합니다.
squid 시작
설정이 완료되면 파일을 저장하고 squid를 시작합니다.
[ec2-user@ip-172-XX-XX-XX ~]$ *sudo systemctl start *
상태를 확인하다.
[ec2-user@ip-172-XX-XX-XX ~]$ sudo systemctl status
\● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2017-05-04 23:31:27 EDT; 5s ago
Process: 16605 ExecStart=/usr/sbin/squid\$SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 16600 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
Main PID: 16609 (squid)
CGroup:/system.slice/squid.service
tq16609/usr/sbin/squid -f/etc/squid/squid.conf
tq16611 (squid-1) -f/etc/squid/squid.conf
mq16612 (logfile-daemon)/var/log/squid/access.log
May 04 23:31:27 ip-172-XX-XX-XX.us-west-2.compute.internal systemd[1]: Starti...
May 04 23:31:27 ip-172-XX-XX-XX.us-west-2.compute.internal systemd[1]: Starte...
May 04 23:31:27 ip-172-XX-XX-XX.us-west-2.compute.internal squid[16609]: Squi...
May 04 23:31:27 ip-172-XX-XX-XX.us-west-2.compute.internal squid[16609]: Squi...
Hint: Some lines were ellipsized, use -l to show in full.
[ec2-user@ip-172-XX-XX-XX ~]$
겸사겸사 자동 가동도 설정해야 한다.
[ec2-user@ip-172-XX-XX-XX ~]\$systemctl enabled squid
[ec2-user@ip-172-XX-XX-XX ~]$systemctl is-enabled squid
enabled
동작 확인
설정도 끝났으니 동작을 확인하세요.
이 EC2 인스턴스의 IP 및 연결 포트를 IE 프록시에 넣습니다.
적절한 사이트를 방문하여 로그를 확인하세요.
[root@ip-172-XX-XX-XX squid]# tail -100/var/log/squid/access.log
1493956288.080 18 115.XX.XX.XX TCP_MISS/304 346 GET http://www.googletagservices.com/tag/js/gpt.js - HIER_DIRECT/216.58.193.66 -
1493956288.094 21 115.XX.XX.XX TCP_MISS/304 601 GET http://livedoor.4.blogimg.jp/karapaia_zaeega/imgs/e/b/eb45e2ee.png - HIER_DIRECT/54.230.141.124 -
1493956288.133 139 115.XX.XX.XX TCP_MISS/302 666 GET http://livedoor.blogimg.jp/karapaia_zaeega/imgs/0/0/004be9b5.jpg - HIER_DIRECT/125.6.190.4 text/html
1493956288.155 147 115.XX.XX.XX TCP_MISS/302 666 GET http://livedoor.blogimg.jp/karapaia_zaeega/imgs/5/4/54c99608.jpg - HIER_DIRECT/125.6.190.4 text/html
1493956288.167 143 115.XX.XX.XX TCP_MISS/302 666 GET http://livedoor.blogimg.jp/karapaia_zaeega/imgs/a/e/ae04335c.jpg - HIER_DIRECT/125.6.190.4 text/html
1493956288.170 27 115.XX.XX.XX TCP_MISS/304 601 GET http://livedoor.4.blogimg.jp/karapaia_zaeega/imgs/b/f/bfce72b1.png - HIER_DIRECT/54.230.141.124 -
Proxy 서버에서 웹 브라우징이 가능한지 확인하였습니다!
로그 형식 편집
그나저나 위의 로그는 방문 시간을 전혀 몰라서...
예전에 아파치로 바꾸는 옵션이 있었던 것 같아요.
3.5 그 설정은 작동하지 않는 것 같다.
그래서 첫 페이지를 보고 다음과 같이 설정하기로 했습니다.
logformat squid %tl %>a %Ss/%03>Hs %
일지가 보기 쉬워졌어!
[root@ip-172-XX-XX-XX squid]# tail -100/var/log/squid/access.log
05/May/2017:00:12:58 -0400 115.XXX.XX.XX TCP_MISS/200 137705 GET http://livedoor.4.blogimg.jp/karapaia_zaeega/imgs/3/0/30497336.jpg - HIER_DIRECT/54.192.117.245 image/jpeg
05/May/2017:00:12:58 -0400 115.XXX.XX.XX TCP_MISS/200 512 GET http://jsoon.digitiminimi.com/twitter/count.json ? - HIER_DIRECT/210.135.97.193 text/javascript
05/May/2017:00:12:58 -0400 115.XXX.XX.XX TCP_TUNNEL/200 4856 CONNECT platform.twitter.com:443 - HIER_DIRECT/199.96.57.6 -
05/May/2017:00:12:58 -0400 115.XXX.XX.XX TCP_MISS/200 1827 GET http://optimized-by.rubiconproject.com/a/13136/73628/349040-9.js ? - HIER_DIRECT/8.39.37.31 text/javascript
05/May/2017:00:12:58 -0400 115.XXX.XX.XX TCP_MISS/200 468 GET http://jsoon.digitiminimi.com/twitter/count.json ? - HIER_DIRECT/210.135.97.193 text/javascript
끝맺다
로그 형식에 시간을 쓰지 않는다면, 여기까지는 10분이면 충분하다.
또한 디스크 캐시 양은 기본적으로 100MB로 이 근처에서 변경하여 성능을 향상시키거나 호스트 이름이나 사용자 에이전트 등의 정보를 숨길 수 있습니다.
첫 투고.MardDown에 익숙하지 않으면...(:3)
Reference
이 문제에 관하여(squid3.5 Proxy 서버 구축(RHEL7.3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Anna/items/12b6948354dcaa223571텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)