2015. 4. 26. 01:12

Apache


- 아파치 파일구조

· conf.d/아파치 전역에서 사용되는 잡다한 설정들

· apache2.conf기존 httpd.conf의 내용 및 sites-enabled, mods-enabled 파일들을 include하도록 하는 부분이 들어있다.

· httpd.conf아파치 1.x 버전 대와의 호환성 때문에 남아있다.

· sites-available/virtual host 설정을 보관한다.

· sites-enabled/sites-available로 symbolic link를 걸어 실제 사용하는 사이트들만 활성화한다. (여기에 링크가 존재해야만 아파치가 인식한다)

· mods-available/ 확장 모듈들 불러오기(*.load) 및 관련 설정(*.conf)들이 들어있다.

· mods-enabled/ sites-enabled와 마찬가지로 여기에 symbolic link가 걸려있어야 실제로 모듈이 로딩된다.

· ports.conf웹서버의 포트를 설정한다.

- 아파치 설정파일

# vim /etc/apache2/apache2.conf

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

### Section 1: Global Environment// 아파치 전체적인 영향을 미치는 설정 부분

#

ServerRoot "/etc/apache2"// 아파치 루트 디렉토리 설정파일 로그파일 등이 존재

하는 곳 경로 마지막에 /를 붙혀서는 안됨

PidFile ${APACHE_PID_FILE}// 아파치 프로세서가 시작될 때 자신의 프로세서번호 (PID)를 기록하는 파일

Timeout 300// 클라이언트와 서버와 연결 후 둘 사이에 요청 이나

메시지가 발생 하지 않을 때 접속을 끊을 시간설정

KeepAlive On// 아파치 특정 프로세서가 특정 사용자의 지속적인 요청 을 계속 해서 처리 할 것인가 설정

MaxKeepAliveRequests 100// 한 프로세서가 이 옵션에 적힌 요청의 횟수만큼 지속 적인 요청을 처리(0으로 설정해두면 무한)

KeepAliveTimeout 15// 특정 클라이언트와 특정 프로세서가 처리 중 일 때 프로세서가 클라이언트의 다음 요청을 기다리는 시간

<IfModule mpm_prefork_module>

StartServers5// 기본 자식프로세스 개수(시작 시 띄울 프로세스 개수)

MinSpareServers5// 프로세스가 옵션보다 작으면 옵션 만큼 될 때 까지 프 로세스 생성

MaxSpareServers10// 프로세스가 옵션보다 많으면 옵션 만큼 될 때 까지 프 로세스 삭제

MaxClients150// 서버 접근 가능한 클라이언트 최대 개수

MaxRequestsPerChild0// 자식 프로세스가 처리 가능한 요청 개수 이 값 만큼 요청 받으면 자식 프로세스 죽음

</IfModule>

<IfModule mpm_worker_module>

StartServers2// 처음에 실행될 프로세스의 개수

Maxclients150// 동시 연결 가능한 클라이언트의 최대 개수

MinSpareThreads25// 새로운 클라이언트를 바로 처리하기 위해 대기하고 있 는 최소한의 스레드 수

MaxSpareThreads75// 새로운 클라이언트를 바로 처리하기 위해 대기하고 있 는 최대한의 스레드 수

ThreadsPerChild25// 하나의 자식프로세서가 계속 가질 수 있는 스레드 수

MaxRequestsPerchild0// 자식프로세서가 서비스할 수 있는 최대 요청 개수

</IfModule>

User apache// 요청을 대답하기 위하여 서버에 의해 사용되는 사용자 아이디를 지정

Group apache// 서버가 요청을 대답하는 그룹을 지정

AccessFileName .htaccess//

<Files ~ "^\.ht">// ht로 시작하는 모든 파일을 접근을 금지 시킴

Order allow,deny

Deny from all

</Files>

DefaultType text/plain// 파일 확장자를 통해 MIME형식을 알 수 없을 때 기본 적으로 쓸 MIME타입 지정

HostnameLookups Off// 클라이언트의 IP,이름을 기록할건지 off 경우 IP 저장 on 의 경우 이름으로 저장

ErrorLog /var/log/apache2/error.log

LogLevel warn// 로그파일의 저장 형식지정 그 종류로는 warn, debug, info, notice, crit, alert

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat “%v:%p...” vhost_combined// CustomLog에서 사용할 형식에 대한 지정

LogFormat "%h %l..." combined

LogFormat "%h %l..." common

LogFormat "%{Re...." referer

LogFormat "%{Use.." agent

CustomLog /var/log.. vhost_combined// 로그파일의 위치와 형식 앞의 /var....가 파일 위치고 한 칸 띄우고 vhost_com...가 형식임

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

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

# vim /etc/apache2/conf.d/charset

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

AddDefaultCharset UTF-8// 웹서버 로케일 설정

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

# vim /etc/apache2/conf.d/security

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

ServerTokens Full// 아파치의 HTTP로서 응답할 헤드를 설정 종류로는

Prod : Product Only의 약어로 웹서버의 종류만 출력

Min : 웹서버의 종류와 버전을 출력

OS : 웹서버의 종류와 버전, 운영체제의 종류를 출력

Full : 웹서버의 종류,버전,운영체제,설치된 모듈 출력

ServerSignature On// On설정시 웹서버의 에러문서에서 추가적 정보를 출력

TraceEnable On// Trace메소드(client가 송신한 리퀘스트를 그대로 반환 하는 것)의 온・오프를 설정하는 옵션

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

# vim /etc/apache2/sites-available/default

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

<VirtualHost *:80>

ServerAdmin webmaster@localhost// 웹서버 관리자 e-mail 주소

DocumentRoot /var/www// 웹페이지 파일 들이 존재할 디렉토리

<Directory />

Options FollowsymLinks

AllowOverride None

</Directory>

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/// 가상 디렉토리를 설정 가상도메인이 skill.com 이라면 skill.com/doc/cgi-bin/lin 을 입력하면 /usr/lib/cgi-bin/lin 스크립트를 실행

.

.

ErrorLog /var/log/apache2/error.log// 웹 에러 로그 파일 위치

LogLevel warn// 로그 레벨 설정

CustomLog /var/log/apache2/access.log combined// 웹 로그 파일 위치

Alias /doc/ "/usr/share/doc/"// 가상 디렉토리를 설정 가상도메인이 skill.com 이라면 skill.com/doc을 /usr/share/doc 으로 연결되게 하는 옵션 skill.com/doc/sea.jpg를 입력하면 /usr/share/doc/sea.jpg를 실행

</VirtualHost>

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

- 아파치 가상호스트 실습

※ 전제 : 서버 IP는 192.168.0.1이고 이 서버에서 skill.com, www.skill.com order.skill.com의 DNS가 설정되어 있으며 192.168.0.1로 매핑되어 있음, 그리고 서버에는 /web, /www, /order 디렉토리가 생성되어 있고 각 폴더의 웹문서가 작성되어 있음

· skill.com, www.skill.com, order.skill.com 웹 사이트 만들기 실습

# vim /etc/apache2/apache2.conf

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

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule mpm_prefo가_module>

StartServers5

MinSpareServers5

MaxSpareServers10

MaxClients150

MaxRequestsPerChild0

</IfModule>

<IfModule mpm_worker_module>

StartsServers2

MaxClients150

MinSpareThreads25

MaxSpareThreads75

ThreadsPerChild25

MaxRequestsPerChild0

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

AccessFileName .htaccess

<Files ~"^\.ht">

Order allow,deny

Deny from all

</Files>

DefaultType text/plain

HostnameLookups Off

ErrorLog /var/log/apache2/error.log

LogLevel warn

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat “%v:%p...” vhost_combined

LogFormat "%h %l..." combined

LogFormat "%h %l..." common

LogFormat "%{Re...." referer

LogFormat "%{Use.." agent

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

DocumentRoot /web// 웹 파일들이 위치한 디렉토리 설정

DirectoryIndex index.html// 웹에 보여줄 웹 파일이름

ServerName skill.com// 기본 서버 네임 설정

NameVirtualHost 192.168.0.1:80// 네임기반 가상호스트 운영

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

# vim /etc/apache2/sites-available/default

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

※ 이 파일의 기본값 세팅 되어 있는 것 모두 삭제

<VirtualHost 192.168.0.1:80>

ServerName skill.com

</VirtualHost>

<VirtualHost 192.168.0.1:80>// 192.168.0.1:80에 대해 가상 호스트 설정 시작

ServerAdmin root@skill.com// 관리자 메일 주소

ServerName www.skill.com// 서버 이름

DocumentRoot /www// 웹 파일들이 위치한 디렉토리 설정

DirectoryIndex www.html// 웹에 보여줄 웹 파일이름

Errorlog log/wwwe_log// 에러 로그 파일 위치

Customlog log/wwwc_log common// 커스텀로그 파일 위치

</VirtualHost>// 가상호스트 설정 끝

<Virtualhost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName order.skill.com

Documentroot /order

ServerAlias ad.skill.com// order.skill.com을 ad.skill.com으로도 접속하게 설정

DirectoryIndex order.html

ErrorLog ordere_log

CustomLog orderc_log common

</VirtualHost>

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

# vim /etc/apache2/ports.conf

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

NameVirtualHost *:80// 이 행 삭제

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

# /etc/init.d/apache2 restart

- 아파치 한글 설정

※보통은 기본으로 한글설

정이 자동으로 되나, 만약 안 되는 경우

한글로 만든 웹 파일을 DocumentRoot로 지정된 디렉토리에 옴겨 주고, 웹파일 이름을 DirectoryIndex에 적어준다.

# Vim /etc/apache2/conf.d/charset

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

AddDefaultCharset EUC-KR// 이렇게 바꿔줌

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

# /etc/init.d/apache2 restart

- 리다이렉트 설정

· ad.skill.com/v2.html을 www.skill.com으로 리다이렉트 할 때

# vim /etc/apache2/sites-available/default

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

.

.

<Virtualhost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName ad.skill.com

Redirect /v2.html http://www.skill.com

</Virtualhost>

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

· ad.skill.com을 www.skill.com으로 리다이렉트 할 때

# vim /etc/apache2/sites-available/default

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

.

.

<Virtualhost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName ad.skill.com

Redirect / http://www.skill.com

</Virtualhost>

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

- php 연동

php 설치를 함

# ln -s /etc/apache2/mods-available/php5.* /etc/apache2/mods-enabled/

-> php모듈 적재

# vim /etc/apache2/apache2.conf

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

.

.

DocumentRoot /web// 웹 문서가 위치할 디렉터리 설정

DirectoryIndex index.php// php로 작성한 웹 문서 적어줌

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

# vim /web/index.php

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

<?// php언어로 문서를 작성

echo "phptest";

phpinfo();

?>

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

- 인증을 통한 접속

·.htaccess 파일을 사용한 사용자 인증

# vim /etc/apache2/sites-available/default

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

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>// 해당도메인으로 접속될때 /www 디렉토리로 접속하는 것이기 때문에 /www에 대한 권한을 제한

AllowOverride Authconfig// .htaccess파일을 사용할건지 말건지

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

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

# vim /www/.htaccess

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

AuthName "access deny login// 인증창에 뜰 메시지

AuthType Basic// 인증 방법

AuthUserFile /www/.htpasswd// 인증을 허가할 유저가 담겨있는 파일

AuthGroupFile /dev/null// 사용자인증이니 사용하지 않음, 보기 같이 설정해야함

<Limit GET POST>

require valid-user// 파일에 지정된 사용자들만 접근 허용

#require user kim// 지정된 유저만 접근허용(kim만 접근가능)

</Limit>

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

# htpasswd -c /www/.htpasswdlee// .htpasswd파일을 생성하며 lee사용자를 인증 허가에 등록시킴

# htpasswd /www/.htpasswd kim// 파일은 생성하지 않고 사용자만 추가

# /etc/init.d/apache2 restart

·.htaccess 파일을 사용한 그룹 인증

# vim /etc/apache2/sites-available/default

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

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>// 해당도메인으로 접속될때 /www 디렉토리로 접속하는 것이기 때문에 /www에 대한 권한을 제한

AllowOverride Authconfig// .htaccess파일을 사용할건지 말건지

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

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

# vim /www/.htaccess

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

AuthName "access deny login// 인증창에 뜰 메시지

AuthType Basic// 인증 방법

AuthUserFile /www/.htpasswd// 유저 목록파일

AuthGroupFile /www/.htgroup// 그룹 정보가 담겨 있는 파일

<Limit GET POST>

require group school// 지정된 그룹만 접근 허용

</Limit>

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

# vim /www/.htgroup

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

<그룹이름>: <사용자> <사용자> 형식으로 적어줌

school: lee kim// 여기 명시된 사용자는 .htpasswd파일에 있어야 함

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

# htpasswd -c /www/.htpasswd lee

# htpasswd /www/.htpasswd kim

# /etc/init.d/apache2 restart

·.htaccess 파일을 사용하지 않은 사용자 인증

# vim /etc/apache2/sites-available/default

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

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>

AllowOverride none// .htaccess파일을 사용할건지 말건지

AuthType basic

AuthName 'login access failed'

AuthUserFile /www/.htpasswd

AuthGroupFile /dev/null

require valid-user

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

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

# htpasswd -c /www/.htpasswd lee

# htpasswd /www/.htpasswd kim

# /etc/init.d/apache2 restart

·.htaccess 파일을 사용하지 않은 그룹 인증

# vim /etc/apache2/sites-available/default

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

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>

AllowOverride none// .htaccess파일을 사용할건지 말건지

AuthType basic

AuthName 'login access failed'

AuthUserFile /www/.htpasswd

AuthGroupFile /www/.htgroup

require group absol

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

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

# vim /www/.htgroup

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

absol: sin gun// 여기 나열된 사용자는 .htpasswd에 등록 되어 있어야함.

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

# htpasswd -c /www/.htpasswd sin

# htpasswd /www/.htpasswd gun

# /etc/init.d/apache2 restart

- 아파치 모니터링

# vim /etc/apache2/sites-available/default

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

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

DirectoryIndex www.html

ErrorLog /log/wwwe_log

CustomLog /log/wwwc_log common

<Location /sk-mo>// www.skill.com/sk-mo로 접속하면 모니터링이 보이게 설정

SetHandler server-status

Order deny,allow

Allow from all

</Location>

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

'OPS > LInux' 카테고리의 다른 글

user management on debian  (0) 2015.04.26
grub  (0) 2015.04.26
bind9  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:11

DNS(bind)


※ 데비안 5.03기반의 자료

- conf파일 설정

# vim /etc/bind/named.conf

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

include "/etc/bind/named.conf.options";// 여기 있는 파일의 내용을 현재 파일에 추가

...

zone "자신이 하고 싶은 도메인" {

type 타입설정;

file “파일이름 혹은 파일경로”;

allow-update { 영역전송해줄 IP; };

masters { 마스터IP주소; };

};

include "/etc/bind/named.conf.local";// 여기 있는 파일의 내용을 현재 파일에 추가

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

zone 지시문에 적을 수 있는 것은 정방향과 역방향이 있다. 정방향은 도메인을 IP로 매핑하기위해 사용하며 skill.com 이런 식 으로 도메인을 적는다. 역방향은 IP를 도메인으로 매핑하기위해 사용하며 192.168.0.0/24은 0.168.192.in-addr.arpa 이렇게 적어 준다. 또 172.16.0.0/16이라면 16.172.in-addr.arpa로 적어 준다. 그러니 네트워크 주소에서 호스트부분을 지워주고 적는다. 그러나 예외가 있는데 네트워크 주소에서 0이 없는 경우는 3옥테트를 적어준다. 예를 들어보면 192.168.10.128/25는 10.168.192.in-addr.arpa로 적어준다. 여기 적힌 도메인을 존파일에서는 origin이라 부름

type 지시문 부분에 쓸 수 있는 옵션으로는 master와 slave가 있다. master는 자신이 직접 존파일을 만들어서 자신이 관리하며 호스트 추가 등 존파일 설정을 마음대로 할 수 있다. slave는 미리 존파일이 설정되어있는 master서버로부터 master 서버의 존파일을 받아와 서비스만 한다.

file 지시문은 zone파일의 위치를 지정한다. 만약 그냥 파일이름만 지정한다면 directory 옵션에서 지정되어 있는 경로에 파일이 있어야 한다. named.conf 파일이나 include되어있는 파일에 directory 옵션이 있을 것 이다. 만약 경로로 적어준다면 /etc/bind/db.skill.com 이런 식으로 적어준다.

allow-update 지시문은 slave서버에게 자신의 영역전송을 허락 해 줄때 적는다. 딱 하나의 서버에게만 허락해 줄 수도 있고(허락해줄 서버IP), 모든 서버에게 허락해준다면 any를 적는다. allow-update랑 같은 옵션으로 allow-transfer이 있다. 만약 slave서버에게 영역전송 허락을 안 해 준다면 지시문을 적을 필요 없다. 영역전송을 하기 싫지만 지시문을 적고 싶다면 옵션은 none을 적는다.

masters 지시문은 자신의 타입이 slave일 때 영역 전송을 받을 master서버의 IP 주소를 적는다. 만약 master인 경우는 적을 필요가 없음.

· zone파일 설정

- 정방향

※ 편의상 skill.com의 존파일이라고 생각하고 적음

# cp /etc/bind/db.local /var/cache/bind/db.skill.com// 샘플파일을 설정파일에 복사

-> 존파일에서 file “파일이름 혹은 파일경로”; 이행의 적혀있는 경로에 만들어 줘야 함.

# vim /var/cache/bind/db.skill.com

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

$TTL604800

@INSOAskill.com. root.192.168.0.1. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

;

@INNS192.168.0.1

@INA192.168.0.1

wwwINA192.168.0.1

INMX10skill.com.

downINCNAMEwww

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

$TTL 604800

-> 다른 서버에서 자신의 정보를 가져 갓을 시 그것이 얼마나 머물 건지(초 단위)

@INSOAskill.com. root.192.168.0.1. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

-> @은 orgin을 뜻함 conf파일에서 정해준 기본 도메인을 뜻한다. 그러니 conf파일에서 zone "skill.com" { 이렇게 적어줬다면 orgin은 skill.com이 됨. 이 것을 만약 @대신 도메인으로 적어준다면 skill.com. 이라고 적어 줘야함 맨 뒤에 . 을 찍지 않으면 뒤에 도메인이 한번 더 붙음(skill.com.->skill.com skill.com->skill.com.skill.com)

SOA는 해당 도메인에 대해 여기서 설정한 네임서버가 모든 정보를 가지고 있음을 알려 주는 레코드 해당 도메인에 대한 네임 서비스의 모든 권한이 여기 있다는 것을 의미 뒤에 192.168.0.1.은 네임서버를 뜻하고 그다음 오는 것은 관리자 메일 주소를 뜻함

2 ; Serial 은 존파일의 버전을 뜻함 파일을 수정했다면 값을 하나 올림(꼭 할필요는 없지만 편의상) 보통 날짜로 표시함(2009112511)

604800 ; Refresh 은 보조네임서버가 이 주기 마다 주네임서버의 파일을 업데이트 받아옴 (단위는 초)

86400 ; Retry 은 보조네임서버가 1차로 접근이 안 되면 계속 주기 적으로 접근하는데 그 주기를 설정 (단위 초)

2419200 ; Expire 은 보조네임서버가 1차로 접근이 안 되면 Retry단위로 계속 주네임서버에 접근 한다고 했는데 계속 Retry 단위로 접근을 하다가 Expire시간 동안 연결이 안 되면 주네임서버 에서 도메인정보가 삭제 되었 거나 등등 도메인이 없다고 판단하여 더 이상 주네임서버에 접근을 하지 않음

604800) ; Negative Cache TTL 은 다른 서버에서 자신의 정보를 가져 갓을 시 그것이 얼마나 머물 건지(초 단위) 그러니 특정 도메인의 정보가 변경되었을 경우, 이 시간동안은 변경된 정보가 적용되지 않을 수 있음

@INNS192.168.0.1

-> @(skill.com)의 네임서버를 설정, 또 IN 앞에 아무것도 안 적으면 뒤에 .이 안 붙었으니 자동으로 skill.com을 뜻하는 것이 됨

@INA192.168.0.1

-> @(skill.com)을 매핑해줄 아이피 설정, IN앞에 아무것도 안 적으면 뒤에 .이 안 붙었으니 자동으로 skill.com을 뜻하는 것이 됨

wwwINA192.168.0.1

-> www.skill.com을 매핑해줄 아이피 설정 www 뒤에 .이 안 붙어 있으니 자동으로 skill.com으로 붙음(www = www.skill.com.)

INMX10skill.com.

-> skill.com(아무것도 안 썻으니 자동으로 붙음)의 메일들을 skill.com 서버로 보냄 그러니 webmaster@skill.com의 메일을 skill.com서버로 전달 그리고 10은 메일서버의 우선권임 숫자가 낮은 서버를 사용

downINCNAMEwww

-> down.skill.com(down뒤에 점이 없으므로)을 www.skill.com(www뒤에 점이 없으므로)로 매핑 그러니 원본은 있어야하고 별칭은 없어도 된다. 저렇게 되면 www.skill.com의 정보를 down.skill.com이 그대로 받아감 www.skill.com이 192.168.0.1이라면 down.skill.com도 192.168.0.1이고 www.skill.com이 192.168.0.10으로 바뀌면 down.skill.com도 192.168.0.10이 되는 것이다.

※ 존파일에서는 어느 위치든 점 찍는것을 유의

- 역방향1

※ 편의상 0.168.192.in-addr.arpa의 존파일이라 생각 하고 적음

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.0.168.192

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

$TTL 604800

@INSOAskill.com.root.skill.com (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

;

@INNSskill.com.

1INPRTdebian.skill.com.

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

1INPRTdebian.skill.com.

-> 192.168.0.1을 debian.skill.com으로 매핑

- 역방향2

※ 편의상 16.172.in-addr.arpa의 존파일이라 생각 하고 적음

# cp /etc/bind/db.127 /var/cache/bind/db.16.172

# vim /var/cache/bind/db.16.172

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

$TTL 604800

@INSOAskill.com.root.skill.com (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800)

; Negative Cache TTL

;

@INNS192.168.0.1

1.10INPTRdebian.skill.com.

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

1.10INPTRdebian.skill.com.

-> 172.16.10.1 을 debian.skill.com으로 매핑

- 정방향 마스터 실습

# vim /etc/bind/named.conf// conf파일 설정

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

// This is the primary configuration file for the BIND DNS server named.

.

.

include "/etc/bind/named.conf.options";

.

.

zone "skill.com" {

type master;

file "/etc/bind/db.skill.com";

};

include "/etc/bind/named.conf.local";

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

# cp /etc/bind/db.local /etc/bind/db.skill.com

# vim /etc/bind/db.skill.com

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

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

@INA192.168.0.1

wwwINA192.168.0.1

ns1INA192.168.0.1

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

# /etc/init.d/bind9 restart

# nslookup

> skill.com

Server:192.168.0.1

Address:192.168.0.1#53

Name:skill.com

Address: 192.168.0.1// 자신이 설정한 도메인에 설정한 IP가 나오면 성공

- 역방향 마스터 실습

# vim /etc/bind/named.conf

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

// This is the primary configuration file for the BIND DNS server named.

.

.

include "/etc/bind/named.conf.options";

.

zone "0.168.192.in-addr.arpa" {

typemaster;

file"db.0.168.192";

};

include "/etc/bind/named.conf.

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

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.0.168.192

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

$TTL604800

@INSOAns1.skill.com. root.skill.com. (

1; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

1INPTRskill.com.

1INPTRwww.skill.com.

1INPTRns1.skill.com.

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

# /etc/init.d/bind9 restart

# nslookup

> 192.168.0.1

Server:192.168.0.1

Address:192.168.0.1#53

1.0.168.192.in-addr.arpaname = skill.com.

-> 자신이 설정해준 값이 나오면 성공

※ 주의 할 점은 역방향은 zone파일에서 origin이 0.168.192.in-addr.arpa이다.

- 영역전송을 위한 정방향, 역방향 마스터 실습

※전제 마스터IP:192.168.0.1, 슬레이브IP:192.168.0.10

· 마스터 서버 설정

# vim /etc/bind/named.conf

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

// This is the primary configuration file for the BIND DNS server named.

.

.

.

zone "skill.com" {

type master;

file "db.skill.com";

allow-update { 192.168.0.10; };

};

zone "0.168.192.in-addr.arpa" {

type master;

file "db.0.168.192";

allow-update { 192.168.0.10; };

};

.

.

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

# cp /etc/bind/db.local /var/cache/bind/db.skill.com

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.skill.com

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

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

@INA192.168.0.1

ns1INA192.168.0.1

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

# vim /var/cache/bind/db.0.168.192

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

$TTL604800

@INSOAns1.skill.com. root.skill.com. (

1; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

1INPTRskill.com.

1INPTRwww.skill.com.

1INPTRns1.skill.com.

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

# /etc/init.d/bind9 restart

· 슬레이브 서버 설정

# vim /etc/bind/named.conf

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

// This is the primary configuration file for the BIND DNS server named.

.

.

zone "skill.com" {

type slave;

file "db.skill.com-sv";

masters { 192.168.0.1; };

}

zone "0.168.192.in-addr.arpa" {

type slave;

file "db.0.168.192-sv";

masters { 192.168.0.1; };

};

.

.

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

# /etc/inid.d/bind9 restart

# ls /var/cache/bind

db.0.168.192-sv db.skill.com-sv// 적어준 파일이 자동으로 받아오나 확인

# nslookup

> server 192.168.0.10// 아이피를 슬레이브 아이피로 설정

Default server: 192.168.0.10

Address: 192.168.0.10#53

> skill.com

Server:192.168.0.10

Address:192.168.0.10#53

Name:skill.com// 설정해준대로 받아오나 확인

Address:192.168.0.1

> 192.168.0.1

Server:192.168.0.10

Address:192.168.0.10#53

1.0.168.192.in-addr.arpaname = www.skill.com.// 설정해준대로 받아오나 확인

1.0.168.192.in-addr.arpaname = skill.com.

1.0.168.192.in-addr.arpaname = ns1.skill.com.

- 라운드 로빈 구성

· 라운드 로빈 이란

라운드 로빈은 엑세스의 분산을 위해 사용한다. DNS서버에서 skill.com 도메인을 두 개의 IP로 매핑 하여 첫 번째 IP에 엑세스했다 두 번째 IP에 엑세스했다 이런 식으로 분산을 위해 사용한다.

그러니 www.skill.com으로 매핑 되는 웹서버A가 있는데 사용자 폭주로 서버가 다운이 자주 된다. 이 경우 웹서버를 하나 더 늘려 웹서버B를 만든다. 그리고 DNS 서버에서 www.skill.com에 호스트를 웹서버A에도 매핑하고 웹서버B에도 매핑하면 사용자가 A를 갔다 B를 갔다 하니 한 서버에서 처리하는 일이 반으로 감소한다.

· 라운드 로빈 실습

# vim /etc/bind/named.conf

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

zone "skill.com" {

type master;

file "db.skill.com";

};

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

# cp /etc/bind/db.local /var/cache/bind/db.skill.com

# vim /var/cache/bind/db.skill.com

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

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800; Negative Cache TTL

;

INNSns1.skill.com.

INA192.168.0.1

wwwINA192.168.0.1// 서버A

wwwINA192.168.0.2// 서버B

ns1INA192.168.0.1

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

# /etc/init.d/bind9 restart

# nslookup

> server 192.168.0.1

Default server: 192.168.0.1

Address: 192.168.0.1#53

> www.skill.com

Server:192.168.0.1

Address:192.168.0.1#53

Name:www.skill.com

Address: 192.168.0.1// 설정해준 값 나오면 성공(한 도메인에 두 개의 아이피)

Name:www.skill.com

Address: 192.168.0.2// 설정해준 값 나오면 성공(한 도메인에 두 개의 아이피)

- 존파일 기본 경로 변경

# vim /etc/bind/named.conf/options

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

.

.

directory "/var/cache/bind";// 이 부분을 변경 하고픈 경로로 설정

notify yes// zone 업데이트시 2차 dns에 알림

.

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

directory 지시문 변경 후 필요한 존파일들은 변경한 경로로 이동해줌

'OPS > LInux' 카테고리의 다른 글

grub  (0) 2015.04.26
apache on debian  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
init  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:08

DHCP


- 기본설정

# vim /etc/dhcp3/dhcpd.conf

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

※ 처음 설치하면 샘플로 설정 되 있는 것이 있는데 주석 처리나 지워줌

subnet 192.168.0.0 netmask 255.255.255.0 {// 할당할 네트워크를 적어줌

range 192.168.0.10 192.168.0.30;// 할당할 IP주소 영역(10~30)

option routers 192.168.0.1;// 게이트워에 주소

option domain-name-servers 192.168.0.1;// dns서버 주소

option domain-name "debian dhcp";// 할당한 영역이름

default-lease-time 600;// 기본 임대 시간(초단위)

max-lease-time 600;// 최대 임대 시간(초단위)

}

host client {// 강제 할당할 때 사용함 client는 할당 받는 컴퓨터이름임

hardware ethernet 00:01:39:01:16:20;// 할당 받는 컴퓨터의 맥어드레스

fixed-address 192.168.0.50;// 할당 해줄 IP

# domain-name-servers 192.168.0.1;// 따로 네임서버 설정해주는 것도 가능

}

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

# /etc/init.d/dhcp3-server restart

'OPS > LInux' 카테고리의 다른 글

apache on debian  (0) 2015.04.26
bind9  (0) 2015.04.26
fdisk  (0) 2015.04.26
init  (0) 2015.04.26
send mail  (0) 2015.04.26
Posted by 배주혁
이전버튼 1 2 3 4 5 6 7 8 이전버튼