Network 일반
페이지 정보
본문
출처 http://blog.naver.com/nirvana2k/60002516130
1장. Network 일반
2. Network관련 파일(반드시 알아야 하는 파일)
① /etc/sysconfig/network : domain,hostname,gateway정보
② /etc/sysconfig/network-scriptr/ifcfg-eth0 : Lan Card 정보(ip,network주소,gateway등)
③ /etc/resolv.conf : DNS ip(반드시 ip로 적어야 하며, 위에서부터 순서대로 1차,2차DNS)
④ /etc/hosts : mini nameserver
3. Network 장비
① NIC(Network Interface Card), Ethernet Card // 랜카드
다른 컴퓨터와 의 통신을 위한 필수장비
② 전송매체(Cable) : UTP cable : 양쪽 끝에 RJ45 컨넥터가 달려 있다.
③ Router : GateWay 역할을 하는 장비
④ HUB : 여러대의 컴퓨터를 연결시켜주는 장비
** 내부망과 외부망을 구분하는 방법 **
목적지 주소와 netmask값을 AND연산한다.
결과값과 Network부소값을 비교하여 동일하면 내무망, 다르면 외부망.
** Routing table 계산법 **
목적지 주소와 첫번째 레코드의 Genmask값을 AND연산한다.
결과값과 그 레코드의 Destination값과 비교하여 일치하면
Packet을 그 레코드의 Interface로 보내고,
일치하지 않으면 다음 레코드의 Genmask값과 목적지 주소를 AND연산한다.
그다음은 위와 동일하다.
** ping 명령어 사용법 **
ping [Domain|Hostname|ip]
ping -c 3 // 보내는 갯수를 3개로 한다.
ping -i 4 // 보내는 간격을 4초로 한다. default 1초
ping -s 3000 // packet의 크기를 재지정. default 64byte(data-56,header-8)
// 최대값은 65507 byte
ping -w 10 // 10초간 보낸다. default 계속(^C 를 누를때 까지)
시간은 1/1,000 초 단위 최소/평균/최대
** ping에 응답하지 않기.
/proc/sys/net/ipv4/icmp_echo_ignore_all 값 변경 0=응답, 1=무응답
** ifconfig 명령어 사용법 **
랜카드의 설정을 다양하게 적용시킬 수 있다.
ifconfig // 현재 활성화 된 상태 보기
ifconfig eth0 up/down // 활성화/비활성화
ifconfig eth0 192.168.1.50 // ip를 변경한다.
ifconfig eth0 mtu 1300 // MTU값을 조절할 수 있다.
ifconfig eth0 netmask 255.255.128 // netmask 값을 조절한다.
ifconfig eth0 broadcast 192.168.1.127 //broadcast값을 변경한다.
ifconfig eth0:0 192.168.1.100 // ip를 하나더 올림.
**** 이렇게 설정한 것은 임시 방편이다. network Daemon 재실행하거나
시스템을 재부팅하게 되면 모두 초기화 된다.
** route 명령어 사용법 **
route // 현재 설정된 routing table을 본다.
route del default gw 192.168.1.254 // gateway 정보 삭제.
route add default gw 192.168.1.254 // gateway 정보 추가.
위의 ifconfig와 마찬가지로 임시방편이다.
실제로 설정값을 영구히 변경하기 위해서는 이 두개의 파일을 수정해야 한다.
/etc/sysconfig/network
1 NETWORKING=yes
2 HOSTNAME=aha.ahalinux.co.kr
/etc/sysconfig/network-scripts/ifcfg-eth0
1 DEVICE=eth0
2 ONBOOT=yes
3 BOOTPROTO=static
4 IPADDR=192.168.1.1
5 NETMASK=255.255.255.0
6 GATEWAY=192.168.1.254
2장. DNS(Domain Name System)
domain ==> ip 로 변환해준다. 반대의 기능도한다.
4. 왜 dns가 필요한가?
네트워크에 참여하는 컴퓨터가 많지 않을때는 /etc/hosts 파일만으로 통신할 수 있었지만
네트워크에 참여하는 컴퓨터가 늘어나면서 모든 정보를 기억하는게 불가능해졌다.
5. name server의 동작 원리와 zone의 개념.
PowerPoint 자료 참조
6. bind 설치 방법
bind(2개)
caching(1)
이렇게 설치 되어 있으면 되고, 만약 설치시 빠트렸다면 배포판 CD에서 찾거나.
rpmfind.net에서 다운로드 받는다.
7. bind 시작과 종료(항상 가동하기)
/etc/init.d/named start/stop/restart
부팅할때 항상 자동으로 실행되기를 원한다면 ntsysv 명령을 내려서 named에 체크해주면 된다.
8. dns와 관련된 파일들
⑤ /etc/resolv.conf
// 질의할 nameserver 지정하고 있는 파일. 반드시 ip로 입력해 놓아야 한다.
serarch ahalinux.co.kr
nameserver 168.192.63.1
nameserver 211.217.47.100
⑥ /etc/host.conf
// 질의 순서를 정의하고 있는 파일.
order hosts,bind multi on
nospoof on
/etc/hosts파일에서 정보를 찾고, 없으면 bind 즉 /etc/resolv.conf 파일에 정의된 ns에게 질의하라.
⑦ /etc/hosts // mini name server
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 b3.ahalinux.co.kr b3 localhost.localdomain localhost
211.115.211.8 empas.com em
211.218.150.200 naver.com na
// 이 파일의 사용형식은 위의 예제처럼 ip,hostname,nickname을 순서대로 적어서 사용하며,
자주 방문하는 곳은 이 파일을 사용함으로서 속도를 빠르게 해준다.
⑧ /etc/named.conf // nameserver master 설정 파일.
// generated by named-bootconf.pl
options {
directory "/var/named"; //zone 파일들이 위치할 디렉토리를 지정하는 옵션.
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";
9. 실습1. cache-only server
아래에 있는 named.ca 파일만으로 운영되는 nameserver
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
10. 실습2. 기본 DNS설정. (각 레코드에 대한 설명)
설정순서.
⑨ domain 등록
⑩ 설정 table작성
⑪ /etc/named.conf 에 zone 파일 지정
⑫ zone 파일 생성(/var/named)
⑬ named restart
⑭ /etc/resolv.conf 파일 수정
⑮ test
Domain : blue.com
ns.blue.com : 211.217.47.100
www.blue.com : 211. 217.47.50
ftp.blue.com : 211. 217.47.60
mail.blue.com : 211. 217.47.70
** /etc/named.conf 아래 내용 추가.
zone "blue.com" IN {
type master;
file "blue.zone";
};
zone "47.217.211.in-addr.arpa" IN {
type master;
file "blue.rev";
};
blue.zone.
//forward zone : domain에 대한 ip정보를 가지고 있는 데이터베이스 파일.
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN A 211.217.47.100
ns IN A 211.217.47.100
www IN A 211.217.47.50
ftp IN A 211.217.47.60
mail IN A 211.217.47.70
@ IN MX 10 mail.blue.com.
@ IN A 211.217.47.100
linux IN CNAMW www
@ IN HINFO "P4-2.4" "hancom3.1"
blue.rev
//reverse zone : ip에 대한 domain정보를 가지고 있는 데이터베이스 파일.
in-addr.arpa형식으로 표기(등록해야만 사용 가능)
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN A 211.217.47.100
100 IN PTR ns.blue.com.
50 IN PTR www.blue.com.
60 IN PTR ftp.blue.com.
70 IN PTR mail.blue.com.
데몬 재실행 후 테스트.
/etc/init.d/named start
/etc/resolv.conf
nameserver 211.217.47.100
#nslookup
11. 각 레코드에 대한 설명
Record
Record 의 의미
@
domain 자체를 뜻한다. 여기서는 blue.com을 말함.origin이라고 함.
IN
Internet address class를 뜻하며, 일반적으로 사용.
SOA
Start of Authority 해당 domain에 대한 모든 권리를 갖는다는 의미.
여기서는 blue.com domain에 대해 ns.blue.com 이 모든 권한을 갖겠다.
NS
nameserver domain에 대한 nameserver를 지정한다.
A
Address domain에 대한 ip 정보를 나타낸다.
PTR
Pointer ip에 대해 dommain정보를 나타낸다.
MX
Main Exchange domain에 대해 들오온 메일을 포워딩 할 서버를 지정한다.
숫자가 적을수록 우선순위가 높다.
CNAME
Canoical Name 하나의 domain에 여러개의 이름을 가질 수 있도록 alias 해주는 기능
HINFO HareWare information 서버의 cpu 종류와 OS종류를 표기한다.
12. 2차 dns의 개념과 필요성
nameserver가 중지되면 모든 서비스 마비된다.
Nameserver가 한대 밖에 없다면 그 서버가 문제가 발생하여 서비스를 할 수 없다면 web,ftp,mail등
다른 서버가 잘 작동하고 있다고 할지라도 서비스를 해줄 수가 없다.
Master 서버가 문제가 발생할 것에 대비하여 slave 2차 서버를 준비하여 두는 것이다.
두 서버는 스스로 통신을 하며, 항상 새로운 데이터를 가지게 되는데,
아래의 표는 master와 slave가 서로 통신할 때의 필요한 설정을 나타낸다.
표기
각 표기의 의미
Serial nameser의 version 표시. slave가 비교 할 수 있게끔 해야 한다
Refresh 접속 주기 기본값(8시간)
Retry
재접속 주기. 접속을 시도했는데 master가 문제가 발생하여 접속되지 않을 때 다시 접속 시도하는 시간 (기본 4시간)
Expire
파기할 시간. 일정기간 접속 되지 않으면 기존 정보를 파기한다.(기본 약 41일)
Minimum
다른 ns가 자신의 ns정보를 가져 갔을때 가져간 측의 cache에 살아있는 시간(TTL) 기본1일
13. 실습3. master,slave nameserver 설정.
master는 크게 달라지지 않는다.
slave는 zone 파일은 생성 할 필요가 없고, /etc/named.conf 만 설정하면 된다.
16 1차 네임서버 작업
blue.zone.
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN NS ns2.blue.com.
IN A 211.217.47.100
IN A 211.217.47.102
ns IN A 211.217.47.100
ns2 IN A 211.217.47.102
www IN A 211.217.47.50
ftp IN A 211.217.47.60
mail IN A 211.217.47.70
blue.rev
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN NS ns2.blue.com.
IN A 211.217.47.100
IN A 211.217.47.102
100 IN PTR ns.blue.com.
102 IN PTR ns2.blue.com.
50 IN PTR www.blue.com.
60 IN PTR ftp.blue.com.
70 IN PTR mail.blue.com.
17 2차 네임서버에서의 설정.
/etc/named.conf
zone "blue.com" IN {
type slave;
file "slave-blue.zone";
masters{211.217.47.100;};
};
zone "47.217.211.in-addr.arpa" IN {
type slave;
file "slave-blue.rev";
masters{211.217.47.100;};
};
위 내용을 작성해 준 후에 named 데몬을 실행 시키면 된다.
2차 name server에서 zone파일들은 자동생성
slave-blue.zone
$ORIGIN .
$TTL 86400 ; 1 day
blue.com IN SOA ns.blue.com. master.blue.com. (
1997022700 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.blue.com.
NS ns2.blue.com.
A 211.217.47.100
A 211.217.47.102
$ORIGIN blue.com.
ftp A 211.217.47.60
mail A 211.217.47.70
ns A 211.217.47.100
ns2 A 211.217.47.102
www A 211.217.47.50
slave-blue.rev
$ORIGIN .
$TTL 86400 ; 1 day
47.217.211.in-addr.arpa IN SOA ns.blue.com. master.blue.com. (
1997022700 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.blue.com.
NS ns2.blue.com.
A 211.217.47.100
A 211.217.47.102
$ORIGIN 47.217.211.in-addr.arpa.
100 PTR ns.blue.com.
102 PTR ns2.blue.com.
50 PTR www.blue.com.
60 PTR ftp.blue.com.
70 PTR mail.blue.com.
3장. Web-server
14. Apache 설치
18 이미 rpm 으로 설치되어 있는 아파치를 지운다.
#rpm -qa|grep apache
#rpm -e apache
19 소스를 다운로드 후 압축을 푼다.
#tar xvfz apache_1.3.20.tar.gz
압축을 풀면 디렉토리 생성되고, 그곳으로 이동.
20 컴파일 환경설정한다(Makefile 생성)
#./configure --prefix=/apm/apache
(--prefix옵션은 설치위치를 지정한다. 생략하면 /usr/local)
21 컴파일 한다.
#make
22 파일 복사
#make install
15. 아파치 시작과 종료
23 apache 시작
/apm/apache/bin/apachectl start
24 실행 확인
#ps -ef|grpe httpd (Daemon 5개면 정상)
25 apache 종료
#killall httpd
26 apache 재실행(설정을 변경하면 재실행 해 주어야 적용됨)
#/apm/apache/bin/apachectl restart
16. apache 설정 파일 설명(httpd.conf)
2 ## httpd.conf -- Apache HTTP server configuration file
41 ### Section 1: Global Environment
52 ServerType standalone // 서버가 항상 가동중임을 의미한다.
63 ServerRoot "/apm/apache" // 아파치의 설치 위치
80 PidFile /apm/apache/logs/httpd.pid // process id 를 저장하고 있는 파일
88 ScoreBoardFile /apm/apache/logs/httpd.scoreboard
99 #ResourceConfig conf/srm.conf // 이전 버전에서 httpd.conf,srm.conf,access.conf 파일
100 #AccessConfig conf/access.conf // 세개로 분리하여 사용하였으나 지금은 httpd.conf
하나로 통합.
105 Timeout 300 // client가 접속을 한후 요청을 받을때까지 기다리는 시간. 모든 시간설정값은 초단위.
// 이 시간을 초과하게 되면 접속을 끊어 버린다.
111 KeepAlive On // 지속적인 연결을 유지할것인가를 설정. 한번 연결로 여러개의 요청을 허용할
것인가를 결정.
118 MaxKeepAliveRequests 100 // 위에서 지속적인 연결을 유지했을때 최대 몇개까지의 요청을 처리
할 것인가를 결정.
124 KeepAliveTimeout 15 // 동일한 client가 다음 요청을 했을때 기다리는 시간.15초가 지나면
접속을 끊음.
139 MinSpareServers 5 // 최소로 유지할 process 수
140 MaxSpareServers 10 // 최대로 유지할 process 수
146 StartServers 5 // 처음 서버 기동할때 시작할 process 수
# End of document types.
155 MaxClients 150 // 동시접속 허용 client 수
178 #Listen 3000 // 서버가 귀 귀울여야 하는 포트와 ip. 특정한 포트만 사용시 필요.
179 #Listen 12.34.56.78:80 // 기본적으로 모든 포트와 ip에 대해 귀 귀울인다.
187 #BindAddress *
190 # Dynamic Shared Object (DSO) Support // 동적으로 모듈을 사용할때 필요.
// 특정한 기능을 아파치실행시 사용하고 싶다면 이 기능을 이용한다.
203 # Example:
204 # LoadModule foo_module libexec/mod_foo.so
211 #ExtendedStatus On // 서버의 자세한 상태를 웹상에서 확인하고자 할때
<SERVER-STATUS> 지시자와 관련 있다.
213 ### Section 2: 'Main' server configuration
236 Port 80 // 기본 포트 설정 부분. 다른 포트를 사용하기 위해서는 1024 이후 포트를
지정하여 사용한다.
250 User nobody // 웹서버 실행시 사용자와 그룹의 권한. root로 변경하지 않도록 주의한다.
251 Group nobody
258 ServerAdmin root@aha.ahalinux.co.kr // 서버 관리자의 E-mail Address
276 #ServerName aha.ahalinux.co.kr // dns에서 지정한 이름을 적어주도록 한다.
283 DocumentRoot "/apm/apache/htdocs" // 웹문서 root
293 <Directory /> // System root directory 에 대한 옵션 설정.
294 Options FollowSymLinks
295 AllowOverride None
296 </Directory>
308 <Directory "/apm/apache/htdocs"> // 웹문서의 root directory에 대한 옵션 지정
// 각 옵션에 대한 설명은 교재를 참고할것.
311 # This may also be "None", "All", or any combination of "Indexes",
312 # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
317 Options Indexes FollowSymLinks MultiViews
320 # This controls which options the .htaccess files in directories can
321 # override. Can also be "All", or any combination of "Options", "FileInfo",
322 # "AuthConfig", and "Limit"
324 AllowOverride None
329 Order allow,deny
330 Allow from all
331 </Directory>
337 <IfModule mod_userdir.c>
338 UserDir public_html
339 </IfModule>
340
// 일반 user들에 대한 옵션 설정.
345 #<Directory /home/*/public_html>
346 # AllowOverride FileInfo AuthConfig Limit
347 # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
348 # <Limit GET POST OPTIONS PROPFIND>
349 # Order allow,deny
350 # Allow from all
351 # </Limit>
352 # <LimitExcept GET POST OPTIONS # End of document types.
353 # Order deny,allow
354 # Deny from all
355 # </LimitExcept>
356 #</Directory>
362 <IfModule mod_dir.c>
363 DirectoryIndex index.html // 처음으로 보여줄 파일명.
364 </IfModule>
370 AccessFileName .htaccess // 디렉토리 접근제어 할 파일명.
383 <Files ~ "^\.ht"> // ".ht" 파일에 대한 접근을 불허한다.
384 Order allow,deny // ~는 정규표현식. 파일 이름을 정의 하겠다.
385 Deny from all
386 </Files>
394 #CacheNegotiatedDocs // proxy 서버로 하여금 cache를 할 것인가를 설정.
404 UseCanonicalName On // 아파치가 자신의 url을 만들때 규범적인 이름과 포트를 사용한다.
410 <IfModule mod_mime.c> // mime type에 대한 설정파일 위치.
411 TypesConfig /apm/apache/conf/mime.types
412 </IfModule>
423 DefaultType text/plain
436 <IfModule mod_mime_magic.c>
437 MIMEMagicFile /apm/apache/conf/magic
438 </IfModule>
448 HostnameLookups Off // 로그기록시 client의 ip만 기록하느냐, 아니면 hostname
까지 기록하느냐 설정. on 으로 설정하면 hostname가지 기록한다. 이 경우 DNS 에게
질의하여야 하므로 느려진다.
457 ErrorLog /apm/apache/logs/error_log
***로그포멧 형식은 교재를 참고.
460 # LogLevel: Control the number of messages logged to the error_log.
461 # Possible values include: debug, info, notice, warn, error, crit,
462 # alert, emerg.
464 LogLevel warn
470 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
471 LogFormat "%h %l %u %t \"%r\" %>s %b" common
472 LogFormat "%{Referer}i -> %U" referer
473 LogFormat "%{User-agent}i" agent
482 CustomLog /apm/apache/logs/access_log common
488 #CustomLog /apm/apache/logs/referer_log referer
489 #CustomLog /apm/apache/logs/agent_log agent
495 #CustomLog /apm/apache/logs/access_log combined
504 ServerSignature On // error 문서에 대한 여러 형태의 처리 방식
533 <IfModule mod_alias.c>
542 Alias /icons/ "/apm/apache/icons/" // 별칭 기능.
544 <Directory "/apm/apache/icons">
545 Options Indexes MultiViews
546 AllowOverride None
547 Order allow,deny
548 Allow from all
549 </Directory>
559 ScriptAlias /cgi-bin/ "/apm/apache/cgi-bin/" // 별칭 기능
565 <Directory "/apm/apache/cgi-bin">
566 AllowOverride None
567 Options None
568 Order allow,deny
569 Allow from all
570 </Directory>
572 </IfModule>
585 <IfModule mod_autoindex.c>
590 IndexOptions FancyIndexing
597 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
// file들에 대한 icon지정.
599 AddIconByType (TXT,/icons/text.gif) text/*
600 AddIconByType (IMG,/icons/image2.gif) image/*
601 AddIconByType (SND,/icons/sound2.gif) audio/*
602 AddIconByType (VID,/icons/movie.gif) video/*
604 AddIcon /icons/binary.gif .bin .exe
.............................
624 AddIcon /icons/blank.gif ^^BLANKICON^^
630 DefaultIcon /icons/unknown.gif
638 #AddDescription "GZIP compressed document" .gz
639 #AddDescription "tar archive" .tar
640 #AddDescription "GZIP compressed tar archive" .tgz
654 ReadmeName README
655 HeaderName HEADER
661 IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
662
663 </IfModule>
669 <IfModule mod_mime.c>
677 AddEncoding x-compress Z
678 AddEncoding x-gzip gz tgz
707 AddLanguage da .dk
......
720 AddCharset ISO-2022-KR .iso-kr
734 AddCharset Big5 .Big5 .big5
735 AddCharset WINDOWS-1251 .cp-1251
736 AddCharset CP866 .cp866
737 AddCharset ISO-8859-5 .iso-ru
738 AddCharset KOI8-R .koi8-r
739 AddCharset UCS-2 .ucs2
740 AddCharset UCS-4 .ucs4
741 AddCharset UTF-8 .utf8
749 <IfModule mod_negotiation.c>
750 LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
751 </IfModule>
760 #AddType application/x-httpd-php3 .php3
761 #AddType application/x-httpd-php3-source .phps
762 #
763 # And for PHP 4.x, use:
764 #
765 AddType application/x-httpd-php .php .php3
766 AddType application/x-httpd-php-source .phps
768 AddType application/x-tar .tgz
778 # To use CGI scripts:
780 #AddHandler cgi-script .cgi
785 #AddType text/html .shtml
786 #AddHandler server-parsed .shtml
792 #AddHandler send-as-is asis
797 #AddHandler imap-file map
802 #AddHandler type-map var
804 </IfModule>
820 #MetaDir .web
826 #MetaSuffix .meta
829 # Customizable error response (Apache style)
830 # these come in three flavors
831 #
832 # 1) plain text
833 #ErrorDocument 500 "The server made a boo boo.
834 # n.b. the single leading (") marks it as text, it does not get output
835 #
836 # 2) local redirects
837 #ErrorDocument 404 /missing.html
838 # to redirect to local URL /missing.html
839 #ErrorDocument 404 /cgi-bin/missing_handler.pl
840 # N.B.: You can redirect to a script or a document using server-side-includes.
841 #
842 # 3) external redirects
843 #ErrorDocument 402 http://some.other_server.com/subscription_info.html
844 # N.B.: Many of the environment variables associated with the original
845 # request will *not* be available to such a script.
847 #
848 # Customize behaviour based on the browser
849 #
850 <IfModule mod_setenvif.c>
860 BrowserMatch "Mozilla/2" nokeepalive
861 BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
868 BrowserMatch "RealPlayer 4\.0" force-response-1.0
869 BrowserMatch "Java/1\.0" force-response-1.0
870 BrowserMatch "JDK/1\.0" force-response-1.0
872 </IfModule>
879 #<Location /server-status>
880 # SetHandler server-status
881 # Order deny,allow
882 # Deny from all
883 # Allow from .your_domain.com
884 #</Location>
887 # Allow remote server configuration reports, with the URL of
888 # http://servername/server-info (requires that mod_info.c be loaded).
889 # Change the ".your_domain.com" to match your domain to enable.
891 #<Location /server-info>
892 # SetHandler server-info
893 # Order deny,allow
894 # Deny from all
895 # Allow from .your_domain.com
896 #</Location>
905 #<Location /cgi-bin/phf*>
906 # Deny from all
907 # ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
908 #</Location>
914 #<IfModule mod_proxy.c>
915 # ProxyRequests On
917 # <Directory proxy:*>
918 # Order deny,allow
919 # Deny from all
920 # Allow from .your_domain.com
921 # </Directory>
928 # ProxyVia On
934 # CacheRoot "/apm/apache/proxy"
935 # CacheSize 5
936 # CacheGcInterval 4
937 # CacheMaxExpire 24
938 # CacheLastModifiedFactor 0.1
939 # CacheDefaultExpire 1
940 # NoCache a_domain.com another_domain.edu joes.garage_sale.com
942 #</IfModule>
945 ### Section 3: Virtual Hosts
961 #NameVirtualHost *
969 #<VirtualHost *>
970 # ServerAdmin webmaster@dummy-host.example.com
971 # DocumentRoot /www/docs/dummy-host.example.com
972 # ServerName dummy-host.example.com
973 # ErrorLog logs/dummy-host.example.com-error_log
974 # CustomLog logs/dummy-host.example.com-access_log common
975 #</VirtualHost>
*** 더 자세한 사항은 참고 서적이나. Apache.org또는 apache.kr.net을 이용 바람니다. **
17. 특정페이지 암호화
특정한 디렉토리나 링크를 클릭했을 때 인증창을 띄워서 허락된 사용자만 접근이 가능하게 설정한다.
실습>
mkdir /apm/apache/htdocs/login
그아래에 html문서를 위치시킨다.
Httpd.conf 설정
<Directory “/apm/apache/htdocs/login”>
Options Indexes FollowSymLinks // 생략가능. 위의 설정을 그대로 적용받는다.
AllowOverride Authconfig
AuthName “이곳은 로그인 하셔야 들어오실 수 있습니다!”
AuthType Basic
AuthUserFile /apm/apache/htdocs/login/.htpasswd
<Limit POST GET>
require valid-user
</Limit>
Order allow,deny
Allow from all
</Directory>
인증파일 생성하기
htpasswd -c /apm/apache/htdocs/login/.htpasswd <user>
// .htpasswd 파일이 생성되며 로그인 가능한 계정정보를 보관한다.
-c 옵션은 처음 파일을 생성할때만 사용하고, 사용자를 추가할때는 -c 옵션없이 등록만 하면 됨.
브라우저에서 확인
18. 일반계정의 홈페이지 만들기
~/public_html 이 일반계정의 홈페이지 디렉토리가 된다.
일반사용자를 보통 홈디렉토리가 700 으로 권한 설정이 되어 있으므로
타인이 디렉토리까지 접근 하도록 허용해 주여야 웹페이지를 볼수 있다.
chmod 701 ~계정
브라우저 확인 : http://localhost/~계정
19. 가상호스트
가상호스트는 여러 개의 도매인을 하나의 웹 서버에서 서비스하기 위한 설정이며,
웹 호스팅 시 반드시 필요한 사항이다.
1. ip 기반 가상호스트
(domain 하나에 ip하나 mapping)
계획: 211.217.47.50 = haha.co.kr
211.217.47.60 = ok.com
211.217.47.70= wind.org
① httpd.conf 설정
<VirtualHost 211.217.47.50>
ServerAdmin webmaster@haha.co.kr
DocumentRoot /apm1/apache/htdocs/h
1장. Network 일반
2. Network관련 파일(반드시 알아야 하는 파일)
① /etc/sysconfig/network : domain,hostname,gateway정보
② /etc/sysconfig/network-scriptr/ifcfg-eth0 : Lan Card 정보(ip,network주소,gateway등)
③ /etc/resolv.conf : DNS ip(반드시 ip로 적어야 하며, 위에서부터 순서대로 1차,2차DNS)
④ /etc/hosts : mini nameserver
3. Network 장비
① NIC(Network Interface Card), Ethernet Card // 랜카드
다른 컴퓨터와 의 통신을 위한 필수장비
② 전송매체(Cable) : UTP cable : 양쪽 끝에 RJ45 컨넥터가 달려 있다.
③ Router : GateWay 역할을 하는 장비
④ HUB : 여러대의 컴퓨터를 연결시켜주는 장비
** 내부망과 외부망을 구분하는 방법 **
목적지 주소와 netmask값을 AND연산한다.
결과값과 Network부소값을 비교하여 동일하면 내무망, 다르면 외부망.
** Routing table 계산법 **
목적지 주소와 첫번째 레코드의 Genmask값을 AND연산한다.
결과값과 그 레코드의 Destination값과 비교하여 일치하면
Packet을 그 레코드의 Interface로 보내고,
일치하지 않으면 다음 레코드의 Genmask값과 목적지 주소를 AND연산한다.
그다음은 위와 동일하다.
** ping 명령어 사용법 **
ping [Domain|Hostname|ip]
ping -c 3 // 보내는 갯수를 3개로 한다.
ping -i 4 // 보내는 간격을 4초로 한다. default 1초
ping -s 3000 // packet의 크기를 재지정. default 64byte(data-56,header-8)
// 최대값은 65507 byte
ping -w 10 // 10초간 보낸다. default 계속(^C 를 누를때 까지)
시간은 1/1,000 초 단위 최소/평균/최대
** ping에 응답하지 않기.
/proc/sys/net/ipv4/icmp_echo_ignore_all 값 변경 0=응답, 1=무응답
** ifconfig 명령어 사용법 **
랜카드의 설정을 다양하게 적용시킬 수 있다.
ifconfig // 현재 활성화 된 상태 보기
ifconfig eth0 up/down // 활성화/비활성화
ifconfig eth0 192.168.1.50 // ip를 변경한다.
ifconfig eth0 mtu 1300 // MTU값을 조절할 수 있다.
ifconfig eth0 netmask 255.255.128 // netmask 값을 조절한다.
ifconfig eth0 broadcast 192.168.1.127 //broadcast값을 변경한다.
ifconfig eth0:0 192.168.1.100 // ip를 하나더 올림.
**** 이렇게 설정한 것은 임시 방편이다. network Daemon 재실행하거나
시스템을 재부팅하게 되면 모두 초기화 된다.
** route 명령어 사용법 **
route // 현재 설정된 routing table을 본다.
route del default gw 192.168.1.254 // gateway 정보 삭제.
route add default gw 192.168.1.254 // gateway 정보 추가.
위의 ifconfig와 마찬가지로 임시방편이다.
실제로 설정값을 영구히 변경하기 위해서는 이 두개의 파일을 수정해야 한다.
/etc/sysconfig/network
1 NETWORKING=yes
2 HOSTNAME=aha.ahalinux.co.kr
/etc/sysconfig/network-scripts/ifcfg-eth0
1 DEVICE=eth0
2 ONBOOT=yes
3 BOOTPROTO=static
4 IPADDR=192.168.1.1
5 NETMASK=255.255.255.0
6 GATEWAY=192.168.1.254
2장. DNS(Domain Name System)
domain ==> ip 로 변환해준다. 반대의 기능도한다.
4. 왜 dns가 필요한가?
네트워크에 참여하는 컴퓨터가 많지 않을때는 /etc/hosts 파일만으로 통신할 수 있었지만
네트워크에 참여하는 컴퓨터가 늘어나면서 모든 정보를 기억하는게 불가능해졌다.
5. name server의 동작 원리와 zone의 개념.
PowerPoint 자료 참조
6. bind 설치 방법
bind(2개)
caching(1)
이렇게 설치 되어 있으면 되고, 만약 설치시 빠트렸다면 배포판 CD에서 찾거나.
rpmfind.net에서 다운로드 받는다.
7. bind 시작과 종료(항상 가동하기)
/etc/init.d/named start/stop/restart
부팅할때 항상 자동으로 실행되기를 원한다면 ntsysv 명령을 내려서 named에 체크해주면 된다.
8. dns와 관련된 파일들
⑤ /etc/resolv.conf
// 질의할 nameserver 지정하고 있는 파일. 반드시 ip로 입력해 놓아야 한다.
serarch ahalinux.co.kr
nameserver 168.192.63.1
nameserver 211.217.47.100
⑥ /etc/host.conf
// 질의 순서를 정의하고 있는 파일.
order hosts,bind multi on
nospoof on
/etc/hosts파일에서 정보를 찾고, 없으면 bind 즉 /etc/resolv.conf 파일에 정의된 ns에게 질의하라.
⑦ /etc/hosts // mini name server
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 b3.ahalinux.co.kr b3 localhost.localdomain localhost
211.115.211.8 empas.com em
211.218.150.200 naver.com na
// 이 파일의 사용형식은 위의 예제처럼 ip,hostname,nickname을 순서대로 적어서 사용하며,
자주 방문하는 곳은 이 파일을 사용함으로서 속도를 빠르게 해준다.
⑧ /etc/named.conf // nameserver master 설정 파일.
// generated by named-bootconf.pl
options {
directory "/var/named"; //zone 파일들이 위치할 디렉토리를 지정하는 옵션.
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";
9. 실습1. cache-only server
아래에 있는 named.ca 파일만으로 운영되는 nameserver
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
10. 실습2. 기본 DNS설정. (각 레코드에 대한 설명)
설정순서.
⑨ domain 등록
⑩ 설정 table작성
⑪ /etc/named.conf 에 zone 파일 지정
⑫ zone 파일 생성(/var/named)
⑬ named restart
⑭ /etc/resolv.conf 파일 수정
⑮ test
Domain : blue.com
ns.blue.com : 211.217.47.100
www.blue.com : 211. 217.47.50
ftp.blue.com : 211. 217.47.60
mail.blue.com : 211. 217.47.70
** /etc/named.conf 아래 내용 추가.
zone "blue.com" IN {
type master;
file "blue.zone";
};
zone "47.217.211.in-addr.arpa" IN {
type master;
file "blue.rev";
};
blue.zone.
//forward zone : domain에 대한 ip정보를 가지고 있는 데이터베이스 파일.
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN A 211.217.47.100
ns IN A 211.217.47.100
www IN A 211.217.47.50
ftp IN A 211.217.47.60
mail IN A 211.217.47.70
@ IN MX 10 mail.blue.com.
@ IN A 211.217.47.100
linux IN CNAMW www
@ IN HINFO "P4-2.4" "hancom3.1"
blue.rev
//reverse zone : ip에 대한 domain정보를 가지고 있는 데이터베이스 파일.
in-addr.arpa형식으로 표기(등록해야만 사용 가능)
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN A 211.217.47.100
100 IN PTR ns.blue.com.
50 IN PTR www.blue.com.
60 IN PTR ftp.blue.com.
70 IN PTR mail.blue.com.
데몬 재실행 후 테스트.
/etc/init.d/named start
/etc/resolv.conf
nameserver 211.217.47.100
#nslookup
11. 각 레코드에 대한 설명
Record
Record 의 의미
@
domain 자체를 뜻한다. 여기서는 blue.com을 말함.origin이라고 함.
IN
Internet address class를 뜻하며, 일반적으로 사용.
SOA
Start of Authority 해당 domain에 대한 모든 권리를 갖는다는 의미.
여기서는 blue.com domain에 대해 ns.blue.com 이 모든 권한을 갖겠다.
NS
nameserver domain에 대한 nameserver를 지정한다.
A
Address domain에 대한 ip 정보를 나타낸다.
PTR
Pointer ip에 대해 dommain정보를 나타낸다.
MX
Main Exchange domain에 대해 들오온 메일을 포워딩 할 서버를 지정한다.
숫자가 적을수록 우선순위가 높다.
CNAME
Canoical Name 하나의 domain에 여러개의 이름을 가질 수 있도록 alias 해주는 기능
HINFO HareWare information 서버의 cpu 종류와 OS종류를 표기한다.
12. 2차 dns의 개념과 필요성
nameserver가 중지되면 모든 서비스 마비된다.
Nameserver가 한대 밖에 없다면 그 서버가 문제가 발생하여 서비스를 할 수 없다면 web,ftp,mail등
다른 서버가 잘 작동하고 있다고 할지라도 서비스를 해줄 수가 없다.
Master 서버가 문제가 발생할 것에 대비하여 slave 2차 서버를 준비하여 두는 것이다.
두 서버는 스스로 통신을 하며, 항상 새로운 데이터를 가지게 되는데,
아래의 표는 master와 slave가 서로 통신할 때의 필요한 설정을 나타낸다.
표기
각 표기의 의미
Serial nameser의 version 표시. slave가 비교 할 수 있게끔 해야 한다
Refresh 접속 주기 기본값(8시간)
Retry
재접속 주기. 접속을 시도했는데 master가 문제가 발생하여 접속되지 않을 때 다시 접속 시도하는 시간 (기본 4시간)
Expire
파기할 시간. 일정기간 접속 되지 않으면 기존 정보를 파기한다.(기본 약 41일)
Minimum
다른 ns가 자신의 ns정보를 가져 갔을때 가져간 측의 cache에 살아있는 시간(TTL) 기본1일
13. 실습3. master,slave nameserver 설정.
master는 크게 달라지지 않는다.
slave는 zone 파일은 생성 할 필요가 없고, /etc/named.conf 만 설정하면 된다.
16 1차 네임서버 작업
blue.zone.
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN NS ns2.blue.com.
IN A 211.217.47.100
IN A 211.217.47.102
ns IN A 211.217.47.100
ns2 IN A 211.217.47.102
www IN A 211.217.47.50
ftp IN A 211.217.47.60
mail IN A 211.217.47.70
blue.rev
$TTL 86400
@ IN SOA ns.blue.com. master.blue.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.blue.com.
IN NS ns2.blue.com.
IN A 211.217.47.100
IN A 211.217.47.102
100 IN PTR ns.blue.com.
102 IN PTR ns2.blue.com.
50 IN PTR www.blue.com.
60 IN PTR ftp.blue.com.
70 IN PTR mail.blue.com.
17 2차 네임서버에서의 설정.
/etc/named.conf
zone "blue.com" IN {
type slave;
file "slave-blue.zone";
masters{211.217.47.100;};
};
zone "47.217.211.in-addr.arpa" IN {
type slave;
file "slave-blue.rev";
masters{211.217.47.100;};
};
위 내용을 작성해 준 후에 named 데몬을 실행 시키면 된다.
2차 name server에서 zone파일들은 자동생성
slave-blue.zone
$ORIGIN .
$TTL 86400 ; 1 day
blue.com IN SOA ns.blue.com. master.blue.com. (
1997022700 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.blue.com.
NS ns2.blue.com.
A 211.217.47.100
A 211.217.47.102
$ORIGIN blue.com.
ftp A 211.217.47.60
mail A 211.217.47.70
ns A 211.217.47.100
ns2 A 211.217.47.102
www A 211.217.47.50
slave-blue.rev
$ORIGIN .
$TTL 86400 ; 1 day
47.217.211.in-addr.arpa IN SOA ns.blue.com. master.blue.com. (
1997022700 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.blue.com.
NS ns2.blue.com.
A 211.217.47.100
A 211.217.47.102
$ORIGIN 47.217.211.in-addr.arpa.
100 PTR ns.blue.com.
102 PTR ns2.blue.com.
50 PTR www.blue.com.
60 PTR ftp.blue.com.
70 PTR mail.blue.com.
3장. Web-server
14. Apache 설치
18 이미 rpm 으로 설치되어 있는 아파치를 지운다.
#rpm -qa|grep apache
#rpm -e apache
19 소스를 다운로드 후 압축을 푼다.
#tar xvfz apache_1.3.20.tar.gz
압축을 풀면 디렉토리 생성되고, 그곳으로 이동.
20 컴파일 환경설정한다(Makefile 생성)
#./configure --prefix=/apm/apache
(--prefix옵션은 설치위치를 지정한다. 생략하면 /usr/local)
21 컴파일 한다.
#make
22 파일 복사
#make install
15. 아파치 시작과 종료
23 apache 시작
/apm/apache/bin/apachectl start
24 실행 확인
#ps -ef|grpe httpd (Daemon 5개면 정상)
25 apache 종료
#killall httpd
26 apache 재실행(설정을 변경하면 재실행 해 주어야 적용됨)
#/apm/apache/bin/apachectl restart
16. apache 설정 파일 설명(httpd.conf)
2 ## httpd.conf -- Apache HTTP server configuration file
41 ### Section 1: Global Environment
52 ServerType standalone // 서버가 항상 가동중임을 의미한다.
63 ServerRoot "/apm/apache" // 아파치의 설치 위치
80 PidFile /apm/apache/logs/httpd.pid // process id 를 저장하고 있는 파일
88 ScoreBoardFile /apm/apache/logs/httpd.scoreboard
99 #ResourceConfig conf/srm.conf // 이전 버전에서 httpd.conf,srm.conf,access.conf 파일
100 #AccessConfig conf/access.conf // 세개로 분리하여 사용하였으나 지금은 httpd.conf
하나로 통합.
105 Timeout 300 // client가 접속을 한후 요청을 받을때까지 기다리는 시간. 모든 시간설정값은 초단위.
// 이 시간을 초과하게 되면 접속을 끊어 버린다.
111 KeepAlive On // 지속적인 연결을 유지할것인가를 설정. 한번 연결로 여러개의 요청을 허용할
것인가를 결정.
118 MaxKeepAliveRequests 100 // 위에서 지속적인 연결을 유지했을때 최대 몇개까지의 요청을 처리
할 것인가를 결정.
124 KeepAliveTimeout 15 // 동일한 client가 다음 요청을 했을때 기다리는 시간.15초가 지나면
접속을 끊음.
139 MinSpareServers 5 // 최소로 유지할 process 수
140 MaxSpareServers 10 // 최대로 유지할 process 수
146 StartServers 5 // 처음 서버 기동할때 시작할 process 수
# End of document types.
155 MaxClients 150 // 동시접속 허용 client 수
178 #Listen 3000 // 서버가 귀 귀울여야 하는 포트와 ip. 특정한 포트만 사용시 필요.
179 #Listen 12.34.56.78:80 // 기본적으로 모든 포트와 ip에 대해 귀 귀울인다.
187 #BindAddress *
190 # Dynamic Shared Object (DSO) Support // 동적으로 모듈을 사용할때 필요.
// 특정한 기능을 아파치실행시 사용하고 싶다면 이 기능을 이용한다.
203 # Example:
204 # LoadModule foo_module libexec/mod_foo.so
211 #ExtendedStatus On // 서버의 자세한 상태를 웹상에서 확인하고자 할때
<SERVER-STATUS> 지시자와 관련 있다.
213 ### Section 2: 'Main' server configuration
236 Port 80 // 기본 포트 설정 부분. 다른 포트를 사용하기 위해서는 1024 이후 포트를
지정하여 사용한다.
250 User nobody // 웹서버 실행시 사용자와 그룹의 권한. root로 변경하지 않도록 주의한다.
251 Group nobody
258 ServerAdmin root@aha.ahalinux.co.kr // 서버 관리자의 E-mail Address
276 #ServerName aha.ahalinux.co.kr // dns에서 지정한 이름을 적어주도록 한다.
283 DocumentRoot "/apm/apache/htdocs" // 웹문서 root
293 <Directory /> // System root directory 에 대한 옵션 설정.
294 Options FollowSymLinks
295 AllowOverride None
296 </Directory>
308 <Directory "/apm/apache/htdocs"> // 웹문서의 root directory에 대한 옵션 지정
// 각 옵션에 대한 설명은 교재를 참고할것.
311 # This may also be "None", "All", or any combination of "Indexes",
312 # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
317 Options Indexes FollowSymLinks MultiViews
320 # This controls which options the .htaccess files in directories can
321 # override. Can also be "All", or any combination of "Options", "FileInfo",
322 # "AuthConfig", and "Limit"
324 AllowOverride None
329 Order allow,deny
330 Allow from all
331 </Directory>
337 <IfModule mod_userdir.c>
338 UserDir public_html
339 </IfModule>
340
// 일반 user들에 대한 옵션 설정.
345 #<Directory /home/*/public_html>
346 # AllowOverride FileInfo AuthConfig Limit
347 # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
348 # <Limit GET POST OPTIONS PROPFIND>
349 # Order allow,deny
350 # Allow from all
351 # </Limit>
352 # <LimitExcept GET POST OPTIONS # End of document types.
353 # Order deny,allow
354 # Deny from all
355 # </LimitExcept>
356 #</Directory>
362 <IfModule mod_dir.c>
363 DirectoryIndex index.html // 처음으로 보여줄 파일명.
364 </IfModule>
370 AccessFileName .htaccess // 디렉토리 접근제어 할 파일명.
383 <Files ~ "^\.ht"> // ".ht" 파일에 대한 접근을 불허한다.
384 Order allow,deny // ~는 정규표현식. 파일 이름을 정의 하겠다.
385 Deny from all
386 </Files>
394 #CacheNegotiatedDocs // proxy 서버로 하여금 cache를 할 것인가를 설정.
404 UseCanonicalName On // 아파치가 자신의 url을 만들때 규범적인 이름과 포트를 사용한다.
410 <IfModule mod_mime.c> // mime type에 대한 설정파일 위치.
411 TypesConfig /apm/apache/conf/mime.types
412 </IfModule>
423 DefaultType text/plain
436 <IfModule mod_mime_magic.c>
437 MIMEMagicFile /apm/apache/conf/magic
438 </IfModule>
448 HostnameLookups Off // 로그기록시 client의 ip만 기록하느냐, 아니면 hostname
까지 기록하느냐 설정. on 으로 설정하면 hostname가지 기록한다. 이 경우 DNS 에게
질의하여야 하므로 느려진다.
457 ErrorLog /apm/apache/logs/error_log
***로그포멧 형식은 교재를 참고.
460 # LogLevel: Control the number of messages logged to the error_log.
461 # Possible values include: debug, info, notice, warn, error, crit,
462 # alert, emerg.
464 LogLevel warn
470 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
471 LogFormat "%h %l %u %t \"%r\" %>s %b" common
472 LogFormat "%{Referer}i -> %U" referer
473 LogFormat "%{User-agent}i" agent
482 CustomLog /apm/apache/logs/access_log common
488 #CustomLog /apm/apache/logs/referer_log referer
489 #CustomLog /apm/apache/logs/agent_log agent
495 #CustomLog /apm/apache/logs/access_log combined
504 ServerSignature On // error 문서에 대한 여러 형태의 처리 방식
533 <IfModule mod_alias.c>
542 Alias /icons/ "/apm/apache/icons/" // 별칭 기능.
544 <Directory "/apm/apache/icons">
545 Options Indexes MultiViews
546 AllowOverride None
547 Order allow,deny
548 Allow from all
549 </Directory>
559 ScriptAlias /cgi-bin/ "/apm/apache/cgi-bin/" // 별칭 기능
565 <Directory "/apm/apache/cgi-bin">
566 AllowOverride None
567 Options None
568 Order allow,deny
569 Allow from all
570 </Directory>
572 </IfModule>
585 <IfModule mod_autoindex.c>
590 IndexOptions FancyIndexing
597 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
// file들에 대한 icon지정.
599 AddIconByType (TXT,/icons/text.gif) text/*
600 AddIconByType (IMG,/icons/image2.gif) image/*
601 AddIconByType (SND,/icons/sound2.gif) audio/*
602 AddIconByType (VID,/icons/movie.gif) video/*
604 AddIcon /icons/binary.gif .bin .exe
.............................
624 AddIcon /icons/blank.gif ^^BLANKICON^^
630 DefaultIcon /icons/unknown.gif
638 #AddDescription "GZIP compressed document" .gz
639 #AddDescription "tar archive" .tar
640 #AddDescription "GZIP compressed tar archive" .tgz
654 ReadmeName README
655 HeaderName HEADER
661 IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
662
663 </IfModule>
669 <IfModule mod_mime.c>
677 AddEncoding x-compress Z
678 AddEncoding x-gzip gz tgz
707 AddLanguage da .dk
......
720 AddCharset ISO-2022-KR .iso-kr
734 AddCharset Big5 .Big5 .big5
735 AddCharset WINDOWS-1251 .cp-1251
736 AddCharset CP866 .cp866
737 AddCharset ISO-8859-5 .iso-ru
738 AddCharset KOI8-R .koi8-r
739 AddCharset UCS-2 .ucs2
740 AddCharset UCS-4 .ucs4
741 AddCharset UTF-8 .utf8
749 <IfModule mod_negotiation.c>
750 LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
751 </IfModule>
760 #AddType application/x-httpd-php3 .php3
761 #AddType application/x-httpd-php3-source .phps
762 #
763 # And for PHP 4.x, use:
764 #
765 AddType application/x-httpd-php .php .php3
766 AddType application/x-httpd-php-source .phps
768 AddType application/x-tar .tgz
778 # To use CGI scripts:
780 #AddHandler cgi-script .cgi
785 #AddType text/html .shtml
786 #AddHandler server-parsed .shtml
792 #AddHandler send-as-is asis
797 #AddHandler imap-file map
802 #AddHandler type-map var
804 </IfModule>
820 #MetaDir .web
826 #MetaSuffix .meta
829 # Customizable error response (Apache style)
830 # these come in three flavors
831 #
832 # 1) plain text
833 #ErrorDocument 500 "The server made a boo boo.
834 # n.b. the single leading (") marks it as text, it does not get output
835 #
836 # 2) local redirects
837 #ErrorDocument 404 /missing.html
838 # to redirect to local URL /missing.html
839 #ErrorDocument 404 /cgi-bin/missing_handler.pl
840 # N.B.: You can redirect to a script or a document using server-side-includes.
841 #
842 # 3) external redirects
843 #ErrorDocument 402 http://some.other_server.com/subscription_info.html
844 # N.B.: Many of the environment variables associated with the original
845 # request will *not* be available to such a script.
847 #
848 # Customize behaviour based on the browser
849 #
850 <IfModule mod_setenvif.c>
860 BrowserMatch "Mozilla/2" nokeepalive
861 BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
868 BrowserMatch "RealPlayer 4\.0" force-response-1.0
869 BrowserMatch "Java/1\.0" force-response-1.0
870 BrowserMatch "JDK/1\.0" force-response-1.0
872 </IfModule>
879 #<Location /server-status>
880 # SetHandler server-status
881 # Order deny,allow
882 # Deny from all
883 # Allow from .your_domain.com
884 #</Location>
887 # Allow remote server configuration reports, with the URL of
888 # http://servername/server-info (requires that mod_info.c be loaded).
889 # Change the ".your_domain.com" to match your domain to enable.
891 #<Location /server-info>
892 # SetHandler server-info
893 # Order deny,allow
894 # Deny from all
895 # Allow from .your_domain.com
896 #</Location>
905 #<Location /cgi-bin/phf*>
906 # Deny from all
907 # ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
908 #</Location>
914 #<IfModule mod_proxy.c>
915 # ProxyRequests On
917 # <Directory proxy:*>
918 # Order deny,allow
919 # Deny from all
920 # Allow from .your_domain.com
921 # </Directory>
928 # ProxyVia On
934 # CacheRoot "/apm/apache/proxy"
935 # CacheSize 5
936 # CacheGcInterval 4
937 # CacheMaxExpire 24
938 # CacheLastModifiedFactor 0.1
939 # CacheDefaultExpire 1
940 # NoCache a_domain.com another_domain.edu joes.garage_sale.com
942 #</IfModule>
945 ### Section 3: Virtual Hosts
961 #NameVirtualHost *
969 #<VirtualHost *>
970 # ServerAdmin webmaster@dummy-host.example.com
971 # DocumentRoot /www/docs/dummy-host.example.com
972 # ServerName dummy-host.example.com
973 # ErrorLog logs/dummy-host.example.com-error_log
974 # CustomLog logs/dummy-host.example.com-access_log common
975 #</VirtualHost>
*** 더 자세한 사항은 참고 서적이나. Apache.org또는 apache.kr.net을 이용 바람니다. **
17. 특정페이지 암호화
특정한 디렉토리나 링크를 클릭했을 때 인증창을 띄워서 허락된 사용자만 접근이 가능하게 설정한다.
실습>
mkdir /apm/apache/htdocs/login
그아래에 html문서를 위치시킨다.
Httpd.conf 설정
<Directory “/apm/apache/htdocs/login”>
Options Indexes FollowSymLinks // 생략가능. 위의 설정을 그대로 적용받는다.
AllowOverride Authconfig
AuthName “이곳은 로그인 하셔야 들어오실 수 있습니다!”
AuthType Basic
AuthUserFile /apm/apache/htdocs/login/.htpasswd
<Limit POST GET>
require valid-user
</Limit>
Order allow,deny
Allow from all
</Directory>
인증파일 생성하기
htpasswd -c /apm/apache/htdocs/login/.htpasswd <user>
// .htpasswd 파일이 생성되며 로그인 가능한 계정정보를 보관한다.
-c 옵션은 처음 파일을 생성할때만 사용하고, 사용자를 추가할때는 -c 옵션없이 등록만 하면 됨.
브라우저에서 확인
18. 일반계정의 홈페이지 만들기
~/public_html 이 일반계정의 홈페이지 디렉토리가 된다.
일반사용자를 보통 홈디렉토리가 700 으로 권한 설정이 되어 있으므로
타인이 디렉토리까지 접근 하도록 허용해 주여야 웹페이지를 볼수 있다.
chmod 701 ~계정
브라우저 확인 : http://localhost/~계정
19. 가상호스트
가상호스트는 여러 개의 도매인을 하나의 웹 서버에서 서비스하기 위한 설정이며,
웹 호스팅 시 반드시 필요한 사항이다.
1. ip 기반 가상호스트
(domain 하나에 ip하나 mapping)
계획: 211.217.47.50 = haha.co.kr
211.217.47.60 = ok.com
211.217.47.70= wind.org
① httpd.conf 설정
<VirtualHost 211.217.47.50>
ServerAdmin webmaster@haha.co.kr
DocumentRoot /apm1/apache/htdocs/h
- 이전글한메일 hanmail.net 으로 메일 발송 되게 설정하기 (linux) 21.02.10
- 다음글네트워크 관련 명령어 (펀글) 21.02.10
댓글목록
등록된 댓글이 없습니다.