본문 바로가기
IT/리눅스

[squid] proxy 서버 쉽게 만들기

by IT 과학정복 2024. 1. 21.
반응형

Squid는 리눅스에서 가장 많이 사용되는 프록시 서버 중 하나입니다. 프록시는 말그대로 컴퓨터와 인터넷 사이의 중개자 역할을 합니다. 내가 웹이나 서버와 통신할 때 Squid를 이용해 통신을 제어하여 설정한 규칙에 따라 특정 웹사이트나 콘텐츠에 대한 액세스를 제한하여 보안과 생산성을 향상시킬 수 있습니다. 또한, 인터넷 연결 속도를 높이고, 웹 콘텐츠를 캐싱하여 사용량을 줄이는 데 도움이 됩니다.

squid 설치

ubuntu - apt install squid

centOS - yum install squid

설치가 완료되면 Squid 서비스를 시작하고 활성화합니다.

sudo systemctl start squid
sudo systemctl enable squid

 

기본적으로 Squid는 서버의 모든 네트워크 인터페이스에서 포트 3128에서 수신하도록 구성됩니다.

반응형

 

포트를 변경하고 수신 인터페이스를 설정하려면 http_port로 시작하는 줄을 찾고 인터페이스 IP 주소와 새 포트를 지정합니다. 인터페이스가 지정되지 않으면 모든 인터페이스에서 Squid가 수신 대기합니다.​

# /etc/squid/squid.conf

# Squid normally listens to port 3128

http_port IP_ADDR:PORT

http_port 3128

해당 포트(3128)는 임의로 변경하여 지정할 수 있습니다.

=============================

/etc/squid/allowed_ips.txt

IP

# All other allowed IPs

=============================

완료되면 기본 구성 파일을 열고 allowed_ips(첫 번째 강조 표시된 행)라는 새 ACL을 작성하고

http_access 지시어(두 번째 강조 표시된 행)를 사용하여 ACL에 액세스 할 수 있습니다.

 

# /etc/squid/squid.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

# /etc/squid/squid.conf

acl [변수명] src ip/subnet 추가

예) acl temp src ip/255.255.255.255 추가

# /etc/squid/squid.conf

http_access allow temp 추가

 

맨 끝에

# /etc/squid/squid.conf

visible_hostname temp 추가

계정 추가[보안 강화]

# printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

예를 들어 "Keylog123" 암호를 사용하여 "Imseng"라는 사용자를 만들려면 다음을 실행합니다.

printf "imseng:$(openssl passwd -crypt 'keylog123')\n" | sudo tee -a /etc/squid/htpasswd

 

htpasswd 설치

# sudo apt-get install apache2-utils

 

red hat 리눅스의 경우

# sudo yum install httpd-tools

인증 파일 생성(=auth1, 임의 이름 지정 가능)

# sudo htpasswd -c /etc/squid/.squid_users auth1

사용자 생성(=user2, 임의 이름 지정 가능)

# sudo htpasswd /etc/squid/.squid_users user2

 

인증파일 소유 변경

squid가 어느 계정으로 실행 중인지 확인, htop 명령

# sudo chown proxy /etc/squid/.squid_users

//-----------------------------

인증 파일 확인(테스트)

basic_ncsa_auth 의 경로를 확인한다

# sudo find / -name basic_ncsa_auth

# sudo /usr/lib/squid/basic_ncsa_auth /etc/squid/.squid_users

squid 설정파일 수정 ( /etc/squid/squid.conf )

=============================

# sudo nano /etc/squid/squid.conf

 

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/.squid_users

 

auth_param basic children 5

 

auth_param basic realm Proxy Authentication Required

 

auth_param basic credentialsttl 2 hours

 

auth_param basic casesensitive off

acl auth_users proxy_auth auth1 user2

http_access allow auth_users

 

=============================

 

 

프록시 서버 재시작

sudo service squid restart

 

프록시 서버를 이용한 인터넷 접속(윈도우)

주소 + 포트(기본포트 : 3128) 입력 -> 저장

naver.com 접속

 

htpasswd로 설정된 "id 비번"을 타이핑해서 테스트

 

USERNAME, PASSWORD 입력 및 로그인

인터넷 출력화면

모든 프로그램의 프록시 서버 설정은

프로시 설정-> IP + PORT 입력 -> 계정 + 비밀번호 입력 순으로 하면

예) 프록시 설정 -> 192.168.0.1 + 3128 포트 입력 -> ID : imseng + P.W : keylog123

정상 작동함을 확인할 수 있다!

 

LINUX PROXY(프록시)서버 구현하는 방법

https://pinetreeday.tistory.com

CentOS 7 : Squid Proxy 설치, 구성 방법, 예제, 명령어

https://jjeongil.tistory.com/1639

Squid 프록시 접속 아이디 비밀번호 설정 방법

https://codens.info/m/2039

반응형