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 프록시 접속 아이디 비밀번호 설정 방법
'IT > 리눅스' 카테고리의 다른 글
리눅스 iptables 알아보기 (1) | 2024.01.31 |
---|---|
리눅스 쉘(shell)을 알아보자 (1) | 2024.01.30 |
let's encrypt 인증서 발급 및 적용 (0) | 2024.01.21 |
리눅스(우분투) root 권한 얻는 방법 (0) | 2024.01.21 |
리눅스 NTP 서버를 통한 PC 시간 설정하기(feat. 폐쇄망) (0) | 2024.01.21 |