LINUX
2018.09.11 / 18:09

[CentOS 5.6] squid 를 이용한 proxy 설정 - 실전 v w f s

xClick
추천 수 1

<  CentOS squid 프록시 설정  >



***** [ 사전 준비 ] *****


squid 서버 : 인터넷이 되는 외부망 NIC (eth0), 인터넷이 되지 않는 내부망 NIC (eth1) 준비

클라이언트 : 인터넷이 되지 않는 내부망 NIC (eth0) 만 준비


알맞게 네트워크 설정을 잡아준다. 예를 들면


- squid 서버 -


ip link show  (OS가 인식하고 있는 네트워크 디바이스를 표시해주는 명령어)


cd /etc/sysconfig/network-scripts


vi ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

IPADDR=192.168.100.100

NETMASK=255.255.255.0

GATEWAY=192.168.100.2

DNS1=168.126.63.1


vi ifcfg-eth1

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

IPADDR=172.16.0.100

NETMASK=255.255.255.0


service network restart


ifconfig


- 클라이언트 -


ip link show


cd /etc/sysconfig/network-scripts


vi ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

IPADDR=172.16.0.10

NETMASK=255.255.255.0


service network restart


ifconfig


위와 같은 예시로 네트워크 설정을 해줬다면

squid 서버  -  외부망(eth0) : 192.168.100.100  /  내부망(eth1) : 172.16.0.100

클라이언트  -  외부망       : 없음             /  내부망(eth0) : 172.16.0.10


만일 클라이언트에서 외부망이 되는 NIC 가 있다면 테스트를 위하여 임시로 외부망 NIC 를 내린다.

예) ifconfig eth0 down


이제 외부로 인터넷이 되지 않는 클라이언트에서 squid 서버를 통하여 인터넷이 되게끔 설정 해보겠다.




***** [ squid 서버 ] *****


yum install -y squid


vi /etc/squid/squid.conf

#http_access allow manager localhost  (:34 주석)

#http_access deny manager              (:35 주석)

http_access allow all                      (추가)

http_port 3128                              (:63 확인)


service squid start


netstat -nlpt | grep 3128


TCP_3128 포트 오픈




***** [ 클라이언트 ] *****


vi /etc/bashrc

export http_proxy=[squid서버IP]:3128

export https_proxy=[squid서버IP]:3128


source /etc/bashrc


테스트 : curl www.daum.net 또는 wget www.daum.net 또는 yum install -y 간단한패키지


(참고1)

proxy 서버를 통하게 설정을 해도 ping 8.8.8.8 등 외부로 핑은 안됨


(참고2)

만일 http_access allow all 이 아니라 특정 아이피 또는 대역에 대해서만 허용을 하고 싶다고 한다면

허용 그룹 설정을 해줘야함 아래에서는 허용할 그룹명을 members 했음.


vi /etc/squid/squid.conf (다 지우고 아래로 대체)

http_port 3128

acl members src [클라이언트IP]/32

http_access allow members

http_access deny all

acl SSL_ports port 443

acl Safe_ports port 80          # http

acl Safe_ports port 21          # ftp

acl Safe_ports port 443         # https

acl Safe_ports port 70          # gopher

acl Safe_ports port 210         # wais

acl Safe_ports port 1025-65535  # unregistered ports

acl Safe_ports port 280         # http-mgmt

acl Safe_ports port 488         # gss-http

acl Safe_ports port 591         # filemaker

acl Safe_ports port 777         # multiling http

acl CONNECT method CONNECT

coredump_dir /var/spool/squid

refresh_pattern ^ftp:           1440    20%     10080

refresh_pattern ^gopher:        1440    0%      1440

refresh_pattern -i (/cgi-bin/|\?) 0     0%      0

refresh_pattern .               0       20%     4320






-----------------------------------------------------

추가로 우분투 에서 squid 서버 설정 하는 방법도 추가함

-----------------------------------------------------






<  Ubuntu 14.04 + squid3 프록시 설정  >




----- [ squid 서버 ] -----


(squid 패키지 설치시 apt-get 도 무방하지만 aptitude 사용 권유)

sudo aptitude install -y squid3


sudo vi /etc/squid3/squid.conf

#http_access allow localhost manager  (:1041 주석 처리)

#http_access deny manager             (:1042 주석 처리)

http_access allow all                    (추가)

http_port 3128                             (:1461 확인)


sudo service squid3 restart


netstat -nlpt | grep 3128


TCP_3128 포트 오픈