차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:squid_ubuntu_proxy_server [2013/02/21 23:50] – 14.32.18.124 | tech:squid_ubuntu_proxy_server [2017/03/08 23:41] (현재) – V_L | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======Ubuntu + Squid를 이용한 프록시 구성하기====== | ||
+ | |||
+ | 프록시(Proxy)란 보통 대리인을 뜻하는 영어 단어이다. 일반적으로 브라우저로 웹서핑을 하면 브라우저를 실행하고 있는 컴퓨터와 서버 컴퓨터간의 1 대 1 직접 연결이 이뤄진다. 프록시는 우선 그러한 1 대 1 접속이 이뤄질 수 없는 환경에서 또는 1 대 1 접속을 허용해서는 안되는 환경에서 유용하게 쓰인다. 주로 방화벽 장비에 프록시 서버를 설치하고, | ||
+ | 현재 대부분의 회사나 관공서의 경우 대역폭의 절감과 보안강화 그리고 웹서핑 속도를 높이기 위한 노력을 끊임없이 하고 있다. 이런 기능이 구현된 몇몇 프록시 서버 프로그램이 시장에 선보였는데 이 프로그램들은 몇 가지 문제점을 가지고 있었다. 첫 번째는 오픈소스가 아니라는 점이고 두 번째는 ICP를 지원하지 않는다는 것이다. ICP는 이웃하는 캐시에 특정요청 정보가 존재하는지 정보를 교환하는데 사용되며 인접해 있는 다른 캐시서버에 먼저 저장돼 있는 캐시정보를 전송받아 사용할 수 있도록 하는 것이다. | ||
+ | |||
+ | 그러나 이러한 것을 Squid는 두 가지 모두를 충족해주고 오히려 그 이상의 효과를 기대할 수 있게 해주었다. 또한 프록시의 부가적인 이익이로는 대역폭을 경제적으로 사용할 수 있게 해 준다는 것이다. 프록시는 최근 사람들이 공통적으로 방문한 사이트를 디렉토리에 저장해 두었다가 같은 URL에 대한 요청이 들어오면 서버에 연결하지 않고도 디렉토리에서 읽어 즉시 브라우저에게 보내준다. | ||
+ | |||
+ | |||
+ | |||
+ | 첫 번째 웹서버 성능을 극대화하고 httpd 가속서버로 구성하는 것이다. Squid가 가속서버로 동작할 때 상당한 효과를 얻을 수 있다. | ||
+ | |||
+ | 두 번째는 일반적인 프록시 캐싱서버로 구성하는 것이다. 이렇게 구성함으로써 회사 또는 조직내의 모든 사용자들로 하여금 Squid를 통해서만 인터넷에 접근하도록 할 수 있다. 이것은 상당한 보안효과와 시스템 자체의 속도를 향상 시킬 수 있다. 또한 Squid 자체 설정을 통해 인터넷의 접속제한 여부를 설정할 수도 있다. 이렇게 구성함으로써 유해사이트도 간단히 접근제어할 수 있는 것이다. | ||
+ | |||
+ | * [출처] [[http:// | ||
+ | * [참고] [[http:// | ||
+ | |||
+ | =====설치===== | ||
+ | squid 와 프록시테스트 프로그램 설치하기 | ||
+ | sudo apt-get install squid | ||
+ | |||
+ | 다음 패키지를 더 설치할 것입니다: | ||
+ | libltdl7 squid-langpack squid3 squid3-common | ||
+ | 제안하는 패키지: | ||
+ | squidclient squid-cgi | ||
+ | 다음 새 패키지를 설치할 것입니다: | ||
+ | libltdl7 squid squid-langpack squid3 squid3-common | ||
+ | |||
+ | |||
+ | squid 설치결과 확인하기 | ||
+ | dpkg -l squid* | ||
+ | |||
+ | |||
+ | squid 설정하기 | ||
+ | sudo cp / | ||
+ | sudo nano / | ||
+ | sudo service squid3 restart | ||
+ | |||
+ | 설정 테스트 | ||
+ | squid3 -z ( 캐쉬 디렉토리를 만든다. 이렇게 하였을때 에러 메시지가 없어야 한다 ) | ||
+ | |||
+ | =====전체 허용 설정===== | ||
+ | <code bash> | ||
+ | visible_hostname VASLOR | ||
+ | # 서버이름 | ||
+ | http_port 3128 | ||
+ | # | ||
+ | # cache_mem 8MB | ||
+ | # (캐시메모리설정) | ||
+ | # Maximum_object_size 4096 | ||
+ | # (캐시에 저장되는 파일 크기 제한-4메가 넘는 파일은 저장하지 않음) | ||
+ | # cache_dir / | ||
+ | # | ||
+ | # access_log / | ||
+ | # cache_log / | ||
+ | # cache_store_log / | ||
+ | # 로그 저장 디렉토리 설정.. 자동으로 이렇게 됨. 나중에 찾아보기.. | ||
+ | # cache_mgr root | ||
+ | # cache_effective_user | ||
+ | # cache_effective_user | ||
+ | # | ||
+ | acl all src all | ||
+ | # (기본적인 squid acl. 웹가속모드(전체허용)이면 따로 | ||
+ | http_accesss allow all | ||
+ | # 프록시 서버에 접근허용할 클라이언트 설정. | ||
+ | # 윗줄에서 설정한 all 이라는 그룹을 허용한다는 뜻. | ||
+ | </ | ||
+ | |||
+ | ===== 인증 (Digest)모드===== | ||
+ | 아이디와 암호를 따로 관리! | ||
+ | <code bash> | ||
+ | auth_param digest program / | ||
+ | ~auth_param digest nonce_max_count 50 까지 주석을 제거 | ||
+ | # | ||
+ | # 저 의미는 digest_pw_auth 인증을 / | ||
+ | |||
+ | # | ||
+ | acl digest proxy_auth REQUIRED (acl 부분 마지막에 추가) | ||
+ | http_access allow digest | ||
+ | # (http_access allow all 윗부분에 추가, allow all과 deny all 주석제거) | ||
+ | |||
+ | # 그후 vi / | ||
+ | # (계정: | ||
+ | # squid 재시작 하면 끝. | ||
+ | </ | ||
+ | |||
+ | =====basic 모드===== | ||
+ | 리눅스 유저 계정으로 접근! | ||
+ | <code bash> | ||
+ | auth_param basic program / | ||
+ | auth_param casesensitive off 까지 주석제거 | ||
+ | # digest와 달리 참고하는 패스워드 파일이 없다. | ||
+ | # 이는 즉 리눅스 유저 계정으로 접근을 하면된다 이말씀.) | ||
+ | # 그 다음 역시 basic 허용 | ||
+ | acl pam proxy_auth REQUIRED | ||
+ | # (왜 basic이 아닌 pam을 썼냐하면, | ||
+ | http_access allow pam | ||
+ | # (위에서 pam으로 썼기 때문에 pam을 허용해야 basic인증이 된다.basic으로 | ||
+ | # 쓰고싶다면 acl 에서 basic proxy_auth REQUIRED로 쓰면됨) | ||
+ | # pam_auth 파일 권한을 바꿔줘야한다. | ||
+ | # chmod u+s / | ||
+ | # 이제 squid를 재시작 하면 끝. | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ^ 누구나 수정하실 수 있습니다. [[http:// | ||
+ | |||
+ | |||