Raspberry Pi4에 Squid 인증 프록시 서버 구축
배경이 되다
클라이언트 응용 개발 과정에서 프록시 인증이 필요한 환경에서의 통신을 테스트하기 위해 LAN에서basic 인증을 가진 프록시 서버를 원합니다.Raspberry Pi4가 스크롤되기 때문에 효율적으로 사용하기로 결정했습니다.
전제/ 환경
Raspberry Pi 4 ModelB
Raspbian OS 10 buster
Kernel 4.19
Squid 4.6
※ 저는 인터넷이나 인프라를 잘 몰라요. 잘못된 점이 있으면 알려주세요.
전체 프로세스
절차.
Squid 설치
어쨌든 Squid 호스트를 설치합니다.버전 4.6입니다.
$ sudo apt-get install squid
apacchee-2-utils 설치
이번에 프록시 서버를 사용하여 방문할 때basic인증을 요구하는 것이 필요하기 때문에basic인증이 설정한 비밀번호 파일을 만듭니다.암호 파일 생성에 사용된 htpasswd 명령은 Raspbian OS를 설치할 때 설치되지 않은 것 같아서 설치합니다.apchee2-utils를 설치하면 httpasswd 명령을 사용할 수 있습니다.
$ sudo apt-get install apache2-utils
암호 파일 만들기
설치된 apchee-2-uitls에 포함된 htpasswd 명령을 사용하여 임의의 디렉터리에 암호 파일을 만듭니다.
이번에
/etc/squid/htpasswd
라는 파일을 만들었는데 아이디는 user
였다.password:
나 Re-type new password:
를 물었기 때문에 설정하고 싶은 비밀번호를 입력하세요.$ sudo htpasswd -c /etc/squid/htpasswd user
Squid 구성
Squid를 요청하여 요청을 받을 때 생성된 암호 파일에 등록된 사용자에 대한 인증을 설정합니다.이번에basic인증 주위 이외에 기본 설정으로 원하는 동작을 얻었습니다.
/etc/squid/squid.conf
의 설정 파일을 보고 규칙을 설정하기 위해 /etc/squid/conf.d/
아래에 설정 파일을 삽입한다고 쓰여 있어서/etc/squid/conf.d/basic_auth.conf
에basic 인증용 설정 파일을 만들었습니다.$ sudo touch /etc/squid/conf.d/basic_auth.conf
$ sudo vi /etc/squid/conf.d/basic_auth.conf
Squid의 설정 파일에서 위에서 허가, 거부의 접근 규칙을 순서대로 쓰고 마지막deny all
과 정의되지 않은 다른 접근은 모두 허용하지 않습니다./etc/squid/squid.conf
에서 deny all
이전에 /etc/squid/conf.d/
이하의 모든 설정 파일을 포함한다.제작된 설정문서는 다음과 같다.
# basic認証を設定。認証プログラムとパスワードファイルのパスを指定
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/.htpasswd
# 認証を行うプロセスの数。
# 複数クライアントから同時に要求が来て認証情報の入力待ちを何件平行に行えるかの設定(たぶん)
auth_param basic children 5
# ブラウザのダイアログとかに表示する、何に対しての認証要求なのかを表現する文言の設定。
# "Squid Basic Authentication"のところを、サーバ名とか誰が認証を求めてるのかわかる親切な内容にするとよさげ。
auth_param basic realm Squid Basic Authentication
# 入力された認証情報の有効期限。この場合1時間後に再度尋ねる
auth_param basic credentialsttl 1 hours
# ACLとはAcess Control Listのこと。
# たぶんパスワード形式でのプロキシ認証必須にするという意味
acl password proxy_auth REQUIRED
# たぶんパスワード認証のアクセスを許可するという意味
#(呼び出し元のsquid.confでdeny allするのでhttp_access password以外はdenyすることになる?)
http_access allow password
Squid 재부팅
$ sudo service squid restart
이렇게 정상적으로 다시 시작하면basic 인증을 요청합니다.자신의 경우, 파일을 설정하는basic와 absic typo가 시작에 실패합니다.
변경 후 결과 재부팅이 불가능한 경우
$ sudo squid -k parse
명령을 통해 설정 파일의 구문을 확인할 수 있습니다.동작 확인
다음 명령이 접근을 거부했는지 확인하십시오.
$ curl example.com -x localhost:3128
다음 명령을 사용하여 Connection Refused 등이 반환되지 않은 상태에서 HTML 형식의 응답이 표시되는지 확인합니다.(password 부분에서 비밀번호 파일을 만들 때 설정한 비밀번호를 입력합니다)$ curl example.com -x user:password@localhost:3128
로그 파일
기본적으로 로그 파일은 아래에서 만들 수 있습니다.
/var/log/squid/access.log
/var/log/squid/cache.log
Reference
이 문제에 관하여(Raspberry Pi4에 Squid 인증 프록시 서버 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/trpla226/articles/fca7c18f807f25aad47d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)