본문 바로가기

Operating Systems/Linux

[ Linux ] PROXY 서버 설치

1. CentOS7

 

[ PROXY 서버 ]

# squid proxy 서버 설치
yum -y install squid

NET_INTERFACE=`ls /sys/class/net | grep -v lo | head -1`

PROXY_SERVER_IP=`ip route | grep -e ${NET_INTERFACE} | grep src | awk '{print $9}'`

sed -i "s/^http_port.*//g" /etc/squid/squid.conf
sed -i "s/^acl proxy.*//g" /etc/squid/squid.conf
sed -i "s/^http_access.*proxy//g" /etc/squid/squid.conf
sed -i "s/^cache_dir.*//g" /etc/squid/squid.conf
sed -i "s/^cache_access_log.*//g" /etc/squid/squid.conf
sed -i "s/^cache_store_log.*//g" /etc/squid/squid.conf
sed -i "s/^cache_mem.*//g" /etc/squid/squid.conf
sed -i "s/^visible_hostname.*//g" /etc/squid/squid.conf

sed -i "/^$/d" /etc/squid/squid.conf

cat <<PROXY_SERVER_SETTING >> /etc/squid/squid.conf

http_port 0.0.0.0:3128

acl proxy src ${PROXY_SERVER_IP%.*}.0/255.255.255.0

http_access allow proxy

#(1000MB 캐시 공간, 16은 하부 디렉토리 갯수, 256은 16개의 하부 디렉토리에 생성되는 디렉토리 갯수)
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log 
cache_log /var/log/squid/cache.log 
cache_store_log /var/log/squid/store.log
cache_mem 8 MB

# 네트워크의 이름을 외부에 보이도록 함
visible_hostname centos7
PROXY_SERVER_SETTING

firewall-cmd --permanent --add-port=3128/tcp

firewall-cmd --reload

firewall-cmd --list-ports

systemctl start squid

# 프록시 서버 접근 후 로그 생성 확인
find /var/spool/squid/* -type f

cat /var/log/squid/access.log

cat /var/log/squid/cache.log 

cat /var/log/squid/store.log

 

[ 리눅스 클라이언트 ]

FIREFOX 실행
환경설정
일반 → 네트워크 설정 →  설정
프록시 서버 아이피 설정
클라이언트에서 외부 사이트 접속시 서버에 접속기록 남는 것 확인

2. Ubuntu20

 

[ PROXY 서버 ]

# squid proxy 서버 설치
apt-get -y install squid3

NET_INTERFACE=`ls /sys/class/net | grep -v lo | head -1`

PROXY_SERVER_IP=`ip route | grep -e ${NET_INTERFACE} | grep src | awk '{print $9}'`

sed -i "s/^http_port.*//g" /etc/squid/squid.conf
sed -i "s/^acl proxy.*//g" /etc/squid/squid.conf
sed -i "s/^http_access.*proxy//g" /etc/squid/squid.conf
sed -i "s/^cache_dir.*//g" /etc/squid/squid.conf
sed -i "s/^cache_access_log.*//g" /etc/squid/squid.conf
sed -i "s/^cache_store_log.*//g" /etc/squid/squid.conf
sed -i "s/^cache_mem.*//g" /etc/squid/squid.conf
sed -i "s/^visible_hostname.*//g" /etc/squid/squid.conf
sed -i "s/^http_access allow all.*//g" /etc/squid/squid.conf
sed -i "s/^http_access deny all.*//g" /etc/squid/squid.conf

sed -i "/^$/d" /etc/squid/squid.conf

cat <<PROXY_SERVER_SETTING >> /etc/squid/squid.conf

http_port 0.0.0.0:3128

acl proxy src ${PROXY_SERVER_IP%.*}.0/255.255.255.0

http_access allow all
http_access allow proxy

#(1000MB 캐시 공간, 16은 하부 디렉토리 갯수, 256은 16개의 하부 디렉토리에 생성되는 디렉토리 갯수)
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log 
cache_log /var/log/squid/cache.log 
cache_store_log /var/log/squid/store.log
cache_mem 8 MB

# 네트워크의 이름을 외부에 보이도록 함
visible_hostname ubuntu20
PROXY_SERVER_SETTING

ufw allow 3128/tcp

ufw reload

ufw status

systemctl start squid

# 프록시 서버 접근 후 로그 생성 확인
find /var/spool/squid/* -type f

cat /var/log/squid/access.log

cat /var/log/squid/cache.log 

cat /var/log/squid/store.log

 

[ 리눅스 클라이언트 ]

FIREFOX 실행 →  설정
일반 → 네트워크 설정 →  설정
프록시 서버 아이피 설정
클라이언트에서 외부 사이트 접속시 서버에 접속기록 남는 것 확인