- NFS 서버 설정
NFS 데몬과 RPC 데몬을 /etc/rc.conf 에 적어줍니다.
[root@yongbok ~]# ee /etc/rc.conf
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
rpcbind_enable="YES"
rpcbind_flags="-r"

exports 파일에 아래 내용과 같이 사용자 환경에 맞게 적어 줍니다.
[root@yongbok ~]# ee /etc/exports
/home     192.168.0.2
/usr/ports     -alldirs    192.168.0.2
/home2/ftp    -maproot=root    192.168.0.3

rpcbind, nfsd, mountd 를 실행합니다.
[root@yongbok ~]# rpcbind
[root@yongbok ~]# nfsd -u -t -n 4
[root@yongbok ~]# mountd -r
[root@yongbok ~]# ps -aux | egrep 'rpcbind|nfs|mountd'
root  59202  0.0  0.1  3376  1324  ??  Ss    5:22오전   0:00.02 rpcbind
root  59204  0.0  0.1  3284  1360  ??  Is    5:23오전   0:00.05 nfsd: master (nfsd)
root  59205  0.0  0.1  3284   952  ??  S     5:23오전   0:00.00 nfsd: server (nfsd)
root  59207  0.0  0.1  3344  1532  ??  Is    5:23오전   0:00.01 mountd -r
- NFS 클라이언트 설정

- FreeBSD
/etc/rc.conf 에 아래 내용 추가
[root@yongbok ~]# echo 'nfs_client_enable="YES"' >> /etc/rc.conf

NFS 서버에 마운트
[root@yongbok ~]# mount_nfs hostname:/path/to/sharedDirectory /mnt/target

사용 예
[root@yongbok ~]# mkdir /home/ports
[root@yongbok ~]# mount_nfs 192.168.0.1:/usr/ports /home/ports
[root@yongbok ~]# mount_nfs yongbok.net:/home2/ftp /home/ftp
[root@yongbok ~]# mount | grep nfs
192.168.0.1:/usr/ports on /usr/home/ports (nfs)

- Linux
Portmap 시작
[root@ruo91 ~]# /etc/init.d/portmap start

NFS 서버에 마운트
[root@ruo91 ~]# mount -t nfs hostname:/path/to/sharedDirectory /mnt/target

사용 예
[root@ruo91 ~]# mkdir /home/ftp
[root@ruo91 ~]# mount -t nfs 192.168.0.1:/home2/ftp /home/ftp

Doc
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-nfs.html
http://www.freebsddiary.org/nfs.php
http://www.freebsdmadeeasy.com/tutorials/freebsd/using-freebsd-nfs.php
http://en.gentoo-wiki.com/wiki/NFS/Client
2010/02/22 05:48 2010/02/22 05:48
Munin 은 트래픽 분석 툴이며 RRDTool 를 이용하여 그래프를 그려 보여줍니다.

Munin 데모
http://munin.ping.uio.no/
http://munin.ping.uio.no/ping.uio.no/rossum.ping.uio.no.html
사용자 삽입 이미지
사용자 삽입 이미지

- Munin 설치
[root@yongbok ~]# pkg_add -r munin-main
You need a group "munin".
Would you like me to create it [y]? y
Done.
You need a user "munin".
Would you like me to create it [y]? y
Done.
[root@yongbok ~]# pkg_add -r munin-node

- Munin 설정

Munin-node 를 서비스에 등록 해줍니다.
[root@yongbok ~]# echo 'munin_node_enable="YES"' >> /etc/rc.conf

설정 파일을 생성 해줍니다.
[root@yongbok ~]# cd /usr/local/etc/munin
[root@yongbok ~]# cp munin.conf.sample munin.conf
[root@yongbok ~]# ee munin.conf
# 기록이 저장될 디렉토리 지정
dbdir   /usr/local/var/munin
htmldir    /usr/local/www/munin
logdir    /var/log/munin-main
rundir  /var/run/munin

# HTML 템플릿 디렉토리 지정
tmpldir   /usr/local/etc/munin/templates

# 사용할 노드를 추가 해줍니다.
[ruo91]
    address 127.0.0.1
    use_node_name yes
[root@yongbok ~]# cp munin-node.conf.sample munin-node.conf
[root@yongbok ~]# ee munin-node.conf
# 로그 설정
log_level 4
log_file /var/log/munin-node.log
pid_file /var/run/munin/munin-node.pid

background 1
setseid 1

user root
group wheel
setsid yes

# 정규식 파일 무시 (Regexps for files to ignore)
ignore_file ~$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$

# A list of addresses that are allowed to connect.  This must be a
# regular expression, due to brain damage in Net::Server, which
# doesn't understand CIDR-style network notation.  You may repeat
# the allow line as many times as you'd like

allow ^127\.0\.0\.1$

# IP 주소 입력
host 127.0.0.1

# 포트 지정
port 4949
 
Munin 에 사용할 플러그인을 링크 또는 복사 해줍니다.
플러그인 디렉토리 : /usr/local/share/munin/plugins
사용할 플러그인 디렉토리 : /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/apache_* /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/mysql_* /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/cpu /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/load /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/memory /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/named /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/proccess /usr/local/etc/munin/plugins/
[root@yongbok ~]# ln -s /usr/local/share/munin/plugins/swap /usr/local/etc/munin/plugins/

아파치 플러그인을 사용시 httpd.conf 설정 파일에 server-status 을 추가 해줍니다.
[root@yongbok ~]# ee /usr/local/apache2/conf/httpd.conf
ExtendedStatus On
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 192.168.0.2
</Location>
[root@yongbok ~]# /usr/local/apache2/bin/apachectl restart

MySQL 플러그인 사용시 루트로 접근 가능하도록 해줘야 하기 때문에 아래 설정 파일을 수정 해줍니다.
[root@yongbok ~]# cd /usr/local/etc/munin/plugin-conf.d
[root@yongbok ~]# cp plugins.conf.sample plugins.conf
[root@yongbok ~]# ee plugins.conf
[mysql*]
user root
group wheel
env.mysqladmin /usr/local/bin/mysqladmin
env.mysqlshow /usr/local/bin/mysqlshow
env.mysqlopts -u root -p123456

Munin 을 시작합니다.
[root@yongbok ~]# /usr/local/etc/rc.d/munin-node.sh restart
Starting munin_node.

Doc
http://munin.projects.linpro.no/wiki/Documentation
2010/02/20 03:47 2010/02/20 03:47
NetBSD 에서 Apache, PHP, MySQL 를 pkgsrc 를 이용해 설치하는 방법입니다.

설치하기 앞서 pksrc 설치시 서비스 관련 파일을 자동으로 등록 해주도록 설정 해줍니다.
ruo91# echo 'PKG_RCD_SCRIPTS=YES' > /etc/mk.conf

- Apache 설치
ruo91# cd /usr/pkgsrc/www/apache22
ruo91# make install clean clean-depends

부팅시 자동으로 Apache가 실행 되도록 설정 해줍니다.
ruo91# echo 'apache=YES' >> /etc/rc.conf

- MySQL 설치
ruo91# cd /usr/pkgsrc/databases/mysql5-server
ruo91# make install clean clean-depends

부팅시 자동으로 Apache가 실행 되도록 설정 해줍니다.
ruo91# echo 'apache=YES' >> /etc/rc.conf

MySQL 을 실행 합니다.
ruo91# /etc/rc.d/mysqld start

MySQL 루트 비밀번호를 설정 합니다.
ruo91# /usr/pkg/bin/mysqladmin -u root -p password '123456'

- PHP 설치
ruo91# cd /usr/pkgsrc/www/ap-php
ruo91# make install clean

- Apache 설정
httpd.conf 파일에 아래 내용 중 해당 되는 곳 추가 또는 수정 해줍니다.
ruo91# vi /usr/pkg/etc/httpd/httpd.conf
# Dynamic Shared Object (DSO) Support
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule php5_module /usr/pkg/lib/httpd/mod_php5.so
#
ServerName yongbok.net:80
#
<IfModule mime_module>
    TypesConfig etc/httpd/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
</IfModule>

  php.ini 추가
ruo91# vi /usr/pkg/etc/php.ini
; Dynamic Extensions ;
extension=mysql.so

Apache 시작
ruo91# /etc/rc.d/apache start

- phpinfo 확인
ruo91# echo '<?php phpinfo(); ?>' > /usr/pkg/share/httpd/htdocs/index.php
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

Doc
http://wiki.netbsd.se/How_to_install_a_LAMP_Server
2010/02/17 21:50 2010/02/17 21:50
NetBSD 에서 커널 컴파일 하는 방법입니다.

미러링 서버에서 커널을 다운받고 압축 풀어줍니다.
ruo91# cd /usr/pkgsrc/net/wget ; make install clean
ruo91# cd /
ruo91# wget ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-5.0.2/source/sets/syssrc.tgz
ruo91# tar xzvf syssrc.tgz
ruo91# cd /usr/src/sys/arch/i386
ruo91# cp GENERIC ruo91

사용자 환경에 맞게 커널 수정
ruo91# pwd
/usr/src/sys/arch/i386/conf
ruo91# vi ruo91
ruo91# config ruo91
Build directory is ../compile/ruo91
Don't forget to run "make depend"
ruo91# cd ../compile/ruo91
ruo91# make depend ; make
NetBSD 5.0.2 (ruo91) #0: Thu Feb 18 03:02:56 KST 2010
  text    data     bss     dec     hex filename
9490871  423908  615956 10530735         a0afaf netbsd
ruo91# cp /usr/src/sys/arch/i386/compile/ruo91/netbsd /
ruo91# reboot

커널 확인
ruo91# uname -a
NetBSD ruo91.yongbok.net 5.0.2 NetBSD 5.0.2 (ruo91) #0: Thu Feb 18 03:02:56 KST 2010  root@ruo91.yongbok.net:/usr/src/sys/arch/i386/compile/ruo91 i386

Doc
http://www.netbsd.org/docs/kernel/#how_to_build_a_kernel
http://www.netbsd.org/docs/guide/en/chap-kernel.html#chap-kernel-installing-kernel-sources
2010/02/17 18:58 2010/02/17 18:58

CentOS 5.4 에서 XEN 설치

from Linux 2010/02/16 18:00
- XEN 설치
yum 을 사용하여 설치를 진행합니다.
[root@ruo91 ~]# yum install -y kernel-xen xen

설치가 완료 되면 grub에 XEN 커널이 추가가 됩니다.
menu.lst 파일에 'default=1' 을 'default=0' 으로 수정한 후 재부팅 합니다.
[root@ruo91 ~]# vi /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#         kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.11.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-164.11.1.el5
        module /vmlinuz-2.6.18-164.11.1.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-164.11.1.el5xen.img
title CentOS (2.6.18-164.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-164.el5.img
[root@ruo91 ~]# reboot

사용자 삽입 이미지

- Guest OS 설치

가상화 목록을 확인 합니다.
[root@ruo91 ~]# xm list
Name                                     ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      879     1 r-----    170.7

Guest OS 가 생성될 디렉토리를 만들고 설치를 진행 합니다.
[root@ruo91 ~]# mkdir /vm
[root@ruo91 ~]# virt-install -n CentOS_5.4 --prompt consol
How much RAM should be allocated (in megabytes)? 256
 What would you like to use as the disk (file path)? /vm/CentOS_5.4.img
 What is the install URL? http://centos.mirror.cdnetworks.com/5.4/os/i386


Starting install...
Retrieving file .treeinfo...                                                              |  413 B     00:00
Retrieving file vmlinuz...                                                               | 2.1 MB     00:00
Retrieving file initrd.img...                                                             | 6.6 MB     00:00
Creating domain...                                                                      |    0 B     00:04
Connected to domain CentOS_5.4
Escape character is ^]
Linux version 2.6.18-164.el5xen (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Thu Sep 3 04:47:32 EDT 2009
..........................
..............................
옵 션 및 설명
-n : 가상 OS 이름
-v : 전 가상화 (Full virtualization)
-p : 반 가상화 (Para virtualization)
--prompt consol : 콘솔 기반으로 설치
How much RAM should be allocated (in megabytes)?
-> 가상 OS에 메모리 용량을 얼마나 줄것인지.. 기본 MB(메가바이트) 단위
 What would you like to use as the disk (file path)?
-> 가상 OS의 이미지 파일이 저장될 경로
 What is the install URL?
-> 미러링 서버로 설치 하기 위한 주소
이후 가상 OS 설치를 할수 있게 됩니다.
사용자 삽입 이미지
사용자 삽입 이미지

XEN 을 이용한 가상 OS 를 확인 해봅니다.
[root@ruo91 ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
CentOS_5.4                                 4      255     1 -b----    259.7
Domain-0                                   0      747     1 r-----   2693.5

참고
http://tx.downloads.xensource.com/downloads/docs/user/
http://www.ibm.com/developerworks/kr/library/l-linuxvirt/
http://www.howtoforge.com/paravirtualization-with-xen-on-centos-5.4-x86_64
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ko-KR/Virtualization/task-virt-lab1.html
2010/02/16 18:00 2010/02/16 18:00
vsftpd 에서 심볼릭 링크로 다른곳의 디렉토리를 걸어 사용할때 아래와 같이 에러가 나옵니다.
[root@yongbok ~] ln -s /home2/Music /home/ftp/Music
사용자 삽입 이미지

심볼릭 링크 대신 마운트를 사용하면 깔끔하게 해결이 됩니다.
[root@yongbok ~]# mkdir /usr/home/ftp/Music
[root@yongbok ~]# mount_nullfs -o ro /home2/Music /usr/home/ftp/Music
[root@yongbok ~]# mount | grep /home2
/dev/ad2s1d on /home2 (ufs, local, soft-updates)
/home2/Music on /usr/home/ftp/Music (nullfs, local, read-only)

참고
http://forums.freebsd.org/showthread.php?t=691
http://www.freebsd.org/cgi/man.cgi?query=mount_nullfs&apropos=0&sektion=0&manpath=FreeBSD+8.0-RELEASE&format=html
2010/02/09 22:52 2010/02/09 22:52
Apache + PHP + MySQL 이 설치된 상태에서 가상 호스팅 설정 방법입니다.
필자는 허접하여 아래 처럼 사용하므로 따라 하다가 안된다고 하지 마세요 ㅠ_ㅠ

아파치가 사용할 계정을 생성합니다.
[root@yongbok ~]# groupadd -g 81 apache
[root@yongbok ~]# useradd -u 81 -g 81 -s /sbin/nologin  -c "apache account" -d /home/www apache
[root@yongbok ~]# cat /etc/passwd | grep apache
apache:x:81:81:apache account:/home/www:/sbin/nologin
[root@yongbok ~]# mkdir /home/www
[root@yongbok ~]# chown apache:apache /home/www

아파치 디렉토리의 httpd.conf 를 수정합니다.
[root@yongbok ~]# vi /usr/local/apache2/conf/httpd.conf
# 필자는 원본 설정 파일중 필요 없는 부분은 제거 하였습니다.
# 2010/02/08 - by.ruo91 ( ruo91@yongbok.net )
# ------------------------ 서버 설정 ------------------------ #
# 아파치가 설치된 디렉토리 경로 (컴파일시 지정한 경로)
ServerRoot "/usr/local/apache2"

# 아파치에 사용할 포트
Listen 80

# 아파치 사용자, 그룹 지정
User apache
Group apache

# 관리자 이메일 주소
ServerAdmin ruo91@yongbok.net

# 기본 도메인 주소
# 이것을 지정 해주면 아이피로 접속시 도메인으로 접속이 됩니다.
ServerName www.yongbok.net:80

# ------------------------ 모듈 설정 ------------------------ #
# DSO 모듈
# 모듈 사용 예제:
# LoadModule foo_module modules/mod_foo.so
# ----------------------- 비사용 모듈 ----------------------- #
# 비활성화 모듈 (필요없는 모듈 주석 처리)
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
# ------------------------ 사용 모듈 ------------------------ #
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule mime_module modules/mod_mime.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so

# ------------------------ 문서 관련 설정 ------------------------ #
# 기본 문서 디렉토리
DocumentRoot "/home/www"

# 기본 index 페이지 설정
<IfModule dir_module>
   DirectoryIndex index.htm index.html index.php
</IfModule>

# .htaccess 설정
<FilesMatch "^\.ht">
   Order allow,deny
  Deny from all
   Satisfy All
</FilesMatch>

# PHP 사용
<IfModule mod_php3.c>
 AddType application/x-httpd-php3 .php3 .htm .html
 AddType application/x-httpd-php3-source .php3s
</IfModule>

<IfModule mod_php4.c>
 AddType application/x-httpd-php .php .htm .html
 AddType application/x-httpd-php-source .phps
</IfModule>

<IfModule mod_php5.c>
 AddType application/x-httpd-php .php .htm .html
 AddType application/x-httpd-php-source .phps
</IfModule>

# ------------------------ 로그 관련 설정 ------------------------ #
# 아파치 서버 데몬 에러 로그
ErrorLog "logs/error_log"

# 로그 레벨 설정
# error_log 에 기록될 제어 번호.
# 불러올수 있는 변수
# debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
</IfModule>

# ------------------------ cgi-bin 설정 ------------------------ #
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>

<IfModule cgid_module>
    #
    # ScriptSock: On threaded servers, designate the path to the UNIX
    # socket used to communicate with the CGI daemon of mod_cgid.
    #
    #Scriptsock logs/cgisock
</IfModule>
<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

# ------------------------ MIME 설정 ------------------------ #
DefaultType text/plain

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

# ------------------------ MMAP 설정 ------------------------ #
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall is used to deliver
# files.  This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
#
#EnableMMAP off
#EnableSendfile off

# ------------------------ 그외 설정 ------------------------ #
# MPM 설정
#Include conf/extra/httpd-mpm.conf

# 사용자 디렉토리 설정 (user_dir)
#Include conf/extra/httpd-userdir.conf

# 기본값 설정
#Include conf/extra/httpd-default.conf

# 가상 호스팅 설정
Include conf/extra/httpd-vhosts.conf

가상 호스팅을 설정하기 위해서 httpd-vhosts.conf 파일을 수정합니다.
[root@yongbok ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80
# ------------------------ yongbok.net ------------------------ #
<VirtualHost *:80>
# 기본 도메인을 지정합니다.
  ServerName www.yongbok.net
#
# 관리자 이메일 주소를 입력합니다.
  ServerAdmin ruo91@yongbok.net
#
# 도메인 별로 접속시 동일하게 접근 가능 합니다.
  ServerAlias yongbok.com www.yongbok.com yongbok.net www.yongbok.net
#
# 기본 문서가 있는 디렉토리를 지정 합니다.
  DocumentRoot /home/www/
#
# 잘못된 접근이나 페이지를 찾을수 없을때 표시할 페이지 설정 입니다.
  ErrorDocument 403 http://www.yongbok.net/error/permission
  ErrorDocument 404 http://www.yongbok.net/error/ 
#
# 아파치의 로그를 24시간이 경과하면 날짜별로 분할 기록합니다.
  CustomLog "|/usr/local/apache2/bin/rotatelogs /home/www/log/access-%Y-%m-%d.log 86400" combined
#
# 디렉토리 옵션을 설정 합니다.
<Directory "/home/www">
   Options FollowSymLinks
   AllowOverride FileInfo AuthConfig
 </Directory>
#
# 별칭(Alias) 추가
# phpMyAdmin 의 별칭을 걸어 줍니다.
Alias /myadmin "/home/src/myadmin"
</VirtualHost>

적용을 위해 아파치를 재시작 해줍니다.
[root@yongbok ~]# /usr/local/apache2/bin/apachectl restart
2010/02/08 13:33 2010/02/08 13:33

리눅스 - iptables NAT rule

from Linux 2010/02/08 11:45
젠투 리눅스에서 NAT 할때 설정한 룰입니다. (2010/02/22 수정)
더 자세한 설정은 아래 주소를 참고 하세요.
http://www.gentoo.org/doc/en/home-router-howto.xml
ruo91 ~ # touch firewall.sh
ruo91 ~ # chmod +x firewall.sh
ruo91 ~ # vim firewall.sh
#/bin/bash

# $IPT 변수 설정
IPT='/sbin/iptables'

# 이전 룰셋 초기화
$IPT -F
$IPT -t nat -F

# 기본 규칙 설정
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# 인터페이스 지정
export WAN=eth0
export LAN=eth1

# LAN 설정
$IPT -I INPUT 1 -i ${LAN} -j ACCEPT
$IPT -I INPUT 1 -i lo -j ACCEPT
$IPT -A INPUT -p UDP --dport bootps ! -i ${LAN} -j REJECT
$IPT -A INPUT -p UDP --dport domain ! -i ${LAN} -j REJECT

# 외부에서 SSH 접속 허용
$IPT -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

# 서비스 포트 관련 패킷 차단
$IPT -A INPUT -p TCP ! -i ${LAN} -d 0/0 --dport 0:1023 -j DROP
$IPT -A INPUT -p UDP ! -i ${LAN} -d 0/0 --dport 0:1023 -j DROP

# NAT 설정
$IPT -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP
$IPT -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT
$IPT -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT
$IPT -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

# 커널에 아이피 포워딩 가능하도록 설정
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

# 규칙 모두 저장
/etc/init.d/iptables save
echo "iptables 규칙 적용을 완료 하였습니다."
ruo91 ~ # ./firewall.sh
 * Saving iptables state ...                        [ ok ]
iptables 규칙 적용을 완료 하였습니다.
2010/02/08 11:45 2010/02/08 11:45
특정 User-Agent 를 아파치의 BrowserMatch 와 Deny 지시자를 이용하여 차단 해줄수 있습니다.
필자는 개인 블로그 돌리다보니 libwww-perl/5.834 라는 User-Agent 가 오래전부터 웹서버에 접근 해오고 있어 눈에 좀 거슬렸습니다.

BrowserMatch 를 사용하려면 아파치의 mod_setenvif 모듈이 있어야 하며 최신 버전이라면 기본적으로 들어가 있습니다.
[root@yongbok ~]# cat /usr/local/apache2/conf/httpd.conf | grep mod_setenvif
LoadModule setenvif_module modules/mod_setenvif.so

BrowserMatch 을 이용해 특정 User-Agent 를 차단 해주시면 됩니다.
<VirtualHost *:80>
    ServerName www.yongbok.net
    ServerAdmin ruo91@yongbok.net
    ServerAlias yongbok.com www.yongbok.com yongbok.net www.yongbok.net
    DocumentRoot /home/www/
#----- Error Logs -----#
    LogLevel warn
   CustomLog "|/usr/local/apache2/bin/rotatelogs /home/apache2-log/www/www-access-%Y-%m-%d.log 86400" combined env=!do_not_log
    ErrorLog /home/apache2-log/www-error.log
#
#----- Error Document Page -----#
   ErrorDocument 403 http://www.yongbok.net/error/permission
   ErrorDocument 404 http://www.yongbok.net/error/
#
#----- User-Agent -----#
   BrowserMatch "libwww-perl/5.834" get_out
#
#----- Directoy Options -----#
    <Directory "/home/www">
       Options FollowSymLinks
      AllowOverride FileInfo AuthConfig
       Order allow,deny
       Allow from all
      Deny from env=get_out
       </Directory>
</VirtualHost>

참 고
http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html#browsermatch
2010/02/03 20:06 2010/02/03 20:06
오픈소스 프로젝트들을 몇몇 한국 미러링 서버에 의해 빠르게 다운로드 받을수가 있습니다.
http://ftp.daum.net
http://ftp.kaist.ac.kr
http://mirror.khlug.org
http://mirror.korea.ac.kr
http://ftp.neowiz.com/pub
http://mirror.cdnetworks.com

rsync 를 이용하여 원하는 자료를 다운로드 하고자 할때 아래 처럼 해주면 다운로드 할수 있는 목록들이 나오게 됩니다.
[root@yongbok ~]# rsync -avz ftp.kaist.ac.kr::
  Welcome to KAIST File Archive, ftp.kaist.ac.kr!
  (AKA ftp.kr.debian.org, kr.archive.ubuntu.com, ftp2.kr.vim.org,
   {cvsup,ftp}2.kr.freebsd.org)

  We provide mirrors of open source softwares, e.g. Debian, *BSDs,
  Mozilla, Apache, etc. and publically available files and software.
  Various access methods are available: FTP, HTTP, Rsync or CVSup.
  This system is running at SPARCS Room, KAIST, Daejeon, Korea, Asia.
  Two machines with total 6-core x64 CPUs and 12GB of main memory are
  used to keep our 6.5TB RAID storage online.  KAIST and KT sponsored
  hardware and network connectivity.  SPARCS operates the whole service.

  Use entirely at your own risk -- no warranty is expressed or implied.
  * None of the service providers in any way whatsoever can be
    responsible for any problems that might be caused by this service.
  * Every access to this service is recorded and can be used and
    published for the purpose of improving the quality of the service.
  * We may limit any accesses without forewarning that may prevent
    operators from maintaining reasonable quality of the service.

  Contact ftp@ftp.kaist.ac.kr for any problem or suggestion.
  For more information, visit: http://ftp.kaist.ac.kr/


apache          from rsync://rsync.apache.org/apache-dist/
cpan            from rsync://ftp.funet.fi/CPAN/
ctan            from rsync://tug.ctan.org/CTAN/
cygwin          from rsync://www.cygwin.com/ftp/cygwin/
debian-amd64    from rsync://amd64.debian.net/debian/
debian-archive  from rsync://archive.debian.org/debian-archive/
debian-cd       from rsync://cdimage.debian.org/private/debian-cd/
debian          from rsync://syncproxy.wna.debian.org/ftp/
eclipse         from rsync://download.eclipse.org/eclipseMirror/
fedora          from rsync://download1.fedora.redhat.com/fedora-enchilada/
freebsd-cvsup   from cvsup://cvsup-master.freebsd.org
freebsd-kr      from rsync://ftp.kr.freebsd.org/FreeBSD-kr/
freebsd         from rsync://ftp12.us.freebsd.org/FreeBSD/
ftpsites.kr     from http://ftp.kreonet.re.kr/ftpsites/
gentoo          from rsync://gentoo@masterdistfiles.gentoo.org/gentoo/
geoul           from
gnu-alpha       from ftp://alpha.gnu.org/gnu/
gnu             from rsync://ftp.ibiblio.org/pub/mirrors/gnu/ftp/gnu/
hangul         from
ietf            from rsync://www1.ietf.org/internet-drafts/
isc             from ftp://ftp.isc.org/isc/
misc            from
mozilla         from rsync://releases-rsync.mozilla.org/mozilla-releases/
mplayer-www     from rsync://rsync.mplayerhq.hu/homepage/
mplayer         from rsync://rsync.mplayerhq.hu/ftp/
netbsd-cvsup    from cvsup://cvsup2.jp.netbsd.org
netbsd          from rsync://ftp2.us.netbsd.org/netbsd/
openbsd-cvsup   from cvsup://cvsup.jp.openbsd.org
openbsd         from rsync://ftp.kddlabs.co.jp/openbsd/
openoffice      from rsync://ftp.ussg.iu.edu/openoffice/
opensuse        from rsync://stage.opensuse.org/opensuse-full/opensuse/
pdb             from rsync://rsync.wwpdb.org:33444/ftp/
putty           from rsync://rsync.chiark.greenend.org.uk/ftp/users/sgtatham/putty-website-mirror/
rfc             from ftp://ftp.ietf.org/rfc/
sage            from kaist@sage.math.washington.edu:/home/was/www/sage/
sunfreeware     from rsync://sunfreeware.mirrors.tds.net/sunfreeware/
ubuntu-cd       from rsync://rsync.releases.ubuntu.com/releases/
ubuntu          from rsync://archive.ubuntu.com/ubuntu/
vim             from rsync://ftp.vim.org/Vim/

만약 apache 를 다운로드 하고 싶은 경우 아래와 같이 해주시면 됩니다.
[root@yongbok ~]# rsync -avz ftp.kaist.ac.kr::apache/httpd /home/ftp/Apache
  Welcome to KAIST File Archive, ftp.kaist.ac.kr!
  (AKA ftp.kr.debian.org, kr.archive.ubuntu.com, ftp2.kr.vim.org,
   {cvsup,ftp}2.kr.freebsd.org)

  We provide mirrors of open source softwares, e.g. Debian, *BSDs,
  Mozilla, Apache, etc. and publically available files and software.
  Various access methods are available: FTP, HTTP, Rsync or CVSup.
  This system is running at SPARCS Room, KAIST, Daejeon, Korea, Asia.
  Two machines with total 6-core x64 CPUs and 12GB of main memory are
  used to keep our 6.5TB RAID storage online.  KAIST and KT sponsored
  hardware and network connectivity.  SPARCS operates the whole service.

  Use entirely at your own risk -- no warranty is expressed or implied.
  * None of the service providers in any way whatsoever can be
    responsible for any problems that might be caused by this service.
  * Every access to this service is recorded and can be used and
    published for the purpose of improving the quality of the service.
  * We may limit any accesses without forewarning that may prevent
    operators from maintaining reasonable quality of the service.

  Contact ftp@ftp.kaist.ac.kr for any problem or suggestion.
  For more information, visit: http://ftp.kaist.ac.kr/


receiving file list ... done
httpd/
httpd/.htaccess
httpd/Announcement1.3
httpd/Announcement1.3.html
httpd/Announcement1.3.txt
httpd/Announcement2.0
httpd/Announcement2.0.html
httpd/Announcement2.0.txt
httpd/Announcement2.2
httpd/Announcement2.2.html
httpd/Announcement2.2.txt
httpd/Announcement2.3.txt
httpd/CHANGES_1.3
httpd/CHANGES_1.3.41
httpd/CHANGES_1.3.42
httpd/CHANGES_2.0
httpd/CHANGES_2.0.63
httpd/CHANGES_2.2
httpd/CHANGES_2.2.14
httpd/CHANGES_2.3
httpd/CURRENT-IS-2.2.14
httpd/HEADER.html
httpd/KEYS
httpd/README.html
httpd/apache_1.3.41.tar.Z
...........
...............
...................
sent 9206 bytes  received 258773689 bytes  3339134.13 bytes/sec
total size is 260060149  speedup is 1.00
2010/02/03 03:45 2010/02/03 03:45