웹사이트 검색

Ubuntu 및 Debian에서 "Squid Proxy" 서버를 설정하는 방법


Squid는 웹 서버 속도를 향상시키고 응답 시간을 단축하며 네트워크 대역폭 사용량을 줄이기 위해 웹 서버에서 웹 페이지를 캐시하기 위해 다양한 회사에서 사용하는 가장 인기 있는 캐싱 및 전달 HTTP 웹 프록시 서버입니다.

추가 읽기: CentOS 7에서 Squid를 사용하여 HTTP 프록시를 만드는 방법

이 글에서는 Ubuntu 및 Debian 배포판에 Squid 프록시 서버를 설치하고 이를 HTTP 프록시 서버로 사용하는 방법을 설명합니다.

우분투에 오징어를 설치하는 방법

시작하기 전에 Squid 서버에는 요구 사항이 없지만 RAM 사용률은 프록시 서버를 통해 인터넷을 검색하는 클라이언트에 따라 다를 수 있다는 점을 알아야 합니다.

Squid 패키지는 기본 Ubuntu 저장소에서 설치할 수 있지만 그 전에 실행하여 패키지를 업데이트해야 합니다.

sudo apt update

패키지가 최신 상태이면 다음 명령을 사용하여 오징어를 설치하고 시스템 시작 시 활성화할 수 있습니다.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

이 시점에서 Squid 웹 프록시가 이미 실행 중이어야 하며 서비스 상태를 확인할 수 있습니다.

sudo systemctl status squid
샘플 출력
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

다음은 알아야 할 몇 가지 중요한 오징어 파일 위치입니다.

  • 오징어 구성 파일: /etc/squid/squid.conf
  • 오징어 액세스 로그: /var/log/squid/access.log
  • 오징어 캐시 로그: /var/log/squid/cache.log

기본 구성 파일에는 Squid의 동작에 영향을 미치도록 구성해야 하는 일부 구성 지시문이 포함되어 있습니다.

이제 Vi 편집기를 사용하여 편집하기 위해 이 파일을 열고 아래와 같이 변경합니다.

sudo vim /etc/squid/squid.conf

이제 다음 줄을 검색하고 요청에 따라 변경할 수 있습니다. Vi 편집기에서 'ESC'를 누르고 “/를 입력하여 해당 줄을 검색할 수 있습니다. ” 찾을 특정 줄을 작성하는 키입니다.

  • http_port: 이는 HTTP 프록시 서버의 기본 포트입니다. 기본적으로 3128입니다. 원하는 다른 포트로 변경할 수 있습니다. 원하는 경우 Squid 프록시가 투명 프록시처럼 작동하도록 하려면 http_port 8888 transparent와 같이 줄 끝에 "투명" 태그를 추가하세요.
  • http_access 거부 모두 : 이 줄은 누구도 HTTP 프록시 서버에 액세스하는 것을 허용하지 않으므로 Squid 프록시 서버 사용을 시작하려면 http_access 모두 허용으로 변경해야 합니다. .
  • visible_hostname : 이 지시문은 특정 호스트 이름을 오징어 서버로 설정하는 데 사용됩니다. squid에 호스트 이름을 지정할 수 있습니다.

위와 같이 변경한 후 명령을 사용하여 Squid 프록시 서버를 다시 시작할 수 있습니다.

sudo systemctl restart squid

Ubuntu에서 Squid를 HTTP 프록시로 구성

이 오징어 구성 섹션에서는 인증을 위해 클라이언트 IP 주소만 사용하여 오징어를 HTTP 프록시로 구성하는 방법을 설명합니다.

오징어 ACL 추가

하나의 IP 주소만 새 프록시 서버를 통해 인터넷에 액세스하도록 허용하려면 구성 파일에 새 acl(액세스 제어 목록)을 정의해야 합니다.

sudo vim /etc/squid/squid.conf

추가해야 하는 acl 규칙은 다음과 같습니다.

acl localnet src XX.XX.XX.XX

여기서 XX.XX.XX.XX는 클라이언트 시스템의 IP 주소입니다. 이 acl은 다음 스크린샷과 같이 ACL 섹션 시작 부분에 추가되어야 합니다.

예를 들어, 이 IP 주소를 사용하는 사람을 설명하는 주석을 ACL 옆에 정의하는 것은 항상 좋은 습관입니다.

acl localnet src 192.168.0.102  # Boss IP address

새로운 변경 사항을 적용하려면 Squid 서비스를 다시 시작해야 합니다.

sudo systemctl restart squid

Squid 프록시에서 포트 열기

기본적으로 오징어 구성에서는 특정 포트만 허용됩니다. 더 추가하려면 표시된 대로 구성 파일에서 정의하면 됩니다.

acl Safe_ports port XXX

여기서 XXX는 허용하려는 포트 번호입니다. 이번에도 acl 옆에 포트의 용도를 설명하는 주석을 정의하는 것이 좋습니다.

변경 사항을 적용하려면 Squid를 다시 한 번 다시 시작해야 합니다.

sudo systemctl restart squid

Squid 프록시 클라이언트 인증

프록시를 사용하기 전에 사용자가 인증할 수 있도록 하려면 구성 파일에서 기본 http 인증을 활성화해야 하지만, 그 전에 다음 명령을 사용하여 apache2-utils 패키지를 설치해야 합니다.

sudo apt install apache2-utils

이제 나중에 인증을 위한 사용자 이름을 저장할 “passwd”라는 파일을 만듭니다. Squid는 “프록시” 사용자로 실행되므로 해당 사용자가 파일을 소유해야 합니다.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

이제 “tecmint”라는 새 사용자를 생성하고 비밀번호를 설정하겠습니다.

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

이제 기본 http 인증을 활성화하려면 구성 파일을 엽니다.

sudo vim /etc/squid/squid.conf

포트 ACL 뒤에 다음 줄을 추가합니다.

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

새로운 변경 사항이 적용되도록 파일을 저장하고 Squid를 다시 시작하세요.

sudo systemctl restart squid

Squid 프록시에서 웹사이트 차단

원치 않는 웹사이트에 대한 액세스를 차단하려면 먼저 블랙리스트에 있는 사이트를 저장할 'blacklisted_sites.acl'이라는 파일을 만드세요.

sudo touch /etc/squid/blacklisted_sites.acl

이제 액세스를 차단하려는 웹사이트를 추가하세요.

.badsite1.com
.badsite2.com

앞의 www.badsite1, subsite.badsite1.com 등을 포함한 해당 사이트에 대한 모든 참조를 차단하도록 squid에 알립니다.

이제 Squid의 구성 파일을 엽니다.

sudo vim /etc/squid/squid.conf

위의 ACL 바로 뒤에 다음 두 줄을 추가합니다.

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

이제 파일을 저장하고 오징어를 다시 시작하세요.

sudo systemctl restart squid

Squid로 특정 키워드 차단

키워드 목록을 차단하려면 먼저 블랙리스트에 있는 키워드를 저장할 'blockkeywords.lst'라는 파일을 만듭니다.

sudo touch /etc/squid/blockkeywords.lst

이제 액세스를 차단하려는 키워드를 추가하세요.

facebook
instagram
gmail

이제 Squid의 구성 파일을 열고 다음 규칙을 추가하세요.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

이제 파일을 저장하고 오징어를 다시 시작하세요.

sudo systemctl restart squid

모든 것이 정확하게 구성되면 이제 새로 구성된 Squid HTTP 프록시를 사용하도록 로컬 클라이언트 웹 브라우저 또는 운영 체제의 네트워크 설정을 구성할 수 있습니다.

Squid 프록시를 사용하도록 클라이언트 구성

이제 프록시 서버가 작동하는지 테스트하려면 Firefox를 열고 편집 –> 환경 설정 –> 고급 –> 네트워크 –> 설정으로 이동하여 '< Strong>수동 프록시 구성'을 선택하고 다음과 같이 모든 연결에 사용할 프록시 서버 IP 주소와 포트를 입력합니다.

필요한 프록시 세부 정보를 모두 입력하면 Squid 프록시 서버를 사용하여 웹 서핑을 할 수 있으며 원하는 다른 브라우저나 프로그램에서도 동일한 작업을 수행할 수 있습니다.

프록시 서버를 사용하여 웹 서핑을 하고 있는지 확인하려면 http://www.ipaddresslocation.org/를 방문하세요. 오른쪽 상단에 서버와 동일한 IP 주소가 표시되어야 합니다. IP 주소.

더 많은 추가 구성 설정을 보려면 공식 오징어 문서를 확인하세요. 질문이나 의견이 있으면 아래 의견란에 추가해 주세요.