보안 브라우징 · 3 min read · Jan 26, 2026

Squid로 안전하고 개인적인 브라우징

버전 1.0

저자: Joe Topjian

SSL을 지원하는 사이트를 브라우징하는 것은 누군가가 당신이 하는 일을 엿보지 못하도록 하는 확실한 방법입니다. 이는 웹에서 이메일을 확인하거나 아마존에서 물건을 구매하는 것과 같은 개인적인 일을 할 때 좋은 일입니다. 하지만 매일 뉴스나 영화 시간을 확인하는 것과 같은 일을 할 때, 개인 정보 보호가 그렇게 중요할까요? 극도로 paranoid한 사람들은 그 질문에 대해 확고한 “예”라고 대답할 것이고, 대부분의 사람들은 그저 어깨를 으쓱할 것입니다. 저는 이 두 그룹 사이에 있습니다. 집에서 뉴스를 읽을 때는 트래픽이 암호화되어 있는지 전혀 신경 쓰지 않습니다. 그러나 공공 Wi-Fi 장소에 있을 때는 조금 신경이 쓰입니다.

대부분의 공공 장소는 인터넷에 접근할 수 있는 보안이 전혀 없습니다. 좋은 눈을 뜨게 하고 싶으신가요? 다음 번에 공공 핫스팟에 있을 때 dsniff 도구를 복사해 보세요.

이 기사는 이런 것들로부터 자신을 보호하는 방법을 보여줄 것입니다 – 어떤 식으로든. 이 기사는 웹 트래픽을 보호하는 방법만 보여줄 것입니다. 만약 당신이 다음 비행기를 기다리면서 AIM을 통해 CEO와 다음 주에 출시될 초비밀 제품에 대해 이야기하기로 결정한다면, 이것은 당신을 구해주지 않을 것입니다. 물론 Squid는 HTTP 외의 다른 애플리케이션에 대한 요청도 프록시할 수 있지만, 제가 다룰 것은 HTTP뿐입니다. 아마 다른 애플리케이션에 대해서는 다른 기사에서 다룰 것입니다.

좋습니다, 시작해 봅시다. 우리가 필요한 것은 다음과 같습니다:

  • 다른 네트워크에서 Squid를 실행하는 서버.
  • ssh 및 포트 포워딩을 지원하는 노트북.

우리가 할 일은 현재 있는 네트워크 외부의 어딘가에 Squid 서버를 설정하는 것입니다. Squid는 서버 자체에서만 연결을 허용합니다 – 외부 연결은 허용하지 않습니다. 그러면 우리는 어떻게 사용할까요? 우리는 그것으로 SSH 터널을 생성할 것입니다. 터널이 생성되면, 우리는 웹 브라우저를 SSH 터널의 주소를 가진 프록시 서버를 사용하도록 설정하기만 하면 됩니다. 이제 노트북에서 Squid 서버로 나가는 모든 웹 트래픽은 암호화됩니다.

하지만 Squid 서버에서 실제 웹페이지로는 어떻게 될까요? 불행히도 그 부분은 암호화되지 않습니다. 하지만 적어도 우리는 안전하게 보호되지 않은 LAN을 벗어났습니다.

저는 Squid 서버에 Debian Sarge를 사용할 것이지만, 원하는 배포판을 사용하셔도 좋습니다. Squid가 설치된 후, 구성은 정확히 동일할 것입니다. Debian에 Squid를 설치하려면, 다음을 실행하세요:

apt-get install squid

Debian(그리고 아마 다른 배포판도 – 확인하는 것이 좋습니다!)의 기본 구성은 localhost에서만 연결을 허용하는 것입니다. 이는 아무런 해를 끼치지 않으므로 그대로 두어도 됩니다. 그러나 여전히 외부에서 연결할 수 있는 방법이 필요합니다. 이를 위해, 우리는 비밀번호를 요청하고 인증되면 들어갈 수 있도록 acl을 추가할 것입니다. “deny all” 부분 바로 앞에 추가할 것이므로 다음과 같이 보일 것입니다:

acl localhost src 127.0.0.1/255.255.255.255

http_access allow localhost

http_access allow password

http_access deny all

기본적으로 Squid는 포트 3128에서 수신 대기합니다. 개인적으로 8080이 더 좋으므로 다음과 같이 변경하겠습니다:

http_port 8080

다음으로 Squid에 대한 인증을 설정해야 합니다. Debian 패키지에 포함된 다양한 인증 방법이 있으며, 다음을 통해 확인할 수 있습니다:

ls /usr/lib/squid/*auth

우리는 pam_auth 모듈을 사용할 것입니다. 이는 쉘 계정이 있는 누구나 Squid 서버를 사용할 수 있게 해줍니다. 구성에서 auth_param 섹션을 찾아 다음 줄을 추가하세요:

auth_param basic program /usr/lib/squid/pam_auth

auth_param basic children 5

auth_param basic realm Squid proxy-caching web server

auth_param basic credentialsttl 2 hours

다음으로 이 줄을 찾아 주석을 제거하세요:

acl password proxy_auth REQUIRED

이제 /etc/pam.d/squid라는 pam 모듈을 생성하고 다음 내용을 포함하세요:

auth required /lib/security/pam_unix.so

account required /lib/security/pam_unix.so

이 파일에 SUID 접근 권한을 부여해야 하므로 chmod 4755를 실행하세요. 네, 이 방법이 최선은 아니지만 가장 간단한 방법입니다. 다른 방법에 대해 스스로 조사하셔도 좋습니다.

Squid는 모든 설정이 완료되었습니다. 다음으로 SSH를 통해 서버에 대한 쉘 접근 권한이 있는지 확인하세요. 비밀번호, 패스프레이즈 또는 빈 패스프레이즈를 사용하든 상관없습니다. 터널을 설정하려면 다음을 실행하세요:

ssh -L 8080:squidhost:8080 username@squidhost

인증을 요청받을 것이고, 성공하면 원격 박스에 로그인한 것처럼 보일 것입니다. 다른 창을 열고 다음을 입력하세요:

telnet localhost 8080

이제 원격 서버의 squid와 대화하고 있음을 알 수 있습니다.

마지막으로 브라우저에 SSH 터널을 프록시로 사용하도록 설정하세요. 여기서 각 브라우저를 개별적으로 다루지는 않겠지만, 기본적으로 설정의 어딘가에 있을 것입니다. 호스트 이름에는 localhost를 입력하고 포트에는 8080을 입력하세요.

이제 웹페이지를 브라우징할 때마다 인증을 요청받을 것입니다. 쉘 계정 정보를 입력하면 모든 준비가 완료됩니다. 브라우저가 평문을 통한 인증에 대한 경고를 표시할 수 있지만 – 무시하세요. 그것은 우리의 SSH 터널을 통해 이동할 것이므로 암호화됩니다.

축하합니다! 이제 누군가가 당신을 엿보는 것에 대한 걱정 없이 웹을 탐색할 수 있습니다. 이 방법에 대한 의견, 수정 사항 또는 개선 방법이 있다면 알려주세요! 이 문서의 원본 위치:

http://adminspotting.net/howtos/securesquid.html

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.