주의 : 아파치 컴파일 할 때만 적용....(rpm 설치시에는 해당 안됨)

** max client 수 조정

1. apache 1.3

apache 1.3에서는 MaxClient는 기본적으로 256까지만 설정할 수 있다.

이 parameter값을 증가시키려면 apache의 source를 수정하여 다시 컴파일 해야한다.

apache source directory에 있는 src/include/httpd.h 파일에서 

HARD_SERVER_LIMIT 256 으로 설정된 값을 512,1024로 변경하여 저장 후 apache를 재컴파일해주면 된다.

 

2. apache2.2

apache 2.2 버전은 1.3과 매우다르다. 따라서, httpd.h 파일에는 MaxClient와 관련된 option이 없다.

apache 1.3 버전에서는 src/include/httpd.h 파일 하나만 수정한 후 configure해주면 되었지만 apache 2.2에서는 2개의 파일에서 설정을 바꾸어 주어야한다.

 

 1) source directory 에서 server/mpm/prefork/prefork.c 파일을 열고

#define DEFAULT_SERVER_LIMIT 256 → 2048  수정 후 저장

※ 여기서, 2048 /256 을 하면 8 이라는 배수가 나온다.. 이 배수를 잘 기억해둔다.

 

 2) source directory 에서 server/mpm/worker/worker.c 파알을 열고

#define DEFAULT_SERVER_LIMIT 16 → 256 

 

 3) ./configure --prefix=/usr/local/apache2.2 --enable-rewrite 명령으로 apache 재컴파일.

 

 4) vi /usr/local/apache2.2/conf/extra/httpd-mem.conf 

      → MaxClient 2048 저장 후 apache restart!!

#vi .htaccess


SetEnvIfNoCase remote_addr 70.230.245.11 go_out
SetEnvIfNoCase remote_addr 66.249.67.11 go_out
Order Allow,Deny
Allow from all
Deny from env=go_out

대역 차단시에는 마지막 옥탯만 삭제
예 : SetEnvIfNoCase remote_addr 70.230.245. go_out

# yum install -y sendmail
# yum install -y sendmail-cf
# yum install -y mailx
(설치)

# cd /etc/mail

# cp sendmail.mc sendmail.mc.default
# cp sendmail.cf sendmail.cf.default
(sendmail.mc > sendmail.mc_default 복사
sendmail.cf > sendmail.cf_default 변경)

# vi sendmail.mc
(라인 52, 53 수정)
:52 / 53
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

>>

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

(라인 116 수정)
:116
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
>>>
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

(저장)
:wq!

 

#vi sendmail.cf
(라인 95 수정)
:95
#Dj$w.Foo.COM
>>>
Dj도메인 주소


#vi access
(라인 추가)
connect:도메인주소  relay (추가)

#vi local-host-names
(내용 추가)
도메인 주소


#service sendmail restart (메일 서비스 리스타트)

# telnet localhost 25
(메일 보낼때 사용되는 포트 확인)
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 nanuminet.com ESMTP Sendmail 8.13.8/8.13.8; Wed, 6 Jan 2010 11:03:00 +0900
quit
221 2.0.0 gntv.or.kr closing connection
Connection closed by foreign host.

### 외부에서 25번 포트 열리는 지 확인(cmd 이용)
    (참고 : iptables 에서 해당 포트 개방)


=======================dovecot 설정(받는 메일)========================================

#yum install dovecot

#vi /etc/dovecot.conf
  :21
  protocols = imap imaps pop3 pop3s
  >>>
  protocols = imap pop3

  :39
   #listen = [::]
   >>>
   listen = *

  :85
   #ssl_disable = no
   >>>
   ssl_disable = yes

  :141
   #login_user = dovecot
   >>>
   login_user = dovecot

  :509
   #login_executable = /usr/libexec/dovecot/imap-login
   >>>
   login_executable = /usr/libexec/dovecot/imap-login

  :574
   #login_executable = /usr/libexec/dovecot/imap-login
   >>>
   login_executable = /usr/libexec/dovecot/imap-login

  :680
   #auth_executable = /usr/libexec/dovecot/dovecot-auth
   >>>
   auth_executable = /usr/libexec/dovecot/dovecot-auth

  :828
   #args = dovecot
   >>>
   args = doveco
(대부분 주석 제거 작업임)


### /etc/pam.d > dovecot 파일 확인(폴더 내용 확인- 대부분은
                         정상적으로 설치 되므로 캔슬 해도 무방함)

 

#service dovecot start

### 방화벽 110 / 143 포트 열기


서버 리스타트 시에도 자동 실행 되기 위해

# chkconfig sendmail on
# chkconfig dovecot on


** 여기서 일반적으로 리눅스 서버의 사용자 계정을 만들고 아웃룩에 그 계정으로 설정을 하면
    아웃룩을 통한 메일 주고 받기도 가능하다.


php옵션 추가 --enable-sockets
소스컴피일시 옵션 추가.

/root/src/php-5.2.9/ext/sockets
phpize
./configure --with-php-config=/usr/local/bin/php-config --enable-sockets=yes
make
vi /usr/local/lib/php.ini

[sockets]
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
extension=sockets.so

php extensions 로 enable-sockets 옵션추가완료

apachectl restart


ubuntu apm 설치

sudo apt-get update

1. Apache
   $sudo apt-get install apache2

2. mysql 인증 모듈
   $sudo apt-get install libapache2-mod-auth-mysql

3. MySQL
   $sudo apt-get install mysql-server mysql-client
설치가 완료되면 MySQL서버가 자동으로 시작

4. PHP5
   $sudo apt-get install php5-common php5 libapache2-mod-php5

5. MySQL과 연동하기 위한 모듈
   $sudo apt-get install php5-mysql

6.아파치 웹서버를 재시작
   $sudo /etc/init.d/apache2 restart

7. MySQL서버 정상 작동 확인
   $sudo netstat -tap | grep mysql
명령 후
   tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
면 정상 아니면 재시작
   $sudo /etc/init.d/mysql restart

8. zend 설치

wget http://bace.pe.kr/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

tar xzf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

cd ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp

chmod 644 ZendOptimizer.so

# 모듈 넣을곳을 알아본다.
php -i | grep extension_dir
extension_dir => /usr/lib/php5/20060613+lfs

cp ZendOptimizer.so

# php 에 모듈설정을 한다.
vi /etc/php5/conf.d/ZendOptimizer.ini
zend_extension=/usr/lib/php5/20060613+lfs/ZendOptimizer.so
zend_optimizer.optimization_level=15
zend_optimizer.enable_loader=1
zend_optimizer.disable_licensing=0
:wq


/var/www/info.php
로 phpinfo 확인


=================================================================================

 APM 설정
1. 아파치
     기본설정 파일은 /etc/apache2/apache2.conf
    포트번호, 문서의루트, 모듈, 각종 로그파일, 가상 호스트 등을 설정

2. MySQL
      관리자 암호 설정
   sudo mysqladmin -u root password newrootsqlpassword
   sudo mysqladmin -p -u root -h localohost password newrootpassword

   MySQL 설정파일은 /etc/mysql/my.cnf
      로그 파일, 포트 번호 등을 설정

 

Apache 로그 설정
단일 파일에 저장되는 아파치 웹로그를 날짜별로 분할

1. 다운로드 및 압축해제
    다운로드
    $ tar xvf cronolog-1.6.2.tar

2. 설치 경로 수정
    $ cd cronolog-1.6.2
    $ vi ./configure
       ac_default_prefix=설치경로    (기본값은 /usr/local)
    $ ./configure
    $ make
    $ make install

3. 아파치 설정
    /etc/apache2/sites-available/사이트 설정 파일 의 CustomLog 값 변경
CustomLog "|/설치경로/sbin/cronolog /로그폴더/%Y%m%d_access.log" combined env=!nolog
    가상 호스팅은 경우에는 로그폴더도 사이트별로 나누면 좋다.
    예) /var/log/apache2/mr-dust.pe.kr/
         CustomLog "|/설치경로/sbin/cronolog /var/log/apache2/mr-dust.pe.kr/%Y%m%d_access.log" combined env=!nolog


 Mysql 설정
1. 초기 mysql root 패스워드 설정하기

    mysql 서버에 패스워드 없이 로그인 하게되면 서버에 만들어진 데이터베이스나 테이블 기타 이곳에 저장된 자료가 외부인에게 노출될 수 있다. 따라서 이러한 보안을 목적으로 root 패스워드를 지정하면 mysql 서버를 안전하게 보호할 수 있다.

    mysql> use  mysql;
    mysql> update  user  set  password=password('123456') where user='root';
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2  Changed: 2  Warnings: 0
    mysql> flush  privileges; <--- 적용
flush privileges; 를 하지 않으면 mysql에서 빠져나와서 root 로그인이 안된다.

확인한다.
    mysql> select  host, user, password  from  user;
+----------------------------------------------------------------+
| Host                          user              password       |
+----------------------------------------------------------------+
| localhost                     root          2e01146f5c065853   |
| localhost.localdomain         root          2e01146f5c065853   |
+----------------------------------------------------------------+

    mysql> \q
Bye
------------------------------------------------------------------------------------
[주의]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

이때는 mysql 을 shutdown 하거나 reload 하면 된다.
# /usr/local/mysql/bin/mysqladmin -u root -p shutdown
하면 패스워드를 묻는데 이때 입력하면 설정한 mysql이 적용이된다.
# /usr/local/mysql/bin/mysqladmin -u root -p reload;
------------------------------------------------------------------------------------

 

2. root 패스워드를 분실한 경우(응급조치)

    mysql 을 오랫동안 사용하지 않았을 경우에 간혹 root패스워드가 기억나질않아서 당황할 때가 있습니다.  시스템관리자라면 시스템의 root나 MySQL의 root의 암호를 잊어 버렸을 때를 대비해서 패스워드를 새로 설정하는 방법을 반드시 숙지하고 있어야 할 것입니다.

    ① 실행중인 msyql 종료

        # ps -ef | grep mysqld
root      9567     1  0 Mar16 ?        00:00:00 sh ./mysqld_safe
root      9576  9567  0 Mar16 ?        00:00:00 /usr/local/mysql/libexec/mysqld
root      9578  9576  0 Mar16 ?        00:00:00 /usr/local/mysql/libexec/mysqld
root      9579  9578  0 Mar16 ?        00:00:00 /usr/local/mysql/libexec/mysqld
        # killall mysqld

    ② grant-table 미사용모드로 mysql시작(권한 테이블을 사용하지 않는 옵션으로 데몬 실행)

        # ./safe_mysqld  --skip-grant-tables &
[1] 12084
        # Starting mysqld daemon with databases from /usr/local/mysql/data

        # ./mysql -u  root  mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.22.24
Type 'help' for help.
        mysql>
※ mysqld_safe 명령어는 mysql 데몬을 실행시킨다.

    ③ update문으로 root사용자 패스워드 갱신

        mysql> update user set password=password('123') where user = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0
        mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
        mysql> \q       
Bye

④ 실행중인 mysql 다시 종료(권한 테이블을 사용하지 않는 데몬을 종료)

    # ps -ef | grep mysqld
root     12084 11558  0 20:10 pts/2    00:00:00 sh ./mysqld_safe --skip-grant-ta
root     12090 12084  0 20:10 pts/2    00:00:00 /usr/local/mysql/libexec/mysqld
root     12092 12090  0 20:10 pts/2    00:00:00 /usr/local/mysql/libexec/mysqld
root     12093 12092  0 20:10 pts/2    00:00:00 /usr/local/mysql/libexec/mysqld
    #
    # killall mysqld
mysqld daemon ended
[1]+  Done                    ./mysqld_safe --skip-grant-tables
    #

⑤  Mysql 데몬 재 실행 후 갱신된 패스워드로 로그인

    # ./safe_mysqld &
[1] 12102
    # Starting mysqld daemon with databases from /usr/local/mysql/data
    #

    # ps -ef | grep mysql
root     12102 11558  0 20:13 pts/2    00:00:00 sh ./mysqld_safe
root     12108 12102  0 20:13 pts/2    00:00:00 /usr/local/mysql/libexec/mysqld
root     12110 12108  0 20:13 pts/2    00:00:00 /usr/local/mysql/libexec/mysqld
root     12111 12110  0 20:13 pts/2    00:00:00 /usr/local/mysql/libexec/mysqld

    # mysql -u  root  -p
Enter Password: ***************


1. Mysql 설치

mysql 설치전  /etc/make.conf  1줄 추가
MASTER_SITE_OVERRIDE=ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

mysql 설치전  mysql 다른 패키지가 설치되어 있는지확인
pkg_info | grep mysql

mysql 패키지가 설치되어있다면 패키지 삭제후 설치해야 mysql 새로 설치한버젼이 정상적으로 설치가 됩니다
mysql 패키지 삭제 
ex) mysql50-client 패지키 삭제
cd /usr/ports/databases/mysql50-client
make deinstall

 


cd /usr/ports/databases/mysql51-server

make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci WITH_XCHARESET=all install clean

체크박스 나타나면 OK 선택 후 진행

/usr/local/bin/mysql_install_db

cp /usr/local/share/mysql/my-huge.cnf /etc/my.cnf

vi /usr/local/etc/rc.d/mysql-server

NO 를 YES 로 수정
: ${mysql_enable="YES"}

chown -R mysql /var/db/mysql

/usr/local/bin/mysqld_safe -user=mysql &

rent-0729# cd /usr/local/bin/
rent-0729# rehash

vi /etc/rc.conf
mysql_enable="YES"


2. 아파치 설치

cd /usr/ports/www/apache22

make install clean

mysql 선택
proxy 선택

perl 옵션 창에서는 OK 누르고 진행

rehash


vi /etc/rc.conf 에 아래 내용 추가
apache22_enable="YES"

apachectl start

3. php 설치

cd /usr/ports/lang/php5-extensions/

make install clean

php 옵션

CALENDAR
CURL
FTP
GD
MBSTRING
MCRYPT
MHASH
MING
OPENSSL
PCNTL
MYSQL
MYSQLI
NCURSES
SOCKETS
SYSVSEM
SYSVSHM
WDDX
ZIP
ZLIB


아파치 체크

CURL 설정에서 OK 누르고 진행
체크박스 설정 화면 나타나면 웬만한거 다 OK 누르고 진행합니다

cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

vi /usr/local/etc/apache22/httpd.conf 편집

    DirectoryIndex index.html index.htm index.php index.php3


    AddType application/x-httpd-php .php .htm .html .inc .ph
    AddType application/x-httpd-php-source .phps

reboot

phpinfo() 확인

rent-0729# netstat -la


4. Zend Optimizer 설치

cd /usr/ports/devel/ZendOptimizer

make install clean

vi /usr/local/etc/php.ini

[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"


[vsftpd]
# cd /usr/ports/ftp/vsftpd
# make install clean
# vi /usr/local/etc/vsftpd.conf

# vi /etc/inetd.conf ← ftp stream tcp nowait root /usr/local/libexec/vsftpd vsftpd 한줄 추가합니다.
# vi /etc/rc.conf ← inetd_enable="YES" 한줄 추가합니다.
# /etc/rc.d/inetd start


reboot

===========================================================================================

호현님 버전

설치전 /etc/make.conf

MASTER_SITE_OVERRIDE=ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/  추가


1. Mysql 설치

# cd /usr/ports
# make search name=mysql-server

- 자신이 설치하고 싶은 버젼 선택 후 해당 디렉토리로 이동

# make install WITH_CHARSET=euckr WITH_XHARSET=all ## euckr 선택
# make install WITH_CHARSET=utf8 WITH_XHARSET=all ## utf-8 선택
# cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf

- 서비스 시작
# /usr/local/etc/rc.d/mysql-server forcestart
# /usr/local/bin/mysql -u root

- root 패스워드 설정(로컬에서만 로그인 가능하게)
mysql> set password for 'root'@'localhost' = password('패스워드');
mysql> grant all on *.* to root@localhost identified by '패스워드';
mysql> update mysql.user set password = password('패스워드') where user = 'root';
mysql> flush privileges;

2 apache2.2.X 설치

cd /usr/ports/www/apache22
make install clean

mysql , proxy 선택
Perl 옵션 창에서는 필요한거 선택후 진행

rehash

vi /etc/rc.conf 추가
mysql_enable="YES"
apache22_enable="YES"


# apachectl start

httpready 머시기 에러가 나면..

# kldload accf_http

명령으로 임시적으로 accf_http 모듈을 커널에 로딩해주면 될겁니다..

부팅시 자동으로 로딩하게 하고싶으면..

# vi /boot/loader.conf

accf_data_load="YES" # Wait for data accept filter
accf_http_load="YES" # Wait for full HTTP request accept filter

추가하거나..

# vi /boot/defaults/loader.conf

에 해당 부분에 가서.. NO 를 YES로 바꿔줍니다.

 

 

3. php5 설치, php5-extensions 설치

cd /usr/ports/lang/php5

#  apache support 꼭 선택할것 apache2+php5 연동
make config                -> apache support


make install clean


cd /usr/ports/lang/php5-extensions

# 필요한 라이브러리 선택

make config

make install clean
 

# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

- /usr/local/etc/apache/httpd.conf에 아래 내용 추가
AddType application/x-httpd-php .php .php3 .phtml .htm .html
AddType application/s-httpd-php-source .phps

reboot

4. Zend 설치
PHP 5.3.2 Cli 버젼의 경우 http://files.directadmin.com/services/custombuild/ 여기서 ZendOptimizer-3.3.9-freebsd6.0-i386.tar.gz 받은후 직접설치
vi /usr/local/etc/php.ini

[Zend]
zend_optimizer.version=3.3.9
zend_extension=/usr/local/lib/ZendOptimizer.so

apachectl restart 시 phpinfo 에서 Zend가 안올라올경우 reboot 하면됩니다.


# PHP 5.2.3 의 버젼의 경우

cd /usr/ports/devel/ZendOptimizer
make install clean

vi /usr/local/etc/php.ini

[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"

 아래 명령어로 Zend Optimizer가 잘 적용되었는지 확인
# /usr/local/bin/php -v

- 만약 Failed loading /usr/local/lib/ZendOptimizer.so:  Shared object "libm.so.4" not found, required by "ZendOptimizer.so" 에러가 난다면 아래와 같이 해결하면됩니다.
# cd /lib
# ln -s /lib/libm.so.5 /lib/libm.so.4
# ln -s /lib/libutil.so.7 /lib/libutil.so.5
# ln -s /lib/libcrypt.so.4 /lib/libcrypt.so.3
# ln -s /lib/libc.so.7 /lib/libc.so.6


# ports 이용해 아파치, PHP 재설치후 PHPINFO가 안보일경우 PHP를 재설치해줘야 합니다
참고 url = http://www.kr.freebsd.org/fom-serve/cache/43.html

재설치법 우선 설치된 패키지 정보확인

pkg_info

패키지를 지우기전 기존 폴더삭제
/usr/local/etc/apache22 /usr/local/etc/php 관련된 것 삭제
/usr/local/www/apache22 폴더삭제

삭제완료후 패키지 삭제
pkg_delete -x php5
pkg_delete -x apache-2.2.15_9

삭제후 ports 통해 재설치 하시면 됩니다.


FreeBSD 네트워크 설정

네트웍 장비확인
ifconfig -l


vim /etc/rc.conf

network_interfaces="xx"
ifconfig_xx="inet 아이피 netmask 255.255.255.xxx media looBase TX/UTP mediaopt full-dupley"
hostname="호스트명"
defaultrouter="게이트웨이아이피"

vim /etc/resolv.conf확인

reboot


bind 설치

*** 자신의 도메인의 호스트명과 네임서버를 맞추어 놓는다 ***


1. yum install bind caching-nameserver

 설정파일들 복사

cp /usr/share/doc/bind-9.x.x/sample/* /var/named/chroot/etc

 

2. named.caching-nameserver.conf 설정 수정

vi /etc/named.caching-nameserver.conf

수정 해당부분 주석처리 // 하고,

        listen-on-v6 port 53 { any; };

        query-source    port 53;

        allow-query     { any; };




3. named.conf 설정 수정

vi /var/named/chroot/etc/named.conf

수정 해당부분 주석처리 // 하고,

        match-clients           { any; };

        match-destinations      { any; };

        match-clients           { any; };

        match-destinations      { any; };

그리고 보안 인증부분을 제외하고 세팅을 하겠다.
키부분 주석처리

//key ddns_key
//{
//      algorithm hmac-md5;
//      secret "use /usr/sbin/dns-keygen to generate TSIG keys";
//};

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

//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver 
// (as a localhost DNS resolver only). 
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on 
// caching-nameserver package upgrade.
//
options {
    listen-on port 53 { any; };
    //listen-on-v6 port 53 { ::1; };
    directory     "/var/named";
    dump-file     "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

    // Those options should be used carefully because they disable port
    // randomization
    query-source    port 53;    
    //query-source-v6 port 53;

    allow-query     { any; };

    // Recursion query 제한(DNS cache Poinson 공격 예방)

    allow-recursion { 127.0.0.1; 192.168.0.0/24; };      

    // 버전 정보 감춤

    version "UNKNOWN";                                        

};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
    match-clients        { any; };
    match-destinations { any; };
    recursion yes;
    include "/etc/named.rfc1912.zones";
};

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



4. zone 추가

나의 도메인은 ganji.pe.kr 이다.

존파일 추가 부분은 예전과 달리 /var/named/chroot/etc/named.rfc1912.zones 로 잡혀있다.

vi /var/named/chroot/etc/named.rfc1912.zones

정방향 영역 추가
zone "ganji.pe.kr" IN {
        type master;
        file "ganji.pe.kr.zone";        <= 존파일이름
       allow-update { none; };      <= 동적 업데이트 허용안함
};

역방향 영역 추가  (역방향은 거의 세팅하지 않는다.)

zone "163.231.254.121.in-addrarpa" IN {      <= IP역순 입력
        type master;
        file "ganji.pe.kr.rev";        <= 존파일이름
       allow-update { none; };    <= 동적 업데이트 허용안함
};



5. zone file 설정

zone파일을 실 위치는 /var/named/chroot/var/named/ganji.pe.kr.zone 이다.

vi /var/named/chroot/var/named/ganji.pe.kr.zone

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

$TTL    3600    <= TTL타임
@               IN SOA  ns.ganji.pe.kr. root.ganji.pe.kr. (               <=도메인 마지막에 마침표 (.)을 찍는것을 주의한다.
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
@               IN NS           ns.ganji.pe.kr.                                 <= 네임서버 호스트 (역시 마침표주의)

@               IN A            121.254.231.163                                 <= 나머지들은 호스트명 지정(소위 서브도메인,2차도메인)
ns              IN A            121.254.231.163
www           IN A           121.254.231.163
mail            IN A            121.254.231.163

* 뛰우는 간격은 tab으로 한다.
* MX레코드 값이나 다른 설정은 다음에 설명.

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


zone 파일 권한을 모두 named로 변경한다

chown named.named 존파일명

심볼릭 링크 한다.

/var/named  위치에서 존파일 실위치로 심볼릭 링크

ln -s /var/named/chroot/var/named/ganji.pe.kr.zone ganji.pe.kr.zone



6. 자신의 네임서버를 자신 IP로 설정을 한다.

vi /etc/resolv.conf

nameserver 자신IP



7. 방화벽에서 DNS포트인 53번을 TCP, UDP 다 열어준다.


8. named 시작

/etc/init.d/named start



=====================================================================================

참고 : http://planactor.tistory.com/150





dns key 등록
[root@localhost named]# /usr/sbin/dns-keygen
waGqYG3ruwzAr7CtEcOgFS8PvXm1CvYzbxS0mvYH6qYyt0vc1JsKncVdg89x
[root@localhost named]# cat /etc/rndc.key 
key "rndckey" {
    algorithm    hmac-md5;
    secret        "waGqYG3ruwzAr7CtEcOgFS8PvXm1CvYzbxS0mvYH6qYyt0vc1JsKncVdg89x";
};

+ Recent posts