'분류 전체보기'에 해당되는 글 170건
- 2011.03.09 답글
- 2011.03.09 그녀의 매력
- 2011.03.09 공감
- 2011.03.08 마이바흐
- 2011.03.08 바리공주 설화
- 2011.02.28 균형
- 2011.02.09 XSS(Cross Site Scripting) 관련자료.
- 2010.09.02 직장인 일주일 얼굴 변화
- 2010.08.31 리눅스 서버 설치후 기본 보안 처리
- 2010.08.10 ssh 접속시 한참 기다리거나 딜레이가 생기는 경우. vsftp 포함
- 2010.08.10 VSFTP 설정
- 2010.07.23 의자의 혁명
- 2010.07.22 REDHAT에 YUM 설치..
- 2010.07.14 능력자의 위엄
- 2010.07.10 윈도우즈 ftp로 백업파일 내려받기. 배치파일 스크립트
- 2010.07.07 바나나의 불편한 진실.
- 2010.07.06 네이트온 경마게임
- 2010.06.23 부부 스피트 퀴즈
- 2010.06.22 더울 땐 역시 스릴~
- 2010.06.22 본격 29,000원짜리 양말
- 2010.06.17 다운로드후 저장은 되는데.. 열기가 안될때.
- 2010.06.14 명품 브랜드 반응
- 2010.04.21 한글 str_replace, 한글 2바이트 문제로 인한 변경
- 2010.03.30 이미지매직(ImageMagick) 명령어 예제 및 설명
- 2010.03.18 Rewite모듈로 블로그 한글아이디까지 리다이렉트 시키기
- 2010.03.10 남의_여자_다리_이야기
- 2010.03.09 오늘은 탱탄절~!
- 2010.03.05 MySQL 설치 후 root패스워드 지정
- 2010.03.05 phpMyAdmin 설치하기 1
- 2010.03.03 VirtualHost 설정하기 아파치 가상호스팅.
2011. 2. 9. 14:52
XSS(Cross Site Scripting) 관련자료. HTML자스2011. 2. 9. 14:52
http://ha.ckers.org/xss.html
2010. 8. 31. 17:45
리눅스 서버 설치후 기본 보안 처리 리눅스서버2010. 8. 31. 17:45
오래된거기는 하지만 참고하면 좋다.
아! 참고만 한다. 몇 개는 고대로 따라했다가는 망한다 ㅋㅋㅋ
http://blog.syszone.co.kr/442
작성자 : 서진우 (alang@sysmng.com)
-------------------------------------------------------------------------
------
리눅스 서버를 설치후 기본적으로 서버에 보안 설정을 해 두어야 한다.
그렇지 않을 경우 일반 서버 환경에 맞지 않기 때문에 보안에 허술한 부분을
통해 해킹의 우려가 있다. 서버설치시 초기에 고려해야할 보안 설정 부분이다.
1. Xserver 를 제외한 서버에 필요한 최소 팻키지로 시스템 운영체제를 설치한다.
그런뒤 현재 설치된 배포판의 패키지 중에서 보안에 문제가 있어서 업그레이드
된 팻키지가 나왔을 경우 모두 팻키지를 업그레이드 시킨다.
(Redhat 7.1 경우 : xinetd-2.3.x 이상,sendmail-8.11.6,kernel-2.4.12)
2. 설치 완료후 필요없는 데몬을 죽인다. portmap/identd/atd/lpd/gpm/xfs등 삭제
3. /etc/rc.d/rc3.d 에 S로 실행되는 데몬중에 불필요한것을 제거한다.
(ntsysv 를 통해 Level 3 로 실행될때 초기 실행 데몬 종류를 선택한다.
crond/named/network/named/sendmail/proftpd/sshd/telnet/syslog 등 시스템
에서 꼭 필요한 서비스만 초기 오픈 시켜 놓는다.
4. /etc/xinetd.d 디렉토리 안의 xinetd 제어 데몬 설정중 불필요한것들을 지운다.
(telnet,pop3 정도를 제외한 나머지..)
# rm -f /etc/xinetd.d/chargen*
# rm -f /etc/xinetd.d/daytime*
# rm -f /etc/xinetd.d/echo*
# rm -f /etc/xinetd.d/finger*
# rm -f /etc/xinetd.d/ntalk*
# rm -f /etc/xinetd.d/r*
# rm -f /etc/xinetd.d/talk*
# rm -f /etc/xinetd.d/time*
5. /etc/passwd 와 /etc/group 에서 불필요한 계정및 그룹을 삭제한다.
# userdel adm
# userdel lp
# userdel sync
# userdel shutdown
# userdel halt
# userdel news
# userdel uucp
# userdel operator
# userdel games
# userdel gopher
# userdel ftp
# groupdel adm
# groupdel lp
# groupdel news
# groupdel uucp
# groupdel games
# groupdel dip
# groupdel pppusers
# groupdel slipusers
6. 불필요한 명령어 및 설정파일의 파일권한을 변경한다.
chmod 700 /usr/bin/finger
chmod 700 /usr/bin/nslookup
chmod 700 /usr/bin/gcc
chmod 700 /usr/bin/cc
chmod 700 /usr/bin/suidperl
chmod 700 /usr/bin/whereis
chmod 700 /usr/bin/sperl5.6.0
chmod 700 /usr/bin/c++
chmod 700 /usr/bin/make
chmod 700 /usr/bin/finger
chmod 700 /usr/bin/pstree
chmod 700 /usr/bin/rlog
chmod 700 /usr/bin/rlogin
chmod 700 /bin/mail
chmod 700 /bin/ps
chmod 700 /bin/mount
chmod 700 /bin/umount
chattr +i /etc/fstab
7. 시스템 관리자용 명령어를 그룹별 허용이 되도록 설정한다.
# chmod 750 /bin/ps
# chmod 750 /bin/netstat
# chmod 750 /bin/dmesg
# chmod 750 /bin/df
# chmod 750 /usr/bin/w
# chmod 750 /usr/bin/who
# chmod 750 /usr/bin/last
# chmod 750 /usr/bin/top
# chmod 750 /usr/bin/lsof
# chgrp wheel /bin/ps
# chgrp wheel /bin/netstat
# chgrp wheel /bin/dmesg
# chgrp wheel /bin/df
# chgrp wheel /usr/bin/w
# chgrp wheel /usr/bin/who
# chgrp wheel /usr/bin/last
# chgrp wheel /usr/bin/top
# chgrp wheel /usr/bin/lsof
/etc/group 에 wheel 에 관리자용 일반 계정을 포함한다.
wheel:x:10:root,kobis 와 같이...
8. setuid,setgid 파일을 점검한다.
# find / -type f \\( -perm -4000 -o -perm -2000 \\)
su,passwd,sendmail 을 제외한 나머지 명령어에 s 권한을 없앤다.
su 명령은 wheel 그룹에 포함시키서 특정 관리자 계정에서만 사용
할수 있도록 한다.
9. 시스템 전체 디렉토리 퍼미션을 조정한다.
# chmod 711 /
# chmod 711 /home
# chmod 711 /var
# chmod 711 /var/log
# chmod 711 /etc
# chmod 700 /root
/home 밑에 웹서비스 계정들의 홈디렉토리 퍼미션을 710 에 nobody 권한으로
추가한다.
[root@zzang911 /home]# ls -al
drwx--x--- 62 alang nobody 8192 12월 3 09:12 alang/
drwx--x--- 10 design nobody 4096 9월 21 00:00 design/
drwx--x--- 6 kobis nobody 4096 11월 30 16:00 kobis/
10. nmap,nc,netstat 등을 이용해서 시스템의 열린 포트를 점검한다.
# nmap localhost -p 1-65535
# nc -w 3 -v -z localhost 1-65535
# netstat -ant | grep LISTEN
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
3306/tcp open mysql
11. /etc/security/limits.conf 를 이용한 계별 System Resource 자원의 제한
* hard rss 10000 # 사용메모리 10M 로 제한
* soft nproc 20 # 생성가능 프로세서 20개 제한
kobis hard maxlogins 3 # kobis 계정 텔넷접속을 3개로 제한
12. 일반 telnet 사용자 history 감시하기
12.1환경조정
# mkdir /....../history
# touch /....../history/user_history
# adduser 특정관리계정 : 그냥 admin 이라 하자..
# chmod 702 /......../history/user_history
12.2. 설정
# vi /etc/profile
제일 밑줄에 다음 구문 추가..
if [ $LOGNAME != "admin" ]
then
HISTFILE=/........./history/user_history
TMOUT=200
echo -
n "===================================================================
userhistory 로그인 ID: $LOGNAME 접속시간 : `/bin/date`
===================================================================
" >> /....../history/user_history
fi
# vi /root/.bashrc
제일 밑에 다음 구문 추가 ..
HISTFILE=/root/.bash_history
TMOUT=-1
이제 일반 접속 계정으로 접속을 하면...
/........../history/user_history 파일에 history 가 남게 됩니다.
13. TCP Wrapper 을 이용하여 tcp 프로토콜을 이용한 접속을 제한한다.
# vi /etc/hosts.deny
-------------------------------------------------------------------------
--
in.telnetd : ALL : twist ( /etc/host-check Y Y %a %c %d %h %n %p %s %u ) &
sshd : sshd : ALL EXCEPT 211.47.64.
# vi /etc/host-check
-------------------------------------------------------------------------
--
#!/bin/sh
################################ 변수정의부문
# 메일 수신자
mailto=alang at sysmng.com
# 화면출력 여부, 메일전송 여부
dsp=$1; msg=$2
# 접속자 정보 등
a=$3; c=$4; d=$5; h=$6; n=$7; p=$8; s=$9; u=$10
# 현재 시간
time=`date`
# 접속시도자 소속 서버의 finger 정보
finger=`/usr/bin/finger -l @$h 2> /dev/null`
################################ 화면 출력부문
if [ $dsp = Y ]
then
echo "
===================================
접속이 허용되지 않습니다.
===================================
Access Time : $time
Client host address : $a
Client information : $c
Client host name(or IP) : $h
Client host name : $n
Client user name : $u
"
fi
################################ 메일 송신부문
if [ $msg = Y ]
then
/bin/echo "
===============================
접속 거부자 상세정보
===============================
Access Time : $time
Access client host address : $a
Access client information : $c
The daemon process name : $d
Access client host name(or IP) : $h
Access client host name : $n
The daemon process id : $p
Server information : $s
Access client user name : $u
--------------------------------------
Access client finger information
--------------------------------------
$finger
------------------------------------------------
" | \\
/bin/mail -s "tcp_wrapper report [$d]" $mailto
fi
# vi /etc/hosts.allow
-------------------------------------------------------------------------
--
in.telnetd : localhost 127.0.0.1 211.47.64.145
sshd : localhost 127.0.0.1 211.47.64.145
14. sendmail 보안 설정
먼저 보안에 문제 있는 기본 팻키지에서 패안 패치된 팻키지로 업그레이드 한다.
(Redhat 7.1 : sendmail-8.11.2 --> sendmail-8.11.6 )
14.1 Sendmail 의 Third Party Relay 허용 여부 점검
/etc/mail/sendmail.cf 파일 설정 확인
# anything else is bogus
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
위 부분을 확인하여 Relay 가 허용되지 않을려면 주석 처리가 되어져 있지 않아야
한다. 그런후..
/etc/mail/access 에서 relay 허가 대역을 설정한다.
spammer at aol.com REJECT
aol.com REJECT
abc.com REJECT
111.111 REJECT
211.47.64 RELAY
# makemap hash /etc/mail/access < /etc/mail/access
로 access.db 파일을 갱신해 준다.
마지막으로 http://www.whchang.com/netprg/is-relay.pl 에서 relay 여부 확인
가능
14.2 SMTP 서버에서 보내는 양 제한 설정
/etc/mail/sendmail.cf 파일에서 ..
# maximum message size
O MaxMessageSize=2048000
이부분의 설정을 수정하면 된다. 여기서의 단위는 byte 이며 위의 설정은 2M
이상 크기의 메일은 이 서버를 통해 보낼수 없다는 것이다.
14.3 POP 서버의 받는양 제한
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9,
S=EnvFromL/HdrFromL,
R=EnvToL/HdrToL, M=2048000
위와 같이 M=2048000 부분을 추가해 주면 된다.
15. apache 웹서버에서의보안설정
15.1 특정 IP 별로 접근 제어 하는 방법
httpd.conf 에서 ..
<Directory /home/xxx/www>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx (접속 허용 IP)
</Directory>
와 같이 설정하여 제어 가능하다.
15.2 특정 디렉토리에 인증을 거는 방법
httpd.conf 에서 AllowOverride All 로 설정되어져 있어야 적용 가능하다.
A. 먼저 .htaccess 파일을 하나 만들어야 합니다. 암호인증을 걸고자 하는
디렉토리로 이동하셔서 편집기를 사용하여 .htaccess 라는 파일을 만듭
니다. 파일의 내용은 다음과 같습니다.
$ vi .htaccess
-----------------------------------------------------------
AuthName "타이틀명을 적으세요"
AuthType Basic
AuthUserFile /암호를 걸고자 하는 디렉토리 절대경로/.htpasswd
AuthGroupFile /dev/null
ErrorDocument 401
<Limit GET POST>
require valid-user
</Limit>
-----------------------------------------------------------
B. test 라는 아이디로 인증 과정을 거쳐야만 웹상에서 디렉토리에
들어갈수 있는 경우에 다음과 같이 합니다.
$ htpasswd -c .htpasswd test
Adding password for test
New password:
Re-type new password:
위옜 같이 htpasswd -c .htpasswd <생성하고자 하는 아이디> 라고
해주시면 패스워드를 물어보게 됩니다.
-c 옵션은 최초 사용자 생성시만 붙입니다. 그 다음 생성아이디는
그냥 -c 옵션은 빼고 htpasswd .htpasswd <ID> 라고 해주시면 됩니
다...
부과적인 설명으로 IP 주소별로 디렉토리 인증을 할수 있다.
방법은 .htaccess 파일을 다음과 같이 만들어 준다.
--------------------------------------------------------------
AuthName "타이틀명을 적으세요"
AuthType Basic
AuthUserFile /암호를 걸고자 하는 디렉토리 절대경로/.htpasswd
AuthGroupFile /dev/null
ErrorDocument 401
<Limit GET POST>
require valid-user
Satisfy any
order deny,allow
allow from 211.47.64( 접속허가된 IP 대역 )
allow from 211.47.64.145( 접속허가된 IP 주소 )
deny from all
</Limit>
--------------------------------------------------------------
여기서 주의할 설정은 Satisfy 옵션에 주의 해야 한다.
Satisfy any 는 ID와 IP 중 어느 하나만 해당하면 인증이 된다.
Satisfy all 은 ID,IP 둘다 적용이 되어야지만 인증이 된다.
15.2 Webzip,Teleport,wget 등 웹소스 긁어가는 프로그램 차단하기
httpd.conf 에서..
BrowserMatch "WebZIP" go_out
BrowserMatch "Teleport" go_out
BrowserMatch "GetRight" go_out
BrowserMatch "Wget" go_out
와 같이 설정을 추가 하고..
<Directory "/home">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Deny from env=go_out
Deny from export=go_out
</Directory>
15.3 클라이언트 브라우저 별로 접속 차단하기
BrowserMatch "MSIE" mise
<Directory "/home">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Deny from env=mise
</Directory>
15.4 특정 사이트에서 현 서버의 자료 무단 링크 금지하기
SetEnvIFNoCase Referer "superboard" link_deny
SetEnvIFNoCase Referer "hihome" link_deny
SetEnvIFNoCase Referer "eznara" link_deny
SetEnvIFNoCase Referer "\\.to" link_deny
SetEnvIFNoCase Referer "\\.cc" link_deny
SetEnvIFNoCase Referer "\\.ro" link_deny
SetEnvIFNoCase Referer "\\.ky" link_deny
SetEnvIFNoCase Referer "\\.ru" link_deny
SetEnvIFNoCase Referer "\\.ly" link_deny
SetEnvIFNoCase Referer "cjb" link_deny
SetEnvIFNoCase Referer "interpia98" link_deny
SetEnvIFNoCase Referer "yakult" link_deny
SetEnvIFNoCase Referer "dreamwiz" link_deny
SetEnvIFNoCase Referer "warez" link_deny
SetEnvIFNoCase Referer "lycos" link_deny
SetEnvIFNoCase Referer "netian" link_deny
SetEnvIFNoCase Referer "daum" link_deny
SetEnvIFNoCase Referer "hanmir" link_deny
<FilesMatch "\\.(avi|swf|mpe?g|zip|rar|[a-zA-Z0-9][0-9][0-9]|mp[1-9]
|arj|asf|exe)$">
Order allow,deny
allow from all
deny from env=link_deny
deny from env=go_out
</FilesMatch>
SetEnvIFNoCase Referer "http://(.*)\\.superboard\\.com/" link_deny
SetEnvIFNoCase Referer "http://(.*)\\.cjb\\.net/" link_deny
SetEnvIFNoCase Referer "http://(.*)\\.eznara\\.com/" link_deny
SetEnvIFNoCase Referer "http://korean21\\.cc/" link_deny
SetEnvIFNoCase Referer "http://(.*)\\.wo\\.to/" link_deny
SetEnvIFNoCase Referer "http://(.*)\\.interpia98\\.net/" link_deny
SetEnvIFNoCase Referer "http://(.*)\\.yakultgo\\.net/" link_deny
<FilesMatch "\\.(avi|mpe?g|zip|rar|r0*|a0*|mp3|arj|asf|swf|exe)$">
Order allow,deny
allow from all
deny from env=link_deny
</FilesMatch>
위설정은 superboard,hihome,eznara,dreamwiz,lycos,....등의 사이트에서 현 시스템
에 있는 avi,swf,zip,mpeg...등의 파일을 무단으로 링크거는것을 금지시키는 설정이다.
15.5 특정 사이트에서만 링크 가능하게 하기..즉 다른 사이트에선 링크 금지
<VirtualHost xxx.xxx.xxx.xxx>
ServerAdmin webmaster at
sysmng.com
DocumentRoot /home/xxxx/www
ServerName sysmng.com
SetEnvIf Referer sysmng\\.com go_in
SetEnvIf Referer www\\.sysmng\\.com go_in
SetEnvIf Referer ^$ go_in
<FilesMatch ".(mpg|asf|wmv|swf)$">
Order Deny,Allow
Allow from env=go_in
Deny from all
</FilesMatch>
</VirtualHost>
와 같이 버추얼 설정에서 /home/xxxx/www 안에 있는 mpg,asf,wmv,swf 파일은
반드시 sysmng.com 사이트에서만 링크가 가능하다.
15.6 apache 웹서버 버젼 정보 숨기기
httpd.conf 에 ServerTokens Prod 라는 옵션 추가
ServerTokens Prod[uctOnly] 결과 : Server : Apache
ServerTokens Min[imal] 결과 : Server : Apache/1.3.x
ServerTokens OS 결과 : Server : Apache/1.3.x (Unix)
ServerTokens Full 결과 : Server : Apache/1.3.x (Unix) PHP 4.0.5...
이런 버젼 확인은 telnet xxx.xxx.xxx.xxx 80 과 같이 80 번 포트로 접속하면 알수
있다.
16. Proftp 보안 관련
16.1 root 계정 접속 금지 방법
ftp 에서 root 접속은 보안상 금지하는 편이다. root 권한 접속 금지 방법은
기본 설정이 되어져 있다.. 설정 방법은 다음과 같다.
/etc/proftpd/conf/proftpd.conf 설정 파일에서
RootLogin off
DefaultRoot ~
와 같이 설정을 추가 혹은 변경 (기본설정은 위와 같이 되어져 있다.) 하고
/etc/proftpd/conf/ftpusers 파일에다가 root 계정을 추가 해주면 된다.
# vi /etc/proftpd/conf/ftpusers
---------------------------------------------------
root
bin
daemon
adm
lp
sync
shutdown
halt
.
.
반대로 root 접속을 허가할 경우는 ...
RootLogin on 으로 변경하고
ftpusers 파일에 root 를 제거해주고 proftpd 데몬을 재시작하면 된다.
16.2 기본 보안 환경 설정
/etc/proftpd/conf/proftpd.conf 설정 파일에서
<Global>
Umask 022
MaxClients 9
MaxClientsPerHost 3 "Sorry, one connection allow per one host"
MaxHostsPerUser 3 "Sorry, one hosts allow per one user"
</Global>
<Global> 은 전체 환경 설정부분인데..여기서
Umask 는 down/upload 되어지는 파일의 퍼미션을 결정한다. 022 로 되어져 있을
경우 기본적으로 644 퍼미션의 파일 권한을 가지게 된다.
MaxClients 설정은 ftp 서버에 접속할수 있는 전체 접속자 수를 만한다.
MaxClientsPerHost 설정은 같은 IP를 가지는 원격지에서 동시 접속 가능한 수를
말한다.
MaxHostsPerUser 는 같은 ftp 접속 아이디를 가지고 다중접속 할수 있는 수를
말한다.
MaxInstances 10
위 설정은 Dos 공격을 막기 위해 자식 Process 의 Maximun number 를 조정한다.
16.3 특정 아이피에서만 접속 가능하게 만들기
<Limit LOGIN>
Order allow,deny
Allow from 211.47.67.
Deny from all
</Limit>
위의 설정은 211.47.67 대역에서만 본 시스템에 ftp 접속 가능하고 다른 곳에서
는 접속이 거부 된다.
17. log 서버 설정하기
일반 서버에서 ..
/etc/syslog.conf 파일에서 ..
#authpriv.* /var/log/seure 를 앞과 같이 주석 처리 하고 ..
authpriv.* @log.sysmn.gcom 으로 수정한다.
/etc/rc.d/init.d/syslog restart 로 데몬을 재가동 시켜 주고..
로그 서버에서 ..
/etc/rc.d/init.d/syslog stop 으로 데몬을 죽이고..
/sbin/syslogd -m 0 -r -h 를 실행한다.
이러면 시스템의 모든 접속 인증 결과가로그서버의 /var/log/securi 파일안에
저장되어진다.
18. Syn Flooding 공격 방지
먼저 kernel 의 sysctl cooking 기능을 켜주고 컴파일후 ..
sysctl -w net.ipv4.tcp_max_syn_backlog=1024
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.icmp_destunreach_rate=1
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl -w net.ipv4.icmp_echoreply_rate=1
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
sysctl -w net.ipv4.icmp_paramprob_rate=1
sysctl -w net.ipv4.icmp_timeexceed_rate=1
sysctl -w net.ipv4.igmp_max_memberships=1
sysctl -w net.ipv4.ip_default_ttl=64
sysctl -w net.ipv4.ip_forward=0
sysctl -w net.ipv4.ipfrag_time=15
sysctl -w net.ipv4.tcp_syn_retries=3
sysctl -w net.ipv4.tcp_retries1=3
sysctl -w net.ipv4.tcp_retries2=7
sysctl -w net.ipv4.conf.eth0.rp_filter=2
sysctl -w net.ipv4.conf.lo.rp_filter=2
susctl -w net.ipv4.conf.default.rp_filter=2
sysctl -w net.ipv4.conf.default.rp_filter=2
sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.eth0.accept_redirects=0
sysctl -w net.ipv4.conf.lo.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.eth0.accept_source_route=0
sysctl -w net.ipv4.conf.lo.accept_source_route=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.all.accept_source_route=0
sysctl -w net.ipv4.conf.eth0.bootp_relay=0
sysctl -w net.ipv4.conf.lo.bootp_relay=0
sysctl -w net.ipv4.conf.default.bootp_relay=0
sysctl -w net.ipv4.conf.all.bootp_relay=0
sysctl -w net.ipv4.conf.eth0.log_martians=1
sysctl -w net.ipv4.conf.lo.log_martians=1
sysctl -w net.ipv4.conf.default.log_martians=1
sysctl -w net.ipv4.conf.all.log_martians=1
sysctl -w net.ipv4.conf.eth0.secure_redirects=0
sysctl -w net.ipv4.conf.lo.secure_redirects=0
sysctl -w net.ipv4.conf.default.secure_redirects=0
sysctl -w net.ipv4.conf.all.secure_redirects=0
sysctl -w net.ipv4.tcp_keepalive_time=30
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_tw_buckets=1440000
sysctl -w net.ipv4.tcp_tw_buckets=1440000
sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_max_ka_probes=100
설정을 적용시킨다. 간단히 스크립터 파일을 만들어서 실행해도 되고..
/etc/rc.d/rc.local 파일에 차례로 적어주어 시스템 시작시 적용시켜도
된다.
19. 파일 무결성 체크 프로그램 (Fcheck 설치..)
지금까지의 시스템 설치후 기본 보안에 신경을 써야 할부분에 대해서 알아보았고
마지막으로 현재 기본 보안 처리된 시스템의 무결성에 대해 앞으로 감시해서 유지
해야 할것이다. 무결성 체크 프로그램으로는 대표적인게 Tripwire 가 있다.
하지만 여기서 소개하는 Fcheck 는 가볍고 간단하면서 Tripwire 의 역활을 충분히
할수 있다.
먼저 프로그램을 다운 받도록 하자.
http://www.geocities.com/fcheck2000/
가면 최신 프로그램이 있을것이다. 다운을 받고 /usr/local 및에 둔다.
압축을 풀고..fcheck,fcheck.cfg 파일의 설정값을 몇개 수정하자.
# tar xzvf FCheck_2.07.59.tar.gz
# cd fcheck
# vi fcheck
-------------------------------------------------------------------
.
.
###############################################################
##############
# #
# User modifiable variable definitions: #
# #
###############################################################
##############
# This should be passed through the command line, but hard coding still works
$config="/usr/local/fcheck/fcheck.cfg";
----------------------------------------- 이부분을 시스템 환경에 맞게 수정
-------------------------------------------------------------------
# vi fcheck.cfg
-------------------------------------------------------------------
Directory = /etc/
Directory = /bin/
Directory = /usr/bin/
Directory = /sbin/
Directory = /usr/sbin/
Directory = /usr/local/bin/
Directory = /usr/local/sbin/
Directory = /lib/
Directory = /usr/lib/
Directory = /usr/local/lib/
#
# Directory 설정은 fcheck 가 체크할 파일들이 들어 있는 디렉토리로 시스템에
# 중요한 명령어나 설정파일등이 있는 곳을 정해 주면 된다.
#
Exclusion = /etc/passwd
Exclusion = /etc/shadow
#
# Exclusion 설정은 Directory 설정에서 정한 디렉토리중 자주 변경이 되는 파일
# 이 있어서 체크때마다 걸리므로 체크 생략을 요하는 파일을 정해 주면 된다.
# 호스팅 업체나 기타 자주 사용자를 추가하는 서버라면 위와 같이 해주면 된다.
#
DataBase = /usr/local/fcheck/data/data.dbf
#
# DataBase 설정은 리눅스 파일 정보를 DB 파일로 저장해서 다음 체크시 비교
# 분석할때 사용되어진다.
#
TimeZone = GMT-9
#
# 한국 시간을 적용한다. GMT-9
#
#File = /usr/local/admtools/logs/sol.dbf
File 설정은 필요 없으니 주석 처리 해준다.
기타 여러 설정값이 있으나 크게 작동하는데 영향을 주지 않는다.기본값을 적용
한다.
이와 같이 적용후 /usr/local/fcheck/data 디렉토리를 만들어 준다.
# mkdir /usr/local/fcheck/data
# /usr/local/fcheck/fcheck -ac
이와 같이 fcheck -ac 로 파일 무결성 체크를 시작한다. 그럼 data 디렉토리 안
에 data.dbf 파일이 생성되어 진다.
이제 Directory 설정에 해당하는 디렉토리 안에다가 파일을 하나 생성하고 재대
로 점검을 하는지 테스트를 하여 보자..
# touch /etc/test
# /usr/local/fcheck/fcheck -a
그럼 아마 아래와 같은 결과를 출력할것이다.
PROGRESS: validating integrity of /etc/
STATUS:
ADDITION: [zzang911.net] /etc/test
Inode Permissons Size Created On
19508 -rw-r--r-- 0 Sep 19 20:13 2001
자 이제 이 명령어를 이용하여 주기적으로 시스템 파일 무결성을 체크하고 관리
자에게 통보하는 프로그램을 만들어 보도록 하자.
# vi fcheck.sh
-------------------------------------------------------------------------
-
#!/bin/sh
CHECK=`/usr/local/fcheck/fcheck -a | grep Inode`
HOSTNAME=`hostname`
if [ -n "$CHECK" ]
then
/usr/local/fcheck/fcheck -a > fcheck_result
mail -s "$HOSTNAME File 무결성 체크 결과" alang at sysmng.com <
fcheck_result
rm -f fcheck_result
fi
-------------------------------------------------------------------------
-
간단한 이정도 스크립터로 보다 효율적인 관리가 가능해 질것이다.
이제 cron 에 등록시켜 놓고..매일 파일 무결성 체크를 간단히 메일로 받아서 관리
할수 있게 된다. 만일 변화된 파일이 정당한 변화라면..
# /usr/local/fcheck/fcheck -ac
로 DBfile 를 업데이트 시켜 줘야 한다. 아님..계속 메일이 날아 오게 된다.
이로써 시스템 설치후 점검해야 할 보안 설정에 대해서 마치겠다. 시스템 보안은
초기의 보안 설정이 아주 큰 부분을 차지 하고 있다. 하지만..지속적은 감시와
관리역시 초기 보안 상태를 유지하는 가장 중요한 작업이라고도 할수 있다.
2010. 8. 10. 18:16
ssh 접속시 한참 기다리거나 딜레이가 생기는 경우. vsftp 포함 리눅스서버2010. 8. 10. 18:16
처음에 엄청 당황스러웠다.
검색해보고 찾아서 적용해보니 잘 된다.
[해결책 1]
/etc/ssh/sshd_config 파일에 UseDNS 부분을 no로 바꾸고 주석을 제거 해준다.
거의 이러한 문제는 dns에 관련된 것들이기 때문에 dns를 사용하지 않으면 해결 된다.
VSFTP
[해결책 2]
위 방법으로 해결이 안될경우에는 /etc/resolv.conf 파일을 확인해 본다.
search localhost
위 항목이 없을 경우 추가, network 재시작 후 확인해본다.
혹은 아래의 빠른 DNS주소를 추가해준다.
[root@www backups]# cat /etc/resolv.conf
nameserver 203.241.134.34
nameserver 203.241.135.130
검색해보고 찾아서 적용해보니 잘 된다.
[해결책 1]
/etc/ssh/sshd_config 파일에 UseDNS 부분을 no로 바꾸고 주석을 제거 해준다.
거의 이러한 문제는 dns에 관련된 것들이기 때문에 dns를 사용하지 않으면 해결 된다.
VSFTP
[해결책 2]
위 방법으로 해결이 안될경우에는 /etc/resolv.conf 파일을 확인해 본다.
search localhost
위 항목이 없을 경우 추가, network 재시작 후 확인해본다.
혹은 아래의 빠른 DNS주소를 추가해준다.
[root@www backups]# cat /etc/resolv.conf
nameserver 164.124.101.2
nameserver 168.126.63.1
nameserver 168.126.63.1
nameserver 168.126.63.1
nameserver 168.126.63.1
nameserver 203.241.134.34
nameserver 203.241.135.130
출처 : http://unix.co.kr/bbs/board.php?bo_table=02_06&wr_id=33
vsftpd는 UNIX 시스템에서 사용할 수 있는 free FTP 서버(라이센스는 GPL)이다.
vsftpd가 내세우고 있는 것은 보안, 성능, 안정성이다. 지금까지 vsftpd의 자체 보안 문제가 있어
보안권고가 나온 적은 없다.(Redhat의 rpm 패키지중에 tcp_wrappers 지원없이 만들어져서 업데이트
rpm은 나온 적 있음)
* 지원 및 테스트된 OS
- Linux (Redhat, SuSE, Debian)
- Solaris (버전에 따라 IPv6나 inet_aton함수때문에 설치가 잘 안될 수 있음)
- FreeBSD, OpenBSD
- HP-UX
- IRIX
* 주요 기능
- 가상 IP별 별도의 환경 설정 기능 (설정파일의 listen_address= 이용)
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd(xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)
- ...
1. vsftpd 설치
※ 설치는 Redhat 기준. 솔라리스의 PAM에 대한 것은 README.solaris 파일 참조한다.
http://vsftpd.beasts.org/ 에서 최신버전(현재 1.2.0)의 소스를 받아온다.
한글로 된 파일명을 전송할 때 로그에 파일명이 ???? 로 남지 않도록
logging.c 파일을 연 후 140번째 줄의
str_replace_unprintable(p_str, '?');
를 다음처럼 주석 처리한다.
/* str_replace_unprintable(p_str, '?'); */
또한 tcp_wrappers를 통한 접속제어를 사용하려면 builddefs.h 에서
#undef VSF_BUILD_TCPWRAPPERS 를
#define VSF_BUILD_TCPWRAPPERS 로 바꾼다.
/etc/pam.d/vsftpd 첫번째 줄에 다음과 같이 있다.
즉, /etc/ftpusers 파일에 존재하는 ID는 접속할 수 없게된다.(sense=deny)
2. vsftpd.conf 의 주요 설정
필요한 설정이 끝났으면 xinetd를 재실행한다.
3. 문제 해결
1) ftpwho 같은 명령은 있나?
또한 last를 해도 접속된 걸 확인할 수가 없는데 방법이 없나?
ftpwho 형태의 명령은 없으며 임시적으로 다음 명령어 등으로 확인할 수 있다.
# ps -ef|grep vsftpd
# fuser -v ftp/tcp
vsftpd v1.2.0이상부터 PAM을 통해 wtmp에 로그를 남기므로 last로 접속여부를 확인할 수 있다.
2) 한글 파일명이 전송될 때는 vsftpd.log 에 ???? 로 남는다. 해결책은?
vsftpd는 출력할 수 없다고 판단하는
ASCII 코드 31 이하, 128~159, 177 문자를 모두 ? 로 바꿔서 저장을 한다.
따라서 이 부분을 처리하지 않고 저장하도록 소스를 수정한 후 컴파일하면 해결된다.
3) 사용자가 홈디렉리를 못 벗어나게 하고 싶는데?
/etc/vsftpd.conf에 다음을 추가한다. standalone으로 FTP서버가 동작중이면 재실행 필요.
chroot_local_user=YES
4) root로 접속할 수는 없나?
가능하면 root 접속은 허용하지 않기를 바란다.
/etc/ftpusers 파일에서 root를 빼면 접속이 가능하다.
5) ID/비밀번호가 정확히 맞는데 로긴할 때 자꾸 530 Login incorrect. 라고 나온다.
/etc/ftpusers (또는 vsftpd.ftpusers)에 등록된 사용자인지 확인한다.
여기에 등록된 사용자는 로긴할 수 없다. 이럴 때 /var/log/messages에 다음과 같은 로그가 남는다.
Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd
6) standalone으로 운영하고 싶다.
(즉, apache나 sendmail처럼 xinetd 통하지 않고 운영을 원한다.)
/etc/xinetd.d/vsftpd (vsftpd가 아닌 다른 파일명일 수 있음) 에서 disable = yes 로 변경하여
xinetd로 서비스 하지 않도록 설정한다. xinetd 를 재실행하면 이제 xinetd를 통한 ftp 서비스는 종료된다.
레드햇의 경우 /etc/rc.d/init.d/xinetd restart
이제 vsftpd 데몬를 실행한다. (소스로 설치시 기본 경로는 /usr/local/sbin)
# /usr/local/sbin/vsftpd &
7) 다른 포트(기본 21번)를 사용하고 싶다. (예를 들어 11121번 포트를 원할 때)
* xinetd를 이용하는 경우
/etc/service 에 'ftp2 11121/tcp' 한 줄을 추가한다.
그리고 /etc/xinetd.d/vsftpd (vsftpd가 아닌 ftp와 같은 다른 파일명일 수 있음) 에서
service ftp 를 service ftp2로 바꾸고, xinetd 를 재실행한다.
* standalone으로 운영하는 경우
/etc/vsftpd.conf 에서 listen_port=11121 을 추가하고 vsftpd 서버를 재실행한다.
바뀐 포트로 운영중인지 확인은 netstat -atnp(리눅스) 또는 netstat -an(그 이외 유닉스)
4. 참고할만한 문서
* vsftpd 1.2.0 설치 문서
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-1.2.0/INSTALL
* vsftpd.conf man page
* vsftpd에서 한글파일로그와 lastlog 로긴확인하기 (좋은진호)
http://coffeenix.net/board_view.php?bd_code=4
* vsftpd에서 전송속도 제한 (bandwidth limit) (좋은진호)
http://coffeenix.net/board_view.php?bd_code=21
vsftpd는 UNIX 시스템에서 사용할 수 있는 free FTP 서버(라이센스는 GPL)이다.
vsftpd가 내세우고 있는 것은 보안, 성능, 안정성이다. 지금까지 vsftpd의 자체 보안 문제가 있어
보안권고가 나온 적은 없다.(Redhat의 rpm 패키지중에 tcp_wrappers 지원없이 만들어져서 업데이트
rpm은 나온 적 있음)
* 지원 및 테스트된 OS
- Linux (Redhat, SuSE, Debian)
- Solaris (버전에 따라 IPv6나 inet_aton함수때문에 설치가 잘 안될 수 있음)
- FreeBSD, OpenBSD
- HP-UX
- IRIX
* 주요 기능
- 가상 IP별 별도의 환경 설정 기능 (설정파일의 listen_address= 이용)
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd(xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)
- ...
1. vsftpd 설치
※ 설치는 Redhat 기준. 솔라리스의 PAM에 대한 것은 README.solaris 파일 참조한다.
http://vsftpd.beasts.org/ 에서 최신버전(현재 1.2.0)의 소스를 받아온다.
# tar xvfz vsftpd-1.2.0.tar.gz # cd vsftpd-1.2.0 |
한글로 된 파일명을 전송할 때 로그에 파일명이 ???? 로 남지 않도록
logging.c 파일을 연 후 140번째 줄의
str_replace_unprintable(p_str, '?');
를 다음처럼 주석 처리한다.
/* str_replace_unprintable(p_str, '?'); */
또한 tcp_wrappers를 통한 접속제어를 사용하려면 builddefs.h 에서
#undef VSF_BUILD_TCPWRAPPERS 를
#define VSF_BUILD_TCPWRAPPERS 로 바꾼다.
# make # make install (vsftpd 데몬, man page, xinetd 용 설정 파일 설치) # cp vsftpd.conf /etc (환경설정 파일 복사) # chmod 600 /etc/vsftpd.conf # cp RedHat/vsftpd.pam /etc/pam.d/vsftpd (PAM 설정 파일 복사) |
/etc/pam.d/vsftpd 첫번째 줄에 다음과 같이 있다.
pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed |
즉, /etc/ftpusers 파일에 존재하는 ID는 접속할 수 없게된다.(sense=deny)
# FTP 접속을 허용하지 않을 ID를 등록한다. # /etc/passwd를 참조해서 설치할 서버의 환경에 맞게 등록 root bin daemon adm lp sync shutdown halt news uucp operator games nobody smmsp xfs gdm mysql |
2. vsftpd.conf 의 주요 설정
# anonymous 사용자의 접속 허용 여부 (default = YES) # 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다. anonymous_enable=NO # 로컬 계정 사용자의 접속 허용 여부 (default = NO) local_enable=YES # write 명령어 허용 여부 (defualt = NO) write_enable=YES # 로컬 계정 사용자용 umask (default = 077) local_umask=022 # anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO) # anon_upload_enable=YES # anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO) # anon_mkdir_write_enable=YES # 파일 전송 로그를 남길 것인지 여부 (default = YES) xferlog_enable=YES # xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES) # 아래에서 NO로 설정했을 때를 설명함 xferlog_std_format=YES # 파일 전송 로그 파일명 xferlog_file=/var/log/vsftpd.log # FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호) # 한글 사용 가능 # ftpd_banner=Welcome to blah FTP service. # ------------------------------------------------------------------- # 기본 설정 파일에는 없는 설정값으로 필요한 설정만 추가한다. # ※ 중요한 설정은 굵은 글씨로 표시 # ------------------------------------------------------------------- # PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함) pam_service_name=vsftpd # wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능) session_support=YES # 사용자가 자신의 home directory를 벗어나지 못하도록 설정 chroot_local_user=YES # 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명 # message_file=.message # xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음) # xferlog_std_format=NO # # - xferlog 표준 포맷은 로긴, 디렉토리 생성등의 로그를 남기지 않음 # 그러나 vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남김 # - vsftpd 스타일 로그 예 # # Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client 127.0.0.1 # Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client 127.0.0.1 # Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client 127.0.0.1 # Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client 127.0.0.1, /mp3 # Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client 127.0.0.1, /델리 # 스파이스 5집 - [04]키치죠지의 검은 고양이.mp3, 6855473 bytes, 3857.39Kbyte/sec # 전송속도 제한 (0은 제한없음, 단위는 초당 bytes) anon_max_rate=0 local_max_rate=0 trans_chunk_size=0 # 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능) # standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함 # # max_clients=최대 접속자 수, max_per_ip=IP당 접속 수 # max_clients=100 # max_per_ip=3 # Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정 # 디폴트 포트는 21번 포트이다. # listen=YES # listen_port=21 |
필요한 설정이 끝났으면 xinetd를 재실행한다.
# /etc/rc.d/init.d/xinetd restart |
3. 문제 해결
1) ftpwho 같은 명령은 있나?
또한 last를 해도 접속된 걸 확인할 수가 없는데 방법이 없나?
ftpwho 형태의 명령은 없으며 임시적으로 다음 명령어 등으로 확인할 수 있다.
# ps -ef|grep vsftpd
# fuser -v ftp/tcp
vsftpd v1.2.0이상부터 PAM을 통해 wtmp에 로그를 남기므로 last로 접속여부를 확인할 수 있다.
2) 한글 파일명이 전송될 때는 vsftpd.log 에 ???? 로 남는다. 해결책은?
vsftpd는 출력할 수 없다고 판단하는
ASCII 코드 31 이하, 128~159, 177 문자를 모두 ? 로 바꿔서 저장을 한다.
따라서 이 부분을 처리하지 않고 저장하도록 소스를 수정한 후 컴파일하면 해결된다.
3) 사용자가 홈디렉리를 못 벗어나게 하고 싶는데?
/etc/vsftpd.conf에 다음을 추가한다. standalone으로 FTP서버가 동작중이면 재실행 필요.
chroot_local_user=YES
4) root로 접속할 수는 없나?
가능하면 root 접속은 허용하지 않기를 바란다.
/etc/ftpusers 파일에서 root를 빼면 접속이 가능하다.
5) ID/비밀번호가 정확히 맞는데 로긴할 때 자꾸 530 Login incorrect. 라고 나온다.
/etc/ftpusers (또는 vsftpd.ftpusers)에 등록된 사용자인지 확인한다.
여기에 등록된 사용자는 로긴할 수 없다. 이럴 때 /var/log/messages에 다음과 같은 로그가 남는다.
Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd
6) standalone으로 운영하고 싶다.
(즉, apache나 sendmail처럼 xinetd 통하지 않고 운영을 원한다.)
/etc/xinetd.d/vsftpd (vsftpd가 아닌 다른 파일명일 수 있음) 에서 disable = yes 로 변경하여
xinetd로 서비스 하지 않도록 설정한다. xinetd 를 재실행하면 이제 xinetd를 통한 ftp 서비스는 종료된다.
레드햇의 경우 /etc/rc.d/init.d/xinetd restart
이제 vsftpd 데몬를 실행한다. (소스로 설치시 기본 경로는 /usr/local/sbin)
# /usr/local/sbin/vsftpd &
7) 다른 포트(기본 21번)를 사용하고 싶다. (예를 들어 11121번 포트를 원할 때)
* xinetd를 이용하는 경우
/etc/service 에 'ftp2 11121/tcp' 한 줄을 추가한다.
그리고 /etc/xinetd.d/vsftpd (vsftpd가 아닌 ftp와 같은 다른 파일명일 수 있음) 에서
service ftp 를 service ftp2로 바꾸고, xinetd 를 재실행한다.
* standalone으로 운영하는 경우
/etc/vsftpd.conf 에서 listen_port=11121 을 추가하고 vsftpd 서버를 재실행한다.
바뀐 포트로 운영중인지 확인은 netstat -atnp(리눅스) 또는 netstat -an(그 이외 유닉스)
4. 참고할만한 문서
* vsftpd 1.2.0 설치 문서
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-1.2.0/INSTALL
* vsftpd.conf man page
* vsftpd에서 한글파일로그와 lastlog 로긴확인하기 (좋은진호)
http://coffeenix.net/board_view.php?bd_code=4
* vsftpd에서 전송속도 제한 (bandwidth limit) (좋은진호)
http://coffeenix.net/board_view.php?bd_code=21
2010. 7. 22. 15:47
REDHAT에 YUM 설치.. 리눅스서버2010. 7. 22. 15:47
레드햇에서.. yum 설치..
흐음.. 네이년에 검색되는 방법이 안되서리..
yum-2.0.8-1.noarch.rpm 이파일을 구할수가 없었다..
구글링중.. 중국애 블로그에서 발견.. ㅎㅎ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0. [root@localhost ~]# cat
/etc/redhat-release
Red Hat Enterprise Linux AS release 4
(Nahant)
1. [root@localhost
noarch]#
wget "http://yum.baseurl.org/download/2.0/yum-2.0.8-1.src.rpm"
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
[base]
name=Red Hat Linux $releasever - $basearch - Base
baseurl= http://centos.ustc.edu.cn/centos/4/os/i386/
[updates]
name=Red Hat Linux $releasever - Updates
baseurl= http://mirror.centos.org/centos/4/updates/i386/
2. [root@localhost noarch]# rpmbuild --rebuild
yum-2.0.8-1.src.rpm
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires: /bin/bash /bin/sh /usr/bin/python config(yum) = 2.0.8-1
libxml2-python python rpm >= 0:4.1.1 rpm-python
Obsoletes: yum-phoebe
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/yum-
2.0.8root
Wrote: /usr/src/redhat/RPMS/noarch/yum-2.0.8-1.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.40887
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd yum-2.0.8
+ '[' /var/tmp/yum-2.0.8root '!=' / ']'
+ rm -rf /var/tmp/yum-2.0.8root
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.40887
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf yum-2.0.8
+ exit 0
Requires(preun): /bin/sh
Requires: /bin/bash /bin/sh /usr/bin/python config(yum) = 2.0.8-1
libxml2-python python rpm >= 0:4.1.1 rpm-python
Obsoletes: yum-phoebe
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/yum-
2.0.8root
Wrote: /usr/src/redhat/RPMS/noarch/yum-2.0.8-1.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.40887
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd yum-2.0.8
+ '[' /var/tmp/yum-2.0.8root '!=' / ']'
+ rm -rf /var/tmp/yum-2.0.8root
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.40887
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf yum-2.0.8
+ exit 0
3. [root@localhost noarch]# cd
/usr/src/redhat/RPMS/noarch/
4.[root@localhost noarch]# rpm -ivh
yum-2.0.8-1.noarch.rpm
Preparing...
###########################################
[100%]
1:yum ###########################################
[100%]
[100%]
1:yum ###########################################
[100%]
5. [root@localhost noarch]# vi /etc/yum.conf
6. baseurl 두 부분만 수정..
[main]
cachedir=/var/cache/yumdebuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
[base]
name=Red Hat Linux $releasever - $basearch - Base
baseurl= http://centos.ustc.edu.cn/centos/4/os/i386/
[updates]
name=Red Hat Linux $releasever - Updates
baseurl= http://mirror.centos.org/centos/4/updates/i386/
7. [root@localhost noarch]# yum
update
Gathering header information file(s) from server(s)
Server: Red Hat Linux 4AS - i386 - Base
Server: Red Hat Linux 4AS - Updates
Finding updated packages
Downloading needed headers
xorg-x11-xauth-0-6.8.2-1. 100% |=========================| 84 kB
00:01
perl-HTML-Parser-0-3.55-1 100% |=========================| 3.5 kB
00:00
tar-0-1.14-12.5.1.RHEL4.i 100% |=========================| 5.1 kB
00:00
perl-XML-LibXML-Common-0- 100% |=========================| 1.9 kB
00:00
Server: Red Hat Linux 4AS - i386 - Base
Server: Red Hat Linux 4AS - Updates
Finding updated packages
Downloading needed headers
xorg-x11-xauth-0-6.8.2-1. 100% |=========================| 84 kB
00:01
perl-HTML-Parser-0-3.55-1 100% |=========================| 3.5 kB
00:00
tar-0-1.14-12.5.1.RHEL4.i 100% |=========================| 5.1 kB
00:00
perl-XML-LibXML-Common-0- 100% |=========================| 1.9 kB
00:00
...
..
..
..
[출처] REDHAT에 YUM 설치..|작성자 신쥐
2010. 7. 10. 10:52
윈도우즈 ftp로 백업파일 내려받기. 배치파일 스크립트 컴터관련팁2010. 7. 10. 10:52
백업파일이 커지다 보니 주말에만 해야 하는데
주말마다 켜놓고 다운받는거 기다리기 귀찮아서 자동으로 백업하고 컴 종료하도록 한 것이다.
*** 관련된 것들은 검색하면 잘 나오니 알아서 찾아보면 된다.
1. 우선 컴은 바이오스에서 자동부팅으로 지정시간에 자동으로 켜지게 한다.
2. 윈도우즈 제어판-예약된 작업에서
부팅완료된 후 시작하도록 시간을 지정하고 실행할 배치 파일을 지정해둔다.
나는 D드라이브에 백업을 받아두므로 D:\백업\전체\backuptotal.bat 로 했다.
메모장이나 텍스트에디터로 만들어 준다.
backuptotal.bat / backuptotal_batch.lst
D:\백업\전체\backuptotal.bat의 내용
@echo off
@shutdown -a
@echo FTP로 백업파일 다운...
ftp -i -s:D:\백업\전체\backuptotal_batch.lst
@echo 다운완료 하고 60초후 시스템 강제 종료...
shutdown -s -f -t 60
ftp -i -s:D:\백업\전체\backuptotal_batch.lst
--------- backuptotal_batch.lst 스크립트를 실행한다는 거다.
shutdown -s -f -t 60
--------- 백업이 종료된 후 윈도우즈 종료명령을 한다.
--------- backuptotal_batch.lst 스크립트를 실행한다는 거다.
shutdown -s -f -t 60
--------- 백업이 종료된 후 윈도우즈 종료명령을 한다.
D:\백업\전체\backuptotal_batch.lst 의 내용
open www.chamhanuel.com
daehan
12345^&8*()
cd /home/daehan/backups/total
bin
mget *.gz
bye
위의 설명
open 서버의도메인또는 아이피주소
ftp로그인계정
ftp로그인패스
cd /home/daehan/backups/total - 서버의 백업파일저장된 경로로 이동
bin -바이러리 모드로 전환
mget *.gz - 백업파일들이 여러개이므로 mget으로 가져온다.
bye - ftp연결 종료
어려운거 없으니 ftp에 관련된 명령어는 알아서 찾아보면 되는거구.
2010. 7. 7. 12:42
바나나의 불편한 진실. 카테고리 없음2010. 7. 7. 12:42
바나나가 멍청해서 옷걸이에 걸어두면 오래간다던 님 나와라..
옷걸이에 걸어두면 멍청한 바나나가 나무에 메달린 줄 알고 오래 산다던
님....
.
.
.
자고
일어나니 탈출을 시도 했더라.
2010. 6. 17. 10:50
다운로드후 저장은 되는데.. 열기가 안될때. 프로그래밍팁2010. 6. 17. 10:50
다운로드후 저장은 되는데.. 열기가 안될때... 헤더 부분에 다음과 같이 선언해줍니다.
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); // 중요부분
header("Cache-Control: public");
header("Content-Description: File Transfer");
2010. 4. 21. 18:14
한글 str_replace, 한글 2바이트 문제로 인한 변경 PHP2010. 4. 21. 18:14
어디서 퍼왔는지는 모른다.
//한글문제로 인한 전용변경함수
function Han_replace($search, $to, $str){
$ESC = "\x1b"; // 키보드로 입력할 수 없는 [Esc]코드,
$pattern1 = "/([\x80-\xff].)/"; $pattern2 = "/([\x80-\xff].)$ESC/";
$str = preg_replace( $pattern1, "\\1$ESC", $str ); // 모든 한글단어 뒤에 $ESC를 추가함.
$search = preg_replace( $pattern1, "\\1$ESC", $search ); // 찾을 문자도 같은 패턴으로 바꿈,
$str = str_replace( $search, $to, $str ); // 일단 때려 바꾸고.
return preg_replace( $pattern2, "\\1", $str ); // 한글 뒤에 추가했던 $ESC를 지움.
}
EUC-KR 검색에서 불필요한 문자들 제거하다 보니 한글2바이트 문제가 생겼다.
한글에서 str_replace가 안될 때 쓰면 된다. 뭐 다른것으로 써도 상관없다만...
function remove_sp_chars($del_string){
$tmp_sa_cmt = trim($del_string);
// $tmp_sa_cmt = str_replace(" ", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("+", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("-", "", $tmp_sa_cmt); //20090914 검색으로 뻘짓하는 인간때문에 추가
$tmp_sa_cmt = str_replace(".", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace(",", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("_", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("-", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("ㅜ", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("ㅠ", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace(":", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace(";", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("~", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("/", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("\\", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("(", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace(")", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("[", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("]", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("\"", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("'", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("\r\n", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("\n", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("@", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("&", "", $tmp_sa_cmt);
$tmp_sa_cmt = str_replace("^", "", $tmp_sa_cmt); $tmp_sa_cmt = str_replace("#", "", $tmp_sa_cmt); //^^문자를 제거.
//불필요한 자음과 모음을 전부 제거한다.
$tmp_sa_cmt=Han_replace('ㅂ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅈ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㄷ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㄱ', '', $tmp_sa_cmt);
$tmp_sa_cmt=Han_replace('ㅅ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅛ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅕ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅑ', '', $tmp_sa_cmt);
$tmp_sa_cmt=Han_replace('ㅐ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅔ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅁ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㄴ', '', $tmp_sa_cmt);
$tmp_sa_cmt=Han_replace('ㅇ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㄹ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅎ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅗ', '', $tmp_sa_cmt);
$tmp_sa_cmt=Han_replace('ㅓ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅏ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅣ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅋ', '', $tmp_sa_cmt);
$tmp_sa_cmt=Han_replace('ㅌ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅊ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅍ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅠ', '', $tmp_sa_cmt);
$tmp_sa_cmt=Han_replace('ㅜ', '', $tmp_sa_cmt); $tmp_sa_cmt=Han_replace('ㅡ', '', $tmp_sa_cmt);
return $tmp_sa_cmt;
}
2010. 3. 30. 11:41
이미지매직(ImageMagick) 명령어 예제 및 설명 리눅스서버2010. 3. 30. 11:41
파일포맷변경
convert image_org.gif image_out.jpg
[설명] image_org.gif 이미지를 image_out.jpg로 바꾼다.
convert image_org.png image_out.jpg
[설명] image_org.png 이미지를 image_out.jpg로 바꾼다.
확대,축소,리사이즈
convert image_org.jpg -resize 25%x25% -quality 100 image_out.jpg
[설명] image_org.jpg 이미지를 1/4 축소한 image_out.jpg로 바꾼다.
convert image_org.jpg -resize 800x600 -quality 100 image_out.jpg
[설명] image_org.jpg 이미지를 800x600픽셀로 리사이즈 하지만 비율을 유지하며 큰사이즈 비율 기준으로 image_out.jpg를 생성한다.
convert image_org.jpg -resize 800x600\! -quality 100 image_out.jpg
[설명] image_org.jpg 이미지를 800x600픽셀로 강제적으로 바꾸어 image_out.jpg를 생성한다.
[설명] "-quality 100"이란 옵션을 주면 품질을 최대한 좋게한다.
회전
convert image_org.png -matte -background none -rotate 90 image_out.png
[설명] 이미지를 90도 회전하고 나머지 영역은 투명하게한다.
convert image_org.png -matte -background none -rotate -15 image_out.png
[설명] 이미지를 -15도 회전하고 나머지 영역은 투명하게한다.
좌우반전,상하반전
convert -flop image_org.jpg image_out.jpg
[설명] image_org.jpg 이미지를 좌우반전시켜 image_out.jpg 이미지를 생성한다.
convert -flip image_org.jpg image_out.jpg
[설명] image_org.jpg 이미지를 상하반전시켜 image_out.jpg 이미지를 생성한다.
흑백,갈색 효과
convert image_org.jpg -colorspace gray image_out.jpg
[설명] image_org.jpg 이미지를 흑백효과를 적용하고 image_out.jpg 이미지를 생성한다.
convert image_org.jpg -sepia-tone 80% image_out.jpg
[설명] image_org.jpg 이미지를 갈색효과를 적용하고 image_out.jpg 이미지를 생성한다.
밝게,어둡게
convert image_org.jpg -sigmoidal-contrast 3,0% image_out.jpg
[설명] image_org.jpg 이미지를 밝게하여 image_out.jpg 이미지를 생성한다.
convert image_org.jpg -sigmoidal-contrast 3,100% image_out.jpg
[설명] image_org.jpg 이미지를 어둡게하여 image_out.jpg 이미지를 생성한다.
자르기(crop)
convert image_org.jpg -crop 800x600+10+20 image_out.jpg
[설명] image_org.jpg를 Left 10픽셀 Top 20픽셀 부터 800x600픽셀까지 자르고 그 결과로 image_out.jpg 이미지를 생성한다.
convert image_org.jpg -crop 800x600+10-30 image_out.jpg
[설명] image_org.jpg를 Left 10픽셀 Top -30픽셀 부터 800x600픽셀까지 자르고 그 결과로 image_out.jpg 이미지를 생성한다.
캔버스생성
convert -size 800x600 xc:white image_out.jpg
[설명] 800x600픽셀인 흰색 image_out.jpg 이미지를 생성한다.
convert -size 800x600 xc:skyblue image_out.gif
[설명] 800x600픽셀인 하늘색 image_out.jpg 이미지를 생성한다.
convert -size 800x600 xc:none image_out.png
[설명] 800x600픽셀인 투명 image_out.png 이미지를 생성한다.
글자이미지생성
convert -background white -fill black -font batang.ttf -pointsize 36 label:"Test\n한글" image_out.png
[설명] "Test\n한글"이란 글자로 image_out.png 이미지를 생성한다. (이미지배경은 흰색, 글자색은 검정색, 폰트는 바탕, 폰트사이즈는 36pt)
이미지합성
composite -dissolve 60 -geometry +50+100 image_temp.png image_org.jpg image_out.jpg
[설명] image_temp.png 이미지를 투명도 60%로 하여 image_org.jpg의 50,100 픽셀 좌표에 올려 합성후 image_out.jpg 이미지를 생성한다.
기타 자세한 설명은 http://www.imagemagick.org/Usage/를 참고하십시오.
출처 : http://www.albumbang.com/board/board_view.jsp?board_name=free&no=57
2010. 3. 18. 16:51
Rewite모듈로 블로그 한글아이디까지 리다이렉트 시키기 아팥쥐2010. 3. 18. 16:51
아파치 가상호스트 설정에서 변경해준다.
# songjuha main web test -
<VirtualHost *:80>
ServerAdmin webmaster@songjuha.com
DocumentRoot /home/songjuha/www_root/
ServerName test.songjuha.com
ErrorLog /dev/null
CustomLog /dev/null common
</VirtualHost>
########################################### 이게 블로그용 설정
# blogmeme
<VirtualHost *:80>
ServerAdmin webmaster@songjuha.com
DocumentRoot /home/songjuha/bloghome/
ServerName blog.songjuha.com
RewriteEngine On
RewriteLog /dev/null
RewriteCond %{REQUEST_URI} !^/blogmeme$
RewriteRule ^/([^\.]+)$ /home/songjuha/bloghome/myblog.php?id=$1
RewriteLog /dev/null
RewriteCond %{REQUEST_URI} !^/blogmeme$
RewriteRule ^/([^\.]+)$ /home/songjuha/bloghome/myblog.php?id=$1
ErrorLog /dev/null
CustomLog /dev/null common
</VirtualHost>
RewriteEngine On # RewriteEngine을 쓴다는 것이다.
RewriteLog /dev/null # 로그는 안쓴다.
RewriteLog /dev/null # 로그는 안쓴다.
RewriteCond %{REQUEST_URI} !^/blogmeme$
블로그밈 이라는 블로그프로그램을 사용해서 blogmeme라는 디렉토리 안에 넣어두었다.
루트에 풀어도 되는데 루트에 풀면 실질적블로그용 주소까지 몽땅 리다이렉트 해버리는 문제가 있어서..
이건 존재하는 blogmeme 라는 디렉토리는 제외시키고 적용시킨다는 소리겠지.
다른 경로에 설치하고 그 이름을 써도된다.
블로그밈 이라는 블로그프로그램을 사용해서 blogmeme라는 디렉토리 안에 넣어두었다.
루트에 풀어도 되는데 루트에 풀면 실질적블로그용 주소까지 몽땅 리다이렉트 해버리는 문제가 있어서..
이건 존재하는 blogmeme 라는 디렉토리는 제외시키고 적용시킨다는 소리겠지.
다른 경로에 설치하고 그 이름을 써도된다.
RewriteRule ^/([^\.]+)$ /home/songjuha/bloghome/myblog.php?id=$1
([^\.]+)$
그룹으로 묶은거다. 보통 [a-zA-Z0-9]+ 이렇게 하는데 이러면 한글은 안된다.
그래서 콤마(.)만 제외시키는 정규식으로 한것이다.
([^\.]+) 이렇게 지정한 그룹의 값이 $1 으로 입력되어서 myblog.php에서 id를 받아 알아서 처리해주면 된다.
([^\.]+)$
그룹으로 묶은거다. 보통 [a-zA-Z0-9]+ 이렇게 하는데 이러면 한글은 안된다.
그래서 콤마(.)만 제외시키는 정규식으로 한것이다.
([^\.]+) 이렇게 지정한 그룹의 값이 $1 으로 입력되어서 myblog.php에서 id를 받아 알아서 처리해주면 된다.
2010. 3. 5. 15:20
MySQL 설치 후 root패스워드 지정 DB자라/MySQL2010. 3. 5. 15:20
퍼온거야 ㅋㅋㅋㅋㅋㅋㅋ
---------------------------------------------------------------------
MySQL 설치 후 root패스 지정
root@ubuntu:~#mysqladmin -u root -p password amho1818
'amho1818'은 지정할 패스워드다 -_-;;
을 입력하시면
Enter password:
라고 컴퓨터가 뭍습니다
암호를 바꾸기전 root 암호를 대라! 이건데
없다!
없음으로 그냥 엔터~
그림에는 안나왔지만 엔터누른후 하나더물어봅니다
변경할 비밀번호를 한번더 처봐라~
위에는 mypasswd 가 비밀번호임으로 확인 비밀번호 mypasswd 를 다시 쳐주면
root@ubuntu:~#
이렇게 아무것도 안나오면 변경된것입니다.
CentOS 설치하고 하니 한 번만 물어본다.
Enter password:
라고 컴퓨터가 뭍습니다
암호를 바꾸기전 root 암호를 대라! 이건데
없다!
없음으로 그냥 엔터~
그림에는 안나왔지만 엔터누른후 하나더물어봅니다
변경할 비밀번호를 한번더 처봐라~
위에는 mypasswd 가 비밀번호임으로 확인 비밀번호 mypasswd 를 다시 쳐주면
root@ubuntu:~#
이렇게 아무것도 안나오면 변경된것입니다.
CentOS 설치하고 하니 한 번만 물어본다.
2010. 3. 5. 15:16
phpMyAdmin 설치하기 DB자라/MySQL2010. 3. 5. 15:16
없길래 설치 -_-;;
오늘날짜기준으로 다운 주소http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.tar.gz?use_mirror=cdnetworks-kr-2
[root@zalbang public_html]# wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.tar.gz?use_mirror=cdnetworks-kr-2
--2010-03-05 15:03:48-- http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.tar.gz?use_mirror=cdnetworks-kr-2
Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://cdnetworks-kr-2.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.tar.gz [following]
--2010-03-05 15:03:50-- http://cdnetworks-kr-2.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.tar.gz
Resolving cdnetworks-kr-2.dl.sourceforge.net... 211.39.135.163
Connecting to cdnetworks-kr-2.dl.sourceforge.net|211.39.135.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3709673 (3.5M) [application/x-gzip]
Saving to: `phpMyAdmin-3.2.5-all-languages.tar.gz'
100%[==========================================================>] 3,709,673 15.8M/s in 0.2s
2010-03-05 15:03:50 (15.8 MB/s) - `phpMyAdmin-3.2.5-all-languages.tar.gz' saved [3709673/3709673]
[root@zalbang public_html]# ll
total 3756
-rw-r--r-- 1 root root 3709673 Jan 10 21:22 phpMyAdmin-3.2.5-all-languages.tar.gz
[root@zalbang public_html]# tar xzpf phpMyAdmin-3.2.5-all-languages.tar.gz
[root@zalbang public_html]# ll
total 3760
drwxr-xr-x 10 root root 4096 Jan 10 21:17 phpMyAdmin-3.2.5-all-languages
-rw-r--r-- 1 root root 3709673 Jan 10 21:22 phpMyAdmin-3.2.5-all-languages.tar.gz
[root@zalbang public_html]# cd phpMyAdmin-3.2.5-all-languages
[root@zalbang phpMyAdmin-3.2.5-all-languages]# ll
total 1492
-rw-r--r-- 1 root root 10886 Jan 10 21:17 browse_foreigners.php
-rw-r--r-- 1 root root 4354 Jan 10 21:17 bs_change_mime_type.php
-rw-r--r-- 1 root root 1797 Jan 10 21:17 bs_disp_as_mime_type.php
-rw-r--r-- 1 root root 2368 Jan 10 21:17 bs_play_media.php
-rw-r--r-- 1 root root 845 Jan 10 21:17 calendar.php
-rw-r--r-- 1 root root 14374 Jan 10 21:17 ChangeLog
-rw-r--r-- 1 root root 3613 Jan 10 21:17 changelog.php
-rw-r--r-- 1 root root 520 Jan 10 21:17 chk_rel.php
-rw-r--r-- 1 root root 2165 Jan 10 21:17 config.sample.inc.php
drwxr-xr-x 3 root root 4096 Jan 10 21:17 contrib
-rw-r--r-- 1 root root 169 Jan 10 21:17 CREDITS
-rw-r--r-- 1 root root 1507 Jan 10 21:17 db_create.php
-rw-r--r-- 1 root root 10469 Jan 10 21:17 db_datadict.php
-rw-r--r-- 1 root root 2454 Jan 10 21:17 db_export.php
-rw-r--r-- 1 root root 491 Jan 10 21:17 db_import.php
-rw-r--r-- 1 root root 27139 Jan 10 21:17 db_operations.php
-rw-r--r-- 1 root root 7439 Jan 10 21:17 db_printview.php
-rw-r--r-- 1 root root 30632 Jan 10 21:17 db_qbe.php
-rw-r--r-- 1 root root 13151 Jan 10 21:17 db_search.php
-rw-r--r-- 1 root root 1008 Jan 10 21:17 db_sql.php
-rw-r--r-- 1 root root 26671 Jan 10 21:17 db_structure.php
-rw-r--r-- 1 root root 3365 Jan 10 21:17 docs.css
-rw-r--r-- 1 root root 235897 Jan 10 21:17 Documentation.html
-rw-r--r-- 1 root root 167660 Jan 10 21:17 Documentation.txt
-rw-r--r-- 1 root root 2193 Jan 10 21:17 error.php
-rw-r--r-- 1 root root 24954 Jan 10 21:17 export.php
-rw-r--r-- 1 root root 18902 Jan 10 21:17 favicon.ico
-rw-r--r-- 1 root root 13822 Jan 10 21:17 import.php
-rw-r--r-- 1 root root 6834 Jan 10 21:17 index.php
-rw-r--r-- 1 root root 179 Jan 10 21:17 INSTALL
drwxr-xr-x 3 root root 4096 Jan 10 21:17 js
drwxr-xr-x 2 root root 4096 Jan 10 21:17 lang
drwxr-xr-x 10 root root 4096 Jan 10 21:17 libraries
-rw-r--r-- 1 root root 18011 Jan 10 21:17 LICENSE
-rw-r--r-- 1 root root 500 Jan 10 21:17 license.php
-rw-r--r-- 1 root root 13416 Jan 10 21:17 main.php
-rw-r--r-- 1 root root 25891 Jan 10 21:17 navigation.php
-rw-r--r-- 1 root root 27454 Jan 10 21:17 pdf_pages.php
-rw-r--r-- 1 root root 52880 Jan 10 21:17 pdf_schema.php
-rw-r--r-- 1 root root 468 Jan 10 21:17 phpinfo.php
-rw-r--r-- 1 root root 1133 Jan 10 21:17 phpmyadmin.css.php
drwxr-xr-x 5 root root 4096 Jan 10 21:17 pmd
-rw-r--r-- 1 root root 9895 Jan 10 21:17 pmd_common.php
-rw-r--r-- 1 root root 1917 Jan 10 21:17 pmd_display_field.php
-rw-r--r-- 1 root root 18556 Jan 10 21:17 pmd_general.php
-rw-r--r-- 1 root root 880 Jan 10 21:17 pmd_help.php
-rw-r--r-- 1 root root 3773 Jan 10 21:17 pmd_pdf.php
-rw-r--r-- 1 root root 4041 Jan 10 21:17 pmd_relation_new.php
-rw-r--r-- 1 root root 2020 Jan 10 21:17 pmd_relation_upd.php
-rw-r--r-- 1 root root 2108 Jan 10 21:17 pmd_save_pos.php
-rw-r--r-- 1 root root 1063 Jan 10 21:17 print.css
-rw-r--r-- 1 root root 8280 Jan 10 21:17 querywindow.php
-rw-r--r-- 1 root root 2608 Jan 10 21:17 README
-rw-r--r-- 1 root root 758 Jan 10 21:17 README.VENDOR
-rw-r--r-- 1 root root 29 Jan 10 21:17 RELEASE-DATE-3.2.5
-rw-r--r-- 1 root root 26 Jan 10 21:17 robots.txt
drwxr-xr-x 2 root root 4096 Jan 10 21:17 scripts
-rw-r--r-- 1 root root 7637 Jan 10 21:17 server_binlog.php
-rw-r--r-- 1 root root 2698 Jan 10 21:17 server_collations.php
-rw-r--r-- 1 root root 13514 Jan 10 21:17 server_databases.php
-rw-r--r-- 1 root root 4743 Jan 10 21:17 server_engines.php
-rw-r--r-- 1 root root 1667 Jan 10 21:17 server_export.php
-rw-r--r-- 1 root root 506 Jan 10 21:17 server_import.php
-rw-r--r-- 1 root root 98056 Jan 10 21:17 server_privileges.php
-rw-r--r-- 1 root root 2951 Jan 10 21:17 server_processlist.php
-rw-r--r-- 1 root root 615 Jan 10 21:17 server_sql.php
-rw-r--r-- 1 root root 24593 Jan 10 21:17 server_status.php
-rw-r--r-- 1 root root 2252 Jan 10 21:17 server_variables.php
drwxr-xr-x 4 root root 4096 Jan 10 21:17 setup
-rw-r--r-- 1 root root 355 Jan 10 21:17 show_config_errors.php
-rw-r--r-- 1 root root 26912 Jan 10 21:17 sql.php
-rw-r--r-- 1 root root 8185 Jan 10 21:17 tbl_addfield.php
-rw-r--r-- 1 root root 7263 Jan 10 21:17 tbl_alter.php
-rw-r--r-- 1 root root 53578 Jan 10 21:17 tbl_change.php
-rw-r--r-- 1 root root 9830 Jan 10 21:17 tbl_create.php
-rw-r--r-- 1 root root 2618 Jan 10 21:17 tbl_export.php
-rw-r--r-- 1 root root 655 Jan 10 21:17 tbl_import.php
-rw-r--r-- 1 root root 8005 Jan 10 21:17 tbl_indexes.php
-rw-r--r-- 1 root root 2488 Jan 10 21:17 tbl_move_copy.php
-rw-r--r-- 1 root root 26634 Jan 10 21:17 tbl_operations.php
-rw-r--r-- 1 root root 16708 Jan 10 21:17 tbl_printview.php
-rw-r--r-- 1 root root 23473 Jan 10 21:17 tbl_relation.php
-rw-r--r-- 1 root root 15425 Jan 10 21:17 tbl_replace.php
-rw-r--r-- 1 root root 4922 Jan 10 21:17 tbl_row_action.php
-rw-r--r-- 1 root root 16257 Jan 10 21:17 tbl_select.php
-rw-r--r-- 1 root root 948 Jan 10 21:17 tbl_sql.php
-rw-r--r-- 1 root root 31716 Jan 10 21:17 tbl_structure.php
drwxr-xr-x 4 root root 4096 Jan 10 21:17 themes
-rw-r--r-- 1 root root 1299 Jan 10 21:17 themes.php
-rw-r--r-- 1 root root 235 Jan 10 21:17 TODO
-rw-r--r-- 1 root root 1688 Jan 10 21:17 transformation_overview.php
-rw-r--r-- 1 root root 3734 Jan 10 21:17 transformation_wrapper.php
-rw-r--r-- 1 root root 9053 Jan 10 21:17 translators.html
-rw-r--r-- 1 root root 4622 Jan 10 21:17 user_password.php
-rw-r--r-- 1 root root 5412 Jan 10 21:17 view_create.php
-rw-r--r-- 1 root root 1132 Jan 10 21:17 webapp.php
[root@zalbang phpMyAdmin-3.2.5-all-languages]#
다음부터는 퍼왔다... 당췌 뭐 쓰기 귀찮아서 ㅋ
phpMyAdmin 디렉토리 안에 있는 config.sample.inc.php 파일을 config.inc.php 로 변경합니다.
config.inc.php 파일의 아래 두가지 내용을 수정합니다.
아파치에서 phpMyAdmin 을 알리아스(Alias)를 걸어 줍니다.
아파치를 재시작 합니다.
[root@ruo91 ~]# cd /usr/local/src/myadmin
[root@ruo91 ~]# mv config.sample.inc.php config.inc.php
config.inc.php 파일의 아래 두가지 내용을 수정합니다.
[root@ruo91 ~]# vi config.inc.php
/* phpMyAdmin 로그인 인증을 쿠키로 할때 사용할 값을 적어줍니다.
* 인증 방식을 http 로 할경우 필요 없음..
*/
$cfg['blowfish_secret'] = 'ruo91phpMyAdmincookie';
/* 로그인 인증을 선택합니다. 기본값은 cookie 이며 보안상 http 로 설정할것을 권장합니다. */
$cfg['Servers'][$i]['auth_type'] = 'http';
아파치에서 phpMyAdmin 을 알리아스(Alias)를 걸어 줍니다.
<VirtualHost *:80>
ServerName www.yongbok.net
ServerAdmin ruo91@yongbok.net
ServerAlias yongbok.com yongbok.net www.yongbok.com www.yongbok.net
DocumentRoot /home/www
ErrorLog /home/apache2-log/www-error.log
LogLevel warn
CustomLog /home/apache2-log/www-access.log combined
ErrorDocument 403 http://www.yongbok.net/error/permission
ErrorDocument 404 http://www.yongbok.net/error/
Alias /phpMyAdmin "/usr/local/src/myadmin"
Alias /myadmin "/usr/local/src/myadmin"
<Directory "/home/www">
Options FollowSymLinks
AllowOverride FileInfo AuthConfig
</Directory>
</VirtualHost>
아파치를 재시작 합니다.
[root@ruo91 ~]# /usr/local/apache2/bin/apachectl restart
2010. 3. 3. 18:43
VirtualHost 설정하기 아파치 가상호스팅. 카테고리 없음2010. 3. 3. 18:43
#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80 - 앞의 주석을 제거해줘야 한다.
NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
# 추가되는 사이트들을 엮는다
<VirtualHost *:80>
ServerAdmin webmaster@가상호스팅사이트.com - 관리자 메일주소
DocumentRoot /home/아이디/web/ - 호스팅대상의 문서 Root경로
ServerName 가상호스팅사이트.com - 도메인 명을 써준다. 서브도메인이라면 앞에 붙여준다.
ErrorLog /dev/null - 에러로그파일 경로 : 여기서는 안맹근다.
CustomLog /dev/null common - 일반로그파일 경로 : 역시 안맹근다.
</VirtualHost>