2011년 1월 31일 월요일

백업계정 서비스 100% 활용하기

ncftp를 이용한 백업 스크립트입니다.
 
# vi /root/backup.sh
 
#!/bin/bash
 
 
#### 공통설정
export Today="`date '+%y-%m-%d'`"
backup_dir="/home/file/backup"
backup_day="1" # 보관일(1일)
 
 
#### 디비설정
DB_user="root";
DB_pass="비밀번호";
 

#### 원격설정
FTP_addr="접속아이피";
FTP_user="아이디";
FTP_pass="비밀번호";
 
 

########### 오래된 백업데이터 삭제
dirlists=`/bin/ls -t $backup_dir 2>/dev/null`
i=1
for dir in $dirlists ; do
  if [ "$i" -ge $backup_day ] ; then
    /bin/rm -rf "$backup_dir/$dir"
  fi
  i=$(($i+1))
done
 
 
####### 새로운 디렉토리 생성
if [ ! -d "${backup_dir}/${Today}" ]
then
/bin/mkdir -p ${backup_dir}/$Today
/bin/mkdir -p ${backup_dir}/$Today/homedir
/bin/mkdir -p ${backup_dir}/$Today/databass
/bin/mkdir -p ${backup_dir}/$Today/system
fi
 
 
####### databass를 사용자별로 백업을 한다.
for database in `mysqlshow -u ${DB_user} -p${DB_pass} | awk -F" " '{ print $2 }' | grep -v "^$" |grep -v "Databases"` ; do
  mysqldump -u ${DB_user} -p${DB_pass}  "${database}" ${table} > ${backup_dir}/${Today}/databass/${database}.sql
done
 
 
####### 시스템 디렉토리를 백업한다
tar cvfpz ${backup_dir}/$Today/system/usr.local.tar.gz /usr/local
tar cvfpz ${backup_dir}/$Today/system/etc.tar.gz /etc
tar cvfpz ${backup_dir}/$Today/system/var.named.tar.gz /var/named
 
 
 
####### home 디렉토리에 사용자별로 백업을 한다.
dirlists=`/bin/ls -t /home 2>/dev/null`
for dir in $dirlists ; do
  tar cvfpz ${backup_dir}/$Today/homedir/$dir.tar.gz /home/$dir
done
 
 
 
####### 링크를 만들어 준다.
rm -rf ${backup_dir}/today
ln -s ${backup_dir}/$Today /${backup_dir}/today
 
 
 
####### 원격 데이타백업을 시작한다.
ncftp -u${FTP_user} -p${FTP_pass} ${FTP_addr} << ./backup
put -R ${backup_dir}/$Today
bye
 
 
* 파일 경로 주의하시고 이메일주소 변경해서 사용하세요.
 
# crontab -e
 
05 00 * * * '/usr/bin/rdate -s time.bora.net && /sbin/clock -w'
00 04 * * * su - root -c '/root/backup.sh | mail -s "시스템 백업 결과보고" test@abc.com'

## 제로보드 데이타 폴더 및 그에 따른 파일들의 퍼미션을 변경하는 방법 ##

## 제로보드 데이타 폴더 및 그에 따른 파일들의 퍼미션을 변경하는 방법 ##
 
해당 data 폴더가 위치해 있는 동일 위상의 디렉토리에 아래 내용으로 실행이 가능한 파일을 생성합니다.(파일명은 마음대로...)
 
예) change.php
#############################################
<? exec("chmod -R 777 ./data"); ?>
#############################################
 
그리고 나서 웹상에서
 
주소를 호출하게되면 위 파일내용의 명령인 chmod -R 777 ./data 명령이 수행되게 되어
접근이 가능하게 된다.

UTF-8 을 EUC_KR로 변환하려면.... 예시

이건 적용은 안해봤지만... 예시임..
 
mysql 접속하는 부분 아래에
 mysql_query("set names euckr");  한줄 넣코 테스트 해보자~!!
 
mysql_connect() 하고
mysql_select_db($db, $connect); 넣고
mysql_select_db() 하면된다고
이렇케 해서 안되면.... 어쩔 수 없다... ㅡㅡ;;

samba 마운트시 에러 ~!!

# 고객서버에서 삼바 에러메시지
read_socket_data: recv failure for 4. Error = 연결이 상대편에 의해 끊어짐
lib/util_sock.c:read_socket_data(384)

# 백업서버에서의 에러메시지
/var/log/samba/xxx.xxx.xxx.xxx.log
=> [2007/11/07 19:01:29, 0] printing/print_cups.c:cups_cache_reload(85)
  Unable to connect to CUPS server localhost - 연결이 거부됨

명령>
smbmount //xxx.xxx.xxx.xxx/아이디 /mnt -o username=아이디,password=암호
했을 경우 에러확인 방법!!
1. /etc/samba/samba.conf 파일에서 hosts allow에서 해당 고객 서버의 아이피 대역이 열려있는지 확인할 것~!! 
   hosts allow = xxx.xxx.xxx.

startssl 자동실행[SSL]

인터넷침해사고대응지원센터

[Virut 정보 제공 관련 홈페이지]
 
o 인터넷침해사고대응지원센터 - http://www.krcert.or.kr/
o 보호나라 - http://www.boho.or.kr/
o 안철수연구소 - http://www.ahnlab.com/
o 바이러스체이서 - http://www.viruschaser.com/
o 하우리 - http://www.hauri.co.kr/

hotmail에서 메일이 받아지지 않는 문제

2006년 10월 17일 이후 마이크로소프트사의 메일서비스 시스템에 SenderID 시스템이 도입되었습니다. 

기존에 정상적으로 발송되었던 메일이 마이크로소프트사의 SenderID 적용이후 메일발송 지연 또는 배달이 되지 않고 있습니다. 
이미 고객님의 도메인은 SenderID 규격에 맞게 SPF 레코드가 설정 되어 있습니다. 
다만, 추가적으로 마이크로소프트사의 메일 서비스에서는 SPF 레코드가 추가된 도메인을 마이크로소프트사의네임서버로 고객님의 도메인명을 등록해야 합니다. 
정상적으로 네임서버에 등록된후 부터는 정상적인 메일 송신이 가능합니다. 
다음과 같이 도메인을 마이크로소프트사로 발송하시면 됩니다. 
메일제목과 본문에 도메인 이름만 입력후 다음의 메일 주소로 senderid@microsoft.com 으로 보내시면 정상적인 메일 발송이 가능합니다.
링크정보를 참조하시면 자세한 내용을 확인 하실 수 있습니다. 

예제) 고객 서비스도메인 (abc.com)인 경우 
From: webmaster@abc.com 
To: senderid@microsoft.com 
subject: abc.com 
body: abc.com 

예제) 카페24 아이디 (abc)인 경우 
From: webmaster@abc.cafe24.com 
To: senderid@microsoft.com 
Subject: abc.cafe24.com 
Body: abc.cafe24.com 

별첨 : 마이크로소프트 SsenderID 
http://www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx 



저도 hotmail 로 발송이 안되서 이곳저곳 찾다가 찾았습니다. 
출처는 카페24입니다. 참고하시면 좋을듯합니다.
phpschool 에서 발췌

쿼터..

http://realmind.tistory.com/?page=8

### 일련의 사용자들에게 같은 값으로 디스크 할당량 배정 #### 
예를 들어 100명의 사용자의 할당량을 사용자 bob과 같은 값으로 빨리 설정하기 위해서는, 먼저 bob의 할당량 정보를 직접 수정한 후에 다음 명령을 수행하면 된다. 

> edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

아파치 데몬이 안 뜰경우

### 아파치 데몬이 안 뜰경우 ###

Version 2.2.4에서..
 
[root@xezb logs]# /usr/local/apache/bin/apachectl configtest
Syntax OK
는 오케이 인데 데몬이 안뜬다.. why?
 
호스트 네임을 도메인으로 준 경우 /etc/hosts에 도메인을 넣어 줘야 함!!그래야 정상적으로 httpd 데몬이 뜬다.~!!
 
[root@xezb logs]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
##::1           localhost6.localdomain6 localhost6
127.0.0.1               xezb.test.com[root@xezb logs]#

2011년 1월 25일 화요일

[리눅스] 자동화의 도구 crontab 설정 방법

crontab을 설정하여 자동으로 stats.pl을 실행하자..
-------------------------------------------------------------------------------------------------------------------------------
# vi cronexample
# How to have PsychoStats update every 30 minutes.
# Since parsing the logs isn't really a high priority
# (to me, anyways) I use "nice" to let other CPU
# intensive apps get more CPU time. I do this so its
# less likely of lagging the HLDS server.
#
# This example will make the stats update at the top
# and middle of the hour, every hour.
0,30 * * * * nice /full/path/tothe/program/stats.pl

# To install a cronjob on linux type "crontab -e" at the
# prompt and insert a similar line like above. Then save the
# file and linux will then run the cronjob at the
# intervals specified.   
아래는 crontab의 설정시 참고할 만한 crontab의 설명서 이다.
읽어보면 안다. 모르면 최소 3번만 읽어라. 그러면 이해할 것이다.

cron에는 모두 일곱개이 필드가 있습니다. 그 포맷을 보면
mimute hour day month weekday username command
첫번째는 분을 나타냅니다.(0~59)
두번째는 시간을 나타내죠.(0~23)
세번째는 일, 즉 한달중의 날을 얘기하죠.(1~31)
네번째는 달, 즉 1년중의 달을 나타냅니다.(1~12)
다섯번째는 일주일중의 날을 얘기합니다. 즉 월요일~일요일.(1~7)

그러니까 매일 새벽 한시에 test란 명령이 실행되기를 원하신다면,
아래 같은 내용을 crontab 에 저장을 해주시면 됩니다.
0 1 * * * /home/test
모든 필드의 구분은 space이며, 한 필드에 여러값을 사용하려면, space없이 콤마로 구분합니다.
또한 cron 데몬은 다른 데몬들 처럼 restart를 하실 필요가 없습니다.

9.4. Cron 과 crontab 파일을 이용하여 작업을 자동화하기
당신도 대부분의 리눅스 사용자와 마찬가지로, 반복적으로 어떤 특정한 시간에 어떤 작업을 시작하도록 예약할 필요를 느낄 것이다. 그러한 작업은 분 단위로 반복되는 것일 수도 있고 1년에 한번 반복되는 것일 수도 있다. 이러한 예약 기능은 ``cron'' 기능을 이용하여 구현할 수 있다.
리눅스의 cron 기능은 다른 유닉스와 거의 같게 구현되어 있다. 하지만, 레드햇은 작업의 스케쥴을 잡는데 있어서 다른 리눅스 배포판과는 약간 다른 방식을 채택하고 있다. 다른 배포판과 마찬가지로 스케쥴링 정보는 시스템내의 (``/etc/'' 디렉토리의) ``crontab'' 파일에 다음과 같은 형식으로 저장된다:

분 시 일 월 연 명령
각 항목은 정수로 (예를 들어, 1월부터 12월을 나타내기 위하여 1부터 12사이의 숫자를 사용) 지정할 수도 있고 몇개의 항목은 와일드카드 문자로 인식되는 ``*'' 문자로 (예를 들어, 월에 해당하는 항목에 * 표시가 있으면 매월 지정된 날짜, 지정된 시간에 명령이 실행된다는 것을 의미한다) 표시할 수도 있다. 몇가지 예를 들어보면:

# 매년 6월 15일 오후 4시 30분에 시스템 로그 파일을 메일로 발송한다
30 16 15 06 * for x in /var/log/*; do cat ${x} | mail postmaster; done

# 관리자에게 계절이 바뀌었음을 자정에 알려준다
00 00 20 04 * echo 'Woohoo, spring is here!'
00 00 20 06 * echo 'Yeah, summer has arrived, time to hit the beach!'
00 00 20 10 * echo 'Fall has arrived.  Get those jackets out.  :-('
00 00 20 12 * echo 'Time for 5 months of misery.  ;-('

표준출력 (즉, 터미널) 으로 출력이 나오는 명령, 예를 들어 위의 예에서 사용한 ``echo'' 명령, 의 출력은 ``루트'' 계정에게 메일로 전송된다. 이렇게 메일이 가지 않도록 하려면 다음의 예처럼 출력을 널 장치 (null device) 로 파이프 연결하면 된다:
00 06 * * * echo 'I bug the system administrator daily at 6:00am!' >/dev/null
표준인 ``crontab'' 외에도 레드햇은 몇개의 디렉토리를 추가하였다:
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/

이름에서 알 수 있듯이, 이들 디렉토리의 아무 곳에나 실행가능한 파일을 둘 수 있으며, 이들 파일은 각기 매시, 매일, 매주 단위로 실행된다. 이 방식은 빈번한 작업을 지정할 때에는 시간을 절약해줄 수 있다; 그냥 실행가능한 스크립트나 프로그램을 적절한 디렉토리에 가져다 놓고 (또는 다른 곳에 있는 파일에 대하여 심볼릭 링크를 걸어놓고) 그 일은 신경쓰지 않아도 된다.

# 6시간마다 실행하도록 한다.
0 */6 * * * nice /psychostats1.9/stats.pl
# 저희 피시방 서버의 경우 위와 같이 설정을 했습니다.

접근이 안될 경우 확인 방법

C:\Documents and Settings\Administrator.HWANG>tracert mail.korea.com
Tracing route to mail.korea.com [220.95.230.50]
over a maximum of 30 hops:
  1     6 ms   <10 ms   <10 ms  192.168.0.1
  2     7 ms     6 ms     7 ms  125.131.196.30
  3     *        *        *     Request timed out.
  4     7 ms     7 ms     7 ms  61.78.42.160
  5     7 ms     7 ms     6 ms  121.138.1.17
  6     9 ms     7 ms     8 ms  59.18.35.37
  7     7 ms     6 ms     7 ms  59.18.35.38
  8     7 ms     7 ms     7 ms  218.145.44.126
  9     8 ms     7 ms     7 ms  222.122.61.86
 10    29 ms   101 ms    98 ms  222.122.3.254
 11    12 ms    11 ms    11 ms  222.122.159.22
 12     *        *        *     Request timed out.
 13     *        *        *     Request timed out.
 14     *        *        *     Request timed out.

===> 메일서버로 접근이 되어야 하는데 마지막 단계에서 접근이
안되는 것은 서버단에 해당 아이피가 막혀있기 때문이다.


방화벽 확인할 것~!!

mysqld_safe & 실행 시 오류 문제

070809 07:00:25  mysqld started
070809  7:00:25  /usr/local/mysql/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
070809 07:00:25  mysqld ended
 
/usr/local/mysql/data/mysql/host.frm  ====>> 이 파일이 깨져서 문제가 생긴것임~!!
 
위 에러로 mysql daemon를 start 할 수 없을때, 긴급사항이므로...
mysql db 백업본으로 복구 한 후 mysql daemon를 구동하면 정상적으로 될 것이다~!!

[네임서버] 서브도메인 설정 방법

test1.eth0.co.kr.zone
======================================================
$TTL    60
@       IN      SOA     ns.test1.eth0.co.kr. root.test1.eth0.co.kr.  (
                                      2005020411 ; Serial : 200409072
                                      3600       ; Refresh : 28800
                                      240        ; Retry : 14400
                                      1209600    ; Expire : 3600000
                                      43200 )    ; Minimum : 86400
@           IN      NS          ns.test1.eth0.co.kr.
@           IN      NS          ns2.test1.eth0.co.kr.
@           IN      MX  10      mail.test1.eth0.co.kr.
@           IN      TXT         "v=spf1 ip4:222.222.222.222 ~all"
@           IN      A           222.222.222.222
www       IN      A           222.222.222.222
mail        IN      A           222.222.222.222
*             IN      A           222.222.222.222
======================================================
 
 
/etc/named.conf
======================================================
//zone "test1.eth0.co.kr" IN {
//  type master;
//  file "masters/test1.eth0.co.kr.zone";
//  allow-update { none; };
//};
======================================================
 
> ping test1.eth0.co.kr
> nslookup -type=mx test1.eth0.co.kr

php 프로그램 공부(무료)

http://php.ubedu.com/

랜선 찝는 방법~!!

흰주주, 흰녹파, 흰파녹, 흰갈갈

스파이더 로봇이 못오게 robots.txt 이용

1. 스파이더 로봇이 못오게 robots.txt 이용
파일명을 'robots.txt' 로 해서 웹사이트 루트(root) 디렉토리에 저장합니다.
모든 스파이더(*)가 모든 파일을 읽지 못하게 하는 경우
User-agent: *
Disallow: /
 

* User-Agent : 스파이더 로봇 이름, Disallow : 제한할 파일 이름
모든스파이더가 특정디렉토리 및 파일을 읽지 못하게 하는 경우
User-agent: *
Disallow: /intra/
Disallow: /secret.html
 
 
2. META 태그를 이용하여 못오게 하기
위의 두가지 방법을 사용하면 검색엔진 스파이더가 자료를 수집하지 않습니다.
이것이 검색엔진의 표준적인 '약속'이지만 이 약속을 무시하는 검색엔진도 간혹 있다는 것을 염두에 두십시요.
해당 태그를 잘못 사용하면 검색엔진에서 운영하는 사이트 검색이 되지 않을수도 있으니 조심해서 사용하십시요.
 
3. 참고사이트

shell 에서 변경 시(찾는문자열, 바꿀문자열)

find / -name "*.txt" -exec perl -pi -e 's/찾을문자열/바꿀문자열/g' {} \;

squid 로 웹서버 가속하기..---== 강추 ==---

하이텔 리눅스 동회회에서 퍼온글입니다. 
이제까지 squid는 단순히 내부 네트워크의 웹서핑 속도 
향상에만 쓰는 건줄 알았는데 잘만 쓰면 자신의 웹서버의 
성능및 속도 향상에도 잘 쓰일수 있을꺼같습니다.. 
.. 
이런게 역프록시 (Reverse Proxy )라는 게 맞는지 모르겠지만. 
.. 
하여튼.. 간단히 설명하면.. 
외부 사용자가 자신의 웹서버에 접속할때는 아파치 등의 
웹서버 80 포트로 바로 접속 되는게 아니라.. 
squid 의 80 번포트로 접속 됩니다.. 보통 squid 는 
3128 번포트인가 ? 사용하는 웹 가속서버로 쓸려면 반드시 
80 번 포트로 해야합니다.. 
(더 자세히 말하면 /etc/service 에 등록된 포트죠).. 
.. 
그러면 squid 는 캐싱가능한 웹정보는 자신이 담당하고 
cgi 등 계산이 필요하거나 케싱안되는건 실제 웹서버에 
요청을 보냅니다.. 
당연히 아파치는 80 번 포트가 아니라 다른 포트.. 예를 들면 
81 번 포트 등으로 실행이 되어야합니다.. squid 설정파일에서 
웹서버 IP 와 포트를 지정할수 있습니다.. 
.. 
실제로 이걸써서 서비스할 처지가 못해서 충분한 테스트는 
못해봤는데.. 오래 써보신분들 경험담 부탁하고요.. 
.. 
이런 거 말고.. 웹가속할수 있는 방법 있으면 부탁... 
.. 
아래는 하이텔에서 현창호 님이 올린 글입니다.. 
======================================================== 

작성자:현 창호(climbk2@hitel.net) 
URL:http://www.emperorofjapan.com 

#사용목적 
squid을 accelerator mode로 사용하는 이유는 웹서버의 부하을 덜어주기 
위함이다.자주 접근되는 웹서버의 내용을 squid의 캐쉬에 저장시켜 클라이 
언트로부터 요청이 있을시 웹서버에 요청하지 않고 캐쉬에서 바로 보내 줌으로 
써 서버의 이용률을 높일 수 있게 되는것이다.클라이언트로 부터 오는 요청중 
캐쉬에 저장될 수 없는 cgi같은 내용만 웹서버로 직접 전달시켜줄 뿐 나머지 
캐쉬로 저장해두 무방한 html이나 gif,jpg같은 내용은 캐쉬에서 바로 클라이 
언트로 응답을 해줌으로서 속도을 증가시켜 주는 역할을 한다. 
squid는 클라이언트와 웹서버의 중간자 역할을 수행한다고 생각하면 이해하기 
가 수월할 것이다.클라이언트의 요청을 squid가 받아서 squid의 cache에 보관되 
어 있는 내용은 웹서버에 요청하지 않고 squid 자신이 바로 처리함으로써 웹서버 
의 부하을 줄이면서 클라이언트의 요청에 좀 더 빨리 응답할 수 있게 되는 것이다. 

또한 특정 주소로 부터의 접속을 차단하거나,특정 주소로 향하는 접속만 허용할 
수 있으며 특정 포트로부터 오는 접속을 차단하는 역할 을 한다. 

# squid의 설치 
squid는 리눅스 배포판 시디안에 rpm포맷으로 존재함으로 간단히 설치할 수 있다. 

rpm -ivh squid-2.3.STABLE4-10.rpm 

설치가 완료되면 자동적으로 /etc/squid,/var/spool/squid,/var/log/squid가 
생성된다./etc/squid 디렉토리가 squid설정 디렉토리임을 잊지 말기바란다. 

# squid.conf 설정 
먼저 설정하기에 앞서 아파치 웹서버가 이용하는 80포트을 81포트로 옮겨준다. 
httpd.conf 웹서버 설정 파일서 "Port 80" 을 "Port 81"로 고쳐준다. 

앞에서 언급했듯이 squid가 웹서버와 클라이언크간의 중간자 역할을 한다고 했 
음으로 클라이언트의 접속요청을 squid가 포트 80번으로 변함없이 받아서 단지 
이 요청에서 squid가 자신의 캐쉬에 보관된 내용을 클라이언트가 요청했면 바 
로 전달해주고,자신의 캐쉬에 보관된 내용이 아닌 내용은 웹서버에 요청해서 
클라이언트에 전해준다. 

이제 squid웹 프록시 서버의 설정파일인 squid.conf 파일을 수정해서 squid 가 
엑셀레이터 모드로 작동시키는 과정을 설명한다. 
/etc/squid/squid.conf.default 파일을 /etc/squid/squid.conf로 복사해서 이을 
수정 
해서 사용한다. 

다음 부분을 수정해주면 된다. 

*squid.conf 설명 시작* 
--------------------------------------------------------------- 
#squid.conf 
# squid가 사용하는 포트(http_accelerate mode) 
http_port 80 

# squid을 accelerate mode로 사용함으로 icp사용안함,'0' means 'not using'. 
icp_port 0 

# 의미없음 
acl QUERY urlpath_regex cgi-bin \? 
no_cache deny QUERY 

# squid가 사용하는 최소 메모리,실제 메모리의 1/3크기로 해줌 
#내 경우 512M을 사용 
cache_mem 160 MB 

# cache_dir , type, directory, Mbyte ,첫디렉토리숫자, 그하위디렉토리숫자 
#첫디렉토리 숫자란 /var/spool/squid/ 디렉에 생성될 수 있는 디렉토리 수을 
말한다. 
#그 하위 디렉토리 숫자란 /var/spool/squid/example/ 디렉에 생성될 수 있는 
디렉토리 수을 말한다. 
#아래의 의미는 ,directory = /var/spool/squid,Mbyte = 100M,첫디렉토리 = 
16개,하위디렉토리 = 256 개 
cache_dir ufs /var/spool/squid 100 16 256 

# cache replacement policy,based on frequency 
replacement_policy GDSF 

# Access Control List(acl) 
# acl aclname acltype string <<-- 순서 필히 지켜주어야한다. 
# aclname :자기가 편한대로 지어주면 된다.(가령 hateaddress,blockshit...) 
# acltype :src dst srcdomain dstdomain url_pattern urlpath_pattern time port 
proto method browser user :case sensitive 
#즉 대소문자을 주의해야한다. 
# i.e) acl localnet src 192.168.1.0/255.255.255.0 
# acl myself myip 211.211.211.211/255.255.255.255 
# acl block srcdomain .sarang.net <-srang.net을 주소로하는 접속시도 
# acl blockport port 1-1023 
# acl Safe_ports port 23 
# 0.0.0.0/0.0.0.0 모든 곳으로 부터 시도되는 접속 
acl all src 0.0.0.0/0.0.0.0 

# allow or deny :위 부분에 작성한 acl 중 aclname을 이용해서 접속 차단,허용을 
작성한다. 
# http_access deny blockport <-blockport란 가진 이름 가진 acl 차단 
# http_access deny !Safe_ports <-Safe_ports가 아닌것은 차단 
#(i.e) http_access deny block <--위 부분 acl list의 예문중 sarang.net을 
주소로 하는 접속시도을 차단한다. 
http_access allow all 

# squid 관리자 
cache_mgr emperorofjapan11@emperorofjapan.com 

# cache가 squid란 uid/gid로 작동,보안을 위해 
cache_effective_user squid 
cache_effective_group squid 

# squid가 작동하는 호스트 
httpd_accel_host 211.20x.x1.1x6 <--squid가 작동되는 호스트 ip나 호스트 이름을 
적어준다. 

# 아파치가 작동하고 있는 포트 
httpd_accel_port 81 <--아파치가 돌아가는 포트 

# icp을 사용하지 않음으로 당연히 'off' 
log_icp_queries off 

# cachemgr 을 위한 password,아래 부분에 설명이 있다. 
# cachemgr_passwd password all 
cachemgr_passwd password all 


# 로그 파일의 신속한 작성을 위해 'on' 
buffered_logs on 


----------------- 
*squid 설명 완료* 

#기타 사항 
# squid 기본 설정 디렉토리 /etc/squid 
# squid cache 디렉토리 /var/spool/squid 
# squid log 디렉토리 /var/log/squid 
# squid error 설정 /etc/squid 디렉토리 내에서 
ln -s /usr/lib/squid/errors/Korean errors 하면 에머메시지가 한글로 나옴 
# squid accelerator mode는 html,gif등 cache할 수 있는 contents을 squid 
# cache내에 저장,하지만 cgi등과같이 cache할 수 없는 contents는 apache서버에 
# 직접 요청하는 역활을 한다. 
# httpd_accel_host virtual <-virtual web hosting 
# httpd_accel_with_proxy on <-accelerator mode와 proxy모드 함께 사용시 

# howto cache manager (cachemgr.cgi) :캐쉬 매너져 사용하기 
cp /usr/lib/squid/cachemgr.cgi /usr/local/apache/cgi-bin/ 
http://hostname/cgi-bin/cachemgr.cgi <-웨브라우저로 접속해서 아래 부분을 
작성하면 접속완료 
Cache Host: localhost 
Cache port: 80(accelerator mode),8080(proxy mode) 
Manager name:squid 
Password : password(squid.conf에 적어준 패스워드) 

접속이 완료되면 캐쉬 매너져을 사용해서 수정을 해줄수 있다. 


------------------------------------- 
#내가 사용하는 간략한 squid.conf 설정파일 예제 
# 필요한 부분만 수정해서 /etc/squid/squid.conf 로 복사해서 
# 사용해도 된다. 

http_port 80 
icp_port 0 
acl QUERY urlpath_regex cgi-bin ? 
no_cache deny QUERY 
cache_mem 170 MB 
cache_dir ufs /var/spool/squid 100 16 256 
replacement_policy GDSF 
acl all src 0.0.0.0/0.0.0.0 
http_access allow all 
cache_mgr climbk2@hitel.net 
cache_effective_user squid 
cache_effective_group squid 
httpd_accel_host 192.168.1.1 
httpd_accel_port 81 
log_icp_queries off 
cachemgr_passwd password all 
buffered_logs on 

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

#Squid 실행/정지 
/etc/init.d/squid start/stop/restart <--자신의 시스템에 따르겠지만 거의 
비슷하다. 

--------------------------------------------- 
다른 곳에 배포할 시 작성자을 지우지 말고 배포해주세요. 

리눅스 Proxy Server[Squid] 설정법[RedHatLinux8.0]

##########################
# Proxy Server Setting #
##########################
Squid Proxy Server 를 사용한 proxy Server Setting
* web caching 기능
* 외부네트워크부터 내부네트워크의 보안을 유지

###################################
1. Squid Proxy Server 의 개요
###################################
http, ftp caching을 지원하며, DNS 검색 및 hierarchy과 투명 프록시 캐싱을 지원하는
성능이 뛰어난 인공지능형 프록시 서버
http://www.squid-cache.org

###################################
2. squid 설정
###################################
rpm 설치 : /etc/squid/squid.conf
source설치 : /usr/local/squid/etc/squid.conf

###################################
3. squid 고급설정
###################################
(1). http_port 3128 --> 47번째줄
* squid proxy 서버의 서비스 포트를 지정

(2). cache_mem 8 MB --> 373번째줄
* 이상적인 메모리 양을 설정

Maximum_object_size 4096 KB
* 캐시 디스크에 저장될 수 있는 객체 즉 파일의 크기를 제한하는 옵션
* 4메가가 넘는 파일들은 캐시를 통해 디스크에 저장될 수 없다.

(3). cache_dir /var/spool/squid 1000 16 256 --> 463번째줄
* /var/spool/squid 디렉토리에 캐시 데이터들이 최대 1000메가까지 저장
될 수 있고, 캐시가 저장될 1차 디렉토리는 16개로 설정한 다음 그 밑에
2차 하위 디렉토리 수를 256개로 설정.

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log /var/log/squid/store.log

(4). debug_options ALL,1 --> 559번째줄
* squid가 동작할 때 오류 체크 기능 사용하여 로그파일에 기록할 수 있게 하는 옵션
* 기본적인 값(1)만 로그에 남도록 지정해 주는 것.

(5). acl all src 0.0.0.0/0.0.0.0 --> 1164번째줄
* 프록시 서버에 접속할 수 있는 범주 설정
* all 범주는 src 옵션으로 all 범주에 속하는 네트워크 지정
* http_access 참조된다.

(6). http_access allow all --> 1212번째줄
* 클라이언트가 프록시 서버에 접속을 허용할 것인지 거부할 것인지를 결정

icp_access allow all

(7). cache_mgr root --> 1271번째줄
* 캐시서버의 관리자 계정과 squid 서버를 작동시킬 유저와 그룹명을 지정

cache_effective_user squid

cache_effective_group squid

###################################
4. squid실행
###################################
/etc/rc.d/init.d/squid start/stop/restart (start/restart/stop)

###################################
5. 확인하기
###################################
/var/logs/squid/access.log 로그파일 점검(rpm 설치시)

/usr/local/squid/logs/access.log(source 설치시)

###################################
6. 그외의 설정들(보안작업)
###################################
# vi /etc/rc.local
ipchain -A input -p TCP -d 127.0.0.1/32 www -j ACCEPT
ipchain -A input -p TCP -d 192.168.1.1/32 www -j ACCEPT
ipchain -A input -p TCP -d any/0 www -j REDIRECT 3128
확인작업
# ipchain -L