Ubuntu 20.04에서 Squid 에이전트를 설치하고 구성하는 방법

Ubuntu 20.04에서 Squid 에이전트를 설치하고 구성하는 방법

2022-05-31 last update

11 minutes reading ubuntu proxy
Squid는 HTTP, HTTPS, FTP 등 유행하는 네트워크 프로토콜을 지원하는 기능이 완비된 캐시 에이전트입니다.이것은 캐시 중복 요청, 웹 데이터 필터링, 지리적 위치의 제한된 내용 접근을 통해 웹 서버의 성능을 향상시킬 수 있다.이 강좌는 Ubuntu 20.04에 Squid 에이전트를 설정하고 Firefox와 Google Chrome 웹 브라우저를 설정하여 사용하는 방법을 설명합니다.

Ubuntu에 Squid 설치

squid 패키지는 표준 Ubuntu 20.04 저장소에 포함되어 있습니다.설치하려면 sudo user을 누르면 다음 명령을 실행합니다
:
sudo apt updatesudo apt install squid
설치가 완료되면 Squid 서비스가 자동으로 시작됩니다.이를 검증하려면 서비스 상태를 확인하십시오.
sudo systemctl status squid
출력은 다음과 같습니다.
● squid.service - Squid Web Proxy Server
     Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago
       Docs: man:squid(8)
...

Squid 구성

/etc/squid/squid.conf 파일을 편집하여 squid 서비스를 설정할 수 있습니다.프로필에는 각 구성 옵션의 기능을 설명하는 주석이 포함되어 있습니다."include"명령을 사용하여 주 프로필에 포함할 수 있는 설정 설정을 단독 파일에 놓을 수도 있습니다.모든 변경을 진행하기 전에 원본 프로필을 백업하는 것을 권장합니다.
sudo cp /etc/squid/squid.conf{,.orginal}
에서 squid 실례를 설정하려면 text editor에서 이 파일을 열어 주십시오
:
sudo nano /etc/squid/squid.conf
기본적으로 squid는 탐지 서버의 모든 네트워크 인터페이스에 있는 포트 3128으로 설정됩니다.포트를 변경하고 수신 인터페이스를 설정하려면 http_port에서 시작하는 줄을 찾아 인터페이스 IP 주소와 새 포트를 지정합니다.지정한 인터페이스가 없으면 Squid는 모든 인터페이스/오징어conf
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
은 모든 인터페이스와 기본 포트에서 Squid를 실행하는 데 대부분의 사용자에게 적합해야 합니다.Squid를 사용하면 액세스 제어 목록(ACL)을 사용하여 클라이언트가 웹 자원에 액세스하는 방법을 제어할 수 있습니다.기본적으로 로컬 호스트에서만 액세스할 수 있습니다.프록시를 사용하는 모든 클라이언트에 정적 IP 주소가 있는 경우 프록시 서버에 대한 액세스를 제한하는 가장 간단한 옵션은 허용된 IP를 포함하는 ACL을 만드는 것입니다.그렇지 않으면 squid를 인증 사용으로 설정할 수 있습니다.주 프로필에 IP 주소를 추가하지 말고 허용된 IP:/etc/squid/allowed\u IP를 저장할 새 전용 파일을 만듭니다.txt
192.168.33.1
# All other allowed IPs
이 완료되면 주 프로필을 열고 allowed_ips이라는 새 ACL(첫 번째 강조 표시줄)을 만들고 http_access 명령어(두 번째 강조 표시줄):/etc/squid/squid를 사용하여 이 ACL에 접근할 수 있습니다.conf
# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all
http_access 규칙의 순서가 중요합니다.http_access deny all 이전에 줄을 추가해야 합니다.http_access 지령의 작업 방식은 방화벽 규칙과 유사하다.Squid는 규칙을 위에서 아래로 읽으며 규칙이 일치하면 다음 규칙을 처리하지 않습니다.구성 파일을 변경할 때마다 변경 사항을 적용하기 위해 Squid 서비스를 다시 시작해야 합니다.
sudo systemctl restart squid

Squid 인증

IP 기반 액세스가 사용자의 용례에 적용되지 않으면 Squid가 백엔드를 사용하여 사용자를 인증하도록 설정할 수 있습니다.Squid 지원 Samba
, LDAP 및 HTTP 기본 인증(adsbygoogle=window.adsbygoogle | |[]).푸시({});이 안내서에서 우리는 기본 신분 검증을 사용할 것이다.이것은 HTTP 프로토콜에 내장된 간단한 인증 방법입니다.암호화 암호를 생성하려면 openssl 도구를 사용하십시오.다음 명령은 USERNAME:PASSWORD 쌍을 /etc/squid/htpasswd 파일에 추가합니다.
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
예를 들어 암호가 "[email protected]"인 사용자 "josh"를 만들려면 실행할 수 있습니다.
printf "josh:$(openssl passwd -crypt '[email protected]')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
다음 단계는 HTTP 기본 인증을 사용하고 사용자 인증서가 포함된 패키지를 squid 프로필에 포함합니다.주 설정을 열고 다음 내용을 추가합니다:
sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf
# ...
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all
앞의 세 개의 강조 표시된 줄은 authenticated이라는 새 ACL을 만들고 있으며, 마지막 강조 표시된 줄은 인증을 받은 사용자에게 접근할 수 있습니다.Squid 서비스 다시 시작:
sudo systemctl restart squid

방화벽 구성

Squid 포트를 열려면 UFW 을 사용하십시오
Squid 구성 파일:
sudo ufw allow 'Squid'
만약 Squid가 다른 비기본 포트에서 실행된다면, 예를 들어 8888을 사용하면: sudo ufw allow 8888/tcp을 사용하여 이 포트에서 데이터를 허용할 수 있습니다.

에이전트를 사용하도록 브라우저 구성

현재 Squid를 설정했습니다. 마지막 단계는 첫 번째 브라우저를 설정하여 사용하는 것입니다.

Firefox

은 Windows, macOS, Linux의 경우 다음 단계와 같습니다.
  • 오른쪽 상단에서 햄버거 아이콘 을 눌러 Firefox 메뉴를 엽니다.
  • ⚙ Preferences 링크를 눌러주세요.
  • Network Settings 부분으로 아래로 스크롤하고 Settings... 단추를 누르십시오.
  • 에 새 창이 열립니다.
  • Manual proxy configuration 라디오 버튼을 선택합니다.
  • HTTP Host 필드에 Squid 서버 IP 주소를 입력하고 3128 필드에 Port을 입력합니다.
  • Use this proxy server for all protocols 확인란을 선택합니다.
  • OK 버튼을 클릭하여 설정을 저장합니다.
  • Firefox가 설정되어 있으며 Squid 에이전트를 통해 인터넷을 조회할 수 있습니다.그것을 검증하려면 google.com을 열고 "what is my ip"를 입력하면 Squid 서버 ip 주소를 볼 수 있습니다.기본 설정으로 복원하려면 Network Settings으로 이동하여 Use system proxy settings 라디오 버튼을 선택하고 설정을 저장합니다.FoxyProxy과 같은 Firefox 프록시 설정을 구성하는 데 도움이 되는 몇 가지 플러그인이 있습니다.
    .

    구글 브라우저

    Google Chrome은 기본 시스템 프록시 설정을 사용합니다.운영 체제 에이전트 설정을 변경하지 않고 SwitchyOmega 같은 불러오는 항목을 사용할 수 있습니다
    또는 명령줄에서 Chrome 웹 브라우저를 시작합니다.새 프로필을 사용하여 Chrome을 시작하고 Squid 서버에 연결하려면 다음 명령을 사용하십시오. Linux:
    /usr/bin/google-chrome \
        --user-data-dir="$HOME/proxy-profile" \
        --proxy-server="http://SQUID_IP:3128"
    
    macOS:
    "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
        --user-data-dir="$HOME/proxy-profile" \
        --proxy-server="http://SQUID_IP:3128"
    
    Windows:
    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
        --user-data-dir="%USERPROFILE%\proxy-profile" ^
        --proxy-server="http://SQUID_IP:3128"
    
    프로필이 존재하지 않으면 자동으로 프로필을 만듭니다.이렇게 하면 여러 Chrome 인스턴스를 동시에 실행할 수 있습니다.프록시 서버가 정상적으로 작동하는지 확인하려면 google.com을 열고 "what is my ip"를 입력하십시오.브라우저에 표시되는 IP는 서버의 IP 주소여야 합니다.

    결론

    Squid는 가장 유행하는 프록시 캐시 서버 중의 하나입니다.이것은 웹 서버의 속도를 향상시키고 사용자의 인터넷 접근을 제한하는 데 도움을 줄 수 있습니다.Ubuntu 20.04에 Squid를 설치하고 설정하는 방법, 브라우저를 설정해서 사용하는 방법을 보여 드렸습니다.문제가 있거나 피드백이 있으면 아래에 댓글을 남겨 주십시오.