歯 GUIDE PDF RE - 커피닉스coffeenix.net/doc/misc/server_65kusrgu.pdf를 선택해주신 데...

252
®

Transcript of 歯 GUIDE PDF RE - 커피닉스coffeenix.net/doc/misc/server_65kusrgu.pdf를 선택해주신 데...

®

터보리눅스 서버 6.5 사용자 안내서

버전 6.5, 2001년 6월

1999-2001 터보리눅스㈜. All Rights Reserved.

본 안내서의 내용은 예고 없이 변경될 수 있으며, 정보제공의 목적으로만 제공됩니다. 또한, 본 안내서가

터보리눅스의 약속으로 간주되어서는 안됩니다. 터보리눅스는 본 안내서의 오류나 부정확한 내용으로 발

생하는 문제에 대해 책임을 지지 않습니다.

사용자는 모든 복사본에 대해 저작권 고지 사항이 변경 없이 유지된 상태에 한하여 본 안내서를 전자, 기

계, 기록 방식 등의 어떠한 형식이나 수단으로 복제 또는 배포하거나 검색 시스템에 저장할 수 있으며 이

는 터보리눅스의 사전 서면 승인이 없는 경우에도 마찬가지입니다.

터보리눅스㈜, 터보리눅스 및 터보리눅스 로고는 터보리눅스㈜의 등록 상표이며, 그 밖의 상표는 소유권

자의 등록상표입니다.

본 안내서는 터보리눅스㈜가 기획 및 제작했습니다.

서울시 영등포구 여의도동 60번지

대한생명 63빌딩 42층

(우 ) 150-763

T. 02.3775.4072

F. 02.3775.4075

www.turbolinux.co.kr

차 례

터보리눅스 서버 사용자 안내서 iii

차 례

서 문 ............................................................................................................................I X

감 사 의 말 ... .......................................................................................................................... ix

터보리눅스 서버 6.5 목차 .................................................................................................x

본 안내서에 대 해 서 ............................................................................................................xi

일러두기 ........................................................................................................................xi

연 락 처 ....................................................................................................................................xii

기술 지원 ..............................................................................................................................xii

제 1 장 터보리눅스 서버 보안 .....................................................................................................1-1

보안이란? ...........................................................................................................................1-2

가정 보안 ...................................................................................................................1-2

컴 퓨 터 보안 ...............................................................................................................1-3

리 눅 스 보안 ...............................................................................................................1-5

터보리눅스 서버 6.5의 정책 .........................................................................................1-6

“모두 거부 ” 방식 ......................................................................................................1-7

계정 .............................................................................................................................1-7

로그 .............................................................................................................................1-8

루트 권한 및 허가 ...................................................................................................1-8

업데이트 .....................................................................................................................1-8

보안 관련 단 체 에 관한 추가 정보 ...............................................................................1-9

보안 관련 웹사이트 .................................................................................................1-9

제 2 장 시 스 템 관리 .......................................................................................................................2-1

슈퍼서버 및 서버 프로그램 ...........................................................................................2-2

슈퍼서버 .....................................................................................................................2-2

서버 .............................................................................................................................2-2

차 례

터보리눅스 서버 사용자 안내서 iv

데몬 .............................................................................................................................2-3

슈퍼서버 모 드 와 단독 모드 ...................................................................................2-3

슈퍼서버의 기 능 과 역할 .........................................................................................2-3

슈퍼서버의 단점 .......................................................................................................2-4

inetd............................................................................................................................2-5

TCP_Wrapper (tcpd) ............................................................................................2-11

portcfg .............................................................................................................................2-17

소프트웨어 패 키 지 설치 및 업그레이드하기 ...........................................................2-20

rpm 사용하기 ..........................................................................................................2-20

turbopkg ..........................................................................................................................2-23

서 비 스 .......................................................................................................................2-28

serviceboard...................................................................................................................2-33

현재 실행 수준 설정 .............................................................................................2-34

네트워킹 ...................................................................................................................2-36

netcfg ...............................................................................................................................2-39

인쇄하기 ...........................................................................................................................2-50

Ghostscript .............................................................................................................2-50

printconfig ..............................................................................................................2-52

제 3 장 인 터 넷 서버 .......................................................................................................................3-1

네임 서버 (DNS 서버 ) ...................................................................................................3-2

1차 네임 서버 ...........................................................................................................3-2

2차 네임 서버 ...........................................................................................................3-3

캐시 전용 서버 .........................................................................................................3-3

슬레이브 서버 ...........................................................................................................3-3

변 환 기 .........................................................................................................................3-3

대 표 적 설정 ...............................................................................................................3-7

샘플 부팅 파일 (/etc/named.boot) 설정 .........................................................3-9

샘플 변 환 기 파일 (/etc/resolv.conf) 설정 .....................................................3-10

샘플 루 프 백 파일 설정 .........................................................................................3-10

차 례

터보리눅스 서버 사용자 안내서 v

샘플 순 방 향 탐색 파일 (또는 존 파일 ) 설정 ..................................................3-11

샘플 역 방 향 탐색 파일 (또는 역 방 향 파일) 설정 ..........................................3-13

구성 점검하기 .........................................................................................................3-14

BIND 8......................................................................................................................3-17

메일 서버 .........................................................................................................................3-21

Sendmail .................................................................................................................3-21

POP/IMAP ...............................................................................................................3-25

메일 관리 .................................................................................................................3-26

웹 서버 (HTTP 서버) ....................................................................................................3-29

Apache 개관 ...........................................................................................................3-30

httpd 시작하기와 끝 내 기 .....................................................................................3-31

httpd 구성 ...............................................................................................................3-32

SSL을 이 용 한 보안 사 이 트 조직 ........................................................................3-39

공개 사이트를 위한 샘플 설정 ...........................................................................3-41

FTP 서버 ..........................................................................................................................3-42

ProFTPD ..................................................................................................................3-42

기본 구성 .................................................................................................................3-44

제 4 장 인트라넷 서버 ...................................................................................................................4-1

Samba................................................................................................................................4-2

Samba 수트 ..............................................................................................................4-2

Samba 시동 모드 ....................................................................................................4-3

Samba 시작하기와 끝 내 기 ....................................................................................4-4

Samba 구성 ..............................................................................................................4-5

암호화된 비밀번호 .................................................................................................4-14

파일 및 프 린 터 공유하기 .....................................................................................4-15

설정 테스트하기 .....................................................................................................4-17

SWAT으로 구성하기 ..............................................................................................4-17

MS 윈도우와 매킨토시의 공존 ...........................................................................4-20

Netatalk............................................................................................................................4-21

Netatalk 구성 요소 ................................................................................................4-22

차 례

터보리눅스 서버 사용자 안내서 vi

Netatalk 시작하기와 끝 내 기 ................................................................................4-23

Netatalk 설정 ..........................................................................................................4-24

Portmapper (portmap) ................................................................................................4-31

액 세 스 제어 .............................................................................................................4-32

NFS ...................................................................................................................................4-33

NFS 시 작 하기와 끝 내 기 .......................................................................................4-33

NFS 서버 설정 .......................................................................................................4-34

클라이언트 측 설정 ...............................................................................................4-37

보안 ...........................................................................................................................4-38

NIS.....................................................................................................................................4-39

서 버 와 클라이언트에 공 통 된 설정 .....................................................................4-39

서버 설정 .................................................................................................................4-40

클라이언트 설정 .....................................................................................................4-41

제 5 장 기타 서 비 스 .......................................................................................................................5-1

SSH .....................................................................................................................................5-2

ssh 시작하기와 끝 내 기 ...........................................................................................5-2

서버 구성 ...................................................................................................................5-3

접속 방식 ...................................................................................................................5-3

DHCP ..................................................................................................................................5-4

DHCP 구성 ................................................................................................................5-4

DHCP 시작하기와 끝 내 기 ......................................................................................5-9

DHCPD가 제 대 로 실행되지 않을 경우 .............................................................5-10

DHCP 패 키 지 ..........................................................................................................5-10

클라이언트 구성 (터보리눅스 )............................................................................5-11

LDAP.................................................................................................................................5-11

LDAP 서버 데이터베이스 만 들 기.......................................................................5-12

LDIF 포맷으로 변환하기 ......................................................................................5-13

slapd.conf 파일 만 들 기.......................................................................................5-14

LDIF 데이터베이스를 LDBM 데이터베이스로 변환하기 ...............................5-17

차 례

터보리눅스 서버 사용자 안내서 vii

LDAP 서버 시동 .....................................................................................................5-18

서버 테스트하기 .....................................................................................................5-18

넷스케이프 커뮤니케이터 구성 ...........................................................................5-19

기타 사항 .................................................................................................................5-19

quota ................................................................................................................................5-20

quota 설정 ..............................................................................................................5-21

IP 매스커레이딩 ..............................................................................................................5-25

ipchains ...................................................................................................................5-25

부록 A 기본 동작 ...........................................................................................................................A-1

로그인과 로그아웃 .......................................................................................................... A-2

로 그 인 방법 정의하기 ............................................................................................A-2

명 령 어 행을 이용하여 로그인하기 ......................................................................A-3

명 령 어 행 에 서 로그아웃하기 ................................................................................A-3

GUI를 이용하여 로그인하기 .................................................................................A-4

GUI를 이용하여 로그아웃하기 .............................................................................A-4

사 용 자 계정 관리하기 .................................................................................................... A-5

사 용 자 계정 만들기와 변경하기 (useradd, passwd) .................................... A-5

사 용 자 계정 삭제하기 ............................................................................................A-7

다른 사 용 자(su)로 전환하기 .................................................................................A-8

시 스 템 종료하기 ..............................................................................................................A-9

즉시 전원 차단 ........................................................................................................A-9

파일 작업하기 .................................................................................................................A-11

파 일 과 디렉터리 목록 보기 (ls) .........................................................................A-11

다른 디렉터리로 변경하기 (cd) .........................................................................A-12

현재 디렉터리 찾기 (pwd) ..................................................................................A-13

파 일 과 디렉터리 복사하기 (cp) .........................................................................A-14

파일 이동하기 (mv) ..............................................................................................A-15

파일 이름 바 꾸 기 (mv) ........................................................................................A-16

디렉터리 만 들 기 (mkdir) .....................................................................................A-17

파 일 과 디렉터리 삭제하기 (rm, rmdir) ............................................................A-17

차 례

터보리눅스 서버 사용자 안내서 viii

텍 스 트 파일 보기 (cat, less, more) .................................................................A-18

파일 찾기 (find) .....................................................................................................A-21

문 자 열 검색하기 (grep) .......................................................................................A-23

파일 압축하기와 풀기 (gzip) ..............................................................................A-24

아카이브 만들기와 추출하기 (tar) .....................................................................A-25

프로세스 관리 .................................................................................................................A-26

프로세스의 상태 알아보기 (ps) .........................................................................A-27

프로세스 끝 내 기 (kill) ...........................................................................................A-29

장치 관리하기 .................................................................................................................A-30

파 티 션 .......................................................................................................................A-30

파티션과 파일 시 스 템 ...........................................................................................A-31

mount 명 령 어 사용하기 .......................................................................................A-33

디 스 크 사용 알아보기 (df, du) ..........................................................................A-35

소프트웨어 패 키 지 설치하기와 업그레이드하기 .....................................................A-40

rpm 사용하기 ..........................................................................................................A-40

온 라 인 매뉴얼에 액세스하기 .......................................................................................A-43

부록 B TCP/IP 네트워킹 .............................................................................................................B-1

TCP/IP............................................................................................................................... B-2

이 더 넷 ................................................................................................................................B-3

CSMA/CD 프로토콜 ............................................................................................... B-3

MAC 주소 .................................................................................................................B-4

ARP ............................................................................................................................B-5

IP 주소 ............................................................................................................................... B-6

게이트웨이 주소 ..............................................................................................................B-9

부팅 프로세스 설정 ........................................................................................................B-9

네트워크 점검하기 .........................................................................................................B-12

터보리눅스 서버 사용자 안내서 ix

서 문

감사의 말...

<터보리눅스 서버 6.5>를 선택해주신 데 감사 드립니다. 저희 터보리눅스㈜는 터보리눅스를 성능이 뛰어

나고 종합적이며 설치와 사용이 손쉬운 제품으로 만들기 위해 부단히 노력하고 있습니다.

환태평양 지역에서 리눅스의 선두주자로 자리잡은 터보리눅스는 이제 온 세계로부터 각광을 받고 있습니

다. 저희는 1993년부터 리눅스 작업에 착수하여 1997년에는 영어 및 일본어 버전으로 자체 배포판을 내

놓았습니다. 현재 터보리눅스는 다음 언어를 지원합니다.

• 한국어

• 중국어 (간체)

• 중국어 (번체)

• 일본어

• 영어

터보리눅스와 급성장하는 저희 회사에 대한 최신 정보를 보시려면 당사 웹사이트

(http://www.turbolinux.co.kr/)를 방문해 주시기 바랍니다.

터보리눅스를 통한 저희의 성공과 여러분의 만족은 모두 리눅스의 창시자인 리누스 토발즈씨를 필두로 한

소스 개방 운동의 기적적인 노력에 힘입은 것입니다. 이 기적을 이루기 위해 과거에나 오늘에나 끊임없이

애쓰고 계시는 토발즈씨와 전세계의 무수한 개발자들께 이 자리를 빌어 감사의 말씀을 드립니다.

서 문

터보리눅스 서버 사용자 안내서 x

터보리눅스 서버 6.5 목차

터보리눅스 서버 6.5 패키지에는 다음과 같은 구성요소가 들어 있습니다.

• 터보리눅스 서버 6.5 Install CD

• 터보리눅스 서버 6.5 Source CD

• 터보리눅스 서버 6.5 Companion CD

• <Turbolinux Server 6.5 User Guide> (영문/.pdf 파일 형식).

Companion CD 내의 /docs/en/TLS65UserGuide.pdf

• <Turbolinux Server 6.5 Install Guide> (영문/.pdf 파일 형식).

Companion CD 내의 /docs/en/TLS65InstallGuide.pdf

• <Tubolinux Server 6.5 (Jupiter) Release Notes> Companion CD 내

의 /docs/en/RELEASE_NOTES

본 안내서에 대해서

터보리눅스 서버 사용자 안내서 xi

본 안내서에 대해서

<터보리눅스 서버 사용자 안내서>는 < 터보리눅스 서버 설치 안내서>및 < 터보리눅스 서버 릴리스 정보>와

함께 터보리눅스 서버 6.5를 사용하고 관리하는 데 필요한 모든 정보를 제공합니다. 이 안내서는 리눅스

시스템 관리자와 사용자, 그리고 그 밖에 터보리눅스 서버 6.5의 사용법과 관리 방법을 알고 있어야 할 필

요가 있는 분들을 위해 작성되었습니다.

주 본 안내서는 최신 강화된 기능 및 변경 사항에 관한 정보가 담겨 있는 <릴리스 정보>와 함께 이용하

셔야 합니다.

<릴리스 정보>는 Companion CD의 /docs/en/RELEASE_NOTES 에 있습니다.

일러두기

본 안내서에서는 글꼴과 관련하여 다음과 같은 약속이 사용됩니다.

• 본문의 굵은 글꼴은 명령어, 옵션, 매개변수, 사용자 입력 등을 나타냅니다.

• 본문의 이탤릭체 글꼴은 다음 항목을 나타냅니다.

• 변수 이름, 디렉터리 이름, 파일 이름

• URL (웹사이트 이름)

• 전자메일 주소

• 단어 강조 (처음 나올 때)

• 본문의 대문자 이니셜은 GUI 상에 표시되는 버튼, 메뉴 항목, 옵션 등을 나타냅니다.

• 본문에서 각괄호 < > 안에 대문자로만 표기된 항목은 텍스트 기반 설치 화면에 표시되는 키, 메뉴 항

목, 옵션 등을 나타냅니다.

• Bold monospace (Courier) 글꼴은 단말기 화면에서 사용자가 입력한 명령어 라인을 나타냅니

다.

서 문

터보리눅스 서버 사용자 안내서 xii

• Italic bold monospace (Courier) 글꼴은 사용자가 입력하는 문자열에 대한 설명 이름

을 나타냅니다. 예를 들어 password는 "password "라는 문자열 자체가 아니라 사용자가 입력하

는 비밀번호를 가리킵니다.

• Regular non-bold monospace 글꼴은 단말기 화면에 표시되는 시스템 응답을 나타냅

니다.

• 시스템 응답에 나타나는 각괄호 < > 안에 보통 모노스페이스 글꼴로 표기된 항목은 시스템이 실제 문

자열로 대체하게 될 문자열에 대한 설명 이름을 나타냅니다. 예를 들어 <host_address>는

192.168.1.10처럼 표시될 수 있습니다.

• 겹 따옴표(“ ”)는 “메시지 문자열”을 포함합니다.

연락처

저희 제품과 문서의 어떤 내용에 대해서라도 여러분의 귀중한 피드백을 보내주시기 바랍니다. 저희는 여

러분의 의견을 귀담아 듣습니다. [email protected]으로 전자메일을 주십시오.

기술 지원

터보리눅스는 제품의 원 구매자에게 60일간의 전자메일 설치 지원을 무료로 제공합니다. 이 지원을 받으

시려면 당사 웹사이트 http://www.turbolinux.co.kr/에서 여러분의 터보리눅스 제품을 등록하시

면 됩니다. 등록 시에는 터보리눅스 서버 6.5 CD-ROM 케이스에 있는 제품 등록번호가 필요합니다.

지원 기간은 제품을 등록하는 즉시 개시됩니다.

터보리눅스 서버 사용자 안내서 1-1

터보리눅스 서버 보안

최근까지만 해도 인터넷은 주로 학술 및 연구 목적으로 이용되었습니다. 최신 기술과 관련한 전달 매체로

이용되기도 했지만 그 역할은 미미했습니다. 또한, 전달 속도나 처리 능력 등에 한계가 있었기 때문에 보

안 문제에는 거의 관심이 없었습니다. 하지만 최근에 네트워크 기술이 발전하고 사용자가 증가한 데 힘입

어 인터넷은 전문가가 아닌 사람들의 일상생활과 연결된 매체로 급속히 성장하고 있습니다. 이와 더불어

리눅스는 인터넷의 지배력을 점점 더 넓혀가는 운영체제의 하나로 자리잡았습니다. 이와 같은 사실을 생

각할 때, 리눅스 환경의 보안은 소홀히 다루어질 수 없는 문제입니다.

리눅스는 UNIX를 기반으로 한 다른 운영체제와 마찬가지로 인터넷 기술을 위한 지원이 포함되어 있습니

다. 리눅스의 강점 중 하나는 유연성입니다. 보안 문제에 관한 한 이것은 축복인 동시에 저주가 될 수 있습

니다. 하지만 리눅스를 운영하는 관리자가 필요한 사항을 이해하고 있다면 매우 높은 수준의 보안을 확보

할 수 있습니다.

이 장에서는 여러분이 알고 있어야 할 보안 문제를 다루고 그것이 터보리눅스와 어떤 관련이 있는지에 대

해 설명합니다.

제 1 장

터보리눅스 서버 보안

터보리눅스 서버 사용자 안내서 1-2

보안이란?

컴퓨터 시스템이나 컴퓨터 네트워크에서 보안이라고 하면 기본적으로 다양한 컴퓨터에 저장되어 있거나

전송중인 데이터에 대한 불법 액세스를 막기 위해 취해지는 조치를 의미합니다. 데이터를 완전한 상태로

유지하고 삭제를 방지하기 위해서는 보안 조치가 절대적으로 필요합니다. 이 절에서는 보안 개념의 이해

를 돕기 위해 다음 주제가 다루어집니다.

• 가정 보안

• 컴퓨터 보안

• 터보리눅스 보안

가정 보안

시스템 보안을 거론하게 되면 방화벽, 암호, 보안 구멍, 불법 액세스 따위의 낱말들이 먼저 떠오릅니다. 하

지만 이 낱말들은 대처 방법이나 사건을 가리킬 뿐입니다. 가장 중요한 문제는 “무엇을 보호하고자 하는

가? ”하는 것입니다. 컴퓨터니 네트워크니 하는 전문 용어는 제쳐두고 여러분 주변의 일을 생각해 보십시

오. 예를 들어 여러분은 왜 집에 자물쇠를 채울까요? 아마도 “열쇠가 있으니까”라고 대답하지는 않을 겁니

다. 대문을 잠그는 것은 집에 소중한 물건이 있는데 이것이 도난 당하거나 파괴되기를 원치 않기 때문입니

다. 다음 주제를 중심으로 가정 보안에 대해 생각해보시기 바랍니다.

• 요주의 대상: 집 안에 있는 인명과 재산

• 위협: 화재, 침입, 도둑, 속임수

• 대처 방법: 자물쇠, 경보, 감시견, 쥐약

이 항목들을 모두 점검했다면 이제 전략에 관해 논의해 보기로 하지요. 자물쇠를 채우는 일과 관련해서는

가령, 집에 아무도 없는 경우, 어린이 혼자 있는 경우, 낮 시간, 밤 시간 등등 여러 가지 시나리오를 생각할

수 있습니다. 당연히 상황에 가장 알맞은 방법을 택해야 합니다.

보안이란?

터보리눅스 서버 사용자 안내서

1-3

보안 정책을 궁리할 때 가장 흔한 함정은 “큰 것은 작은 것을 포함할 것”이라는 생각입니다. 백 달러짜리

시계를 보호하는 데 천 달러를 쓸 사람이 있겠습니까? 이런 과도한 접근방식은 돈만 낭비하고 보안 자체

는 오히려 약화시키는 원인이 되기도 합니다. 여러분은 시계를 넣고 꺼낼 때마다 금고를 열어야 할 것입니

다. 그러다 나중에는 게을러져서 금고를 잠그는 일을 아예 잊어버리는 수가 있습니다. 그러므로 현명하게

다음 지침을 따르시기 바랍니다.

• 대상물의 가치보다 더 많이 투자하지 말 것.

• 맹목적으로 편리함을 희생하지 말 것.

이제 이런 점들을 염두에 두고 집에 보안 조처를 취했습니다. 하지만 아직도 마음이 놓이지 않습니다. 자

물쇠가 낡거나 고장 날 지도 모르고 열쇠를 잃어버릴 수도 있습니다. 보안은 끊임없는 경계를 요구합니다.

여러분은 정기적으로 보안 정책의 효율성을 재평가하여 새로운 필요성에 따라 정책을 변경하고, 경우에

따라서는 보호하고자 하는 대상을 재정의해야 합니다.

컴퓨터 보안

컴퓨터 보안 역시 가정 보안과 같은 매일매일의 관심사입니다. 대부분의 가정 보안은 상식의 영역에 속하

기 때문에 정교하고 체계적인 방식으로 생각할 필요는 없습니다. 반대로 컴퓨터의 경우는 전문 용어와 기

술적 문제로 인한 어려움 때문에 단일하고 일관된 대처가 불가능할 경우가 있습니다. 따라서 회사와 학교

등을 비롯한 단체의 실질적인 보안 계약을 분명히 해두는 것이 중요합니다. 이 계약은 이러한 단체들의 보

안 정책이 됩니다. 보안 정책을 수립할 때는 다음 사항에 각별히 유의할 필요가 있습니다.

• 대상, 위협, 대처 방법

• 책임과 권한

• 법규

• 보안 정책 자체

터보리눅스 서버 보안

터보리눅스 서버 사용자 안내서 1-4

대상, 위협, 대처 방법

대상은 데이터와 컴퓨터 자원의 두 가지 주된 범주로 나뉩니다.

위협을 구분하는 방식으로는 여러 가지가 있습니다. 예를 들어, 어떤 일의 고의성 여부를 가리거나 물리적

인 위협인지 지적인 위협인지를 구분할 수 있습니다.

구체적인 기술적 세부사항에 너무 의존하지 말고 대처 방법을 수립하여야 합니다.

책임과 권한

기술적 측면에서 보면 계정을 설정하거나 삭제하는 일과 같이 일상적인 작업이 있는가 하면 로그 감시 같

은 특수 임무도 있습니다. 전체 운영에 대한 권한과 그에 따른 책임 영역이 분명히 명시되어야 합니다.

법규

다른 사람의 메일을 읽거나 로그를 점검하는 것과 같은 행위는 프라이버시의 침해로 간주될 수 있습니다.

법률 위반을 방지하는 데 도움이 되는 법률적 대비책과 통제 수단이 분명히 명시되어야 합니다.

보안 정책

보안 정책을 관리하는 방법과 책임의 소재를 미리 정해야 합니다.

보안 정책은 하나의 계약입니다. 단체의 일반적인 상황과 각 사용자가 속한 상황이 고려되어야 하며, 관련

된 모든 당사자의 합의가 반영되어야 합니다. 모든 사항을 포괄하는 완전한 보안 정책이란 존재하지 않지

만 가능한 한 포괄적이 되도록 노력하여야 합니다.

보안이란?

터보리눅스 서버 사용자 안내서

1-5

리눅스 보안

리눅스는 UNIX를 기반으로 하고 있기 때문에 UNIX용으로 개발된 보안 개념과 기법은 리눅스에 적용될

수 있습니다. 이 절에서는 리눅스에 국한된 영역에 초점을 맞춥니다.

• 바이너리 배포

• PC

• 소스 공개

• 사용자의 폭발적 증가

바이너리 배포

무료 소프트웨어를 포함하여 리눅스 배포판에 들어 있는 대부분의 프로그램은 컴파일된 바이너리 포맷으

로 배포됩니다. 이것은 소프트웨어 보안 문제가 발견되고 해결된 시간과 새 바이너리가 담긴 디스크가 고

객에게 전달되는 시간이 일치하지 않는다는 것을 의미합니다. 또한, 하나의 바이너리가 재배포 되면 문제

점도 재배포 된다고 보아야 합니다. 이때 보안 구멍도 함께 재배포되므로 서버 보안에는 좋지 않을 수 있

습니다.

PC

리눅스는 대개의 경우 PC에 설치됩니다. 하드웨어 존속성에 대해서는 여러 가지 의견이 있지만 한 가지

확실한 것은 보통 PC는물리적 액세스에 특히 취약하다는 사실입니다. PC를 열고 하드디스크를 꺼내거나

PC를 통째로 훔쳐갈 수도 있습니다. 가령 서버를 위한 랙 마운트를 구입한다든지 하는 식으로, 처음부터

하드웨어 옵션을 주의 깊게 선택하는 것이 중요합니다.

소스 공개

어떤 사람은 소스 코드를 일반에게 공개하면 보안 구멍을 이용하기가 쉽다고 생각합니다. 하지만 정말 그

럴까요? 대답하기 전에, 최근에 발견되어 심각한 문제를 일으킨 보안 구멍들 대부분이 개방 소스와 무관

하다는 사실을 잊지 마시기 바랍니다. 사실상 일반에게 노출될수록 보안 구멍을 빨리 발견할 수 있고, 소

스가 공개되어 있다는 바로 그 이유 때문에 전세계의 프로그래머와 시스템 관리자들이 그에 대한 패치를

신속하게 제공할 수 있는 이점이 있다고 볼 수 있습니다.

터보리눅스 서버 보안

터보리눅스 서버 사용자 안내서 1-6

사용자의 폭발적 증가

리눅스 사용자의 수와 종류는 날로 증가하고 있습니다. 다양성이 증대함에 따라 포괄적인 보안 전략을 유

지하기가 점점 어려워지고 있습니다. 또한 사용자의 수가 증가할수록 불순한 의도를 지닌 사람들이 늘어

날 가능성도 그만큼 커집니다.

터보리눅스 서버 6.5의 정책

터보리눅스 서버는 처음부터 서버로 운영할 목적으로 제작된 시스템입니다. 하지만 서버라는 낱말 하나만

으로는 어떤 종류의 서버(예를 들어 메일 서버, 파일 서버, 네임 서버, 데이터베이스 서버 등)를 가리키는

지 알 수 없습니다. 더구나 리눅스이기 때문에 워크스테이션으로 운영될 수도 있습니다. 일단 (작업의 성

격에 따라 ) 서버 유형을 결정한 뒤에 그에 알맞은 보안 정책을 검토하는 것이 좋습니다.

앞서 말했듯이 보안 정책에는 특정한 단체의 일반적인 상황과 각 사용자가 속한 상황이 반영되어야 합니

다 터보리눅스 서버의 기본이 되는 정책을 이해하면 보다 간결하고 안전한 시스템을 구축할 수 있을 것입

니다.

터보리눅스 서버와 관련한 계획상의 모든 문제를 다루는 것은 본 문서의 범위를 벗어나는 일이므로, 여기

서는 보안과 직결된 가장 중요한 문제와 자주 제기되는 질문만을 다루기로 합니다.

터보리눅스 서버 6.5의 정책

터보리눅스 서버 사용자 안내서

1-7

“모두 거부” 방식

보안 정책을 수립하는 데는 '모두 거부’와 '모두 허용’의 두 가지 접근 방식이 있습니다. '모두 거부’는 일단

모든 것을 거부한 다음 필요한 것을 선택적으로 허용하는 것입니다. '모두 허용’은 일단 무엇이든 받아들인

다는 태도를 취한 다음 필요하지 않은 것을 선택적으로 거부하는 것입니다. 대체적으로 '모두 거부’가 안전

성은 더 높지만 작업은 '모두 허용’이 더 간단합니다.

터보리눅스 서버는 설치되는 즉시 '모두 거부’ 방식을 취합니다. 예를 들어, 슈퍼서버 inetd 에 의해 시작된

모든 서비스가 기본값으로 중단되고 로컬 호스트를 제외한 모든 액세스를 거부하도록 hosts.allow 와

hosts.deny가 구성됩니다.

계정

계정 관리는 계정을 발급하고 삭제하거나 유효 기간을 설정하는 등의 규칙에 가까운 절차를 처리합니다.

여기에는 또한 비밀번호 암호화 포맷이나 로그인 포맷과 같은 기술적인 문제가 포함됩니다. 통상적으로

터보리눅스 서버에서는 쉐도우 비밀번호가 이용되므로 암호화된 비밀번호는 /etc/passwd 에 저장되지

않고 그대신 /etc/shadow 파일에 포함됩니다. 이전에는 쉐도우 비밀번호를 이용할 때 루트(setuid )에

서 화면 잠금 및 기타 프로그램을 실행해야 했지만 이제 터보리눅스에서는 Linux -PAM(리눅스용 플러그

가능 인증 모듈)을 이용하기 때문에 이 과정이 필요치 않습니다. PAM에 관한 자세한 내용을 보려면

p a m 매뉴얼 페이지를 참조하시기 바랍니다.

터보리눅스에는 비밀번호 만료 기간을 정하는 기준이 없습니다. 이 작업은 각 단체의 특정한 규칙에 직접

좌우되기 때문에 전반적인 기준을 수립하기가 어렵습니다. 설정은 chage 명령어를 이용하여 변경할 수

있습니다. 자세한 내용을 보려면 chage(1) 매뉴얼 페이지를 참조하시기 바랍니다.

계정 정보를 너무 많이 등록하는 것은 사용자의 프라이버시에 대한 침해가 될 가능성이 있습니다. 계정 등

록은 로그인 기록에만 한정하도록 하는 것이 터보리눅스의 기본 방침입니다. 처리 계정은 accton 명령어

를 이용하여 제어할 수 있습니다. 자세한 내용을 보려면 accton(8) 매뉴얼 페이지를 참조하시기 바랍니다.

터보리눅스 서버 보안

터보리눅스 서버 사용자 안내서 1-8

로그

어떤 보안 정책에 있어서나 로그가 유지되는 시간을 설정하는 것이 중요합니다. 터보리눅스 서버 6.5는 로

그 파일이 매주마다 순환하고 선행하는 4세대에 대해 유지되도록(총 5주) 설정됩니다. 이와 더불어 로그

인 기록 wtmp는 매달마다 순환되고 선행하는 1세대에 대해 유지됩니다(총 2개월).자세한 내용을 보려면

logrotate(8) 매뉴얼 페이지를 참조하시기 바랍니다.

루트 권한 및 허가

루트 로그인은 가상 콘솔에만 제한됩니다. telnet 이나 ssh (secure shell)에 의한 루트로의 직접 원격 로그

인은 허용되지 않습니다. 시리얼 콘솔(t t y)과 같은 특정 단말기에서 로그인하는 방법을 보려면 securetty

(5) 매뉴얼 페이지를 참조하시기 바랍니다.

로그인에 대한 제한을 모두 제거하려면 /etc/pam.d/login에서 다음 행의 모두에 있는 주석 표시

를 삭제하십시오.

auth required /lib/security/pam_securetty.so

업데이트

소프트웨어 업데이트는 기능 추가, 성능 향상 그리고 버그 수정을 위해 수행됩니다. 소프트웨어를 업데이

트하기 전에는 업데이트가 꼭 필요한지, 필요하다면 무엇이 최선의 방법인지를 검토해야 합니다. 네트워

크를 통해 패키지를 받을 때는 내용을 확인하는 일에 각별히 유의할 필요가 있습니다. 패키지에는 ‘트로이

의 목마’ 바이러스가 들어있을지도 모르니까요.

터보리눅스를 업데이트하는 방법을 보려면 아래의 사이트를 방문하시기 바랍니다.

http://www.turbolinux.co .kr/support,

http://www.turbolinux.co .kr/security

보안 관련 단체에 관한 추가 정보

터보리눅스 서버 사용자 안내서

1-9

여기에는 다운로드한 파일을 설치하기 전에 md5sum 명령어로 내용이 정확한지 확인할 수 있는 패키지

파일을 위한 M D 5 정보가 함께 실려 있습니다.

보안 관련 단체에 관한 추가 정보

이 절에서는 다양한 보안 관련 단체의 목록을 소개합니다. 단, 이것은 완벽한 목록은 아닙니다.

CERT/CC

불법 액세스 사건을 “컴퓨터 보안 사건”이라고 부릅니다.

이런 유의 사건이 발생하면 컴퓨터 보안 사건 대응 팀(CSIRT)에 연락해서 정보와 조언을 구할 수 있습니

다. 컴퓨터 보안 사건 대응 팀의 전세계 서비스는 http://www.csirt.ws/에서 제공됩니다.

CERT/CC(www.cert.org)는 세계적인 명성을 가지고 있습니다. CERT/CC가 발행하는 CERT 권

고안은 보안 관련 문제에 관한 가장 권위 있는 정보원입니다.

특정한 국가, 지역, 또는 단체를 겨냥한 CSIRT도 있습니다.

일례로, CIAC(www.ciac.llnl.gov), CERTCC-KR (www.certcc.org.kr),

AUSCERT(www.auscert.org.au) 등을 들 수 있습니다.

보안 관련 웹사이트

이 절에서는 다양한 보안 관련 웹사이트의 목록을 소개하고 각각에 대해 간단히 설명합니다.

터보리눅스 서버 보안

터보리눅스 서버 사용자 안내서 1-10

웹사이트 설명

http://www.first.org/ FIRST는 전세계의 CSIRT들을 위한 포럼입니다.

이 사이트의 목적은 CSIRT팀간에 정보를 공유하고 보안

사건과 관련한 협력을 증진하는 것입니다.

http://www.rfc-editor.org/ RFC(Request for Comments) 문서는 주로 보안 문제를

다룹니다. RFC 2196(사이트 보안 안내서)과 RFC 2504(사

용자 보안 안내서)는 안전한 컴퓨팅 환경을 구축하는 데 특

히 도움이 됩니다.

http://www.w3.org/Security/Faq/www-security-faq.html

World Wide Web 보안 FAQ사이트입니다.

http://www.netscape.com/products/security/resources/notes.html

이 사이트에는 넷스케이프와 자바스크립트의 보안 결함을

위한 픽스와 함께 넷스케이프가 제공하는 보안 노트가 실려

있습니다.

터보리눅스 서버 사용자 안내서

2-1

시스템 관리

터보리눅스 서버 6.5를 위한 시스템 관리는 다양한 설정 파일을 설정하고 명령어 행을 이용함으로써 이루

어집니다. 터보리눅스 서버 6.5는 또한 구성 작업을 수행하기 쉽게 해주는 Turbotools라는 대화식 구성

프로그램을 제공합니다.

이 장에서는 먼저 슈퍼서버, 서버, 데몬 등에 대해 설명한 다음 시스템 관리 작업에 사용하는 다양한

config파일과 명령어를 각각에 해당되는 Turbotool의 정보 및 스크린 샷과 함께 설명합니다.

제 2 장

시스템 관리

터보리눅스 서버 사용자 안내서 2-2

슈퍼서버 및 서버 프로그램

이 절에서는 터보리눅스에서 슈퍼서버를 조직하는 방법을 소개합니다.

슈퍼서버

슈퍼서버는 보통 서버를 필요에 따라 사용 가능/불능으로 만들거나 가동시킴으로써 제어합니다. 슈퍼서버

는 또한 “인터넷 슈퍼 서버”나 “인터넷 서비스 데몬” 등으로도 불립니다.

예를 들어 f tp나 telnet 같은 서버 프로그램의 관리 또는 통제는 이들을 필요에 따라 가동하도록 슈퍼서버

를 지정함으로써 수행됩니다. 이 슈퍼서버 중의 하나가 inetd입니다.

터보리눅스는 portcfg 와 serviceboard 라는 두 가지의 편리한 툴을 제공합니다. 이들은 슈퍼서버를 구성

하고 관리하는 일을 도와줍니다. 자세한 내용은 2-17쪽의 portcfg 절과 2-33쪽의 serviceboard 절을

참조하시기 바랍니다.

서버

리눅스(또는 유닉스)에서 사용 가능한 여러 가지 네트워크 기능들은 실제로 하나의 컴퓨터 상에서 실행되

는 클라이언트 프로그램들과 일반적으로 다른 컴퓨터(서버) 상에서 실행되는, 원하는 기능을 제공하는 서

버 프로그램 간의 통신을 통해 구현됩니다. 요구를 제시하고 서비스를 받는 쪽을 클라이언트 프로그램이

라고 하고 요구를 받고 서비스를 제공하는 쪽을 서버 프로그램이라고 합니다. 예를 들어 FTP 클라이언트

는 w u- ftp나 proftpd 같은 서버 프로그램을 호출하여 FTP 기능을 이용할 수 있도록 만듭니다.

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-3

데몬

데몬(daemon)은 유닉스에서 서버 프로그램을 칭하는 용어입니다. 이 프로그램들은 영구적으로 상주하면

서 서버 컴퓨터 상에서 실행되며 필요할 때만 작동됩니다.

예를 들어 ftpd 와 telnetd 는 각각 클라이언트 프로그램인 f tp와 t e lne t을 위한 데몬입니다.

대부분의 데몬들은 프로그램 이름 끝에 ‘d’자가 붙어 있습니다.

인터넷에서는 프로토콜이 정확히 정의되지만 반면에 그 실제적인 수행은 미리 정의되지 않습니다. 그러므

로 예를 들어 동일한 F T P 기능이 f tp 또는 Proftp 에서 수행될 수 있습니다. 마찬가지로 서버의 경우에도

proftpd 같은 다양한 프로그램들이 있습니다.

슈퍼서버 모드와 단독 모드

서버 프로그램(데몬)은 슈퍼서버의 관리나 통제 없이 직접 시동할 수 있습니다. 서버 프로그램을 직접 시

동할 때는 “단독 모드”로 실행한다고 하고, 슈퍼서버를 통해 서버 프로그램을 시동할 때는 “슈퍼서버 모

드”로 실행한다고 합니다.

슈퍼서버의 기능과 역할

다음 항목들은 슈퍼서버의 기능과 역할 및 이점에 대한 설명입니다.

• 시스템의 부하를 줄여줍니다.

단독 모드로 시동된 서버 프로그램 각각은 반드시 메모리에 상주하게 되는데 이는 고용량의

메모리를 필요로 합니다. 하지만 이 서버 프로그램들이 모두 계속해서 동시에 실행되어야 할

이유는 없습니다. 이 프로그램들이 요구에 따라 시동되고 작업을 끝낸 뒤에는 대기 상태로 복

귀한다면 메모리가 독점되지 않습니다. 슈퍼서버가 계속 가동되어 이 서버 프로그램들의 대

리인 역할을 하면서 필요할 때만 프로그램을 실행한다면 메모리의 용량과 시스템 부하를 줄

일 수 있을 것입니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-4

• 시스템 관리의 부담을 줄여줍니다.

단독 모드로 시동되는(그리고 정지되는) 서버 프로그램 각각은 개별적인 관리를 필요로 합니

다. 이렇게 되면 시스템 관리자는 각 서버 프로그램이 제공하는 서비스 각각을 개별적으로 처

리해야만 하므로 그만큼 할 일이 늘어나게 됩니다. 반면에 슈퍼서버를 이용하면 단일점 관리/

제어가 가능하게 됩니다.

• 시스템의 여분과 안정성을 증진시켜 줍니다

슈퍼서버 모드로 실행되는 특정한 서버 프로그램이 어떤 이유로든 기능을 제대로 수행할 수

없을 경우에는 다음 요청이 있을 때 다시 시동됩니다. 이는 시스템의 여분과 안정성을 향상시

켜줍니다.

매일같이 새로운 서비스가 쏟아져 나와 새 서버 프로그램을 만드는 일이 불가피해진 오늘날, 이 모든 프로

그램들을 개별적으로 관리하려 한다면 비현실적일 것입니다. 이들을 모두 함께 제어하는 슈퍼서버의 능력

이 절실히 요구되고 있습니다.

실제로, 슈퍼서버가 설치된 리눅스와 FreeBSD 에서는 대부분의 프로그램이 슈퍼서버 모드로 시동되도록

구성됩니다.

슈퍼서버의 단점

단점을 들자면, 요청이 있을 때마다 서버 프로그램을 시동하고 정지시키게 되면 실제로 다음과 같은 상황

에서 시스템 부하를 증가시킬 가능성이 있습니다.

• 무수한 접속 요청을 수신하는 서비스가 있을 경우

• 시동 시에 서비스를 개시하는 데 시간이 너무 많이 걸릴 경우

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-5

이런 특정한 서비스가 시스템에 부하를 줄 때는 단독 모드를 이용하여 시동하면 능률을 높일 수 있습니다.

전형적인 예로 무수한 접속 요청을 수신하게 될 가능성이 높은 웹 서버를 들 수 있습니다. 마찬가지 이유

로 Sendmail같은 메일서버는 종종 단독 모드로 실행됩니다. 따라서 작업에 알맞은 모드를 선택하는 것이

중요합니다.

inetd

가장 흔히 이용되는 슈퍼서버는 inetd입니다.

터보리눅스 서버 6.5 에서는 inetd가 표준 모듈이며 시스템이 부팅될 때 시동되도록 구성됩니다.

inetd의 기본 사항

시스템 부팅 시에, inetd 는 시동 스크립트 /etc/rc.d/init.d/inet로 시동됩니다.

inetd는 구성 파일 /etc/inetd.conf에 지정된 포트를 검사하고 접속 요청을 기다립니다. inetd 가 접속요청

을 수신하면 inetd.conf에설정되어있는포트에 알맞은 서비스를 결정하고 그 서비스를 제공하는 서버 프로

그램을 불러옵니다. inetd 가 시동한 서버 프로그램에 접속 요청이 전달되고 나면 inetd 는 표준 입력, 표준

출력 및 표준 오류로서 서비스 소켓을 시동합니다. 서버 프로그램이 종료되면 inetd는 다시 한번 포트를

검사합니다.

n a m e i n e t d

데몬 /usr/bin/inetd

구성 파일 /etc/inetd.conf

시동 스크립트 /etc/rc.d/init.d/inet

락 파 일 /var/lock/subsys/inet

시스템 관리

터보리눅스 서버 사용자 안내서 2-6

관련 파일 /etc/services

TCP/IP 서브시스템으로 이용 가능한 서비스 이름의 목록

및 그 각각의 포트 번호

/etc/protocols

프로토콜 이름 및 포트 번호의 목록

inetd 실행시간 옵션

inetd를 실행할 때 이 옵션들을 설정할 수 있습니다.

-d 디버그 모드를 켭니다.

-q queuelength

소켓 리슨 큐의 크기를 queuelength에 의해 지정된 값으로 설정합니다.

기본값은 128입니다.

/etc/inetd.conf 구성 파일

시동 시에 inetd프로그램은 기본값으로 구성 파일 /etc/inetd.conf가 되는 파일로부터구성 정보를 읽

어옵니다. 구성필드는 스페이스 문자나 탭 문자로 구분됩니다. 주석 행에는 각 행의 시작 부분에 우물 정

자[#]가 있습니다. 구성 파일 내의 각 행에는 다음과 같은 필드가 있습니다.

service_name socket_type protocol flag user server_path args

여기서, service name ftp, telnet등과 같은 서비스 이름을 가리킵니다. 유효한 호

스트 및 포트 이름의 목록이 /etc/services에 기록됩니다.

socket_type stream(스트림 형), dgram(데이터그램 형) 등과 같은 소

켓의 유형을 가리킵니다.

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-7

protocol /etc/protocols에저장되어 있는 유효한 프로토콜의 목록

에서 선택한 tcp, udp 등과 같은 사용 프로토콜의 유형

을 가리킵니다. Flag wait 또는 nowait 플래그를 위한 마커. dgram( 데이터그램)

형 소켓에만 적용됩니다.

wait 플래그는 요청/응답 교환이 이루어지는 동안 기다려야

한다는 것을 가리키며, nowait 플래그는 요청이 응답을 기

다릴 필요가 없다는 것을 가리킵니다

user root나 nobody 같은 사용자는 서비스에 액세스하는 사용

자의 허가 수준을 가리킵니다. server_path 실행될 서버 프로그램의 전체 경로명

args 서버 프로그램 시동 이름과 server_path에 지정된 옵션

시스템 관리

터보리눅스 서버 사용자 안내서 2-8

다음 명령어를 실행하면 /etc/inetd.conf의 내용을 간략히 정리한 목록이 표시됩니다.

# less /etc/inetd.conf

#in.prof stream tcp nowait root /usr/sbin/tcpd in.proftp

#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

#gopher stream tcp nowait root /usr/sbin/tcpd gn

#shell stream tcp nowait root /usr/sbin/tcpd in.rshd

#login stream tcp nowait root /usr/sbin/tcpd in.rlogind

#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd

#talk dgram udp wait root /usr/sbin/tcpd in.talkd

#ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd

#dtalk stream tcp nowait nobody /usr/sbin/tcpd in.dtalkd

#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d

#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

#imap stream tcp nowait root /usr/sbin/tcpd imapd

#uucp stream tcp nowait root /usr/sbin/tcpd imapd

#tftp dgram udp wait root /usr/sbin/tcpd in.tftpd

#bootps dgram udp wait root /usr/sbin/tcpd bootpd

#finger stream tcp nowait root /usr/sbin/tcpd in.fingered

#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd

#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx

#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet

#time stream tcp nowait nobody /usr/sbin/tcpd in.timed

#time dgram udp wait nobody /usr/sbin/tcpd in.timed

#auth stream tcp nowait nobody /usr/sbin/ininet in.identd -l -e -o

#swat stream tcp nowait.400 root /usr/sbin/swat swat

inetd의 보안 정책

터보리눅스에서는 안정된 셋업을 위해 /etc/inetd.conf의 기본값들이 최적의 구성으로 설정되어 있으

므로 사용 가능한 데몬을 모두 실행할 필요가 없습니다. 각 서비스는 앞에 우물 정자[#]가 있는 행에 주석

이 붙어 있습니다.

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-9

기본값 inetd 설정에 변경 내용을 적용하기 (재시작)

inetd.conf을 변경하거나 편집하더라도 새로운 설정이 적용되지 않습니다.

변경한 내용이 적용되도록 하려면 먼저 현재 실행중인 inetd 를 kill시킨 다음 inetd를 재시작하거나 재로드

하여야 합니다. 이를 위해서는 다음 명령어 중 하나를 이용하면 됩니다.

# killall -HUP inetd # /etc/rc.d/init.d/inet restart # /etc/rc.d/init.d/inet reload

구성 예

아래의 예는 proftp를 이용한 서비스 허가를 설정하는 데 필요한 단계를 보여줍니다. 이 예는 서버 호스트

IP주소가 192.168.1.52이고 클라이언트 IP주소가 192.168.1.53인 단일 클라이언트 호스트 접속을 통해

proftp 가 허가를 제공하는 것으로 가정한 것입니다.

1. 적당한 텍스트 편집기를 이용하 여 /etc/inetd.conf 파일을 열고 다음 행을 찾습니다.

#ftp stream tcp nowait root/usr/sbin/tcpd in.proftp

2. 다음과 같 이 되도록 맨 앞의 파운드 기호 문자를 삭제합니다.

ftp stream tcp nowait root/usr/sbin/tcpd in.proftpd

3. 다음 명령어를 입력하여 전 단계에서 변경한 내용이 적용되도록 합니다. # /etc/rc.d/init.d/inet restart

4. /etc/host.allow 파일의 끝에 다음 행을 삽입합니다.

proftpd: 192.168.1.53 TCP_Wrapper는 서비스 허가를 위해 /etc/hosts.allow 파일을 참고합니다.

proftpd:192.168.1.53 행은 호스트가 proftpd 서비스에 대한 허가를 받았음을 가리킵니다.

TCP Wrapper에 관한 자세한 내용을 보려면 2-11쪽의 TCP_Wrapper (tcpd)를 참조하시기

바랍니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-10

시동 스크립트 명령어 행 옵션 시동 스크립트 /etc/rc.d.init.d/inet에는 다음과 같은 명령어 행 옵션이 포함되어 있습니다.

명령어 행 함수

/etc/rc.d/init.d/inet start inetd를 시작합니다.

/etc/rc.d/init.d/inet stop inetd를 중지시킵니다.

/ etc/rc.d/init.d/inet status inetd의 상태를 표시합니다.

/etc/rc.d/init.d/inet restart inetd를 재시작합니다.

/etc/rc.d/init.d/inet reload inetd를 재로드합니다.

시동 스크립트를 검사해보면 알 수 있지만 재시작과 재로드는 동일한 동작을 수행합니다.

inetd 동작 확인

터보리눅스는 기본값으로 inetd가 실행되도록 설정되어 있습니다. 다음과 같이 ps명령어를 이용하여 그

상태를 확인할 수 있습니다.

ps ax | grep inetd

400 ? S 15:20 0:00 inetd

inetd가 제대로 실행되면 위와 유사한 메시지가 나타납니다. 위에 표시된 메시지를 볼 수 없다면 inetd가

제대로 실행되고 있지 않거나 설치되지 않은 것입니다. 또한 serv iceboard를 이용하여 inetd가 실행되고

있는지 여부를 확인할 수 있습니다. inetd 항목 옆에 체크 표시가 있으면 실행되고 있는 것입니다. 2-33

쪽의 serviceboard를 참조하시기 바랍니다.

inetd를 재시작하려면 다음 명령어를 입력하면 됩니다.

/etc/rc.d/init.d/inet restart

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-11

TCP_Wrapper (tcpd)

TCP_Wrapper를 슈퍼서버라고 부를 수 있는지에 대해서는 여러 가지 견해가 있습니다. 다음 사항을 고려

한다면 TCP_Wrapper는 분명히 슈퍼서버라고 할 수 있을 것 같습니다.

• 다른 슈퍼서버들처럼 TCP_Wrapper는 다양한 종류의 서버 프로그램을 관리하고 제어합니다.

• 관계성이라는 관점에서 볼 때 TCP_Wrapper는 inetd와 같은 다른 슈퍼서버에 밀접한 관계로

연결되어 있습니다.

TCP_Wrapper의 기본 사항

TCP_Wrapper 또는 tcpd는 inetd가 클라이언트 요청을 수신할 때 실행됩니다.

TCP_Wrapper는 타겟 서버 프로그램을 실행하기 위한 액세스 관리 제어장치를 취급합니다. tcpd가 시동

될 때는 서비스 허가 파일 /etc/hosts.allow와 허가 거부 파일 /etc/hosts.deny를 읽어옵니다. 표 2.1

은 TCP_Wrapper 파일들을 보여줍니다.

표 2.1 TCP_Wrapper

이름 TCP_Wrapper

데몬 /usr/sbin/tcpd

기본값 파일 /etc/hosts.allow

/etc/hosts.deny

시스템 관리

터보리눅스 서버 사용자 안내서 2-12

구성 파일

/etc/hosts.allow파일의 포맷은 다음과 같습니다.

[daemon_list] : [host_list] : [command]

[daemon_list] 서비스 허가를 받을 데몬의 이름을 열거합니다. 콤마로 분

리된 복수의 이름을 사용할 수 있습니다.

[host_list] 서비스 허가를 받을 호스트 이름이나 IP 주소를 열거합니다.

콤마로 분리된 복수의 이름을 사용할 수 있습니다. 도메인

과 네트워크도 단독으로 또는 와일드카드와 함께 지정될 수 있습니다. 동일한 도메인과 네트워크 이름도 허용됩니다.

이들을 모두 하나의 리스트에 함께 포함시킬 수 있습니다.

[command] [daemon_list]에 의해 호출된 서버 프로그램 이름과

달리, t cpd 명령어를 실행할 때 각자가 절대 경로 이름을

지정합니다.

/etc/hosts.deny 파일의 포맷은 아래에 나타난 것처럼 /etc/hosts.allow와 동일합니다.

[daemon_list] : [host_list] : [command]

[daemon_list] 서비스 허가를 거부하고자 하는 데몬의 이름을 지정합니다.

콤마로 분리하여 복수의 이름을 지정할 수 있습니다.

[host_list] 서비스 허가를 거부할 호스트 이름이나 IP 주소를 열거합니

다. 콤마로 분리된 복수의 이름을 사용할 수 있습니다. 콤마

로 분리하여 복수의 이름이나 IP주소를 지정할 수 있습니

다.

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-13

도메인과 네트워크도 단독으로 또는 와일드카드와 함께 지

정될 수 있습니다. 동일한 도메인과 네트워크 이름도 허용

됩니다. 이들을 모두 하나의 리스트에 함께 포함시킬 수 있

습니다.

서비스를 거부하고자 하는 각 호스트의 이름 또는 IP주소

를 지정합니다.

[command] [daemon_list]에 의해 호출된 서버 프로그램 이름과

달리, t cpd 명령어를 실행할 때 각자가 절대 경로 이름을

지정합니다.

[host_list]에서는 다음과 같은 기술자(descriptor)가 허용됩니다.

ALL 모두

LOCAL 점(.)을 포함하지 않는 이름을 가진 호스트

UNKNOWN 불분명하거나 알 수 없는 사용자 이름 또는 호스트 이름으

로 된 액세스

PARANOID 호스트 이름과 IP 주소가 다를 때

EXCEPT 예외

.domain domain을 포함하는 호스트 이름을 가진 호스트

(예: ns.example1.com은 도메인 네임 서버,

mail.example1.com은 메일 서버)

시스템 관리

터보리눅스 서버 사용자 안내서 2-14

192.168. 주소가 192.168.x.x인 호스트

192.168.0.0 225.225.255.240

IP 주소가 192.168.0.0 이고 서브셋 마스크가

255.255.255.240, 주소가 192.168.0.x인 경

우에 해당. 여기서 x는 0부터 15 까지의 값을 나타냄

tcpd 구성 파일 기본값

tcpd 구성 파일은 다음과 같은 순서로 데이터를 해석합니다.

1. hosts.allow에 의해 호스트 액세스가 허용되면 허가가 부여됩니다.

2. hosts.deny에 의해 호스트 액세스가 거부되면 허가는 거부됩니다.

3. 호스트의 허용 또는 거부가 지정되지 않으면 허가가 부여됩니다.

구성 파일 /etc/hosts.allow에서 기본값 설정을 보려면 다음 명령어를 입력합니다.

# less /etc/hosts.allow

# hosts.allow

# This file describes the names of hosts which

# are allowed to use the local INET services,

# as decided by the ‘/usr/sbin/tcpd’ server.

#

ALL : 127.0.0.1 :

ALL:127.0.0.1: 행은 호스트가 모든 서비스에 대해 허가를 받는 것을 가리킵니다.

수퍼서버 및 서버 프로그램

터보리눅스 서버 사용자 안내서

2-15

구성 파일 /etc/hosts.deny에서 기본값 설정을 보려면 다음 명령어를 입력합니다.

# less /etc/hosts.deny

# hosts.deny

# This file lists the names of hosts which

# are *not* allowed to use the local INET services,

# as decided by the ‘/usr/sbin/tcpd’ server.

ALL : ALL

ALL : ALL 행은 /etc/hosts.allow에 지정되지 않은 모든 프로그램에 대한 액세스를 거부합니다. 이

것은 시스템 보안을 강화시켜주는 수단의 역할을 합니다.

구성 예

/etc/hosts.deny의 기본값 구성을 변경할 필요는 없습니다. /etc/hosts.allow를 위한 몇 개의 구성

예가 아래에 소개됩니다.

서버 주소가 192.168.0.2이고 시스템 관리자가 주소가 192.168.0.3인 클라이언트 호스트에 모든 허가를

부여하고자 할 경우, /etc/hosts.allow는 다음과 같이 설정될 것입니다.

ALL:192.168.0.3:allow

호스트 192.168.0.x 에 대해서 ftp는 아래의 설정에 따라 /etc/hosts.allow를 통해 허가를 부여하게 됩

니다.

in.protpd: 192.168.0.:allow

구성 점검 및 확인

구성 점검 명령어는 tcpdchk입니다. 구성을 테스트할 때는 tcpdmatch 명령어를 이용합니다. 이 명령어

들의 전체 경로(예: /usr/sbin/)를 이용하 여 두 명령어를 모두 실행합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-16

hosts.allow와 hosts.deny를 점검하는 외에도, tcpdchk 는 inetd.conf의 설정을 검사하여 충돌

여부를 확인합니다.

# tcpdchk

warning:/etc/hosts.allow,line14:in.ftpd:service

possibly not wrapped

이것은 inetd.conf의 in.ftpd가 TCP_Wrapper(tcpd)에서 정확하게 구성되지 않 았다는 tcpdchk의 경고

입니다.

tcpmatch 명령어는 여러 가지 가능한 경우들을 시뮬레이트하여 경고를 발합니다.

호스트 192.168.0.3으로 in.ftpd의 작동을 테스트하려면 다음 명령어를 입력합니다.

# tcpdmatch in.ftpd 192.168.0.3

client: 192.168.0.3

server: process in.ftpd

matched: /etc/hosts.allow line 14

option: allow

access: granted

client 요청을 보 낸 클라이언트를 가리킵니다. server 타겟 데몬을 표시합니다.

타겟 데몬은 요청이 보내져야 할 데몬 또는 서버입니다. matched 매치된 구성 파일 이름과 프로그램 라인 Option 매치된 구성 명령어 이름 Access 허가가 부여될 때 “granted”되고 허가가 거부될 때

“denied ”됩니다.

portcfg

터보리눅스 서버 사용자 안내서

2-17

portcfg

Turbotool portcfg는 inetd 나 TCP_Wrapper(tcpd) 같은 슈퍼서버를 구성할 때 이용됩니다. 이 툴을 시작

하려면 다음 명령어를 입력합니다.

# portcfg

portcfg Service List 화면(그림 2.1 참조)이 나타납니다.

그림 2.1 portcfg Service List

이 화면에서 데몬을 사용 가능 또는 불능으로 할 수 있습니다. 목록에서 원하는 데몬을 선택하고 Enter 를

눌러 사용 가능 또는 불능을 토글 방식으로 선택합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-18

그런 다음 '접속 테이블 편집'을 클릭하면 접속 제어 테이블 화면이 표시됩니다(그림 2.2 참조).

그림 2.2 접속 제어 테이블

이 화면에서 여러분은 hosts allow 또는 hosts deny 표의 설정을 통해 어떤 호스트에서 어떤 서비스를 실

행할 수 있도록 할지를 지정합니다. 처음 터보리눅스 서버 6.5를 설치할 때는 로컬 호스트에만 액세스가

허용됩니다.

호스트에 대한 액세스를 허용하려면 화면 상단에 있는 hosts.allow 부분을 이용하고, 액세스를 거부하

려면 화면 하단에 있는 hosts.deny 부분을 이용합니다.

portcfg

터보리눅스 서버 사용자 안내서

2-19

hosts.allow 영역에서 '추가'를 클릭하면 hosts.allow 화면이 표시됩니다(그림 2.3 참조).

그림 2.3 hosts.allow

이 화면에 표시되는 필드는 아래에 설명되어 있습니다.

데몬 목록 실행을 허용할 데몬의 이름을 입력합니다.

클라이언트 목록 허용할 클라이언트의 호스트 이름이나 IP 주소를 입력합니

다. 모두 허용하려면 All을 입력합니다.

옵션 목록 데몬이 시작될 때 사용하게 될 옵션을 입력합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-20

설정을 다 마치면 ‘확인’와 ‘테이블 저장’을 클릭하여 이전(접속 제어 테이블 ) 화면으로 복귀합니다.

마찬가지 방식으로 hosts.deny를 설정합니다.

마지막으로 ‘inetd 재시작’을 클릭합니다.

작업을 모두 마친 뒤에는 '종료'를 클릭합니다.

소프트웨어 패키지 설치 및 업그레이드하기

터보리눅스는 패키지 관리자로 RPM(Red Hat Package Manager)을 사용합니다. 이 관리자는 패키지

설치, 설치 해제, 업데이트, 검사 작업에 있어서 효과적인 관리 환경을 제공합니다. 이 관리자는 또한 패키

지들 간에 존재하는 상호 존속성을 관리합니다.

어떤 방식으로 패키지를 설치하든 간에 일부 패키지는 설치할 때 슈퍼유저가 필요하다는 점에 유의하여야

합니다.

패키지들은 터보리눅스 설치 CD의 /TurboLinux/RPMS에 들어 있습니다.

rpm 사용하기

rpm명령어는 다음과 같은 포맷으로 사용합니다.

$ rpm [options] [RPM package name]

자주 사용되는 옵션은 다음과 같습니다.

-i 설치

-U 업그레이드

-e 제거

-h 진행 상태를 우물 정자[#]로 표시합니다.

소프트웨어 패키지 설치 및 업그레이드하기

터보리눅스 서버 사용자 안내서

2-21

-v 자세한 디스플레이 (세밀하게 표시하려면 –h와 함께 사용합니다.)

-q 현재 어떤 패키지가 설치되고 있는지 확인하는 문의

아래에는 sendmail-8.9.3-16.i386.rpm을 이용한 다양한 시나리오가 제시됩니다.

가령 Sendmail이라는 패키지를 설치하려면 sendmail-8.9.3-16.i386.rpm이 들어 있는 디렉터리

에서 다음 명령어를 실행합니다.

# rpm -ivh sendmail-8.9.3-16.i386.rpm

가령 Sendmail이라는 패키지를 업데이트하려면 sendmail-8.9.3-16.i386.rpm이 들어 있는 디렉

터리에서 다음 명령어를 실행합니다.

# rpm -Uvh sendmail-8.9.3-16.i386.rpm

가령 Sendmail이라는 패키지를 설치 해제하려면 다음 명령어를 이용합니다.

# rpm -e sendmail

패키지에 어 떤 파일이 들어 있는지 보려면 다음 명령어를 실행합니다.

# rpm -ql sendmail

위의 명령어를 실행하면 다음과 같은 목록이 생성됩니다.

/etc/mail /etc/mail/access /etc/mail/aliases /etc/mail/mailertable /etc/mail/majordomo /etc/rc.d/init.d/sendmail /etc/sendmail.cf /etc/smrsh /usr/bin/hoststat /usr/bin/mailq /usr/bin/newaliases /usr/bin/purgestat /usr/bin/rmail /usr/lib/sendmail /usr/lib/sendmail.hf /usr/man/man1/mailq.1

시스템 관리

터보리눅스 서버 사용자 안내서 2-22

/usr/man/man1/newaliases.1 /usr/man/man5/aliases.5 /usr/man/man8/mailstats.8 /usr/man/man8/makemap.8 /usr/man/man8/praliases.8 /usr/man/man8/rmail.8 /usr/man/man8/sendmail.8 /usr/man/man8/smrsh.8 /usr/sbin/mailstats /usr/sbin/makemap /usr/sbin/praliases /usr/sbin/sendmail /usr/sbin/smrsh /var/log/sendmail.st /var/spool/mqueue

turbopkg

터보리눅스 서버 사용자 안내서

2-23

turbopkg

turbopkg 패키지 관리자는 RPM 패키지 관리자를 간단하게 만든 버전입니다. 이 관리자는 새 패키지를

설치하고 이전에 설치한 패키지를 제거하는 데 사용합니다. turbopkg를 실행하려면 다음 명령어를 입력합

니다.

# turbopkg

'환영합니다' 화 면(그림 2.4 참조)이 나타납니다.

그림 2.4 환영합니다

시스템 관리

터보리눅스 서버 사용자 안내서 2-24

새 패키지를 설치하거나 기존의 패키지를 제거하려면 다음을 수행합니다.

1. 환영합니다 화면에서 '관리'를 클릭합니다.

‘패키지 관리’화면(그림 2.5 참조)이 나타납니다.

그림 2.5 패키지 관리

2. ‘설치/업데이트’를 클릭하 여 소스 매체 화면(그림 2.6 참조)을 표시합니다.

turbopkg

터보리눅스 서버 사용자 안내서

2-25

그림 2.6 소스 매체

소스 매체 화면에는 CD-ROM, 로컬 파일 시스템, FTP 서버의 세 가지 선택 항목이 제시됩니다.

3. 설치하고자 하는 RPM 패키지가 있는 소스 매체를 선택합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-26

4. ‘확인’을 클릭하여 패키지 설치 화면(그림 2.7 참조)을 표시합니다.

그림 2.7 패키지 설치

5. 설치하고자 하는 패키지를 강조 표시하고 스페이스바를 눌러 새 패키지를 선택하거나 이전에 선택한

패키지를 선택 해제합니다.

그룹 내에서 패키지를 선택 해제하면 그 그룹과 패키지 체크박스가 변경되어 다음을 반영합니다.

그룹 체크박스는 다음을 가리킵니다

* 그룹 내의 모든 패키지를 선택합니다.

- 그룹 내의 특정한 패키지를 선택합니다.

None 그룹 내의 어떤 패키지도 선택하지 않습니다.

turbopkg

터보리눅스 서버 사용자 안내서

2-27

패키지 체크박스는 다음을 가리킵니다

* 설치하거나 업그레이드하고자 하는 패키지를 선택합니다.

R 제거하고자 하는 패키지를 선택합니다.

None 아무 것도 선택하지 않습니다.

X 패키지가 존재하지 않습니다.

패키지를 선택하면 선택한 패키지의 총 크기가 화면 상단에 표시됩니다.

사용자 패키지 설치 화 면(그림 2.7 참조)의 오른쪽 끝에 있는 칼럼에 다음 기호 중 하나가 표시됩니다.

+ 현재 패키지가 설치되고 있습니다.

- 이전 패키지

= 동일한 패키지

None 새 패키지

R 패키지는 제거될 것임

표시된 기능 키에는 다음과 같은 기능이 할당되어 있습니다.

F2 뷰 변경

F3 선택한 패키지에 관한 정보를 표시

F4 패키지 검색

F5 모두 선택

F6 모두 소거

F7 업데이트

F8 새로 선택

시스템 관리

터보리눅스 서버 사용자 안내서 2-28

서비스

서버의 설정 및 운영과 관련해서는 서비스 제어의 기본 사항을 숙지하는 것이 무엇보다 중요합니다. 각 서

비스에 대한 세부 사항은 해당되는 절에서 자세히 설명합니다. 하지만 전체 시스템이라는 관점에서 본 관

리 및 구성 작업에 대한 설명은 본 절에서 다룹니다.

시동 스크립트

서비스 시동 스크립트는 /etc/rc.d/init.d에 존재합니다.

이 스크립트로 각 서비스를 시작, 정지, 재시작할 수 있습니다.

예를 들어, 다음 명령어를 이용하여 Samba 서비스를 재시작할 수 있습니다.

# /etc/rc.d/init.d/smb restart

마지막 옵션은 시동 스크립트에 따라 달라지게 됩니다. 세부 사항은 각각의 시동 스크립트 파일에서 설명

됩니다.

예를 들어, /etc/rc.d/init.d/smb의 내용은 다음과 같습니다.

. /etc/rd.d/init/d/functions ./etc/sysconfig/network [ ${networking} = "no" ] && exit 0 [ -f /etc/smb.conf ] || exit 0 case "$1 in start)

echo -n "Starting SMB services: " daemon smvd -D daemon nmdc -D echo touch /var/lock/subsys/smb ;;

stop) echo -n "Shutting down SMB services: " killproc smbd

turbopkg

터보리눅스 서버 사용자 안내서

2-29

killproc nmbd rm -f /var/lock/subsys/smb echo "" ;;

status) status smbd status nmbd ;;

restart) echo -n "Restarting SMB services: " $0 stop $0 start echo "done." ;;

*) echo "Usage: smb

{start|stop|restart|status}" exit 1

esac

start 외에 smb 로도 stop, restart, status 등의 일반적인 옵션을 수락할 수 있습니다.

실행 수준

유닉스 시스템의 하나인 리눅스에는 부팅 시에 시스템의 상태를 보여주는 “실행 수준”이라 불리는 기능이

있습니다. 표 2.2는 터보리눅스를 위한 설정을 보여줍니다.

표 2.2 실행 수준

실행 수준 설 명 추가 정보 디렉터러

0 halt power off state /etc/rc.d/rc0.d

1 single user mode NFS disabled /etc/rc.d/rc1.d

2 multiuser mode /etc/rc.d/rc2.d

시스템 관리

터보리눅스 서버 사용자 안내서 2-30

실행 수준 설 명 추가 정보 디렉터러

3 multiuser mode Default (command line login) /etc/rc.d/rc3.d

4 configuration mode Post install configuration /etc/rc.d/rc4.d

5 multiuser mode Default (GUI login) /etc/rc.d/rc5.d

6 reboot reboot /etc/rc.d/rc6.d

3 또는 5는 기본값 실행 수준입니다. 설치 도중에 “Text-Based Login”옵션을 선택했다면 실행 수준은 3

으로 설정됩니다. 터보리눅스 서버 6.5를 설치할 때 기본값 GUI로그인을 수락하면 실행 수준은 5로 설정

됩니다. 기본값 실행 수준은 /etc/inittab의 첫 번째 행 에 다음과 같이 기록됩니다.

id:3:initdefault:

id: 뒤의 숫자가 실행 수준을 결정합니다. 이 경우 실행 수준은 3으로 되어 명령어 행 로그인 다중사용자

모드로 설정됩니다. GUI 로그인으로 변경하고 싶을 때는 이 숫자를 5로 바꿔주고 /etc/inittab 을 디스크

에 기록해야 합니다.

실행 수준 4는 보통 리눅스를 배급한 벤더가 자신의 부팅 모드를 설정하는 데 이용할 수 있도록 공백으로

남겨집니다.

turbopkg

터보리눅스 서버 사용자 안내서

2-31

각 실행 수준 시작하기

2-29쪽에 있는 표 2.2의 디렉터리에 있는 파일들은 각 실행 수준에서 어떤 서비스가 시작되는지를 나

타냅니다. 각 실행 수준에 해당하는 파일들 대부분은 /etc/rc.d/init.d에 있는 파일들을 가리키는 기호

링크임에 유의하여야 합니다. 다음과 같은 방법으로 /etc/rc.d/rc3.d의 내용을 대부분 볼 수 있습니다.

ls -o /etc/rc.d/rc3.d

total 0 lrwxrwxrwx 1 root 16 Feb 26 2001 K08autofs -> ../init.d/autofs* lrwxrwxrwx 1 root 7 Feb 26 2001 K10radiusd -> ../init.d/radiusd* lrwxrwxrwx 1 root 19 Feb 26 2001 K14alsasound -> ../init.d/alsasound* lrwxrwxrwx 1 root 17 Feb 26 2001 K15proftpd -> ../init.d/proftpd* lrwxrwxrwx 1 root 13 Feb 26 2001 K20nfs -> ../init.d/nfs* lrwxrwxrwx 1 root 19 Feb 26 2001 K34yppasswdd -> ../init.d/yppasswdd* lrwxrwxrwx 1 root 15 Feb 26 2001 K35atalk -> ../init.d/atalk* lrwxrwxrwx 1 root 13 Feb 26 2001 K35smb -> ../init.d/smb* lrwxrwxrwx 1 root 15 Feb 26 2001 K41xntpd -> ../init.d/xntpd* lrwxrwxrwx 1 root 13 Feb 26 2001 K60lpd -> ../init.d/lpd* lrwxrwxrwx 1 root 18 Feb 26 2001 K60mars-nwe -> ../init.d/mars-nwe* lrwxrwxrwx 1 root 16 Feb 26 2001 K65kadmin -> ../init.d/kadmin* lrwxrwxrwx 1 root 15 Feb 26 2001 K65kprop -> ../init.d/kprop* lrwxrwxrwx 1 root 16 Feb 26 2001 K65krb524 -> ../init.d/krb524* lrwxrwxrwx 1 root 17 Feb 26 2001 K65krb5kdc -> ../init.d/krb5kdc* lrwxrwxrwx 1 root 16 Feb 26 2001 K79identd -> ../init.d/identd* lrwxrwxrwx 1 root 14 Feb 26 2001 K80nscd -> ../init.d/nscd* lrwxrwxrwx 1 root 16 Feb 26 2001 K84ypserv -> ../init.d/ypserv* lrwxrwxrwx 1 root 17 Feb 26 2001 K89portmap -> ../init.d/portmap* lrwxrwxrwx 1 root 18 Feb 26 2001 K92ipchains -> ../init.d/ipchains* lrwxrwxrwx 1 root 17 Feb 26 2001 S10network -> ../init.d/network* lrwxrwxrwx 1 root 17 Feb 26 2001 S14nfslock -> ../init.d/nfslock* lrwxrwxrwx 1 root 15 Feb 26 2001 S15nfsfs -> ../init.d/nfsfs* lrwxrwxrwx 1 root 14 Feb 26 2001 S16apmd -> ../init.d/apmd* lrwxrwxrwx 1 root 16 Feb 26 2001 S20random -> ../init.d/random* lrwxrwxrwx 1 root 16 Feb 26 2001 S30syslog -> ../init.d/syslog* lrwxrwxrwx 1 root 13 Feb 26 2001 S40atd -> ../init.d/atd* lrwxrwxrwx 1 root 15 Feb 26 2001 S40crond -> ../init.d/crond* lrwxrwxrwx 1 root 14 Feb 26 2001 S50inet -> ../init.d/inet* lrwxrwxrwx 1 root 18 Feb 26 2001 S52synctime -> ../init.d/synctime*

시스템 관리

터보리눅스 서버 사용자 안내서 2-32

lrwxrwxrwx 1 root 14 Feb 26 2001 S55sshd -> ../init.d/sshd* lrwxrwxrwx 1 root 18 Feb 26 2001 S75keytable -> ../init.d/keytable* lrwxrwxrwx 1 root 14 Feb 26 2001 S95innd -> ../init.d/innd* lrwxrwxrwx 1 root 11 Feb 26 2001 S99local -> ../rc.local*

S로 시작되는 파일 이름은 시스템 부팅 시에 시작되는 서비스를 가리킵니다.

K로 시작되는 파일 이름은 시스템 부팅 시에 시작되지 않는 서비스를 가리킵니다.

S나 K 바로 뒤에 오는 숫자는 이 파일이 읽히는 시퀀스에서의 지점을 나타냅니다. 이 파일들을 설정하면

서 직접 변경할 경우에는 위의 규칙에 따라 기호 링크 파일을 작성해야 합니다. 링크가 가리키는 파일이

삭제되면 서비스를 시작할 수 없습니다.

실행 수준 변경하기

슈퍼유저로서 tel ini t 명령어를 실행하여 실행중인 시스템의 실행 수준을 변경합니다.

예를 들어 다중사용자 모드(실행 수준 3 또는 5)로 실행되는 시스템을 변경하려면 다음 명령어를 입력합

니다.

# telinit 1

이와 마찬가지로 telinit 0 또는 telinit 6을 실행하면 각각 halt 또는 reboot 명령어를 실행하는 것과 동일한

효과를 얻게 됩니다.

시스템이 단일 사용자 모드로 실행되고 있는 동안에는 다른 사용자가 시스템을 사용할 수 없습니다.

telinit 명령어는 단지 일시적으로만 실행 수준을 변경하며 /etc/inittab 파일을 다시 작성하지는 않습니

다.

serviceboard

터보리눅스 서버 사용자 안내서

2-33

serviceboard

serviceboard 툴은 터보리눅스 서비스와 데몬을 관리하는 데 사용됩니다. 여러분은 서비스를 명령어 행에

서 시작(또는 정지)할 것인지 아니면 이 GUI를 이용할 것인지 결정할 수 있습니다. 또한 시스템을 부팅할

때(또는 실행 수준이 변경될 때 ) 서비스가 시작하도록 할 수도 있습니다.

다음 명령어를 실행하여 serviceboard를 시작합니다.

# serviceboard

서비스 상태 보드 화 면( 그림 2.8 참조)이 나타납니다.

그림 2.8 서비스 상 태 보드

시스템 관리

터보리눅스 서버 사용자 안내서 2-34

현재 실행 수준 설정

serviceboard가 실행되면 화면 중앙에 리스트 박스가 표시됩니다. ( 2-33쪽의 그림 2.8 참조.)

리스트 박스는 현재 실행 수준에서 실행되고 있는 서비스의 상태를 보여줍니다(아래에 설명). 리스트 박스

의 각 행은 “실행중”과 “서비스 명”의 두 가지 속성을 가집니다. 각 속성의 중요도와 동작은 다음과 같습

니다.

실행중

* 서비스가 실행중임을 나타냅니다.

None 서비스가 정지되었음을 나타냅니다.

? 이것은 설정된 후에 데몬이 되지 않는 프로그램입니다. 간단히 말해서 이것은 일

시적인 서비스이기 때문에 정상적으로 실행하기 위해서 serviceboard를 통해

구성할 필요가 없습니다.

동작:

S 서비스를 시작합니다.

X 서비스를 중지합니다.

서비스 이름

서비스에 해당하는 스크립트는 /etc/rc.d/init.d/에 존재합니다.

강조 표시된 서비스의 설명을 표시하려면 F1을 누릅니다.

serviceboard

터보리눅스 서버 사용자 안내서

2-35

각 실행 수준에 대한 설정

초기 화면에서의 설정은 현재 실행 수준에 적용됩니다. 그러나 여러분은 각 서비스에 대한 실행 수준을 변

경할 수 있습니다. 변경을 하려면 화면에서 Advanced[A] 버튼을 클릭하거나 키보드에서 A 키를 누릅니

다. 이 동작을 수행하면 고급 서비스 메뉴 화면( 2-35쪽의 그림 2.9 참조 )이 표시됩니다.

그림 2.9 고급 서비스 메뉴

이 화면에서 설정하고자 하는 서비스를 강조 표시하고 숫자 키 1-5를 이용하여 각 실행 수준에서 해당 서비스를 시작하거나 끝냅니다.

예를 들어, lpd 에 대한 설정을 실행 수준 5로 변경하고 싶다면 lpd 를 강조 표시하고 숫자 5키를 누릅니다.

이를 다시 되돌리려면 5 키를 한 번 더 누릅니다.

Esc 키를 눌러 주 화면으로 돌아갑니다. 복귀한 뒤에 다시 Esc 키를 눌러 serviceboard를 빠져나갑

니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-36

네트워킹

네트워크 서비스를 구성하거나 제어하는 파일은 몇 가지가 있습니다. 아래에서 TCP/IP 네트워크를 위한

최소 구성에 관해 설명합니다.

/etc/rc.d/init.d/network 파일

네트워크 시동 스크립트 파일은 network라 불리며 /etc/rc.d/init.d에 존재합니다.

다음 명령어를 이용하여 네트워크를 시동합니다.

# etc/rc.d/init.d/network start

start 외에도 network는 stop, restart, status 등과 같이 잘 알려진 옵션도 받아들입니다.

/etc/sysconfig/network 스크립트

이 파일에는 시스템 네트워크 설정(IP 주소, 호스트 이름, 게이트웨이 IP주소)이 기록됩니다. 다음은 그러

한 파일의 일례입니다.

NETWORKING=yes

PROFILENAME="(null)"

HOSTNAME=jon.turbolinux.us

GATEWAY=192.168.1.1

GATEWAYDEV=eth0

FORWARD_IPV4=no

IPX=no

TIMESERVERATBOOT=no TIMESERVERTYPE=ntp

TIMESERVERHOST=(none)

TIMESERVERRESYNC=(none)

/etc/sysconfig/network-scripts/ifcfg-[dev_name] 파일

이 파일에는 시스템에 접속하는 네트워크 인터페이스를 위한 설정이 기록됩니다. 레이블 [dev_name] 은 접속되는 네트워크 인터페이스의 장치 이름과 일치합니다.

serviceboard

터보리눅스 서버 사용자 안내서

2-37

표 2.3은 ifcfg 파일의 내용을 보여줍니다.

표 2.3 ifcfg 파일

[dev_name] 네트워크 인터페이스

eth0 첫 번째 이더넷(Ethernet) 카드

eth1 두 번째 이더넷 카드

각 장치에 대한 IP 주소와 넷마스크는 각각의 구성 파일에 기록됩니다.

다음은 그러한 파일의 일례입니다.

DEVICE=eth0

IPADDR=192.168.1.82

NETMASK=255.255.255.0

NETWORK=192.168.1.0

BROADCAST=192.168.1.255

ONBOOT=yes

BOOTPROTO=none

/etc/resolv.conf 파일

시스템의 도메인 이름과 그 도메인이 사용하는 DNS서버를 위한 IP주소 등은 /etc/resolv.conf 파일에

기록됩니다.

다음은 그러한 파일의 일례입니다.

domain turbolinux.us

search turbolinux.us

nameserver 192.168.1.2

nameserver 210.255.54.18

시스템 관리

터보리눅스 서버 사용자 안내서 2-38

/etc/HOSTNAME 파일

이 파일에는 터보리눅스 시스템의 호스트 이름이 기록됩니다.

jon.turbolinux.us

/etc/hosts 파일

이 파일에는 각 호스트의 IP 주소와 대응하는 호스트 이름이 한 행 에 하나씩 기록됩니다.

다음은 그러한 파일의 일례입니다.

127.0.0.1 localhost.localdomain localhost

192.168.1.82 jon.turbolinux.us jon

네트워크 상태 점검하기

다음 명령어를 실행하여 각자의 네트워크 인터페이스 상태를 점검할 수 있습니다.

$ /sbin/ifconfig

netcfg

터보리눅스 서버 사용자 안내서

2-39

netcfg

netcfg 툴은 TCP/IP 네트워크를 구성하고 관리하는 데 사용됩니다.

실행 방법은 다음과 같습니다.

# netcfg

네트워크 설정 화면(그림 2.10 참조)이 나타납니다.

그림 2.10 네트워크 설정

시스템 관리

터보리눅스 서버 사용자 안내서 2-40

이 옵션들 각각은 네트워크와 관련되어 있습니다.

• 설정 보기

• 기본 설정

• 호스트 테이블

• 네트워크 인터페이스

• 네트워크 진단

• 네트워크 하드웨어 정보

구성하고자 하는 항목을 강조 표시한 다음 Enter를 누릅니다.

netcfg 를 이용하여 프로필을 설정하면 복수의 구성을 편리하게 전환할 수 있습니다. 일단 새 프로파일 작

성을 마친 후에는 Save Profile 버튼을 눌러 이를 저장합니다. 이때 쉽게 알아볼 수 있는 이름을 붙여서 저

장합니다. 기존의 프로필 중 하나로 전환하려면 Load Profile을 선택한 다음 원하는 프로필을 선택합니

다.

주 처음에는 기본값으로 어떤 프로필도 구성되어 있지 않습니다. 프로필을 작성하지 않고 ‘프로파일 저

장’을 클릭하면 프로파일 저장 실패 메시지가 나타납니다. 구성을 변경하려면 먼저 ‘프로파일 저장’을 선택한 다음 프로필을 작성합니다.

netcfg

터보리눅스 서버 사용자 안내서

2-41

구성을 화면에 표시하기

네트워크 설정 화면(2-39쪽의 그림 2.10 참조)에서 ‘설정 보기’를 클릭하면 현재 설정 화면(그림 2.11 참

조) 이 표시됩니다.

그림 2.11 현재 설정

이 화면은 현재의 네트워크 설정 상태를 보여줍니다. ‘확인’을 클릭하여 화면을 닫습니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-42

기본 설정

네트워크 설정 화면(2-39쪽의 그림 2.10 참조)에서 '기본 설정'을 클릭하면 전역 네트워크 설정 화면(그

림 2.12 참조)이 표시됩니다.

그림 2.12 전 역 네트워크 설정

이 화면에서 다음 항목을 설정할 수 있습니다.

호스트명 터보리눅스 컴퓨터를 위한 호스트 이름.

도메인명 컴퓨터가 속해 있는 네트워크를 위한 도메인 이름.

검색 도메인 검색 도메인. (이것은 위의 도메인 이름과 같은 경우가 많습니

다.) 검색 도메인을 추가하려면 ‘SD 추가’를 누르고 제거하려

면 ‘SD 삭제’를 누릅니다.

netcfg

터보리눅스 서버 사용자 안내서

2-43

DNS 네임서버 DNS 서버의 IP 주소. DNS 네임서버를 추가하려면 ‘네임서버

추가’를 누르고 제거하려면 ‘네임서버 삭제’를 누릅니다.

게이트웨이 IP 기본값 게이트웨이 IP 주소

게이트웨이 장치 위의 기본값 게이트웨이에 대응하는 네트워크 인터페이스 카

드. 통상적으로 네트워크 카드가 하나만 설치되어 있을 경우에

는 이 값이 “eth0”으로 설정됩니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-44

호스트 표 네트워크 설정 화면(2-39쪽의 그림 2.10 참조)에서 ‘호스트 테이블’을 클릭하면 호스트 테이블 화면(그

림 2.13 참조)이 표시됩니다.

그림 2.13 호스트 테이블

이 화면에는 /etc/hosts 파일의 정보가 표시됩니다. 이 화면에서 호스트를 추가, 변경, 삭제할 수 있습니다.

netcfg

터보리눅스 서버 사용자 안내서

2-45

네트워크 인터페이스

네트워크 설정 화면(2-39쪽의 그림 2.10 참조)에서 ‘네트워크 인터페이스’를 클릭하면 인터페이스 선택

화면(그림 2.14 참조)이 표시됩니다.

그림 2.14 인터페이스 선택

이 화면에서 각 네트워크 카드를 위한 인터페이스를 설정합니다.

통상적으로 네트워크 카드가 하나만 설치되어 있을 경우에는, “lo” (localhost)와 “eth0”의 두 가지 인터

페이스를 사용하게 됩니다. 네트워크 카드가 두 개 이상일 경우에는 “eth1”, “eth2” 등도 함께 사용하게

됩니다.

“위로”나 “아래로”를 선택하면 여러분이 실시간으로 선택한 인터페이스를 시작하거나 끝낼 수 있습니다.

카드를 추가하려면 '추가' 클릭하고 카드를 제거하려면 '삭제'를 클릭합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-46

여러분이 선택한 인터페이스를 편집하려면 인터페이스 선택 화면(2-45쪽의 그림 2.14 참조)에서 ‘편집’을 클릭하여 인터페이스 설정 편집 화면(그림 2.15)을 표시합니다.

그림 2.15 인터페이스 설정 편집

이 화면에서 다음 항목을 설정합니다.

• IP 주소

• 넷마스크

• 네트워크 주소

• 브로드캐스트 주소

• DHCP/Bootp의 사용

netcfg

터보리눅스 서버 사용자 안내서

2-47

‘완료’를 클릭하여 새로운 설정을 저장하거나 ‘취소’를 눌러 현재의 설정을 변경하지 않은 채 인

퍼테이스 선택 화면으로 복귀합니다(그림 2.14 참조).

• “앨리어스” 아래에 있는 하나의 인터페이스에 대해 복수의 IP 주소를 설정합니다.

(‘완료’ 또는 ‘취소’를 이용하여) 네트워크 설정 화면(2�39 쪽의 그림 2.10 참조)의 주 메뉴로 복귀한 다음

‘네트워크 진단’을 클릭하여 기본값 루트와 네임서버 도달 가능성 등을 테스트합니다. 시험 결과 화면(그

림 2.16 참조)이 나타납니다.

그림 2.16 시험 결과

시스템 관리

터보리눅스 서버 사용자 안내서 2-48

이 시험결과 화면(2-47쪽의 그림 2.16 참조)은 각 항목에 대한 결과를 보여줍니다. Yes는 기능이 제대

로 실행되고 있음을 뜻하며 No는 문제가 있음을 뜻합니다. N/A는 항목이 설정되지 않았음을 뜻합니다.

‘확인’을 클릭하여 인터페이스 통계 화면(그림 2.17 참조)을 표시합니다.

그림 2.17 인터페이스 통계

netcfg

터보리눅스 서버 사용자 안내서

2-49

네트워크 하드웨어 정보

네트워크 설정 화면(2-39쪽의 그림 2.10 참조)에서 ‘네트워크 하드웨어 정보’를 클릭하여 Hardware Modules 화면(그림 2.18 참조)을 표시합니다.

그림 2.18 하드웨어 모듈

이 화면은 네트워크 인터페이스에 대응하는 하드웨어 모듈을 보여줍니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-50

인쇄하기

터보리눅스 툴 printconfig를 이용하여 문서와 파일을 인쇄하도록 서버를 설정합니다. 이 절에서는 터보리

눅스에서 인쇄 과정을 처리하는 방법에 관해 설명합니다.

리눅스에서는 텍스트 출력이든 그래픽 출력이든 인쇄 작업은 PostScript 출력으로 이루어집니다.

PostScript 프린터가 있다면 프린터로 직접 출력을 전송할 수 있습니다.

PostScript가 아닌 방식으로 인쇄할 때는 리눅스 전용 드라이버가 필요합니다. 이에 관한 내용은 프린터

제조업체에 문의하시기 바랍니다.

Ghostscript

Ghostscript는 자체의 PostScript 번역기를 통해 각각의 특정 프린터에서 수용 가능한 형식으로 변환된

PostScript 데이터를 출력합니다. Ghostscript 번역기를 이용하여 데이터를 Laserjet 4나 Okidata

MICROLINE 600CL 같은 PostScript 방식이 아닌 프린터로도 출력할 수 있습니다.

여러분의 프린터가 Ghostscript와 호환이 되는지 여부를 미리 확인해 두시기 바랍니다. gs -h 명령어를

통한 출력과 /usr/share/doc/ghostscript-5.50/에 있는 문서를 참조하시기 바랍니다.

/etc/printcap

인쇄 장치와 관련한 설정은 /etc/printcap 파일에서 편집합니다.

다음은 직렬 포트에 연결된 PostScript 프린터를 위한 설정입니다.

(1)|lp:\

(2)|:sd=/var/spool/lpd/lp:\

(3)|:mx#0:\

(4)|:sh:\

인쇄하기

터보리눅스 서버 사용자 안내서

2-51

(5)|:lp=/dev/lp0:\

(6)|:if=/var/spool/lpd/lp/filter:

여기서, (1)… 프린터 이름을 지정합니다. 이 목록의 경우에는 lp입니다.

(2)… 스풀 디렉터리를 지정합니다. 위 목록의 경우에는 /var/spool/lpd/lp로 설정되어 있습니다. (3)… 최대 파일 크기를 설정합니다. 이 경우에는 0 으로 설정되어 크기가 무한함을 가리킵니다. (4)… 헤더의 인쇄를 억제합니다. 헤더를 인쇄하려면 이 행을 지웁니다. (5)… 프린터 장치 이름을 설정합니다. 위 목록의 경우에는 /dev/lp0으로 설정되어 있습니다.

(6)… 입력 파일을 지정합니다. PostScript 프린터를 사용하고 있으므로 입력 파일은

/var/spool/lpd/lp/filter가 됩니다.

편집을 다 마친 후에는 lpd를 재시작합니다.

# /etc/rc.d/init.d/lpd restart

lpr 명령어

인쇄할 때는 lpr명령어를 이용합니다.

예를 들어 현재 디렉터리에서 README.txt를 인쇄하려면 다음 명령어를 입력합니다.

$ lpr README.txt

너무 길어서 한 화면에 들어가지 않는 출력을 프린터로 전송하려면 파이프로 lpr에 넘깁니다.

예를 들어 ls명령어를 통한 출력을 프린터에 전송하려면 다음을 실행합니다.

$ls |lpr

시스템 관리

터보리눅스 서버 사용자 안내서 2-52

선택할 프린터가 복수일 경우에는 - P옵션 뒤에 원하는 프린터 이름을 붙입니다. README.txt를 lp0이

라는 이름의 프린터에 전송하려면 다음 명령어를 사용합니다.

$ lpr -P lp0 README.txt

printconfig

printconfig 툴을 이용하여 프린터를 추가하고 구성합니다. 이 툴을 시작하려면 다음 명령어를 입력합니다.

# printconfig

프린터 설정 화면(그림 2.19 )이 나타납니다.

그림 2.19 프린터 설정

인쇄하기

터보리눅스 서버 사용자 안내서

2-53

프린터 추가하기

새 로컬 프린터를 추가하고 설정하려면 다음 단계를 밟습니다.

1. 프린터 설정 ( 2-52쪽의 그림 2.19 참조) 화면에서 ‘추가’를 클릭합니다.

프린터 추가 화면(그림 2.20 참조)이 나타납니다.

그림 2.20 프린터 추가

2. 프린터의 연결 방식을 선택합니다.

로컬 프린터 여러분의 프린터가 PC에 직접 연결되어 있으면 이 옵션을

선택합니다.

원격 LPD 큐 TCP/IP 네트워크를 통해 연결된 프린터를 사용하려면 이

옵션을 선택합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-54

삼바/LAN 매니저 프린터 Samba, LAN Manager,또는Windows를실행하는

NETBIOS 네트워크 상의 컴퓨터에 연결된 프린터를 사용

하려면 이 옵션을 선택합니다.

이 보기에서는 ‘로컬 프린터’를 선택하고 ‘확인’을 클릭하였습니다. ‘확인’을 클릭하고 나면 새로운 큐 이름 화면(그림 2.21)이 나타납니다.

그림 2.21 새로운 큐 이름

3. 인쇄할 때 사용할 인쇄 큐 이름을 설정합니다. 보통은 기본 설정 값인 lp 가 무난합니다.

4. ‘계속’ 을 클릭합니다.

인쇄하기

터보리눅스 서버 사용자 안내서

2-55

5. 해당 항목에 대한 ‘설정’ 필드를 강조 표시한 다음 Enter를 누릅니다.

해당되는 목록이 나타나면 항목을 선택하여 구성합니다.

프린터 장치 프린터를 위한 직렬 포트를 설정합니다. 보통은 기본 설정

값인 /dev/lp0가 무난합니다.

프린터 유형 프린터 유형을 설정합니다. 목록에서 사용중인 프린터를 선

택하거나 사용중인 것과 가장 유사한 프린터를 선택합니다.

해상도 인쇄 해상도를 설정합니다.

용지 크기 인쇄용지의 크기를 설정합니다.

색상 인쇄 색상의 농도를 설정합니다.

헤더 압축 헤더의 인쇄를 억제하고 싶으면 이 항목에 체크 표시를 합

니다.

6. 작업을 모두 마친 후에는 ‘확인’을 클릭한 다음 '저장/종료'를 클릭합니다.

시스템 관리

터보리눅스 서버 사용자 안내서 2-56

프린터 설정 변경하기

기존의 프린터에 대한 설정을 변경하려면 다음 단계를 밟습니다.

1. 프린터 설정 화면(2-52쪽의 그림 2.19 참조)에서 ‘편집’을 클릭합니다.

프린터 설정ㅣp 편집 화면(그림 2.22 참조)이 나타납니다.

그림 2.22 프린터 설정 lp 편집

2. 필요에 따라 설정을 편집합니다.

3. 모두 마친 후에는 ‘확인’을 클릭하여 주 printconfig 화면으로 돌아갑니다.

터보리눅스 서버 사용자 안내서

3-1

인터넷 서버

컴퓨터 네트워킹의 세계에는 서버와 클라이언트라 불리는 프로그램들이 있습니다. 가동중인 서버는 항상

클라이언트로부터의 요청을 받아들일 준비가 되어 있습니다. 반면에 클라이언트는 요청을 할 때만 실행하

면 됩니다.

클라이언트-서버 간의 작동은 사용자 수준에서 투명성을 지닙니다. 즉, 사용자의 간섭이 전혀 필요치 않

습니다.

이 외에도 보통 서버의 가동을 제어하는 슈퍼서버라는 것이 있습니다.

슈퍼서버는 클라이언트 요청을 수신했을 때만 보통 서버가 제공하는 서비스를 개시합니다.

이 장에서는 아래에 열거한 네 개의 서버에 관해 상세히 소개합니다. 이 서버들은 터보리눅스가 인터넷 상

에서 제 기능을 하기 위해서 반드시 제공해야만 하는 네 가지 기본 서비스를 제공합니다.

• 네임 서버(DNS 서버)�호스트 이름에 대한 IP 주소를 찾습니다.

• 메일 서버(SMTP)�네트워크나 인터넷 상의 호스트간에 이메일을 배달합니다.

• 웹 서버(HTTP 서버)�HTTP 프로토콜을 이용하여 웹 페이지, 파일, 인터넷 데이터 또는 로컬 시

스템이나 네트워크 데이터에 대한 클라이언트(브라우저)의 요청을 충족시킵니다.

• FTP 서버�클라이언트가 호스트와 파일을 주고받을 수 있게 해줍니다.

제 3 장

인터넷 서버

터보리눅스 서버 사용자 안내서 3-2

네임 서버 (DNS 서버)

네임 서버(Domain Name System 서버 또는 DNS 서버)의 업무는 분산 데이터베이스를 이용하여 호스

트 이름 파일에서 IP 주소를 찾아내거나 또는 반대 방향으로 IP 주소에서 호스트 이름을 찾아내는 것입니

다. 이를 위한 한 가지 방법은 /etc/hosts 파일을 이용하는 것입니다. 이 경우 각각의 호스트는 자신의

/etc/hosts 파일을 검색합니다. 그러나 DNS의 경우에는 동일한 도메인 내의 호스트에게 호스트 이름 정

보를 제공하기 위해서 그 도메인 내에 적어도 하나의 DNS 서버가 있어야만 합니다.

DNS 기능을 수행하기 위해서 가장 널리 이용되는 프로그램은 BIND입니다.

BIND에 관한 자세한 내용을 보려면, 3-4쪽의 < BIND 개관> 절을 참조하시기 바랍니다.

네임 서버의 역할은 다음의 네 가지 주된 범주로 구분될 수 있습니다.

• 1차 네임 서버

• 2차 네임 서버

• 캐시 전용 서버

• 슬레이브 서버

1차 네임 서버

1차 서버는 자기 도메인 내에 있는 모든 호스트 이름을 관리하고, 메일 서버를 위한 적절한 경로지정을 보

장하고, 2차 네임 서버에 도메인 정보를 제공하고, 다른 도메인의 네임 서버와 정보를 교환합니다.

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-3

2차 네임 서버

2차 서버는 1차 네임 서버에 대한 백업 역할을 수행합니다. 2차 서버는 정기적으로 1차 네임 서버로부터

데이터를 복사하고 1차 네임 서버에 문제가 생겼을 때 개입합니다. 인터넷에 접속하기 위해서는 이 두 서

버(1 차 또는 2 차) 중 적어도 하나가 작동하고 있어야 합니다.

캐시 전용 서버

캐시 서버는 클라이언트 요청을 자기가 지정한 네임 서버에 전달합니다. 이름이 말해주듯이, 캐시 서버는

일시적으로 응답을 저장(캐시)하여 다음 번에 동일한 요청을 수신할 때 더 빨리 응답할 수 있도록 합니다.

이는 1차 및 2 차 서버에 대한 부하를 줄여줍니다.

슬레이브 서버

슬레이브 서버는 1차 서버와 거의 동일한 데이터베이스를 보유하지만, 요청을 처리하기 전에 반드시 주

서버로부터 허가를 받아야 합니다.

변환기

변환기는 클라이언트의 이름 요청을 네임 서버에 전달하고 응답을 클라이언트에 반환합니다. 네임 서버는

변환기의 질의에 응답하며 그러면 변환기는 이 정보(리소스 기록일 수도 있고 오류일 수도 있음)를 번역하

여 요청을 개시한 프로그램에 그 결과를 넘깁니다.

서버와 클라이언트의 이름을 변환하기 위해서는 다음 두 개의 파일이 필요합니다.

/etc/host.conf /etc/resolv.conf

인터넷 서버

터보리눅스 서버 사용자 안내서 3-4

/etc/host.conf 파일은 네임 서버와 전통적인 유닉스 hosts 파일로부터의 이름 서비스 요청을 위해 작성

됩니다.

각각의 호스트는 hosts 파일에 기재되어야 하는데 대형 네트워크의 경우 이는 다루기 힘들고 비현실적입

니다. 그러나 호스트가 네 다섯 개 정도로 네임 서버에 대한 부하가 가벼운 소형 네트워크에서는 전혀 문

제가 없습니다.

다음은 /etc/host.conf의 일례입니다.

order hosts,bind multi on

위의 예에서 order는 실행의 순서를 나타냅니다. 이는 이름을 변환하는 데 hosts 파일이 먼저 사용되고,

이것이 실패할 경우 BIND가 사용된다는 것을 의미합니다.

이름 변환의 결과 복수의 주소가 생성될 경우 multi on은 모든 주소가 반환됨을, multi off는 첫 번째

주소만이 반환됨을 의미합니다.

/etc/resolv.conf에는 도메인 이름과 네임 서 버 정보가 포함됩니다.

다음은 /etc/resolv.conf의 일례입니다.

domain turbolinux.gr.jp search turbolinux.gr.jp nameserver 192.168.0.2

위의 예에서 domain은 서버의 도메인 이름을 가리킵니다.

search는 호스트 질의에 대한 대체 도메인 이름을 가리킵니다.

nameserver는 변환기가 질의해야 하는 네임 서 버 주소를 가리킵니다.

BIND 개관

BIND는 버클리의 캘리포니아 대학교에서 작성한 것으로 BSD 유닉스의 4.3 버전으로 처음 선보였습니다.

그 후 리눅스와 기타 유닉스 계열, OS/2, 윈도우 NT 등 에 이식되어 왔습니다.

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-5

BIND 버전 4.8.3까지는 UC 버클리 컴퓨터 시스템 연구 그룹(CSRG)이 DARPA(미국방성 공동연구 계

획국)의 보조를 받아 개발했습니다. 버전 4.9와 4.9.1은 DEC(컴팩의 전신)가 그리고 버전 4.9.2는 Vixie

Enterprises가 출시했으며, 버전 4.9.3 이상은 ISC(Internet Software Consortium)가 개발하여 관리해

오고 있습니다. 1997년에는 버전 8이 출시되었고 이후로 버전 4 계열은 보안 패치 외의 작업이 중단되었

습니다. 최근에는 버전 9가 선을 보였습니다. (아래에 있는 ISC 웹사이트 참조)

다음 목록은 몇 가지 약어의 원래 명칭입니다.

• BIND (Berkeley Internet Name Domain) http://www.isc.org/bind.html

• DARPA (Defensive Advanced Research Projects Administration)

• UCB (University of California at Berkeley)

• CSRG (Computer Systems Research Group)

• ISC (Internet Software Consortium) http://www.isc.org/

BIND의 세 가지 버전(버전 4, 버전 8, 버전 9)은 프리웨어로 배포되고 있습니다.

일부 인터넷 서비스 제공자들은 안전성과 보안 때문에 BIND 4를 추천합니다. 이것은 BIND 8이 비교적

새로운 버전이기 때문이기도 합니다. 뿐만 아니라, BIND 4는 이미 널리 유포되어 훌륭한 전문 제품으로

크게 호평 받고 있습니다.

그럼에도 불구하고 보안 패치 외에는 버전 4 계열의 개발이 중단되었으며 현 개발 작업의 소스는 이제

ISC가 관장하고 있습니다.

따라서 버전 8로 전환할 것을 강력히 추천합니다. 이 절에서는 BIND 4 구성에 대해 설명하며, 3-17쪽의

BIND 8 절에서는 BIND 8로의 전환 방법을 설명합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-6

named

BIND는 주로 named 데몬으로 이루어져 있습니다. 시동 스크립트는 /etc/rc.d/init.d/named 입니

다.

named 를 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/named start

named 를 끝내려면 다음을 실행합니다.

# /etc/rc.d/init.d/named stop

named 가 실행되고 있는지 확인하려면 다음을 실행합니다.

# ps aux | grep named

root 203 0.0 3.2 1440 1000 ? s 00:55 0:00 named

위와 유사한 응답을 볼 수 없다면 named 를 실행하거나 BIND를 설치해야 할 수도 있습니다.

네임 서버 모드 구성

BIND는 다음 세 가지 모드로 실행됩니다.

• 1 차 서 버 모드

• 2 차 서 버 모드

• 캐시 전용 서버 모드

터보리눅스 서버 6.5는 처음에 기본값으로 캐시 전용 모드로 설정됩니다. 여러분의 ISP가 1차와 2차 서버

를 모두 관리한다면 여러분이 설치하는 네임서버는 캐시 전용 서버로 사용될 수 있습니다. 이를 위해서는

오직 /etc/named.boot와 /etc/resolv.conf의 두 가지 구성 파일만 있으면 됩니다. 다음은 가령 도

메인 이름이 turbolinux.gr.jp라고 했을 때 이 파일들의 내용을 보여줍니다.

/etc/named.boot 파일:

directory /var/named cache . named.ca primary 0.0.127. in-addr.arpa named.local

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-7

/etc/resolv.conf 파일:

domain turbolinux.gr.jp search turbolinux.gr.jp nameserver 127.0.0.1

1차 및 2차 모드에 대한 설정은 변합니다.

2차 모드에는 /etc/named.boot 파일(아래 참조)이 이용됩니다. 이 경우, IP주소로는 192.168.0.2가 사

용됩니다.

/etc/named.boot 파일:

directory /etc/namedb cache . named.root secondary turbolinux.gr.jp 192.168.0.2 turbolinux.zone.bak secondary 0.168.192.in-addr.arpa 192.168.0.3 turbolinux.rev.bak secondary 0.0.127.in-addr.arpa local.rev

존(zone) 파일과 역방향(reverse) 파일은 IP 주소 192.168.0.2의 1차 서버에서 입수할 수 있으며 파일로

백업됩니다.

대표적 설정

다음의 예는 일본에 있는 터보리눅스 네임 서버의 데이터를 이용한 것입니다. 물론 여러분의 특정 호스트

이름과 IP주소 등은 이와 다를 것입니다.

아래에 열거된 여섯 개의 셋업 파일 중에서 /etc/named.boot와 /etc/resolv.conf 외에는 모두 임의로

설정한 것입니다. 후자는 /etc/named.boot에 지정되어 있습니다.

파일 이름 전체 파일 이름

부팅 파 일 /etc/named.boot

변환기 파 일 /etc/resolv.conf

캐시 파 일 /var/named/named.root

루프백 파 일 /var/named/0.0.127.inaddr.arpa

인터넷 서버

터보리눅스 서버 사용자 안내서 3-8

순방향 탐색 파일(존 파일) /var/named/turbolinux.gr.jp

역방향 탐색 파일 /var/named/2.0.168.192.in-addr.arpa

다음 사항을 가정:

IP 주소 192.168.0.0~192.168.0.15

서브넷 마스크 255.255.255.240

도메인 이름 turbolinux.gr.jp

2차 네임 서버 203.139.160.69 (hostname: ns-tk011.ocn.ad.jp)

여러분의 ISP가 16개의 IP 주소로 된 블록을 할당했다면 여러분의 네임 서버는 표 3.1에 제시된 것처럼

조직될 수 있습니다.

표 3.1 IP 주소 및 호스트 이름 매핑

IP 주소 호스트 명 설명 192.168.0.0 none Network address(fixed) 192.168.0.1 none Default gateway(router)generally fixed 192.168.0.2 ns.tubolinux.gr.jp Name server(primary)generally fixed 192.168.0.3 unixi.turbolinux.gr.jp UNIX (or, Linux) terminal 192.168.0.4 wini.turbolinux.gr.jp Windows terminal 192.168.0.5 maci.turbolinux.gr.jp Macintosh terminal 192.168.0.6 (available) 192.168.0.7 (available) 192.168.0.8 (available) 192.168.0.9 (available) 192.168.0.10 (available) 192.168.0.11 (available) 192.168.0.12 (available) 192.168.0.13 (available) 192.168.0.14 (available) 192.168.0.15 none broadcast address (fixed)

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-9

주 여러분은 표 3.1에 제시된 IP주소를 사용할 수 없으며, 반드시 여러분의 ISP가 각자의 도메인에 할

당한 주소로 대체하여야 합니다.

샘플 부팅 파일 (/etc/named.boot) 설정

다음은 샘플 부팅 파일의 내용입니다.

(1) directory /var/named

(2) cache . named.root

(3) primary 0.0.127.in-addr.arpa 0.0.127.in-addr.arpa

(4) primary turbolinux.gr.jp turbolinux.gr.jp

(5) primary 2.0.162.192.in-addr.arpa 2.0.162.192.in-addr.arpa

다음은 위 샘플 파일의 항목에 대한 설명입니다.

(1)… directory : 각 구성 파일을 보유하게 될 디렉터리로 설정됩니다.

이 경우에는 /var/named입니다. (2)… cache: 캐시 파일의 이름으로 설정됩니다. ftp://rs.internic.net/domain/named.root 에서

최신 파일을 구할 수 있습니다. 이 경우 최신 파일은 named.root로 설정되어 있습니다.

첫 번째 프라이머리는 루프백이고, 두 번째는 순방향 탐색 파일(존 파일)을 위한 것이며, 세

번째는 역방향 탐색 파일을 위한 것입니다.

(3)… 루프백 파 일 이름을 설정합니다. 이 경우에는 0.0.127.in-addr.arpa입니다. (4)… 순방향 탐 색 파 일(존 파 일)을 설정합니다. 이 경우에는 tubolinux.gr.jp입니다. (5)… 역방향 탐 색 파일을 설정합니다. 이 경우에는 2.0.162.192.in-addr.arpa입니다.

주 역방향 탐 색 파일에서는 항상 네트워크 주소를 역방향으로 적어야 합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-10

샘플 변환기 파일 (/etc/resolv.conf) 설정

다음은 샘플 변환기 파일의 내용입니다.

(1) | domain turbolinux.gr.jp (2) | nameserver 192.168.0.2 (3) | nameserver 203.139.160.69

위의 샘플 파일에서 nameserver는 네임 서버 IP 주소로 설정됩니다.

다음은 위 샘플 파일의 항목들에 관한 설명입니다.

(1)… domain : 도메인 이름으로 설정됩니다. 이 경우에는 turbolinux.gr.jp입니다. (2)… 1 차 네임 서 버(nameserver)를 IP 주소 192.168.0.2로 설정합니다. (3)… 2 차 네임 서버(nameserver)를 IP주소 203.139.160.69로 설정합니다. 이 IP 주소는

보통 ISP가 지정합니다.

최소한 변환기 파일에는 1차 및 2차 네임 서 버 항목이 있어야 합니다.

샘플 루프백 파일 설정

이 절에서는 루프백 파일 /var/named/0.0.127.in-addr.arpa에 관해 설명합니다.

0.0.127.in-addr.arpa. IN SOA ns.turbolinux.gr.jp. root.ns.turbolinux.gr.jp. (

(1) | 19990318 ; Serial | 10800 ; Refresh after 3 hours | 3600 ; Refresh after 1 hours | 604800 ; Expire after 1 week | 86400 ) ; Minimum TTL of 1 day

(2) | 0.0.127.in-addr.arpa. IN NS ns.turbolinux.gr.jp (3) | 0.0.127.in-addr.arpa. IN NS ns-tk011.ocn.ad.jp | 1.0.0.127.in-addr.arpa. IN PTR localhost.

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-11

다음은 위 샘플 파일의 항목들에 관한 설명입니다.

SOA Start Of Authority의 약어로서 존 관리 정보를 설정합니다. IN Internet의 약어입니다. NS Name Server의 약어로서 네임 서버의 호스트 이름을 설정합니다. PTR Pointer의 약어로서 IP주소에 대한 호스트 이름을 설정합니다. (1)… 구성의 시리얼 넘버. 어떤 초기값도 허용되지만 구성 파일이 변경될 때마다 이를 증분하여

야 합니다. 여기서는 나중에 기억하고 확인하기 쉽도록 날짜를 사용하였습니다. (2)… 1차 네임 서버의 호스트 이름을 설정합니다. 이 경우에는 ns.turbolinux.gr.jp입니다. (3)… 보통 여러분의 ISP가 지정하는 2차 네임 서버의 호스트 이름을 설정합니다. 이 경우에는

ns-tk011.ocn.ad.jp입니다.

샘플 순방향 탐색 파일 (또는 존 파일) 설정

존 파일 /var/named/turbolinux.gr.jp는 다음과 같은 모습을 띠게 됩니다.

| turbolinux.gr.jp. IN SOA ns.turbolinux.gr.jp. root.ns.turbolinux.gr.jp. (

(1) | 19990318 ; Serial

| 10800 ; Refresh after 3 hours | 3600 ; Retry after 1 hours | 604800 ; Expire after 1 week | 86400 ; Minimum TTL of 1 day

(2) | turbolinux.gr.jp. IN NS ns.turbolinux.gr.jp.

(3) | turbolinux.gr.jp. IN NS ns-tkOll.ocn.ad.jp.

(4) | turbolinux.gr.jp. IN MX 10 ns.turbolinux.gr.jp.

(5) | localhost IN A 127.0.0.1

인터넷 서버

터보리눅스 서버 사용자 안내서 3-12

(6) | ns.turbolinux.gr.jp. IN A 192.168.0.2

(7) | unixi.turbolinux.gr.jp. IN A 192.168.0.3

(8) | wini.turbolinux.gr.jp. IN A 192.168.0.4

(9) | mail.turbolinux.gr.jp. IN CNAME ns.turbolinux.gr.jp.

(11) | www.turbolinux.gr.jp. IN CNAME ns.turbolinux.gr.jp.

(12) | ftp.turbolinux.gr.jp. IN CNAME ns.turbolinux.gr.jp.

다음은 위 샘플 파일의 항목들에 관한 설명입니다.

MX Mail eXchanger를 줄인 말입니다. A 주소. 호스트 이름에 대한 IP 주소를 설정합니다. CNAME Canonical Name을 줄인 말로 호스트에 대한 별칭을 설정합니다. (1)… 구성의 시리얼 넘버. 어떤 초기값도 허용되지만 구성 파일이 변경될 때마다 이를 증분하여

야 합니다. 여기서는 날짜를 사용하였습니다. (2)…, (3)… 1 차 및 2차 서버에 대한 호스트 이름을 설정합니다. (4)… 메일 서버의 호스트 이름을 설정하고 우선순위를 보여줍니다(우선순위가 높을수록 숫자는

작아집니다). 여기서는 1차 네임 서버와 메일 서버가 동일하므로 우선순위는 10이고 메일

서버 호스트 이름은 ns.turbolinux.gr.jp입니다. (5)… localhost 의 IP주소를 설정합니다. localhost는 자기 자신을 가리키며 이 경우 IP 주소는

표시된 것처럼 127.0.0.1이 되는 것이 보통입니다.

(6)… ns.turbolinux.gr.jp의 IP주소를 설정합니다. (7)…,(8)…,(9)… 각 호스트에 대한 IP 주소를 설정합니다. 이 경우에는 unixi.turbolinux.gr.jp,

wini.turbolinux.gr.jp, maci.turbolinux.gr.jp로서, 각각 192.168.0.3,

192.168.0.4, 192.168.0.5로 설정됩니다.

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-13

(10)…,(11)…,(12)… 별칭(CNAME)을 설정합니다. 이 경우 메일 서 버 이름은 mail.turbolinux.gr.jp, 웹 서버는

www.turbolinux.gr.jp, FTP 서버는 ftp.turbolinux.gr.jp입니다.

샘플 역방향 탐색 파일 (또는 역방향 파일) 설정

역방향 탐 색 파일 /var/named/2.0.168.192.in-addr.arpa 는 다음과 같은 모습을 띠게 됩니다.

| 2.0.168.192.in-addr.arpa. IN SOA ns.turbolinux.gr.jp.

root.ns.turbolinux.gr.jp. ( (1) | 19990318 ; Serial

| 10800 ; Refresh after 3 hours | 3600 ; Retry after 1 hours | 604800 ; Expire after I week | 86400 ; Minimum TTL of 1 day

(2) | IN NS ns.turbolinux.gr.jp. (3) | IN NS ns-tkOll.ocn.ad.jp. (4) | IN PTRturbolinux.gr.jp. (5) | IN A 255.255.255.240 (6) | 2 IN PTR ns.turbolinux.gr.jp. (7) | 3 IN PTR unixi.turbolinux.gr.jp. (8) | 4 IN PTR wini.turbolinux.gr.jp. (9) | 5 IN PTR maci.turbolinux.gr.jp.

다음은 위 샘플 파일의 항목들에 관한 설명입니다.

(1) 구성의 시리얼 넘버를 설정합니다. 어떤 초기값도 허용되지만 구성 파일이 변경될 때마다

이를 증분하여야 합니다. 여기서는 날짜를 사용하였습니다.

(2)…,(3) 1차 및 2차 서버에 대한 호스트 이름을 설정합니다.

(4) 도메인 이름에 대한 설정을 실행합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-14

(5) 서브넷마스크 주소를 설정합니다. 이 경우에는 255.255.255.240입니다.

6)…,(7)…,(8)…,(9)… IP 주소의 마지막 번호를 각각의 호스트 이름으로 설정합니다.

위에 언급한 샘플 파일, 즉 부팅, 변환, 루프백, 순방향 탐색, 역방향 탐색의 경우 주어진 IP 주소 또는 호

스트 이름을 사용할 수 없습니다. 여러분의 ISP가 각자의 도메인에 있는 호스트에 할당한 해당 IP 주소로

이를 대체하여야 합니다.

구성 점검하기

BIND가 제대로 실행되고 있는지 점검하려면 p ing과 nslookup을 사용합니다. ping 명령어는 iputils 패키

지에 inetd와 함께 포함되어 있습니다. nslookup 명령어는 bind-utils 패키지에서 RPM 포맷으로 이용할

수 있습니다.

먼저 스스로 핑을 실시하여 각자의 구성을 테스트한 다음 각자의 도메인 내에 있는 다른 호스트와 외부 호

스트에 핑을 실시합니다. 다음은 스스로에 대한 p ing을 보여주는 예입니다. 이 경우에는 192.168.0.2입

니다(각자의 IP주소로 대체하십시오). Ctrl-C를 누르면 ping이 정지됩니다. 또한 -cn 스위치를 이용하여

n행의 데이터만을 표시하도록 할 수 있습니다. n 자리에 정수를 써 넣으십시오.

# ping -c5 192.168.0.2

PING 192.168.0.2 (192.168.0.2): 56 data bytes

64 bytes from 192.168.0.2: icmp-seq=O ttl=128 time=0.5 ms

64 bytes from 192.168.0.2: icrrp-seq=l ttl=128 time=0.5 ms

64 bytes from 192.168.0.2: icrrp-seq=2 ttl=128 time=0.5 ms

64 bytes from 192.168.0.2: icmp-seq=3 ttl=128 time=0.5 ms

64 bytes from 192.168.0.2: icmp-seq=3 ttl=128 time=0.5 ms

--- 192.168.0.2 ping statistics ---

5 packets transmitted, 5 packets received, 0% packet loss

round-trip min/avg/max = 0.5/0.5/0.5 MS

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-15

ping 결과가 위와 같다면 여러분의 로컬 네트워크는 제대로 가동되고 있는 것입니다. 이제 여러분의 네트

워크 안팎에 있는 다른 호스트에 대한 p ing을 실시합니다.

다음과 같이 nslookup을 이용하여 BIND가 제대로 실행되고 있는지 점검할 수 있습니다.

1. 먼저 컴퓨터 자체의 IP 주소와 호스트 이름 간의 상호 소통이 제대로 이루어지는지 확인합니다.

2. 마찬가지로 각자의 도메인 내에 있는 다른 컴퓨터 각각에 대한 IP주소와 호스트 이름 간의 상호 소

통이 제대로 이루어지는지 확인합니다.

3. 마지막으로 외부 호스트( 인터넷 상의 )와의 소통이 제대로 이루어지는지 확인합니다.

4. ns lookup 을 실행합니다. (처음에는 약간 지연될 수 있습니다.) # nslookup Default Server: ns.turbolinux.gr.jp Address: 192.168.0.2 Aliases: 2.0.168.192.in-addr.arpa

>

이제 여러분 자신의 컴퓨터와 각자의 네트워크 안팎에 있는 호스트에 대한 이름과 IP주소가 검색되는지

확인합니다. 이것은 다음과 같은 모습을 띠어야 합니다.

Your own machine

> ns.turbolinux.gr.jp

Server: ns.turbolinux.gr.jp

Address: 192.168.0.2

Name: ns.turbolinux.gr.jp

Address: 192.168.0.2

> 192.168.0.2

Server: ns.turbolinux.gr.jp

Address: 192.168.0.2

인터넷 서버

터보리눅스 서버 사용자 안내서 3-16

Name: ns.turbolinux.gr.jp

Address: 192.168.0.2

Other hosts in your domain ...

> unixi.turbolinux.gr.jp Server: ns.turbolinux.gr.jp

Address: 192.168.0.2

Name: unixi.turbolinux.gr.jp

Address: 192.168.0.3

> 192.168.0.3 Server: ns.turbolinux.gr.jp

Address: 192.168.0.2

Name: ns.turbolinux.gr.jp

Address: 192.168.0.2

External hosts ...

> blue.ocn.ne.jp Server: ns.turbolinux.gr.jp

Address: 192.168.0.2

Non-authoritative answer:

Name: blue.ocn.ne.jp

Address: 202.234.232.78

> 203.139.160.78 Server: ns.turbolinux.gr.jp

Address: 192.168.0.2

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-17

Name: blue.ocn.ne.jp

Address: 202.234.232.78

주 위에 주어진 모든 예에서 반드시 여러분 자신의 호스트 이름과 그에 할당된 IP주소로 대체하여야 합

니다.

BIND 8

터보리눅스 서버 6.5는 기본값으로 BIND 8을 설치합니다. 어떤 이유로 BIND 4를 사용하고자 할 때는 터

보리눅스 Companion CD-ROM의 /unsupported/RPMS/bind-4.9.7에들어 있는 제품을 사용하

면 됩니다.

BIND 4에서 BIND 8로 전환하려면 기본적으로 BIND 8 포맷에 따라 /etc/named.boot를

/etc/named.conf로 재작성해야 합니다. 존 파일 자체는 버전 4 포맷을 사용할 수 있습니다.

named.conf의 포맷은 C 언어 구조와 유사하며 다음 네 가지 주요 범주로 이루어져 있습니다.

• 이름 설정

• 힌트 파일 설정

• 1차 존 설정

• 2차 존 설정

다음은 named.boot 및 named.conf 파일을 위한 스크립트의 보기입니다.

/etc/named.boot (BIND 4 version)

directory /var/named

cache . named.root

primary 0.0.127.in-addr.arpa 0.0.127.in-addr.arpa

primary turbolinux.gr.jp turbolinux.gr.jp

primary 2.0.162.192.in-addr.arpa 2.0.162.192.in-addr.arpa

인터넷 서버

터보리눅스 서버 사용자 안내서 3-18

/etc/named.conf (BIND 8 version)

options {

directory "/var/named";

/*

* 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 ;

};

zone "." {

type hint;

file "named.root";

};

zone "0.0.127.in-addr.arpa" {

type master

file "0.0.127.in-addr.arpa";

};

zone "turbolinux.gr.jp" {

type master;

file "turbolinux.gr.jp";

};

네임 서버 (DNS 서버)

터보리눅스 서버 사용자 안내서

3-19

zone "2.0.162.192.in-addr.arpa" {

type master;

file "2.0.162.192.in-addr-arpa";

};

다음은 일부 /etc/named.conf 설정에 대한 설명입니다.

options {...}; 존 파일 디렉터리 등의 구성 파일에 대한 기본값을 설정합니다. zone {...}; 존 파일 내의 존을 정의합니다.

type hint;가 존 문장 내에서 지정될 경우에는 루트 네임 서버 또는 파일에 의해 지정된 파일 내의 서

버를 호출합니다. 힌트 존은 BIND 4 에 있는 named.boot 의 캐시에 해당합니다.

type master;가 지정될 경우 이는 file에 의해 지정된 파일이 존 파일이 되고 BIND가 이 존의 1차 서

버로 시동된다는 것을 의미합니다. 이것은 named.boot의 프라이머리에 해당합니다.

보기에는 제시되지 않았지만 type slave; 이 지정될 경우에는 마스터 존의 복제가 만들어집니다. 이 설정은 2 차 서버를 위한 것입니다. type stub;이 지정될 경우에는 NS PR의 복제만이 만들어집니다. 이 역시 보기에는 제시되어 있지 않

습니다.

BIND 8에서도 각각의 존에 대해 질의나 존 전송 등에 대한 제한을 설정할 수 있습니다.

다음은 전용 존에 대한 역방향 탐색을 위한 스크립트의 보기입니다.

zone "2.0.168.192.in-addr.arpa" {

type master;

file "rev/.192.168.0.2";

masters {

192.168.0.2;

인터넷 서버

터보리눅스 서버 사용자 안내서 3-20

};

allow-query {

192.168.0.2/24;

xxx.xxx.xxx.xxx/yy

127.0.0.1;

};

allow-transfer {

192.168.0.2/24

xxx.xxx.xxx.xxx/yy

};

}

허용되는 공용 네트워크 주소는 xxx.xxx.xxx.xxx/yy로 작성됩니다.

이것은 xxx.xxx.xxx.xxx/yy 이외의 어떠한 질의나 전송 요청도 수락되지 않도록 하기 위한 것입니다.

있을 수 있는 보안 구멍을 가능한 줄이기 위해서는 네임 서버 질의와 존 전송 요청을 제한하는 al low-

query와 allow-transfer를 지정하는 것이 좋습니다.

메일 서버

터보리눅스 서버 사용자 안내서

3-21

메일 서버

터보리눅스 서버 6.5는 가장 인기 있는 메일 서버인 Sendmai l을 MTA(Mail Transfer Agent)로 사용합니

다. 가장 널리 사용되고 있는 이 프로그램에 대한 문서나 참고 도서는 아주 많이 나와있습니다. 그럼에도

Sendmai l은 구성하기가 쉽지 않은데, 이것이 아마도 가장 큰 취약점일 것입니다.

Sendmail

메일 서버 Sendmai l은 MTA를 위한 표준을 설정합니다. 원래 Sendmai l은 SMTP 이외의 메일 전송 방식

을 지원하도록 디자인되었지만 이 절에서는 SMTP를 위한 구성에 대한 설명에 중점을 두기로 합니다.

터보리눅스 서버 6.5는 로컬 메시지를 처리하는 데 procmail 을 사용하므로 mail.local 유틸리티에 관해서

는 다루지 않습니다.

Sendmai l을 설치하는 것만으로는 제대로 실행되지 않습니다. 여러분은 sendmail.cf를 사용자 정의하여

각자의 네트워크에 적합한 메일 서버를 구축해야만 합니다.

Sendmail에 관한 최신 내용을 보려면 http://www.Sendmail.org를 방문하시기 바랍니다. 설치와 구성

에 관한 도움말을 보려면 터보리눅스 배포판에 들어 있는 문서를 보시기 바랍니다. 터보리눅스 서버 6.5의

경우에는 /usr/share/doc/packages/sendmail/doc 서브디렉터리에 들어 있습니다. 여기에는 직접 인

쇄가 가능한 PostScript 버전도 들어 있습니다.

총칭하여 Sendmail Installation and Operation Guide라 부르는 이 문서는 Sendmail 사의 에릭 올먼

(Eric Allman)이 작성한 것입니다. ( 안내서의 온라인 버전은 http://www.sendmail.org/~ca/email/에

서 구하실 수 있습니다. “Sendmail 문서” 절을 참조하시기 바랍니다.)

인터넷 서버

터보리눅스 서버 사용자 안내서 3-22

구성 파일 생성하기

일단 기능 정의 파일이 구성되고 나면 sendmail.cf를 생성해야 합니다. 이를 위해서는 다음과 같은 명령

어를 사용합니다.

# make sendmail.cf

일단 sendmail.cf가 생성된 다음에는 /etc로 이동합니다. 이때 sendmail.cf를 백업해 두는 것이 좋습

니다. 또한 관리자 이외의 사용자가 파일 속성을 편집할 수 없도록 설정되어 있는지 확인해야 합니다.

# mv /etc/sendmail.cf /etc/sendmail.cf.old # cp sendmail.cf /etc/sendmail.cf # chmod 644 /etc/sendmail.cf

sendmail 명령어

Sendmail에 대한 런타임 옵션은 다음과 같습니다.

옵션 용법 연결 명령어

-bd 데몬으로 실행(port 25) smtpd

-bp 미발송 메일 큐를 표시 mailq

-bi 별칭 데이터베이스 이니셜 기입 newal iases

-bt 테스트 모드로 실행

-bv 주소 확인(메일을 가져오거나 배달하지 않음)

동작 테스트하기

실제로 Sendmai l을 실행하기 전에 반드시 테스트를 실시해야 합니다. sendmail의 테스트 모드에 관한

내용을 보려면 온라인 매뉴얼 페이지에서 Sendmail Installation과 Operation Guide를 살펴보시기 바랍

니다(3-21쪽의 Sendmail 절 참조). 아래에 제시된 것처럼 cf 파일에 정의된 주소를 표시하고 그것이 실

제로 작동하여 메일을 전송하는 것을 볼 수 있습니다.

메일 서버

터보리눅스 서버 사용자 안내서

3-23

• cf 주소 정의의 내용은( ns.test.co.jp를 보기로 사용) 다음과 같은 모습을 띠게 됩니다.

# sendmail -bt -d0 < /dev/null

Version 8.9.3

Compiled with: MAP_REGEX LOG MATCHGCOS MIME7T08

NAMED_BIND

NEINET NETUNIT NEWD NIS QUEUE SCANF SMTP USERDB XDEBUG

=======SYSTEMIDENTITY (afterdeadcf)======

(short domain name) $w = ns

(canonical domain name) $j = ns.test.co.jp

(subdomain name) $, = test.co.jp

(node name) $k = ns.test.co.jp

• 확인 모드로 배달 과정 점검하기

이 동작을 통해 어디에 오류가 있고 언제 메일 발송이 제대로 이루어지지 않는지를 알아낼 수

있습니다. 다음 보기에서 user1는 로컬 사용자를 가리킵니다.

# sendmail -v user1 </dev/null user1 ... Connecting to pmlocal ... user1 ... Sent

위의 시스템 응답은 로컬 배달이 이루어졌음을 확인합니다.

그런 다음 다른 컴퓨터(예: [email protected])에서 [email protected]로 메일 전

송을 시도할 수 있습니다. 이때 S endmai l이 이미 test.co.jp의 MX 호스트 상에서 실행되고 있

는 것으로 가정합니다.

# sendmail -v [email protected] < /dev/null [email protected] to ns.test.co.jp.via esmtp...

220 ns.test.co.jp ESMTP Sendmail 8.9.3/3.7Wp12; Tue, 17 Aug 1999 20:56:16 +0900

>>> EHLO host1.turbolinux.gr.jp

인터넷 서버

터보리눅스 서버 사용자 안내서 3-24

250-ns.test.co.jp Hello IDENT:root@[192.168.2.80], please to meet you

250-EXPN 250-Verb 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250-HELP >>>MAIL From:<[email protected]> 250 <[email protected]>... Sender ok >>> RCPT To:<[email protected]>...Recipient ok >>> DATA 354 Enter mail, end with "." on a line by itself >>> . 250 UAA00530 Message accepted for delivery [email protected]... Sent (UAA00530 Message accepted for delivery)

>>> QUIT 221 ns.test.co.jp closing connection

이런 식으로 메일 발송의 상태를 파악할 수 있습니다. 이것은 메일 발송이 적절히 수행될 수 있

다는 것을 보여줍니다.

Sendmail 데몬 시작하기

Sendmai l을 위한 시동 스크립트는 /etc/rc.d/init.d/sendmail입니다.

주요 시동 스크립트 옵션은 start, stop, restart 등입니다.

Sendmai l의 구성을 변경할 경우에는 재시작을 해야만 변경 내용이 반영됩니다.

메일 서버

터보리눅스 서버 사용자 안내서

3-25

Sendmai l을 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/sendmail start

Sendmai l 데몬을 시작하여 큐가 매 시간마다 발송되도록 설정할 수 있습니다. 이를 직접 설정하려면 다

음을 실행합니다.

# sendmail -bd -q1h

Sendmai l을 마치려면 다음을 실행합니다.

# /etc/rc.d/init.d/sendmail stop

Sendmai l을 재시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/sendmail restart

Sendmai l의 현재 상태를 확인하려면 다음을 실행합니다.

# ps aux |grep sendmail root 351 0.0 3.7 1916 1164 ? S 08:13 0:00 sendmail :

accepti

위와 같은 응답을 볼 수 없다면 Sendmai l이 실행되고 있지 않거나 설치되지 않은 것입니다. 이런 경우에

는 아래에 설명한 것처럼 Sendmai l을 재시작하거나 다시 설치하여야 합니다.

POP/IMAP

클라이언트와 메일을 주고받으려면 POP이나 IMAP 같은 서비스를 이용할 수 있어야 합니다. 다음은

POP3 과 IMAP에 관한 일반적인 설명입니다.

Pop 서버 시작하기

POP 서버는 슈퍼서버 데몬을 통해서 실행됩니다. 정의가 이미 구성 파일에 정의되어 있으므로

/etc/inetd.conf에 있는 POP3 행의 주석을 삭제하기만 하면 됩니다. 그러면 다음과 같은 형식을 띠

게 됩니다.

pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

인터넷 서버

터보리눅스 서버 사용자 안내서 3-26

그런 다음 두 가지 명령어 중 하나를 실행하여 inetd 를 재시작합니다.

# killall -HUP inetd # /etc/rc.d/init.d/inet restart

이로써 POP 서버가 실행됩니다. 단, TCP_Wrapper가 액세스 제어를 관리하므로 클라이언트는 POP 서

버에 대한 액세스 허가를 받아야 합니다.

다음 행이 /etc/hosts.allow 파일에 추가됩니다. 이 경우 로컬 주소 또는 허용 주소는 192.168.2.0 등과 같은 IP 주소가 됩니다.

ipop3d : 192.168.2.

이 호스트가 모든 서비스를 이용하는 것이 허용되면 다음 행이 추가됩니다.

ALL : 192.168.2.

자세한 내용을 보려면 2-5쪽의 inetd 절이나 2-11쪽의 TCP_Wrapper (tcpd) 절을 참조하시기 바랍

니다.

IMAP 서버 시작하기

IMAP 서버 역시 슈퍼서버 데몬을 통해 실행되므로 inetd.conf 파일에 있는 다음 imap 행의 주석을 삭제

해야 합니다.

imap stream tcp nowait root /usr/sbin/tcpd imapd

그런 다음 inetd를 재시작합니다. hosts.allow 파일의 설정이 필요할 경우에는 이것도 함께 반영됩니다.

메일 관리

메일을 관리하는 데에는 다음과 같은 작업이 필요합니다.

• 개인 사용자를 위해 읽지 않은 메시지를 보관하는 메일 스풀 설정

• 메일 전달 설정

• 메일 큐 관리

메일 서버

터보리눅스 서버 사용자 안내서

3-27

메일 스풀

메일 서버가 메일을 수신하여 이를 로컬 사용자에게 발송하면 메일은 각 개인 사용자의 /var/spool/mail 파일에 보관됩니다. 이 파일에는 읽지 않은 사용자의 메시지가 포함됩니다. 새 메일이 발송될 때마다 이

파일에 추가됩니다.

다음은 사용자 foo와 student1을 위한 메일 스풀의 보기입니다.

# ls -l /var/spool/mail

-rw-rw---- 1 foo root 329 Aug 18 17:08 foo

-rw-rw---- 1 student1 root 5156 Aug 01 08:00 student1

-rw------- 1 rppt rppt 6812 Aug 18 18:23 root

사용자가 자신의 메일을 꺼내면 그 사용자의 메일 스풀은 비워집니다. 사용자가 메일을 읽는 도중에 중단

하면 메일은 사용자의 홈 디렉터리에 있는 파일에 mbox 포맷으로 보관됩니다.

메일 별칭(alias)을 이용하면 하나의 수신자 주소를 한 개 이상의 수신자 주소로 대체할 수 있습니다. 일반

적으로 별칭은 메일 서버의 로컬 사용자 계정에 대체 이름을 할당하거나 메일 주소를 하나의 목적지에서

여러 사람에게 전달하는 데 사용됩니다.

별칭을 위한 표준 파일은/etc/mail/aliases입니다. 이 파일의 포맷은 local account:alias입니다. 따라서

foo를 로 컬 계정 user1의 별칭으로 지정하려면 다음과 같이 적습니다.

user1:foo

이로써 user1은 foo로 주소가 적힌 메일도 수신할 수 있게 됩니다.

또한 다음 행을 이용하여 보통 주소가 루트로 되어 있는 오류 메시지를 foo와 student1로 보낼 수 있습

니다.

root:foo,student1

인터넷 서버

터보리눅스 서버 사용자 안내서 3-28

별칭 설정을 변경한 후에는 이 변경 사항이 별칭 데이터베이스에 반영되었는지 확인하기 위해 다음 명령어로 업데

이트합니다.

# newaliases

메일 전달 (~.forward)

이 기능은 여러분 자신에게 보내짐 메일을 다른 주소로 전달하는 데 이용됩니다.

forward 파일은 개인 사용자의 홈 디렉터리로 들어갑니다. 예를 들어 [email protected]로 보내진 모든 메일을

[email protected]로 전달하려면 원하는 목적지의 주소로 /home/foo/.foward 파일을 작성합니다.

[email protected]

이제 [email protected]로 보내진 메일은 foo의 메일박스로 전송되지 않고 그대신 [email protected]

로 배달됩니다.

메일 큐 관리

어떤 이유로 메일이 곧바로 전송되지 않을 경우에는 나중에 재발송할 수 있도록 /var/spool/mqueue 디렉터리에

일시적으로 저장됩니다.

메일 큐에 들어 있는 내용을 보려면 다음을 실행합니다.

# mailq

미리 정해진 간격으로 이 큐에 들어 있는 메일의 재전송이 시도됩니다. 시동 스크립트를 이용하여 이를 실행할 경

우에는 대략 1시간에 한 번씩 재전송이 시도됩니다(- q1h 옵션으로). 재전송을 강제로 실시하려면 다음을 실행합

니다.

# sendmail -q -v

queue 디렉터리에 보관되는 파일은 몇 개의 부분으로 나뉘어 별도의 파일에 저장됩니다. 파일 범주는 다음과 같

습니다.

파일 식별자 설명

df 메시지 본문

qf 큐 제어 파일(및 헤더)

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-29

xf 사본 파일

tf qf 재작성을 위한 임시 파일

다음과 같이 ls를 실행하면 메일 큐를 볼 수 있습니다.

# ls /var/spool/mqueue

dfPAA01994 qfPAA01994

위 응답은 ID PAA01994 큐에 대해 메일 큐 제어 파일(qf)과 메지지 본문(df) 파일이 있다는 것을 보여

줍니다.

어떤 이유로 큐에 들어 있는 메일이 삭제될 경우 즉시 디렉터리 내의 이 파일을 삭제하여야 합니다. 이때

메일 ID에 착오가 있으면 안 됩니다.

# cd /var/spool/mqueue

# rm *PAA01994

큐 내용을 위조한다든지 하는 방식으로 보안 구멍을 만드는 일이 용이하기 때문에 mqueue 디렉터리를

읽고 쓰는 일은 오직 루트에게만 허용됩니다.

이러한 허가는 다음과 같이 설정할 수 있습니다.

# chmod 700 /var/spool/mqueue

웹 서버 (HTTP 서버)

WWW 또는 HTTP 서버라고도 불리는 웹 서버는 월드 와이드 웹의 하이퍼텍스트 프로토콜을 제공합니다.

웹 서버는 HTTP(프로토콜)을 이용하여 가령 브라우저와 같은 클라이언트가 요청하는 문서와 이에 연결된

HTML 파일, 그래픽, 스크립트 등을 다운로드하고 화면에 표시합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-30

HTTP는 HTML로 작성된 웹 페이지 파일을 교환하기 위한 프로토콜입니다. 간단히 말해서 웹 서버는 공

용 웹 사이트의 서버측에 불가결한 프로그램인 HTTP 프로토콜을 이용하여 웹 페이지를 올립니다. 아래에

열거한 웹 사이트에서 WWW, HTTP, HTML 등에 관한 정보를 입수하실 수 있습니다.

• WWW (World Wide Web) http://www.w3.org/WWW/

• HTTP (HyperText Transfer Protocol) http://www.w3.org/Protocols/

• HTML (HyperText Markup Language) http://www.w3.org/MarkUp/

세계 최초의 웹 서버는 1991년 6월에 CERN의 httpd와 NCSA의 HTTPd로 발표되었습니다. 이 둘은

모두 개발이 중단되었으며(CERN httpd 는 1996년 4월에 개발 중단됨.), 그 이후로 Jigsaw나 세계에서

가장 인기 있는 웹 서버인 Apache와 같은 다양한 자바 기반의 웹 서버가 계속 개발돼 오고 있습니다.

다음은 이 서버들에 관한 정보를 제공하는 관련 웹 사이트의 일부입니다.

• CERN (European Laboratory for Particle Physics) http://www.cern.ch/

• CERN httpd http://www.w3.org/Daemon/

• NCSA (The National Center for Supercomputing Applications)

http://www.ncsa.edu/

• NCSA HTTPd http://hoohoo.ncsa.uiuc.edu/

• W3C (World Wide Web Consortium) http://www.w3.org/

• Jigsaw http://www.w3.org/Jigsaw/

• Apache http://www.apache.org/

Apache 개관

Apache는 세계에서 가장 널리 이용되고 있는 웹 서버입니다. 1999년 2월의 자료에 의하면 전세계 웹 서

버의 반 이상이 Apache를 가동하고 있으며, Apache는 명실상부한 표준이 되었습니다. 개발 소스는

Apache Project입니다. Apache는 무료이고 안정성 높으며 빠르고 관리가 용이합니다. Apache는 다양

한 기능을 갖추고 있으며 소스 코드가 일반에게 공개되어 있습니다.

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-31

Apache에 관한 정보는 개발자의 Apache Project 웹 사이트에서 구하실 수 있습니다.

전자 잡지 ApacheWeek에도 Apache에 관한 정보가 실려 있습니다.

• The Netcraft Web Server Survey (http://www.netcraft.com/survey/)

• Apache Project (http://www.apache.org/)

• About Apache Project (http://www.apache.org/ABOUT_APACHE.html)

• ApacheWeek (http://www.apacheweek.com/)

최신의 뉴스와 정보 그리고 가장 최근의 버전을 인터넷에서 Apache Project 웹 사이트 및 그 미러 사이트

에서 구하실 수 있습니다.

• Apache Project 다운로드 사이트: http://www.apache.org/dist/

• Apache Project 미러 사이트: http://www.apache.org/dyn/closer.cgi

httpd 시작하기와 끝내기

Apache의 핵심은 /etc/rc.d/init.d/httpd 스크립트로 실행되는 데몬 httpd로 이루어져 있습니다.

명령어 행 옵션을 통해 httpd의 시작, 종료, 재시작 그리고 상태를 확인할 수 있습니다.

httpd의 설정을 변경했을 때는 재시작을 해야만 변경한 내용이 제대로 적용됩니다.

httpd를 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/httpd start

httpd를 끝내려면 다음을 실행합니다.

# /etc/rc.d/init.d/httpd stop

인터넷 서버

터보리눅스 서버 사용자 안내서 3-32

httpd를 재시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/httpd restart

httpd의 현재 상태를 확인하려면 다음을 실행합니다.

# /etc/rc.d/init.d/httpd status

httpd가 실행되고 있을 때는 ps 명령어를 통해 다음과 유사한 응답을 볼 수 있습니다.

# ps aux|grep httpd nobody 351 0.0 3.7 1916 1164 ? S 08:13 0:00 httpd

위와 같은 응답을 볼 수 없다면 httpd가 실행되고 있지 않거나 설치되지 않은 것입니다.

이 때에는 Apache를 시작하거나 재시작 또는 설치해야 합니다.

통상적으로 Apache는 기본값 설정을 이용하여 설치한 직후에 시동됩니다.

URL로 IP 주소를 입력하여 다른 호스트에서 실행되는 브라우저를 통해 액세스해 보기 바랍니다. Apache

의 초기 샘플 웹 페이지가 나타나면 이상이 없는 것입니다.

httpd 구성

httpd는 네 개의 구성 파일을 필요로 합니다. 통상적인 위치와 파일 이름 그리고 각각에 대한 주 목적은

다음과 같습니다.

파일 목적

/etc/httpd/conf/httpd.conf httpd 데몬을 실행하기 위한 전반적인 구성 파일

/etc/httpd/conf/srm.conf 여러분이 올리게 될 html문서를 위한 세부 설정

/etc/httpd/conf/access.conf 액세스 제어 설정

/etc/httpd/conf/mime.types MIME MIME 파일 유형의 목록

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-33

Apache의 특징 중 하나는 다양한 기능을 갖추고 있다는 것입니다.

위에 열거한 해당 구성 파일에서의 설정을 통해 이 기능들을 활용할 수 있습니다. 아래에서는 몇 가지 기

본 항목에 대해 설명합니다.

httpd.conf

httpd 전체의 동작에 적용되는 설정은 /etc/httpd/conf/httpd.conf에서 찾아 볼 수 있습니다. 또한

여기서 Apache를 위한 확장 모듈을 정의합니다.

httpd.conf의 내용을 확인하려면 다음을 실행합니다.

# less /etc/httpd/conf/httpd.conf

이때 다음과 유사한 시스템 응답이 보여야 합니다.

LoadModule mmap_static_module

/usr/libexec/mod_mmap_static.so

LoadModule vhost_aliases_module

/usr/liberec/mod_vhost_alias.so

LoadModule env_module /usr/libexec/mod_env.so

LoadModule config_log_module

/usr/libexec/mod_log_config.so

LoadModule agent_log_module

/usr/libexec/mod_log_agent.so

AddModule mod_mmap_static.c

AddModule mod_vhost_alias.c

AddModule mod_env.c

AddModule mod_log_config.c

AddModule mod_log_agent.c

ServerType standalone

Port 80

HostnameLookups off

User nobody

Group nobody

ServerAdmin root@localhost

인터넷 서버

터보리눅스 서버 사용자 안내서 3-34

ServerRoot "/home/httpd/html"

ErrorLog /var/log/httpd/errpr_log

다음은 기본 설정 지시문에 관한 설명입니다.

[Load Module] [Add Module]

Apache의 강점은 여러 개의 모듈로 구성되어 있다는 사실입니다. 이 지시문은 확장 모듈을 읽어 들이도

록 지시합니다.

[ServerType]

이 지시문은 Apache(httpd)에게 standalone( 기본값) 또는 슈퍼서버 inetd의 일부로 시동하도록 지시합

니다. 별 다른 이유가 없다면 기본값인 standalone을 이용하는 것이 무난합니다.

[Port]

Apache(ht tpd )는 클라이언트 요청을 수신하기 위한 포트 번호(기본값은 80) 를 설정합니다. 특정한 사용

자를 위해 Apache를 실행하거나 루트 이외의 누군가에게 httpd의 실행을 허용하지 않는 한 기본값인 포

트 80을 사용하여야 합니다. 유명 서비스들도 이 포트 번호를 사용합니다.

[HostnameLookups]

이 지시문은 IP 주소나 호스트 이름을 사용하려는 클라이언트 액세스 요청의 액세스 로그를 설정합니다.

초기에는 “off”로 설정되는데, 이는 IP 주소가 기록될 것임을 의미합니다. 초기 설정을 사용할 것을 권장

합니다.

[User] [Group]

httpd프로세스의 사용자 및 그룹 소유자가 여기서 설정됩니다. 초기에 이 둘은 모두 nobody로 설정됩니

다. nobody 설정이 사용되는 까닭은 다수의 무차별 액세스가 있을 수 있고, 보안의 관점에서 볼 때는 허

가에 대한 제한이 거의 없기 때문입니다. 사용자와 그룹 허가를 정확히 구성하도록 특히 유의하여야 합니

다.

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-35

[ServerAdmin]

이 지시문은 Apache(ht tpd ) 관리자의 메일 주소를 설정합니다. 초기값은 root@localhost입니다. 문제

가 있을 때마다 이 주소로 메일이 전송됩니다. 기본값인 관리자의 주소를 이용해도 좋지만 둘 이상의 개인

이 웹 사이트를 관리할 때는 여기서 모든 웹 관리자를 위한 메일링 리스트를 지정하는 것이 편리할 때가 많

습니다.

[ServerRoot]

이것은 구성 파일이 위치한 디렉터리입니다. 기본값은 /etc/httpd로 설정되어 있습니다. 이 위치를 변경

하지 않는 것이 좋습니다.

[ErrorLog]

이것은 에러 메시지를 보관하는 파일입니다. 기본값은 logs/error_log입니다. 이것은 [ServerRoot] 지시

문에 지정된 디렉터리에 상대적으로 지정됩니다. 가상 호스트를 사용할 경우에는 각각에 대해서 별도의

오류 로그 파일을 지정할 수 있습니다.

[LogFormat] [CustomLog]

액세스 로그 포맷은 LogFormat에서 지정하며 액세스 로그를 보관하는 파일은 CustomLog를 통해

지정합니다. 가상 호스트를 사용할 경우에는 각각에 대해서 별도의 오류 로그 파일을 지정할 수 있습니다.

srm.conf

/etc/httpd/conf/srm.conf의 내용을 보려면 다음을 실행합니다.

# less /etc/httpd/conf/srm.conf

그러면 다음과 유사한 내용이 나타납니다.

DocumentRoot /home/httpd/html

UserDir public_html

DirectoryIndex index.html index.shtml index.cgi

인터넷 서버

터보리눅스 서버 사용자 안내서 3-36

FancyIndexing on

ReadName README

HeaderName HEADER

IndexIgnore .??* *~ *# HEADER* README* RCS

AccessFileName .htaccess

TypesConfig /etc/http/cong/mime.types

Alias /icons/ /home/httpd/icons/

ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/

아래는 기본 설정 지시문에 관한 설명입니다.

[DocumentRoot]

이 지시문은 HTML 파일을 조직하기 위한 최상위 디렉터리를 지정합니다.

[UserDir]

이것은 공개될 사용자 디렉터리입니다.

[DirectoryIndex]

이 지시문은 이름이 지정되지 않은 파일에 대해 기본값으로 표시될 파일 이름을 지정합니다.

[Alias]

이 지시문은 DocumentRoot에서 지정된 것 이외의 대체 디렉터리 이름을 지정합니다.

[ScriptAlias]

CGI 스크립트와 같은 실행 가능 파일을 보관하는 디렉터리의 대체 이름을 지정합니다.

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-37

access.conf

access.conf의 내용을 보려면 다음을 실행합니다.

# less /etc/httpd/conf/access.conf

그러면 다음과 유사한 내용이 나타납니다.

<Directory />

Options None

AllowOverride None

</Directory>

<Directory /home/httpd/html>

Options Indexes Includes FollowSymLinks

AllowOverride None

order allow, deny

allow from all

</Directory>

<Directory /home/httpd/cgi-bin>

AllowOverride None

Options ExecCGI

</Directory>

access.conf의 포맷은 HTML과 유사합니다. <Directory directoryname>에서 </directory>까지 지정

된 디렉터리의 설정이 실행됩니다.

이들은 기본값으로 루트 디렉터리(/), HTML 디렉터리(/home/httpd/html), cgi-bin 디렉터리

(/home/httpd/cgi-bin) 등으로 설정됩니다. 그러나 각자 다른 디렉터리를 추가할 수 있습니다.

[Options]

주요 옵션은 다음과 같습니다.

None 아무런 옵션도 유효하지 않습니다.

Al l 모든 옵션이 유효합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-38

Indexes srm.conf의 DirectoryIndex가 설정되어 있지 않을 경우 디렉터리들이

목록으로 표시됩니다.

ExecCGI CGI 스크립트를 실행하기 위한 허가

Includes SSI(Server Side Includes)를 실행하기 위한 허가

IncludesNOEXEC SSI를 실행하기 위한 허가가 주어지지만 #exec 명령어와 #include 명령어를 통한 CGI의 실행은 허용되지 않습니다.

Fo l lowSymLinks 기호 링크가 허가됩니다.

SymL inks I fOwnerMatch 목적 파일과 기호 링크의 소유자가 동일할 경우에만 기호 링크가 허가됩

니다.

[AllowOverride]

가능할 경우 액세스 제어 파일 .htaccess의 사용을 지정합니다. 이때 아래와 같은 옵션을 택할 수 있습

니다.

None 모든 .htaccess 옵션을 사용 불능으로 합니다.

Al l 모든 .htaccess 설정을 사용 가능으로 합니다.

AuthConf ig 승인과 관련된 .htaccess 설정만을 사용 가능으로 합니다.

F i le Info 파일 포맷과 관련된 .htaccess설정만을 사용 가능으로 합니다.

Indexes 리스팅과 관련된 .htaccess 설정만을 사용 가능으로 합니다.

Limit 액세스 제어와 관련된 .htaccess 설정만을 사용 가능으로 합니

다.

Opt ions 목적 디렉터리와 관련된 .htaccess 정의만을 사용 가능으로 합

니다.

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-39

[order]

액세스 허가 및 거부에 대한 결정의 순서를 설정합니다. 옵션은 아래와 같습니다.

al low,deny 허용, 거부의 순서

deny,al low 거부, 허용의 순서

mutual- failure 허용 및 거부 조건이 모두 충족될 경우에만 허가 부여

[allow from] [deny from]

액세스 허가 및 거부 설정. 옵션은 아래와 같습니다.

all 모든 액세스가 허가 또는 거부됩니다.

domain name 특정한 도메인 이름으로 된 액세스가 허가 또는 거부됩니다.

IP address 특정한 I P 주소로 된 액세스가 허가 또는 거부됩니다.

SSL을 이용한 보안 사이트 조직

터보리눅스 서버 6.5에 들어 있는 Apache에는 SSL(Secure Sockets Layer) 기능을 제공하기 위한 확장

모듈 mod_ssl이 포함되어 있습니다.

SSL로 보안 사이트를 설정하고자 할 때는 적용 가능한 Apache구성 파일의 주석을 삭제한 뒤 Apache

를 재시작합니다(아래의 mod_ssl 포함시키기 참조). 또한 보안 서버를 가동하려면 VeriSign과 같은

CA(Certification Authority: 인증 기관)에 등록된 키를 가지고 있어야 합니다. 키를 생성하고 등록하려

면 이런 인정된 기관이 제시하는 절차를 따라야 합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-40

mod_ssl 포함시키기

mod_ssl을 포함시키려면 /etc/httpd/conf/httpd.bootopt 파일에 있는 다음 행에서 주석 표시를 삭제합

니다.

# HTTPDOPT=-DSSL/mod_ssl is not included (initial setting)

HTTPDOPT=-DSSL

주석 표시를 삭제한 뒤에 Apache를 재시작합니다.

mod_ssl가 포함되었는지 확인하려면 웹 브라우저를 이용하여 다음 주소에 액세스합니다.

https://xxx.xxx.xxx.xxx

여기서 xxx.xxx.xxx.xxx는 여러분 서버의 IP 주소입니다.

CA (Certification Authorities)

CA는 디지털 ID를 발급하는 인증 기관과 이메일, 웹 페이지 등에서 디지털 서명으로 사용되는 디지털 인증을 말합니다.

인터넷이나 이메일에 첨부된 디지털 서명은 그것이 권한을 가진 저자에 의해 작성되고 변경된 적이 없음

을 보증하는 데 도움이 됩니다. 확인 절차는 일반적으로 저자가 보유하고 있는 공개 키를 사용하여 이루어

집니다. 디지털 ID는 이 공개 키에 틀림이 없고 이 공개 키를 보유하는 개인이 실제로 존재한다는 증거가

됩니다.

미국에서는 VeriSign(http://www.verisign.com)이 이러한 보증 서비스를 제공합니다.

SSL 프로토콜

SSL(Secure Sockets Layer)프로토콜은 넷스케이프사에서 개발한 것입니다.

SSL는 TCP/IP (Transmission Control Protocol/Internet Protocol) 상에서 실행되며 HTTP의 사용에

국한되지 않습니다. SSL은 TELNET, FTP, NNTP(Network News Transfer Protocol),

LDAP(Lightweight Directory Access) 등과 같은 프로토콜을 실행하는 응용 프로그램에서 널리 사용되도록 고안되

었습니다.

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-41

실제로 이를 사용하려면 SSL이 장착된 응용 프로그램이 있어야 합니다.

공개 사이트를 위한 샘플 설정

Apache는 디렉터리를 이용하여 액세스 제어를 설정합니다. 구성은 제어하고자 하는 디렉터리에 있는

access.conf 파일이나 .htaccess 파일을 통해서 이루어집니다.

예를 들어, 회사 내의 호스트(turbolinux.gr.jp)에만 /home/httpd/html/secret 아래에 있는 파일들

에 대한 액세스를 허가하고자 한다면 여러분의 access.conf 파일은 다음과 유사한 모습을 띠게 됩니

다.

<directory /home/httpd/html/secret>

order deny,allow

deny from all

allow from .turbolinux.gr.jp

</directory>

.htaccess 파일을 이용하고자 할 때는 다음과 같은 모습을 띠게 됩니다.

order deny,allow

deny from all

allow from turbolinux.gr.jp

인터넷 서버

터보리눅스 서버 사용자 안내서 3-42

FTP 서버

FTP 서버는 동일한 이름(FTP)의 프로토콜을 이용하여 LAN이나 인트라넷 또는 인터넷 상의 호스트간에

파일을 전송(다운로드 또는 업로드)하려는 클라이언트의 요청에 대해 서비스를 제공합니다

ftp를 이용하려면 각 클라이언트가 원격 FTP 서버 컴퓨터 상에 계정을 가지고 있어야만 합니다. 공개 인

터넷 FTP 사이트 상에서 다수의 이름 없는 사용자를 수용하기 위해 “anony mous” 또는 단지 “ftp”를

일반 계정 이름으로 사용하여 어떤 사용자라도 FTP 서버에 로그인할 수 있도록 해줍니다.

ProFTPD

터보리눅스 6.5에서 FTP 서비스는 ProFTPD를 통해 제공됩니다. ProFTPD(Professional FTP

Daemon)는 원래 “Floody”에 의해 개발되었으나 현재는 다수의 자원 프리 소프트웨어 개발자들과 더불어

“MacGyver(Habeeb J. Dihu로도 알려짐)”가 개발을 주도하고 있습니다. ProFTPD의 주 웹 사이트는

http://www.proftpd.net입니다. 메일링 리스트는 http://www.proftpd.org/proftpd-l-archive/에 보

관됩니다. 배포판에 표시되는 프로그램 이름은 proftpd로, 모두 소문자로 적습니다.

ProFTPD 실행하기

ProFTPD는 다음 세 가지 모드 중 하나로 실행할 수 있습니다.

• 단독 모드

• 슈퍼 서 버 모드

• TCP_Wrapper를 이용한 슈퍼서버 모드

초기에 ProFTPD는 반드시 루트로만 실행해야 합니다. ProFTPD는 표준 syslog 메커니즘을 이용하여 오

류를 기록합니다. /var/log/messages를 참조하시기 바랍니다.

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-43

슈퍼서버 모드로(즉, inetd의 자녀로) ProFTPD를 실행하려면 /etc/inetd.conf에 있는 이 행의 시작 부

분에서 주석 문자열(#)을 삭제합니다.

#ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd

그런 다음 ps ax 명령어를 이용하여 inetd 프로세스 번호를 찾고 inetd 프로세스 SIGHUP 시그널(killall

- HUP 프로세스 번호)을 전송하여 inet이 스스로 재구성되도록 합니다. 이때 여러분 시스템 상의

host.allow에 in.proftpd 를 추가해야 할 수도 있습니다.

ProFTPD와 함께 tcp-wrapper를 이용하려면, ProFTPD가 tcp-wrapper를 이용하는 다른 데몬과

동일한 방식으로 inetd에서 실행되도록 구성하고 여러분의 hosts.allow 및 hosts.deny 파일에 적절한 한을 추가해야 합니다.

ProFTPD를 단독 모드에서 루트로 실행하려면 명령어 행에 proftpd를 입력하기만 하 면 됩니다.

# proftpd &

proftpd가 실행되고 있는지 여부를 확인하려면 다음을 실행합니다.

ps ax | grep proftpd

4296 ? S 0:00 proftpd (accepting connections)

proftpd 프로세스가 프로세스 목록에 나타나지 않으면 이 프로세스가 inetd에서 실행되고 있지 않거나 실

행되고 있더라도 현재 활성화된 세션이 없는 것입니다.

proftpd가 실행되고 있는 것으로 표시되면 다음 명령어로 ftp의 사용을 시도해 보십시오.

ftp localhost

jon@plumtree:~$ ftp localhost

Connected to localhost.

위의 메시지가 나타나면 ftp가 정상적으로 작동되고 있는 것입니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-44

기본 구성

ProFTPD 구성 파일은 /etc/proftpd/proftpd.conf입니다.

여기서 우리는 ProFTPD가 단일 anonymous 로그인 계정을 이용한 단일 서버로 실행되도록 설정합니다. ProFTPD 서버는 그룹 “nobody”의 사용자 “nobody”로 실행됩니다.

공개 서버에 로그인하는 anonymous ftp 클라이언트는 사용자 “ftp”또는 사용자 “ftp”의 별칭으로 설정

되는 “anonymous”로 간주됩니다. 여러분의 /etc/group 파일에는 시스템 상의 모든 그룹의 목록에

“nobody”라는 그룹이 포함되어 있어야 합니다. 여러분의 /etc/passwd 파일에는 “ftp”라는 사용자가 포

함되어 있어야 합니다. 터보리눅스 서버 6.5를 설치할 때 그룹 “nobody”와 사용자 “ftp”가 기본값으로

추가된다는 점에 유의하시기 바랍니다.

cd 명령어로 /usr/share/doc/packages/proftpd-1.2.0rc3/sample-configurations/로 가서 초기

ProFTPD 구성의 전형적 예인 basic.conf를 찾아보시기 바랍니다. 두 개의 anonymous 디렉터리와

하나의 guest 계정을 설정하고자 한다면 이 디렉터리에 있는 anonymous.conf 보기 파일을 이용하십시

오. guest 계정은 anonymous와 동일하지만 유효한 비밀번호가 필요합니다.

터보리눅스 6.5에서는 기본값으로 basic.conf가 ProFTPD의 초기 구성을 위해

/etc/proftpd/proftpd.conf로 이름이 바뀝니다.

ProFTPD는 여러 가지 인증 방식을 지원하며 기본값으로 PAM을 사용합니다.

자세한 내용은 /usr/share/doc/packages/proftpd-1.2.0rc3/README.PAM을 참조하시기 바랍

니다.

ProFTPD를 비표준 포트에서 실행하는 법, 업로드/다운로드 비율을 조정하는 법, xinetd에서 이용하는 법,

inetd보다 발전된 대체 방식, 다른 anonymous 로그인 또는 guest 계정을 추가하는 법 등을 비롯한

ProFTPD의 여러 가지 다른 기능에 대한 정보를 보려면 proftppd를 위한 매뉴얼 페이지와 위에 언급한

웹 사이트를 살펴보시기 바랍니다.

구성 파일인 /etc/proftpd/proftd.conf외에도 proftpd에 연결된 파일로는 다음과 같은 것이 있습니

다.

/usr/sbin/proftpd

/usr/bin/ftpwho

/usr/bin/ftpcount

/usr/sbin/ftpshut

웹 서버 (HTTP 서버)

터보리눅스 서버 사용자 안내서

3-45

/var/log/xferlog

/var/run/proftpd-[pid]

/var/run/proftpd.pid

/var/run/proftpd-inetd

TurboTools portcfg(2-27쪽 참조)와 serviceboard (2-33쪽 참조) 역시 proftpd를 시작하거나 끝내고

proftpd에 대한 책임을 inetd 슈퍼서버로 전환하는 데 이용될 수 있습니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 3-46

터보리눅스 서버 사용자 안내서

4-1

인트라넷 서버

인트라넷에서 호스트 사이에 정보와 리소스를 공유하는 데 중요한 역할을 하는 서버가 몇 가지 있습니다.

이 장에서는 다음 서버들에 관한 정보를 제공합니다.

• Samba : MS 윈도우 및 유닉스 시스템(예: 터보리눅스)의 통합 기능을 제공하여 윈도우나 유

닉스를 실행하는 시스템 간에 파일이나 프린트 서버와 같은 리소스를 공유할 수 있도록 해줍니

다.

• Netatalk : 리눅스 커널 내에서 AppleTalk 프로토콜을 실행하여 매킨토시 및 유닉스 시스템 간

의 리소스 공유 기능을 제공합니다.

• Portmapper (portmap) : NFS 및 NIS 서버와 통신하기 위해 RPC 호출을 실행하는 데 필요한

지원을 제공합니다.

• NFS : 유닉스 및 MS 윈도우 시스템 간의 파일 공유를 허용하는 Network File System을 실행합니다.

• NIS : 인트라넷 상의 다양한 리소스의 이름과 위치에 대한 중앙 데이터베이스를 제공합니다.

NIS는 또한 다양한 프로그램이 인트라넷 리소스에 액세스할 수 있도록 해줍니다.

제 4 장

인터넷 서버

터보리눅스 서버 사용자 안내서 4-2

Samba

Samba는 유닉스용 SMB(Server Message Block) 프로토콜을 실행하는 소스가 개방된 무료 소프트웨어

패키지로서 윈도우 OS와 유닉스를 통합하는 데 이용될 수 있습니다. Samba는 유닉스 시스템(가령 리눅

스)의 리소스를 마이크로소프트 윈도우와 공유할 수 있도록 하여 경제적인 파일 서버나 프린트 서버 등이

양 시스템에서 공히 설정될 수 있도록 해줍니다. SMB는 CIFS(Common Internet File System), Lan

Manager 또는 NETBIOS 프로토콜로이라고도 합니다.

또한 윈도우 시스템에서 Samba 클라이언트를 실행하면 유닉스 시스템에서 윈도우 리소스를 액세스할 수

있습니다. (여기서는 Samba 클라이언트에 대해서는 다루지 않기로 합니다. 자세한 내용을 보려면

smbclient 매뉴얼 페이지를 참조하시기 바랍니다. Samba 수트 전반에 관한 내용을 보려면 samba 매뉴

얼 페이지를 참조하시기 바랍니다.)

Samba는 호주의 프로그래머 Andrew Tridgell이 개발하여 1992년에 처음으로 공개했습니다. 현재는

Samba Team이 개발을 주관하고 있습니다.

터보리눅스 서버 6.5가 사용하는 버전은 Samba-2.0.7입니다. Samba Team의 공개 웹 사이트

http://www.samba.org/ 에 가시면 자세한 정보와 최신 버전의 Samba를 구하실 수 있습니다.

Samba 수트

Samba는 다음과 같은 구성 요소들로 이루어져 있습니다.

• smbd � 윈도우 클라이언트에 파일 공유 및 인쇄 서비스를 제공하는 서버 데몬.

• nmbd - NetBIOS 이름 서빙 및 브라우징 지원을 제공합니다.

• smbclient 유닉스 컴퓨터가 윈도우 컴퓨터 상의 프린터에서 인쇄를 할 수 있게 해줍니다.

• testparm - smb.conf 구성의 유효성을 테스트합니다.

Samba

터보리눅스 서버 사용자 안내서

4-3

• testprns – printcap 파일에 정의된 프린터를 테스트합니다.

• smbstatus – SMB 서버에 대한 현재의 접속을 목록으로 표시합니다. 또한 실행되고 있는 Samba

의 버전을 보여줍니다.

• nmblookup – 유닉스 측에서 NetBIOS 이름 조회가 이루어질 수 있도록 해줍니다..

• make-smbcodepage – smbd 서버에 대한 SMB 코드 페이지 정의 파일을 작성합니다.

• smbpasswd – Samba 및 윈도우 상에서 암호화된 SMB를 변경합니다.

이 외에도 SWAT(Samba Web Administration Tool)라 불리는 HTTP 기반의 구성 인터페이스가 있는데,

이것은 지역적으로 또는 인터넷을 통해 브라우저를 이용하여 smb.conf를 구성할 수 있게 해줍니다.

swat 매뉴얼 페이지를 참조하시기 바랍니다.

Samba 시동 모드

Samba는 Samba 데몬이 항상 호출 상태에 있거나 슈퍼서버( inetd) 모드로 있는 단독 모드로 실행될 수

있습니다. 또한, 슈퍼 서버 inetd 에서 Samba를 시작할 때 TCP_Wrapper 기능을 이용하면 보다 나은

보안 효과를 얻을 수 있습니다. 특히 Samba는 다음 세 가지 모드에서 실행될 수 있습니다.

• 단독 모드

• 슈퍼서버 모드

• TCP_Wrapper를 이용한 슈퍼서버 모드

단독 모드 터보리눅스 서버 6.5는 기본값으로 Samba를 단독 모드에서 실행합니다. 이 안내서에서는 이(단독) 모드

를 중점적으로 다룹니다.

슈퍼서버 모드 Samba를 슈퍼서버 모드에서 시작하려면 /etc/inetd.conf 파일에 다음 두 행을 추가한 다음 inetd 를 재

시작합니다. inetd에 관한 자세한 내용은 2-5쪽의 inetd 절을 참조하시기 바랍니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-4

netbios-ssn stream tcp nowait root /usr/sbin/smbd

netbios-sn dgram udp wait root /usr/sbin/nmbd

TCP_Wrapper를 이용한 슈퍼서버 모드

TCP_Wrapper를 이용한 슈퍼서버 모드에서 시작하려면 /etc/inetd.conf 파일에 다음 두 행을 추가한 다

음 inetd 를 재시작합니다. TCP_Wrapper에 관한 자세한 내용을 보려면 2-11쪽의 TCP_Wrapper (tcpd)

절을 참조하시기 바랍니다.

netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/sbin/smbd

netbios-sn dgram udp wait root /usr/sbin/tcpd /usr/sbin/smbd

Samba 시작하기와 끝내기

Samba 시동 스크립트는 /etc/rc.d/init.d/smb 에 있습니다.

시동 스크립트는 start, stop, restart, status 등의 옵션을 취할 수 있습니다.

Samba 구성이 변경될 때마다 Samba를 재시작해야만 변경 내용이 적용됩니다.

Samba를 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/smb start

Samba를 끝내려면 다음을 실행합니다.

# /etc/rc.d/init.d/smb stop

Samba를 재시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/smb restart

Samba의 상태를 확인하려면 다음을 실행합니다.

# /etc/rc.d/init.d/smb status

또한 ps 명령어로 Samba가 실행되고 있는지 확인할 수 있습니다.

# ps aux | grep smb

Samba

터보리눅스 서버 사용자 안내서

4-5

root 766 0.2 0.2 1764 732 ? S 08:13 0:00 smbd -D

위에 제시된 응답을 얻을 수 없을 때는 Samba가 실행되고 있지 않거나 아예 설치가 되지 않은 것일 수

있습니다. 이러한 경우에는 Samba가 설치되어 있다면 이를 실행하고 그렇지 않으면 설치를 한 다음 이를

시작하여야 합니다.

Samba 구성

먼저 서버 측의 설정에 대해 설명합니다. 구성 파일을 직접 수정하는 방법에 관해 설명할 것입니다. 웹 브

라우저를 통해 작동하는 SWAT(Samba Web Administration Tool)라 불리는 구성 툴을 이용하여

smb.conf 파일을 수정할 수도 있습니다. 이에 대해서는 나중에 설명하기로 합니다.

Samba는 /etc/smb.conf 파일에서 설정을 가져옵니다. 이것은 텍스트 파일입니다. 이 파일은 몇 개의 섹

션으로 구성되어 있는데, 각 섹션 앞에는 각 괄호([ ])를 친 이름이 놓입니다. 이 이름은 파일 공유를 위한

단위가 됩니다. [printers] 섹션을 제외한 각 섹션은 디렉터리와 일치해야만 합니다. 예를 들면 다음과

같습니다.

[public]

path=/home/samba/public

이것은 [public] 섹션 내의 설정이 /home/samba/public 디렉터리에 적용된다는 것을 의미합니다. 섹

션 이름 [global], [homes], [printers] 등은 시스템이 사용하도록 남겨둡니다.

[global] Samba 전체에 적용되는 설정

[homes] 홈 디렉터리에 적용되는 설정

[printers] 공유 프린터에 적용되는 설정

Samba를 설치할 때 /etc 아래에 Samba구성 파일 smb.conf가 생성됩니다. 주어진 그대로 smb.conf

가 smbd를 실행하기만 하면 Samba의 기능 대부분을 사용할 수 있습니다. 하지만 보안 문제를 고려할

때는 사용 환경이 반영되도록 smb.conf를 편집해야 합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-6

통상적으로 /etc/smb.conf 에는 다음 항목이 포함됩니다.

[global]

coding system = euc

client code page = 932

workgroup = WORKGROUP

server string = Samba %v

encrypt passwords = Yes

map to guest = Bad User

dns proxy = No

guest account = smbguest

[homes]

comment = %U’s home directory

read only = No

browseable = No

[printers]

comment = All Printers

path = /var/spool/samba

print ok = Yes

browseable = No

[private]

comments = Private space; one can write one’s own files.

path = /home/samba/private

read only = No

[public]

comment = Public space; anyone can write any files

path = /home/samba/public

guest ok = Yes

read only = No

force group = public

force create mode = 0664

force directory mode = 0775

Samba

터보리눅스 서버 사용자 안내서

4-7

[tmp]

comment = Read only file space

path = /tmp

guest ok = Yes

이어지는 절에서는 위에 열거된 각각의 코드에 대해 설명합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-8

[global] 섹션 [global] 섹션은 smb.conf 상단에 나타나며 Samba 전체에 적용되는 설정을 열거합니다. 다음은 이

섹션의 각 설정에 대한 설명입니다.

coding system

이 세트는 초기의 기본값으로 놓아두어야 합니다.

client code page

이 세트는 초기의 기본값으로 놓아두어야 합니다.

workgroup

이 세트는 Samba 서버가 어떤 윈도우 네트워크 NT 도메인 이름 또는 작업그룹 이름에 속하는지를 결정

합니다. 초기값은 “WORKGROUP”입니다.

server string

네트워크 컴퓨터 상의 윈도우 클라이언트가 브라우징을 할 때 “comment ” 난에 이 문자열이 나타납니다.

기본값은 Samba %v이며, 여기서 %v는 Samba 버전 번호로 대체됩니다. 터보리눅스 서버 6.5의 경

우 %v의 값은 “Samba-2.2.0-1”로 설정됩니다.

encrypt passwords

이 세트는 클라이언트가 Samba 서버에 액세스할 때 암호화된 비밀번호를 사용할 것인지 여부를 감독합

니다. 이 매개변수는 Yes나 No 중 하나로 설정될 수 있습니다. 초기값은 Yes입니다.

윈도우 NT 4.0 SP3 이상과 윈도우 98에서는 기본값으로 암호화된 비밀번호를 요구합니다. 따라서 이 매

개변수는 반드시 Yes로 설정되어야 합니다. 암호화된 비밀번호를 구성하는 방법에 관해서는 나중에 다시

설명합니다.

Samba

터보리눅스 서버 사용자 안내서

4-9

map to guest

이 매개변수는 등록된 유닉스 사용자 계정과 완전히 일치하지 않는 사용자의 요청이 있을 때 어떻게 대처할 것인지를 smbd에게 지시합니다. 아래에 열거한 세 가지 값 중 하나를 취할 수 있습니다. 초기값은

Bad User로 설정됩니다.

Never 유효하지 않은 비밀번호로 된 요청은 거절됩니다.

Bad User 사용자 이름은 유효하지 않지만 비밀번호는 유효할 경우에는

guest 로그인으로 처리되어 “guest account”로 매핑됩니다

(나중에 다시 설명).

Bad Password 사용자 이름은 유효하지만 비밀번호는 유효하지 않을 경우에

는 guest 로그인으로 처리되어 “guest account ”로 매핑됩니

다(나중에 다시 설명).

이 매개변수는 Never나 Bad User 중 하나로 설정되어야 합니다. 비밀번호를 잘못 입력한 사용자는

“guest”로 로그인되기 때문에 Bad Password를 사용할 때는 주의해야 합니다. 아무런 오류 메시지도 없

으므로 사용자는 왜 자기의 파일과 디렉터리에 액세스할 수 없는지 의아해 하게 될 것입니다.

dns proxy

NetBIOS 이름을 찾을 수 없을 때는 이 매개변수가 이름을 주어진 DNS 이름으로 처리할지 여부를 지정

합니다. 이 매개변수는 반드시 Yes나 No 중 하나이어야 합니다. 기본값은 No입니다.

guest account guest ok=Yes 매개변수가 섹션에 설정되면 이것은 서비스에 액세스하는 데 사용되는 사용자 이름이 됩

니다. 기본값은 smbguest입니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-10

[homes] 섹션

이 섹션은 사용자 홈 디렉터리에 적용되는 설정을 보관합니다.

comment

디렉터리에 관한 설명의 일부가 여기서 주어집니다. 네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디렉터리를 브라우징하면 Comment 난에 이 문자열이 나타납니다. 기본값은 %U’s Home directory이며,

여기서 변수 %U는 Samba 서버의 로그인 이름으로 대체됩니다. 예를 들어 사용자의 이름이 “pat”라면

pat의 홈 디렉터리가 화면에 표시됩니다.

read only

홈 디렉터리가 읽기 전용인지 아니면 쓰기가 허용되는지 여부를 결정합니다. 매개변수는 반드시 Yes 나

No 중 하나이어야 합니다. 기본값은 No입니다.

browseable

네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디렉터리를 브라우징하면 Comment 난에 이 문자열이 나

타납니다. 매개변수는 반드시 Yes나 No 중 하나이어야 합니다. 기본값은 No입니다.

[printers] 섹션

이 섹션은 공유 프린터에 적용되는 설정을 보관합니다.

comment

프린터에 관한 설명의 일부가 여기서 주어집니다. 네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디렉터

리를 브라우징하면 Comment 난 에 이 문자열이 나타납니다. 기본값은 All Printers입니다.

Samba

터보리눅스 서버 사용자 안내서

4-11

path

인쇄 스풀 디렉터리의 전체 경로를 지정합니다. 기본값은 /var/spool/samba입니다.

print ok

클라이언트가 인쇄 스풀 파일에 쓰기를 할 수 있는지 여부를 결정합니다. 이 매개변수는 반드시 Yes 나

No 중 하나이어야 합니다. 기본값은 Yes입니다.

browseable

네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디렉터리를 브라우징할 때 프린터를 화면에 표시할 것인지

여부를 결정합니다. 매개변수는 반드시 Yes나 No 중 하나이어야 합니다. 기본값은 Yes입니다.

[private] 섹션

이 섹션은 개인 디렉터리를 공유하고자 할 때 사용할 수 있는 항목들의 샘플을 보여줍니다. 이 섹션은 아

주 중요한 것은 아니지만 필요한 경우가 생길 수 있습니다.

섹션 이름은 공유되는 디렉터리의 이름입니다. 여기서는 공유 디렉터리를 public으로 설정합니다.

comment

여기에는 디렉터리의 설명 일부가 포함됩니다. 네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디렉터리를

브라우징하면 Comment 난에 이 문자열이 나타납니다. 기본값은 “Private space; one can write one's

own files”입니다.

path

공유 디렉터리의 전체 경로를 지정합니다. 기본값은 /home/samba/private입니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-12

read only

홈 디렉터리가 읽기 전용인지 아니면 쓰기도 허용되는지 여부를 결정합니다. 이 매개변수는 반드시 Yes나

No 중 하나이어야 합니다. 기본값은 No입니다.

[public] 섹션

이 섹션은 공개 디렉터리를 공유하고자 할 때 사용할 수 있는 항목들의 샘플을 보여줍니다. 이 섹션은 아

주 중요한 것은 아니지만 필요한 경우가 생길 수 있습니다.

comment

여기에는 디렉터리의 설명 일부가 포함됩니다. 네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디렉터리를

브라우징하면 Comment 난에 이 문자열이 나타납니다. 기본값은 “Public space; anyone can write any

files”입니다.

path

공유 디렉터리의 전체 경로를 지정합니다. 기본값은 /home/samba/public입니다

guest ok

guest 계정의 액세스를 허용할지 여부를 결정합니다. 허용할 경우 [Global] 섹션의 guest account 매개변수에 설정된 사용자 계정으로 액세스가 허용됩니다.

read only

홈 디렉터리가 읽기 전용인지 아니면 쓰기도 허용되는지 여부를 결정합니다. 이 매개변수는 반드시 Yes나

No 중 하나이어야 합니다. 기본값은 No입니다.

Samba

터보리눅스 서버 사용자 안내서

4-13

force group

이 디렉터리에 생성된 파일과 디렉터리의 그룹 소유권에 대한 설정을 강제합니다. 기본값은 public입니

다.

force create mode

여기서 이 디렉터리에서 생성된 파일의 허가에 대한 설정을 강제할 수 있습니다. 기본값은 644입니다.

force directory mode

여기서 이 디렉터리에서 생성된 디렉터리의 허가에 대한 설정을 강제할 수 있습니다. 기본값은 755입니다.

[tmp] 섹션

이 섹션은 임시 디렉터리(읽기 전용)를 공유하고자 할 때 사용할 수 있는 구성의 보기입니다. 이 섹션은 아

주 중요한 것은 아니지만 필요한 경우가 생길 수 있습니다.

comment

이 디렉터리에는 디렉터리의 설명 일부가 포함됩니다. 네트워크 컴퓨터 상의 윈도우 클라이언트가 이 디

렉터리를 브라우징하면 Comment 난에 이 문자열이 나타납니다. 기본값은 “Read only file spac”입니

다.

path

공유되는 디렉터리의 전체 경로를 지정합니다. 기본값은 /tmp입니다.

guest ok

guest 계정의 액세스를 허용할지 여부를 결정합니다. 허용할 경우 [Global] 섹션의 guest account 매개변수에 설정된 사용자 계정으로 액세스가 허용됩니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-14

암호화된 비밀번호

윈도우 NT4.0 ServicePack3 이상과 윈도우 98에서는 네트워크 상에서 흔히 쓰이던 일반 텍스트 비밀번

호 대신에 암호화된 비밀번호가 기본값으로 사용되어 왔습니다. 그러나 이 암호화 비밀번호들은 유닉스

시스템과 호환이 되지 않았기 때문에 액세스가 불가능했습니다. 따라서 특별히 Samba 서버를 위한 비밀번호 파일을 만들어야만 했습니다. 암호화된 비밀번호를 사용할 수 있도록 하려면 [global] 섹션에 encrypt passwords=Yes 매개변수를 설정할 필요가 있습니다.

암호화된 비밀번호를 사용하려면 호출된 Samba 서버를 위해 특별히 생성된 smbpasswd 라는 비밀번호

파일에서 사용자를 등록하면 됩니다. 아래에 간단한 설명이 있습니다. (슈퍼유저라야만 이 작업을 수행할

수 있습니다.)

smbpasswd 파일 만들기

/etc 밑에 smbpasswd라는 이름의 빈 파일을 만듭니다. 슈퍼유저만이 이 파일을 읽고 쓸 수 있습니다.

# touch /etc/smbpasswd

# chmod 600 /etc/smbpasswd

Samba

터보리눅스 서버 사용자 안내서

4-15

사용자 등록

사용자가 smbpasswd 파일에 등록하려면 먼저 시스템에 등록이 되어 있어야 합니다. 여기서는 pat이라는 사용자를 보기로 설명합니다.

# useradd pat # smbpasswd -a pat New SMB Password : password

Repeat New SMB Password : password

Added user pat

Password changed for user pat

smbpasswd 파일에 등록된 사용자를 써 넣으려면(추가하려면) 다음 명령어를 실행합니다.

# cat /etc/passwd | mksbpasswd.sh >> /etc/smbpasswd

smbpasswd 파일에 추가한 뒤에 사용자의 비밀번호를 변경합니다.

#smbpasswd -a -e pat user pat enabled

변경을 마친 뒤에 Samba를 재시작합니다.

파일 및 프린터 공유하기

파일 및 프린터 공유를 위한 포맷을 설정하는 방법은 네 가지가 있습니다. [global] 섹션 내의

security 매개변수에 대해 아래의 네 가지 값 중에서 어떤 것을 선택할 것인지 결정해야 합니다.

security 매개변수는 아마도 smb.conf 에서 가장 중요한 설정일 것입니다. 네 가지 값은 다음과 같습

니다.

• share

• user

• server

• domain

인터넷 서버

터보리눅스 서버 사용자 안내서 4-16

share

공유는 디렉터리와 장치를 대상으로 설정됩니다. 이들은 윈도우 95에서의 공유 설정과 동일한 수준입니다.

Samba 서버에 등록되지 않은 사용자들도 아직 액세스가 가능합니다. 보안이라는 관점에서 볼 때 이는 너

무나 관대한 구성입니다.

user

공유는 사용자별로 설정됩니다. Samba가 인식 작업을 수행하므로 액세스를 원하는 사용자는 미리

Samba 서버에 등록이 되어 있어야만 합니다.

이와 더불어, 윈도우 98 및 NT SP3 이상에서 액세스하려면 암호화된 비밀번호가 필요합니다. 자세한 내

용을 보려면 4-14쪽의 암호화된 비밀번호를 참조하시기 바랍니다.

server

이것은 위의 “user”에 대한 구성과 동일합니다. 단, 인식은 Samba 서버가 아니라 다른 윈도우 NT 서버에

서 이루어집니다. 액세스를 원하는 사용자는 이미 다른 윈도우 NT 서버에 등록이 되어 있어야만 합니다.

이 경우에는 Samba 서버가 윈도우 NT 서버에 대한 하나의 클라이언트로 간주되므로 적어도 하나 이상

의 추가 윈도우 NT 클라이언트 라이센스를 가지고 있어야 합니다.

domain

이 구성은 위의 “user ”의 경우와 동일합니다. 단, Samba 서버는 기존 윈도우 NT 도메인의 멤버로 지정됩

니다. 간단히 말해서 인식은 Samba 서버가 아니라 윈도우 NT 서버(도메인 제어장치)에서 이루어집니다.

액세스를 원하는 사용자는 이미 다른 윈도우 NT 서버에 등록이 되어 있어야만 합니다. 이 경우에는

Samba 서버가 윈도우 NT 서버에 대한 하나의 클라이언트로 간주되므로 적어도 하나 이상의 추가 윈도

우 NT 클라이언트 라이센스를 가지고 있어야 합니다.

이전의 항목에서와 같이, security 매개변수가 명확히 설정되어 있지 않다면 security=user로 가정

합니다.

Samba

터보리눅스 서버 사용자 안내서

4-17

설정 테스트하기

testparm를 실행하여 구성 파일이 제대로 구성되었는지 확인할 수 있습니다.

# testparm Load smb config files from /etc/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[private]"

Processing section "[public]"

Processing section "[tmp]"

Loaded services file OK.

Press Enter to see a dump of your service definitions

이 시점에서 화면 표시가 잠시 멈추는데, Enter를 누르면 테스트의 결과를 볼 수 있습니다.

SWAT으로 구성하기

SWAT(Samba Web Administration Tool)은 웹 브라우저를 통해 Samba를 구성하기 위한 GUI 툴입니

다. SWAT은 Samba 패키지의 일부이며 Samba 패키지와 함께 자동으로 설치됩니다.

SWAT 설정

슈퍼서버 모드에서 실행하려면 /etc/inetd.conf를 편집합니다. SWAT행(파일의 마지막 행)의 주석을 삭

제하고 파일을 저장한 다음 inetd를 재시작합니다.

swat stream tcp nowait.400 root /usr/sbin/swat swat

# /etc/rc.d/init.d/inet restart

인터넷 서버

터보리눅스 서버 사용자 안내서 4-18

SWAT 사용법

SWAT을 사용할 때는 /etc/smb.conf 의 초기 상태에 덮어쓰기가 됩니다. 구성 파일의 이전 상태를 유지

하고자 한다면 반드시 백업을 해두십시오.

준비를 마친 다음 웹 브라우저를 실행하여 SWAT에 접속합니다. SWAT는 초기에 포트 번호 901을 사용

하도록 설정되어 있습니다. 지역적으로 액세스하려면 URL http://localhost:901/을 사용하십시오.

일단 IP 주소와 포트 번호를 설정하고 나면 원격으로도 SWAT에 액세스할 수 있습니다.

페이지가 열리면 인식을 요구합니다. 여기서 관리자의 계정과 비밀번호를 입력합니다. 통상적으로 루트

비밀번호를 입력하게 될 것입니다. 이 시점에서 Samba 홈페이지가 나타납니다.

홈페이지의 위쪽에는 각각 해당 구성 화면에 링크된 다음과 같은 아이콘이 뜹니다.

• (HOME)

• (GLOBALS)

• (SHARES)

• (PRINTERS)

• (STATUS)

• (VIEW)

• (PASSWORD)

(HOME)

이것은 SWAT의 홈페이지입니다. 여기서 각 도움말 화면이나 개별 구성 화면으로 넘어갈 수 있습니다.

Samba

터보리눅스 서버 사용자 안내서

4-19

(GLOBALS)

이것은 smb.conf 의 [GLOBAL] 섹션 설정에 적용됩니다. 구체적인 사항을 보려면 Details를 클릭합니다. SWAT 도움말 문서를 보려면 각 구성 항목의 왼쪽에 있는 Explanation을 클릭합니다. 모든 설정을 기본

값으로 복귀시키려면 Reset을 클릭합니다.

각 항목에는 해당 항목을 이전의 설정으로 복귀시키는 “Return to previous setting ” 버튼이 있습니다. 설

정을 변경한 후에는 Change Settings를 클릭하여 새로운 설정을 smb.conf 에 포함시킵니다.

(SHARES)

공유 디렉터리를 설정하려면 버튼 목록에서 smb.conf 섹션을 선택하고 Shares를 클릭합니다. 해당 섹션

의 내용이 나타납니다. 공유 항목을 제거하려면 버튼 목록에서 섹션 이름을 선택하고 Remove Shares를

클릭합니다. Create New Shares를 클릭하면 새로운 공유 섹션을 만들 수 있습니다.

(PRINTERS)

공유 프린터를 설정하려면 버튼 목록에서 smb.conf 섹션을 선택하고 Shares를 클릭합니다. 해당 섹션의

내용이 나타납니다. 공유 항목을 제거하려면 버튼 목록에서 섹션 이름을 선택하고 Remove Shares를 클

릭합니다. (별표(*) 로 시작되는 프린터 이름은 /etc/printcap 파일에서 자동으로 제거되지 않습니다.)

Create New Printers를 클릭하면 새로운 프린터 섹션을 만들 수 있습니다.

(STATUS)

이 버튼은 smbd의 실행 상태를 보여줍니다. 또한 설정을 변경한 후에 여기서 Samba를 정지/재시작할

수 있습니다.

(VIEW)

이 버튼은 현재 smb.conf 파일을 열람할 수 있게 해줍니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-20

(PASSWORD)

이 버튼은 smbpasswd 에서와 같이 사용자를 등록하고 비밀번호를 변경할 수 있게 해줍니다.

MS 윈도우와 매킨토시의 공존

Samba와 Netatalk는 각자의 다양한 설정 및 동작을 유지하면서 아무런 문제 없이 공존할 수 있습니

다.

Netatalk의 파일 공유를 통해 원시 매킨토시 파일과 디렉터리를 생성하고 공유할 수 있습니다. 또한 이

파 일과 디렉터리들이 다른 플랫폼에서는 보이지 않도록 설정할 수도 있습니다.

/etc/smb.conf 파일에 다음 두 행을 추가합니다.

veto file = /.AppleDesktop/NetworkTrashFolder/.AppleDouble/

delete veto files = true delete veto files = true를 설정하면 veto 파일이 설정한 파일을 제거할 수 있습니다.

Netatalk

터보리눅스 서버 사용자 안내서

4-21

Netatalk

Netatalk는 리눅스 커널과 마찬가지로 안정 버전과 개발 버전으로 출시되었습니다. 2000년 5월 현재 안정

버전은1.3.3이고 개발 버전은1.4b2입니다. Netatalk는 미시건 대학교의 Research Systems UNIX

Group(RSUG)에 의해 개발되었습니다. 이들의 공개 웹 사이트에서 Netatalk에 관한 정보와 최신 패치를

구할 수 있습니다. Netatalk 소스는 RSUG 다운로드 사이트 http://www.umich.edu/~rsug/netatalk/

에서 다운로드할 수 있습니다.

Netatalk는 리눅스 상에서 AppleTalk 프로토콜을 실행하며 경로 지정, 파일 서버, 프린트 서버 등과 같은

기능을 제공합니다. Netatalk를 AppleShare에서 실행하면 매킨토시 시스템에서 리눅스 시스템 상의 파일

과 프린터에 액세스할 수 있습니다. Netatalk는 AppleTalk의 다양한 프로토콜을 실행합니다. 이 중에서

DDP는 리눅스 커널에서 실행되지만 다른 프로토콜들은 데몬과 명령어로 실행됩니다.

EtherTalk Phase I and II

DDP Datagram Delivery Protocol

RTMP Routing Table Maintenance Protocol

NBP Name Binding Protocol

ZIP Zone Information Protocol

AEP AppleTalk Echo Protocol

ATP AppleTalk Transaction Protocol

PAP Printer Access Protocol

ASP AppleTalk Session Protocol

AFP AppleTalk Filing Protocol

인터넷 서버

터보리눅스 서버 사용자 안내서 4-22

Netatalk 구성 요소

Netatalk의 주요 구성 요소는 다음과 같습니다.

Daemon Config File Config Contents

/usr/sbin/atalkd /etc/atalk/atalkd.conf AppleTalk settings

/usr/sbin/afpd /etc/atalk/AppleVolumes.default

File share settings

/etc.atalkAppleVolumes.system

File share settings

/usr/sbin/papd /etc/atalk/papd.conf File share settings

[atalkd]

Netatalk 서버는 atalkd 이며 TCP/IP를 통해 routed 데몬과 동일한 기능을 제공합니다. atalkd 데몬은

RTMP, NBP, ZIP, AEP 등을 구현합니다. 구성 파일은 atalkd.conf입니다.

[afpd]

afpd 데몬은 AFP를 구현합니다. 이 데몬으로 유닉스 파일 시스템을 매킨토시와 공유할 수 있습니다. 구

성 파일은 AppleVolumes.default 와 AppleVolumes.system 입니다.

[papd] papd 데몬은 PAP를 구현합니다. 이 데몬으로 매킨토시에서 터보리눅스 서버 lpd 데몬 상에 항목들을 배

치할 수 있고 PostScript 프린터를 가지고 있다면 터보리눅스에서 AppleTalk 프린터를 이용하여 인쇄를

할 수 있습니다. PostScript 용이 아닌 프린터를 사용할 경우에는 다른 프린터 드라이버를 가지고 있어야

하기 때문에 ghostscript나 이와 유사한 유틸리티를 통해 필터링을 해주어야만 합니다. papd를 위한 구성

파일은 papd.conf 입니다.

Netatalk

터보리눅스 서버 사용자 안내서

4-23

Netatalk 시작하기와 끝내기

Netatalk 시동 스크립트는 /etc/rc.d/init.d/atalk입니다.

시동 스크립트는 start, stop, restart, status 등의 옵션을 취합니다.

일단 Netatalk 설정을 변경한 후에는 Netatalk를 재시작해야만 새로운 설정이 적용됩니다.

Netatalk를 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/atalk start

Netatalk를 끝내려 면 다음을 실행합니다.

# /etc/rc.d/init.d/atalk stop

Netatalk를 재시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/atalk restart

Netatalk의 현재 상태를 보려면 다음을 실행합니다.

# /etc/rc.d/init.d/atalk status

아래에 제시한 것처럼 ps명령어를 이용하여 Netatalk가 실행되고 있는지 여부를 확인할 수 있습니다.

# ps aux | grep atalk root 766 0.2 0.2 1764 732 ? S 08:13 0:00 atalkd

위에 제시된 것과 유사한 응답이 보이지 않으면 Netatalk가 설치되지 않은 것이거나 실행되고 있지 않은

것입니다. 이런 경우에는 Netatalk를 설치, 시작, 또는 재시작하여야 합니다.

Netatalk를 실행할 수 없을 때는 lsmod 명령어를 이용하여 Appletalk 모듈이 로드되어 있는지 확인하십

시오.

# lsmod Module Size Used by

appletalk 17504 14 (autoclean)

nls_iso8859-1 2020 1 (autoclean)

인터넷 서버

터보리눅스 서버 사용자 안내서 4-24

isofs 17208 1 (autoclean)

epic100 10724 1 (autoclean)

st 25440 0

ncr53c8xx 50344 1

Appletalk 모듈이 나타나지 않으면 다음 명령어를 통해 수동으로 모듈을 로드해야 합니다.

# modprobe appletalk

Netatalk 설정

이 절에서는 파일과 프린터를 공유하기 위해 Netatalk를 이용할 경우에 적용되는 매킨토시 클라이언트 상

의 파일 서버와 프린트 서버를 위한 리눅스 구성에 대해 설명합니다. 먼저 서버(터보리눅스 + Netatalk

측)에 관해 설명한 다음 클라이언트(매킨토시 측)에 관해 설명합니다.

파일 공유를 위한 리눅스 측(서버) 설정

파일 공유를 구현하는 데몬은 afpd 입니다. 이 데몬을 위한 구성 파일은 AppleVolumes.default와

AppleVolumes.system입니다.

AppleVolumes.default AppleShare 볼륨을 공개 디렉터리로 만드는 설정

AppleVolumes.system 파일 확장자와 파 일 유형에 적용되는 설정

이 두 파일은 터보리눅스 서버 상의 디렉터리와 파일이 AppleShare 볼륨으로 공개되는 방식을 결정합니

다. 이 파일들은 공개 디렉터리 설정 및 파일 정의에 따라 구성됩니다.

Netatalk

터보리눅스 서버 사용자 안내서

4-25

공개 디렉터리 설정 (AppleVolumes.default)

Netatalk RPM 패키지는 미리 정해진 장소에 표준 구성 파일들을 설치합니다.

다음은 표준 AppleVolumes.default의 내용입니다.

# This file looks empty when viewed with "vi". In fact,

# there is one ’~’, so users with no AppleVolumes file in

# their home directory get their home directory by default

#

# volume format:

# path [name] [casefold=x] [codepage=y] [poptions=z,l,j]

[access=a,@b,c,d]

#

# casefold options:

# tolower lowercase names in both directions

# toupper uppercases names in both directions

# xlatelower client sees lowercase, server sees uppercase

# xlateupper client sees uppercase, server sees lowercase

#

# access format:

# user1,@group,user2 restricts volume to listed users/groups

#

# miscellaneous options

# prodos make compatible with AppleII clients.

# crlf enable crlf translation for TEXT files.

#

# codepage=filenameload filename from nls directory.

#

~

위의 파일 내용에서 “# ”로 시작되는 모든 행은 명령어로서 무시됩니다. 실제로는 갈매기 표시(~)가 포함

된 마지막 행만이 읽히게 됩니다.

갈매기 표시(~)는 각 사용자의 홈 디렉터리를 나타냅니다. 다소 예외적인 이 보기에서, 로그인한 각 사용

자는 자신의 홈 디렉터리를 볼 수 있습니다. 각 사용자의 홈 디렉터리를 공개하고 싶지 않으며 이 행에서

갈매기 표시를 삭제하거나 주석처리를 합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-26

홈 디렉터리를 제외한 모든 디렉터리를 공개하려면 다음과 같이 설정합니다.

[Full path to the directory you want to make public] [Macintosh volume name]

다음은 리눅스 서버 측의 디렉터리 /home/public을 볼륨 이름 MACPUB을 이용하여 매킨토시 측에서 액

세스할 수 있도록 만드는 방법을 보여주는 예입니다.

다음 행을 AppleVolumes.default 파일에 추가합니다.

/home/public MACPUB

매킨토시에서 사용하는 특별한 파일과 디렉터리

일단 Netatalk가 디렉터리를 공개한 뒤에 이 디렉터리에 액세스하려면 해당 디렉터리 내에 다음 두 개의 파일을 만들어야 합니다.

AppleDesktop 매킨토시 데스크탑 파일

AppleDouble 매킨토시 리소스 파일

비밀번호 및 액세스 허가

파일 공유를 위해서는 비밀번호와 액세스 허가가 극히 중요하지만 Netatalk가 있으면 리눅스 서버 상의

이 비밀번호와 액세스 허가를 매킨토시 측으로 전달할 수 있습니다.

허가를 변경하고 싶을 때는 보통 리눅스 서버 상에서 chmod 명령어를 이용합니다. 예를 들어

/home/public에만 읽기를 제한하고 싶다면 슈퍼서버로 리눅스 서버에 로그인한 뒤 다음을 실행합니다.

# chmod 755 /home/public

Netatalk

터보리눅스 서버 사용자 안내서

4-27

파일 유형 정의하기

파일 유형을 정의하기 위한 포맷은 다음과 같습니다.

[extension] [file type] [application or client]

다음은 HTML, PDF, MS-Word 파일에 대한 정의의 구체적인 예입니다.

.html TEXT MOSS HyperText Markup Language (HTML)

.pdf PDF CARO Portable Display Format (Adobe Acrobat)

.doc WDBN MSWD Word Document

다음은 전형적인 AppleVolumes.system 파일에서 일부를 발췌한 실례입니다.

. "TEXT" "ttxt" ASCII Text

.sty "TEXT" "*TEX" TeX Style

.psd "8BPS" "8BIM" PhotoShop Document

.pxr "PXR " "8BIM" Pixar Image

.sea "APPL" "????" Self-Extracting Archive

.apd "TEXT" "ALD3" Aldus Printer Description

.pm3 "ALB3" "ALD3" PageMaker 3 Document

.pm4 "ALB4" "ALD4" PageMaker 4 Document

.pt4 "ALT4" "ALD4" PageMaker 4 Template

.pm5 "ALB5" "ALD5" PageMaker 5 Document

.pt5 "ALT5" "ALD5" PageMaker 5 Template

.pdx "TEXT" "ALD5" Printer Description

.ppd "TEXT" "ALD5" Printer Description

.dl "DL " "AnVw" DL Animation

.gl "GL " "AnVw" GL Animation

.url "AURL" "Arch" URL Bookmark

.zoo "Zoo " "Booz" Zoo Archive

.pdf "PDF " "CARO" Portable Document Format

.h "TEXT" "CWIE" C Include File

.hp "TEXT" "CWIE" C Include File

.hpp "TEXT" "CWIE" C Include File

.c "TEXT" "CWIE" C Source

.cp "TEXT" "CWIE" C++ Source

.cpp "TEXT" "CWIE" C++ Source

.class "Clss" "CWIE" ava Class File

.java "TEXT" "CWIE" Java Source File

인터넷 서버

터보리눅스 서버 사용자 안내서 4-28

..... remainder omitted .....

프린터 공유 설정

AppleTalk를 통해 매킨토시에서 리눅스 프린터를 사용하려면 papd를 이용합니다. 프린터를 공유하고

싶지 않을 때는 papd를 실행할 필요가 없습니다. papd를 위한 구성 파일은 /etc/atalk/papd.conf

입니다.

papd.conf를 위한 구문은 리눅스 상의 pr in tcap(5)와 동일합니다. 즉, 다음과 같습니다.

<share>:

:pr=<printer>:op=<operator>:pd=<filename>

<share>는 매킨토시 측에서 보이는 임의의 프린터 이름입니다.

구성 매개변수(속성)와 그 의미는 다음과 같습니다.

p r l pd 프린터 이름

op l p d 스풀 파일이 생성될 때의 소유자

pd PPD 파일의 경로

이때 다음 두 가지 점에 유의하여야 합니다.

• pr로 설정되는 프린터 이름은 반드시 /etc/printcap에 등록된 프린터 이름이어야 합니다. • op로 설정되는 사용자 이름은 반드시 리눅스 서버 상에 계정을 가지고 있고 지정된 프린터를 사

용할 수 있는 사용자이어야 합니다.

구성 예 다음 보기에서 Linux Printer를 매킨토시에서 보이는 프린터 이름으로 만들려면 프린터 이름을 ps로, 스풀

소유자를 루트로 설정합니다.

Linux Printer:\

:pr=ps:op=root;\

:pd=/usr/share/lib/ppd/HPLJ_4M.PPD:

Netatalk

터보리눅스 서버 사용자 안내서

4-29

몇 개의 프린터를 공유하는 것도 가능하면 이때 반드시 그 설정을 papd.conf 파일에 추가해야 합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-30

Netatalk RPM 패키지는 초기화 파일을 설치하므로 papd.conf 에 대한 기본값 설정이 화면에 표시되어

확인을 받게 됩니다.

# Attributes are:

#

# Name Type Default Description

# pd str ".ppd" Pathname to ppd file.

# pr str "lp" LPD printer name.

# op str "operator" Operator name, for LPD spooling.

#

# Some examples:

# On many systems (notably not Solaris), no papd.conf is required,

# since papd shares the same defaults as lpd.

#

# A simple example:

#

# terminator:

# :pr=lp:op=wes:

# :pd=/usr/share/lib/ppd/HPLJ_4M.PPD:

#

# Note also that papd.conf can list several printers.

리눅스 서 버 측의 설정을 변경할 경우에는 반드시 Netatalk를 재시작해야 합니다.

재시작 절차에 관해서는 앞에서 설명했습니다.

매킨토시 클라이언트 측 설정

특별한 설정은 필요치 않습니다. chooser를 열어 AppleShare를 선택하고 컴퓨터 이름의 목록에서 리눅

스 서버를 선택합니다. 사용자 이름과 비밀번호를 물으면 리눅스 서버 상에서 사용하는 사용자 이름과 비

밀번호를 입력합니다.

Portmapper (portmap)

터보리눅스 서버 사용자 안내서

4-31

실행 확인

매킨토시에서 Netatalk의 실행을 확인하는 일은 아주 간단합니다. chooser를 열고 AppleShare를 선택합

니다. 리눅스 서버의 컴퓨터 이름이 보이면 Netatalk 서버가 올바르게 실행되고 있는 것입니다. 리눅스 상

에서 공유 설정이 이루어진 후에 매킨토시에서 리눅스 디렉터리에 액세스할 수 있다면 매킨토시가 올바르

게 구성된 것입니다.

Portmapper (portmap)

portmap 서버는 RPC(Remote Procedure Call) 프로그램 번호를 DARPA 프로토콜 번호로 변환합니다.

원격 절차 호출(remote procedure call)을 사용하는 NFS나 NIS 같은 사용자 서버를 이용하려면

portmap을 실행해야 합니다.

터보리눅스 서버 6.5 환경에서는 portmap 이 자동으로 시동되지 않으므로 먼저 serviceboard 를 이용하여

구성을 해야 합니다.

시동 스크립트는 start, stop, restart, status, reload 등의 옵션을 가집니다.

일단 portmap 의 구성을 변경한 후에는 portmap을 재시작 해야만 적용이 됩니다.

portmap을 시작하려면 다음을 실행합니다.

#/etc/rc.d/init.d/portmap start

portmap을 끝내려면 다음을 실행합니다.

#/etc/rc.d/init.d/portmap stop

portmap을 재시작하려면 다음을 실행합니다.

#/etc/rc.d/init.d/portmap restart portmap의 현재 상태를 확인하려면 다음을 실행합니다.

#/etc/rc.d/init.d/portmap status

인터넷 서버

터보리눅스 서버 사용자 안내서 4-32

액세스 제어

portmap은 사용하기가 매우 편리한 반면에 보안의 관점에서 보면 상당한 문제점이 있습니다. portmap 의

기본값 설치에서 TCP_Wrapper 라이브러리를 액세스 제어에 이용할 수 있습니다. 터보리눅스 서버 6.5의

초기 설정 하에서 portmap은 다른 클라이언트의 요청을 받아들이지 않습니다. 이 때문에 portmap 을 실

행하는 것만으로는 NFS나 NIS를 사용할 수 없습니다. 따라서 TCP_Wrapper를 위한 액세스 제어 파일인

/etc/hosts.allow를 수정할 필요가 있습니다.

아래의 보기에서는 .turbolinux.gr.jp 도메인 또는 호스트 192.168.0.1로부터의 액세스가 허용됩니

다.

portmap: .turbolinux.gr.jp

portmap: 192.168.0.1

액세스 제어 파일에 대한 변경 내용은 portmap 을 재시작하지 않아도 반영됩니다.

액세스 제어를 정의하는 방법에 관해서는 2-11쪽의 <TCP_Wrapper (tcpd)> 절을 참조하시기 바랍니

다.

주 portmap 서버는 tcpd에서 시작되지 않지만 portmap 자체는 /etc/hosts.allow 와 /etc/hosts.deny를 참조할 수 있습니다. portmap 은 슈퍼서버에서 시작되지 않는다는 점에 유의하시기 바랍니다.

NFS

터보리눅스 서버 사용자 안내서

4-33

NFS

NFS(Network File System)를 이용하여 네트워크에 접속한 호스트간에 파일을 공유할 수 있습니다. 대부

분의 유닉스 설치 프로그램이 지원하는 NFS는 유닉스 상에서 편리하게 파일을 전송할 수 있는 수단입니

다. 또한 몇 가지 소프트웨어를 추가하여 유닉스 이외의 운영 체제에서 NFS를 지원할 수 있으며 여러 컴

퓨터 사이에 파일을 투명하게 전송할 수 있습니다.

터보리눅스 서버 6.5에서는 전통적으로 사용자 수준에서 실행되는 NFS 서버의 성능을 높여주는 knfsd 를

설치할 수 있습니다.

NFS를 이용하려면 반드시 서버 측과 클라이언트 측 양쪽에서 NFS를 구성해야 합니다. 서버 측에서는 기

본 구성 파일 /etc/exports를 편집한 다음 데몬을 실행합니다. 클라이언트 측에서는 이식되고 있는

(public으로 되는) 디렉터리를 탑재해야 합니다.

NFS 시작하기와 끝내기

NFS 시동 스크립트는 /etc/rc.d/init.d/nfs입니다. 시동 스크립트 옵션은 start, stop, restart 등입

니다.

일단 NFS의 설정을 변경한 후에는 NFS를 재시작해야만 적용이 됩니다.

NFS를 시작하려면 다음을 실행합니다.

#/etc/rc.d/init.d/nfs start

NFS를 끝내려면 다음을 실행합니다.

#/etc/rc.d/init.d/nfs stop

NFS를 재시작하려면 다음을 실행합니다.

#/etc/rc.d/init.d/nfs restart

인터넷 서버

터보리눅스 서버 사용자 안내서 4-34

NFS의 상태를 보려면 다음을 실행합니다.

#/etc/rc.d/init.d/nfs status

NFS를 재로드하려면 다음을 실행합니다.

#/etc/rc.d/init.d/nfs reload

NFS의 현재 상태를 확인하려면 ps 명령어를 실행합니다. NFS가 실행되고 있다면 아래에 제시된 것과 유

사한 응답이 보일 것입니다.

# ps aux | grep nfs

root 766 0.2 0.2 1764 732 ? S 08:13 0:00 nfsd

위에 제시된 것과 유사한 응답이 보이지 않으면 NFS가 실행되고 있지 않은 것이거나 설치가 되지 않을

것일 수 있습니다. 이런 경우에는 NFS를 시작, 재시작, 또는 설치해야 합니다.

NFS 서버 설정

이 절에서는 NFS서버를 이용하기 위한 다양한 설정에 관해 자세히 설명합니다.

/etc/exports 설정

/etc/exports 파일에서 액세스 또는 액세스 허가를 부여할 호스트, 사용자, 공개 디렉터리 등을 지정합니

다. /etc/exports 의 각 행은 다음과 같은 포맷을 이용합니다.

[directory name] [host name (options)]

여기서 디렉터리 이름은 전체 유닉스 경로로 표시된, 이식하고자 하는 디렉터리의 이름을 가리킵니다. 호

스트 이름은 FQDN(Fully Qualified Domain Name) 또는 IP 주소 포맷 중 하나로 씌어질 수 있습니다.

다양한 옵션이 있으나 여기서는 주요한 옵션만을 설명하기로 합니다. 자세한 내용을 보려면 다음을 실행

합니다.

man exports

NFS

터보리눅스 서버 사용자 안내서

4-35

다음은 옵션 목록입니다.

ro 읽기 전용으로 설정되는 파일 허가

rw 읽기와 쓰기로 설정되는 파일 허가

root_squash 클라이언트에서의 루트 액세스는 anonymous(nobody)로

매핑됩니다.

no_ root_squash 클라이언트에서의 루트 액세스는 루트로 허가됩니다.

a l l_squash 모든 액세스는 nobody로부터의 액세스로 처리됩니다.

anonu id=u id root_squash 또는 all_squash 옵션과 함께 anonymous

사용자 ID로 매핑합니다.

anong id=g id root_squash 또는 all_squash 옵션과 함께 anonymous

그룹 ID로 매핑합니다.

주 옵션들을 콤마로 구분함으로써 일부 옵션들을 한번에 지정할 수 있으나 옵션과 명령어 사이에 스페

이스를 삽입하면 예측할 수 없는 동작을 초래할 수 있습니다.

다음은 /etc/exports의 리스팅 예입니다.

/usr *.turbolinux.gr.jp(ro)

/home/you test (rw,all_squash,anonuid=150,anongid=100)

/home/samba (ro,all_squash)

첫 번째 행에서는 turbolinux.gr.jp 도메인 하의 모든 컴퓨터에 /usr 아래의 모든 항목에 대한 읽기(쓰기는

안 됨)가 허용됩니다.

두 번째 행에서는 test 라는 이름의 컴퓨터에 /home/you에 대한 읽기와 쓰기가 허용됩니다. 사용자

와 무관하게 액세스는 150으로 설정된 uid(사용자 ID)와 100으로 설정된 gid(그룹 ID)로 주어집니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-36

세 번째 행에서는 어떠한 호스트 이름도 지정되지 않는다는 점에 유의하십시오. 이것은 모든 호스트에

/home/samba를 읽을 수 있는(쓰기는 안 됨) 권한이 허용된다는 것을 의미합니다. 모든 액세스는

nobody 계정을 통해 이루어집니다.

서버 실행하기

NFS 서버를 실행하기 전 에 portmap이 적절한 설정에 따라 실행되고 있는지 확인합니다.

다른 서버와 마찬가지로 NFS도 init 스크립트로 시동됩니다. 터보리눅스 서버 6.5에서는 NFS가 기본값으

로 실행되도록 설정되어 있지 않으므로 chkconfig 또는 serviceboard 를 이용해서 NFS를 구성하여 재시

작 후에 데몬으로 실행되도록 해야 합니다.

# chkconfig --add nfs

NFS 서버 실행 확인

exportfs 를 이용하여 NFS 이식의 상태를 확인합니다. (exportfs 명령어에는 또 다른 용법이 있습니다. 자

세한 내용을 보려면 man exportfs 를 실행합니다.)

예를 들어 위에 제시된 /etc/exports의 구성 예에서 exportfs는 다음과 같은 모습을 띠게 됩니다.

# exportfs

/usr *.turbolinux.ge.jp

/home/your test

/home/samba <world>

showmount 명령어는 개별 클라이언트에 탑재된 디렉터리들을 보여줍니다. 예를 들어 호스트 test2.turbolinux.gr.jp가 /usr을 탑재시켰다면 다음과 같은 모습을 띠게 됩니다.

# showmount -a

All mount points on cadiz.calleprivada:

test2.turbolinux.gr.jp:/usr

NFS

터보리눅스 서버 사용자 안내서

4-37

클라이언트 측 설정

NFS 서버는 상당수의 다양한 클라이언트를 가질 수 있으나 여기서는 리눅스 상에서 실행되는 클라이언트

에 대해서만 설명하기로 합니다.

기본적으로 클라이언트는 mount 명령어를 이용하여 NFS서버에 의해 이식된 디렉터리를 탑재할 수 있

습니다. 예를 들어 NFS 서버(nfssvr) 의 /usr 디렉터리를 /mnt/ust 에 이식한다면 다음과 같이 됩니

다.

# mount -t nfs nfssvr:/usr /mnt/usr/

먼저 탑재점 디렉터리를 만들어야 합니다.

/etc/fstab 파일을 편집함으로써 매번 모든 명령어 행 옵션을 주지 않고도 탑재를 이용할 수 있습니다.

일례로 각자의 /etc/fstab 파일에 다음 행을 추가합니다.

nfssvr:/usr /mnt/usr nfs noauto,rw

그러면 다음 명령어만으로 탑재가 이루어질 수 있습니다.

# mount /mnt/usr

이것은 비교적 간단한 예입니다. 실제 상황에서는 명령어 행에 몇 개의 옵션을 주거나 /etc/fstab 파일에

편집해 넣을 수 있습니다. 자주 이용되는 옵션으로는 rsize, wsize, hard, soff, timeo 등을 들 수 있습니다.

rsize 읽기 버퍼의 크기를 지정합니다. (기본값은 1024) 상한선이 있기는 하지만 값이 커질수

록 전송 속도가 빨라집니다.

wsize 쓰기 버퍼의 크기를 지정합니다. (기본값은 1024)

ha rd 서버가 다운되었을 때에도 접속 요청을 계속할 수 있습니다. 서버가 다운되면 콘솔 상에

“server not responding”이라는 메시지가 뜹니다.

sof t 한동안 NFS 서버의 응답이 없을 경우 커널은 타임아웃이 허용됩니다.

t imeo 소프트가 설정되었을 때 타임아웃의 길이를 지정합니다.

인터넷 서버

터보리눅스 서버 사용자 안내서 4-38

다음은 위의 옵션을 사용한 /etc/fstab의 보기입니다.

nfssvr:/usr /mnt/usr nfs noauto,rw,rsize=8192,wsize=8192,soft,timeo=1000

이 경우 읽기 및 쓰기 버퍼의 크기는 각각 8192 바이트로 설정되며 서버가 1000밀리초 동안 다운된 후에

타임아웃이 시작됩니다.

보안

NFS는 시스템 보안에 문제가 될 수 있는 여러 가지 요소를 지니고 있는 서버이기 대문에 방화벽이 설치

된 로컬 네트워크 상에서 사용하는 것이 바람직합니다. 나아가 /etc/exports에 대한 액세스 허가를 신중

히 검토할 것을 권장합니다. 뿐만 아니라 portmap 액세스 제어를 적용함에 있어서 특정하게 지정된 클라

이언트로부터의 RPC 호출을 수락하기 위한 정책을 수립해야 합니다.

NIS

터보리눅스 서버 사용자 안내서

4-39

NIS

NIS(Network Information Service)는 로그인 이름, 비밀번호, 홈 디렉터리(/etc/passwd ) 및 그룹

(/etc/group) 등과 같은 네트워크 상의 컴퓨터에 대한 정보를 공유하는 데 사용됩니다.

서버와 클라이언트에 공통된 설정

NIS 서버와 NIS 클라이언트에 공통된 설정이 몇 가지 있습니다. 이어지는 절에서는 이 설정들에 관해 설명합니다.

portmap 실행하기

NIS를 이용하려면 반드시 portmap을 실행하고 있어야 합니다. 통상적으로 터보리눅스 서버 6.5이 부팅

될 때 portmap이 시작되지는 않습니다. 다음 명령어를 이용하여 portmap 이 실행되고 있는지 확인할 수 있습니다.

# /etc/rc.d/init.d/portmap status

실행되고 있다면 시스템 응답은 다음과 같이 됩니다.

portmap (pid 168) is running...

또한, 터보리눅스 서버 6.5에 포함되어 있는 portmap은 TCP_Wrapper 액세스 제어 파일인

/etc/hosts.allow와 /etc/host.deny를 참조하므로 /etc/hosts.allow 파일에 다음 행을 추가해야 합니

다.

portmap : 192.168.1.0/255.255.255.0 : allow

인터넷 서버

터보리눅스 서버 사용자 안내서 4-40

NIS 도메인 설정

domainname 명령어를 이용하거나 /etc/sysconfig/network를 편집하여 NIS를 구성할 수 있습니다.

이를 위해서는 다음을 실행합니다.

# domainname [domainname]

또는 /etc/sysconfig/network 파일에 다음 행을 추가합니다.

NISDOMAIN = [domainname]

주 DNS 도메인 이름은 NIS 도메인 이름과 다른 이름으로 설정하여야 합니다.

서버 설정

/etc/ypserv.conf 파일을 사용할 수 있는지 확인합니다.

그런 다음 /var/yp/securenets 파일을 만듭니다. netmask와 network address의 조합을 설정하여

NIS 네트워크의 사용 가능 범위를 지정합니다.

다음 행을 추가합니다.

[netmask] [network address]

네트워크 주소와 일치하는 netmask는 netmask 필드에서 지정하며 네트워크 주소는 network address 필드에서 지정합니다. netmask가 모두 1로 되어 있으면 네트워크 주소가 호스트 주소로 됩니

다.

예를 들어 전용 네트워크 192.168.1.0/24 상에서 NIS가 작동하려면 /var/yp/securenets 파일은 다음

과 같은 모습을 띠게 됩니다.

255.255.255.255 127.0.0.1

255.255.255.0 192.168.1.0

NIS

터보리눅스 서버 사용자 안내서

4-41

이 목표에 보조를 맞추어 /var/yp/Makefile이 변경됩니다. ypserv를 시작하고 NIS 초기화 대화 프로그

램을 실행합니다.

# ypserv

# /use/lib/yp/ypinit -m

서버를 실행하려면,

# /etc/rc.d/init.d/ypserv start

# /etc/rc.d/init.d/yppasswd start

다음에 시스템이 재부팅될 때 서버를 실행하려면 chkconfig 명령어나 serviceboard를 이용하여 서버를

사용 가능으로 합니다.

# chkconfig --add ypserv

# chkconfig --add yppasswd

클라이언트 설정

/etc/passwd 파일의 끝 부분에 다음 엔트리를 추가합니다.

+::::::

/etc/group 파일의 끝 부분에 다음 엔트리를 추가합니다.

+:::

ypbind를 시작합니다.

# /etc/rc.d/init.d/ypbind start

다음 재부팅 시에 ypbind를 실행하려면 chkconfig 명령어나 serviceboard 를 이용하여 ypbind를 사용

가능으로 합니다.

# chkconfig --add ypbind

인터넷 서버

터보리눅스 서버 사용자 안내서 4-42

다음 명령어를 이용하여 NIS가 제대로 실행되고 있는지 확인합니다.

# ypwhich nissvr.turbolinux.gr.jp <-- NIS 서버명이 나타납니다.

# ypcat passwd user1:ylkXjOSM2R5rQ:501:501::/home/usr1:/bin/bash

user2:aqFAzdBEx8iZE:502:502::/home/user2:/bin/bash

ypbind를 이용하여 서버를 지정하려면

/etc/yp.conf 파일을 편집하여 다음 행이 이미 존재하지 않을 경우 이를 포함시킵니다.

domain [domain name] server [server name]

NIS 서버에 새 사용자를 추가하려면

다음과 같이 useradd 명령어를 이용하여 NIS 서버에 새 사용자를 추가할 수 있습니다.

# useradd [user name]

NIS 데이터베이스를 재생(refresh)하려면 다음을 실행합니다.

# /usr/lib/yp/ypinit -m

터보리눅스 서버 사용자 안내서

5-1

기타 서비스

터보리눅스 서버 6.5는 다양한 인터넷 및 인트라넷 서버가 제공하는 서비스 외에도 몇 가지 중요한 서비스를 추가

로 제공합니다. 이 장에서는 이러한 서비스들 각각에 대해서 자세히 설명합니다.

• SSH (Secure Shell) – 원격 호스트에 안전하게 로그인하는 방법을 제공합니다.

• DHCP (Dynamic Host Configuration Protocol) – 클라이언트에 동적 IP 주소를 할당합니다.

• LDAP (Lightweight Directory Access Protocol) – 인트라넷과 엑스트라넷 상에서 사용자 이름, 이메일 주

소, 전화 번호 등과 같은 네트워크 및 사용자 정보를 저장하고 검색합니다.

• quota�- 개인 사용자와 그룹이 사용할 수 있는 블록과 아이노드의 수를 지정하여 디스크 사용을 제한합니다.

• IP 매스커레이딩 – 전용 IP 주소를 범용 IP 주소로 변환합니다.

제 5 장

기타 서버스

터보리눅스 서버 사용자 안내서 5-2

SSH

SSH(Secure Shell) 프로토콜은 보다 안전한 원격 로그인 방법을 제공합니다.

이전에는 rsh나 telnet 같은 프로그램을 이용하여 로그인이 개시되었을 때 사용자 ID와 비밀번호를 네트워

크를 통해 공개적으로 전송했습니다. 인트라넷 상에서건 인터넷 상에서건 불법 도청 또는 변경의 가능성

이 항상 위험 요인으로 남아 있었습니다. 하지만 SSH 하에서는 모든 통신이 암호화되므로 보다 안전한

운용이 가능하게 됩니다.

전에는 ssh 가 하나의 선택 사항이었지만 터보리눅스 서버 6.5에서는 개방 소스 ssh OpenSSH를 사용합

니다. 따라서 이제부터 ssh 는 OpenSSH를 의미합니다.

OpenSSH의 공개 사이트는 http://www.openssh.com입니다.

ssh 시작하기와 끝내기

ssh 를 위한 시동 스크립트는 /etc/rc.d/init.d/sshd 파일에 들어있습니다.

옵션으로는 start, stop, restart, status 등이 있습니다.

ssh구성을 변경할 때마다 ssh 를 재시작해야만 적용이 됩니다.

s sh를 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/sshd start

s sh를 끝내려면 다음을 실행합니다.

# /etc/rc.d/init.d/sshd stop

s sh를 재시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/sshd restart

s sh의 현재 상태를 확인하려면 다음을 실행합니다.

# /etc/rc.d/init.d/sshd status

SSH

터보리눅스 서버 사용자 안내서

5-3

또한 다음 명령어를 이용하여 ssh가 실행되고 있는지 확인할 수 있습니다.

# ps aux | grep sshd

root 232 0.0 0.1 2160 68 Z? S May06 0:00 .usr/sbin/sshd

위에 제시된 시스템 응답이 보이지 않으면 ssh 가 실행되고 있지 않거나 설치가 되지 않은 것입니다. 이러

한 경우에는, ssh 를 재시작하거나 설치를 한 다음 이를 시작하여야 합니다.

이 작업은 serviceboard를 이용하여 수행할 수 있습니다.

서버 구성

SSH를 사용하려면 반드시 서버 상에서 sshd 데몬이 실행되고 있어야 합니다. 통상적으로 터보리눅스 서

버 6.5는 부팅 시에 sshd 를 시동하지만 앞 절에서 제시한 명령어를 이용하여 sshd 가 실행되고 있는지 다

시 한번 확인하시기 바랍니다.

sshd 는 TCP_Wrapper 라이브러리를 이용하여 액세스를 제어합니다. 기본값으로 터보리눅스 서버 6.5는

외부 클라이언트의 요청을 수락하지 않습니다. 따라서 TCP_Wrapper 액세스 제어 파일 /etc/hosts.allow

와 /etc/hosts.deny를 편집하여 액세스를 지정하여야 합니다. 자세한 내용은 2-11쪽의 TCP_Wrapper (tcpd) 절을 참조하시기 바랍니다.

또한, /etc/hosts.allow와 /etc/hosts.deny를 통해 ssh 을 충분히 자세하게 제어할 수 없을 때는

/etc/ssh/sshd_config를 통하여 구성을 할 수도 있습니다. 스크립팅에 관한 자세한 내용은 sshd 매뉴얼 페이지

를 참조하시기 바랍니다.

접속 방식

SSH 호스트에 액세스하려면 다음을 실행합니다.

$ ssh username@hostname

예를 들어 사용자 "jon"이 호스트 "turbossh"에 액세스할 때는 다음을 실행합니다.

$ ssh jon@turbossh

요청한 비밀번호를 올바르게 입력하면 로그인이 완료됩니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-4

DHCP

TCP/IP 네트워크 상의 컴퓨터가 특정한 서비스를 수락하려면 IP 주소나 넷마스크 같은 네트워크 설정이

필요합니다.

DHCP(Dynamic Host Configuration Protocol)를 이용하여 IP 주소와 넷마스크를 동적으로 할당할 수

있습니다. 이 기능은 복수의 클라이언트를 구성 및 관리하고 네트워크 사용을 제어하는 일을 손쉽게 해줍니다. DHCP는 가령 랩탑이 다양한 네트워크 사이를 빈번히 이동하여 각각의 새로운 네트워크 환경에 따

라 설정을 변경해야 할 때 매우 유용합니다.

DHCP 서비스는 클라이언트와 원격 서버 사이에서 이루어집니다. 클라이언트는 IP 주소와 같은 네트워킹

매개변수에 대한 요청을 서버에 브로드캐스트합니다. 이에 대한 응답으로 서버는 클라이언트가 서버의 네

트워크에 합류하는 데 필요한 매개변수를 건네줍니다. 그러면 클라이언트는 이들을 자체에 할당합니다.

터보리눅스 서버 6.5은 ISC(The Internet Software Consortium) DHCP 서버 버전 2 (dhcpd)를 사용합

니다. 아래에서는 DHCP 서버를 설정하는 방법에 관해 설명합니다. 5-11쪽의 클라이언트 구성(터보리눅

스) 절에는 터보리눅스를 DHCP 클라이언트로 실행하는 방법에 관한 설명이 실려 있습니다. 클라이언트

는 플랫폼에 의존하지 않으며, 리눅스, 윈도우, 매킨토시를 비롯한 기타 운영 체제에서 실행이 가능합니다.

DHCP 구성

DHCP 서버의 핵심은 dhcpd 데몬입니다. 이는 /etc/dhcpd.conf 를 편집함으로써 구성됩니다.

이 장의 나머지 부분에서는 DHCP 서버와 DHCP 클라이언트를 단순히 서버와 클라이언트로 부르기로 합

니다.

DHCP

터보리눅스 서버 사용자 안내서

5-5

dhcpd.conf 스크립트는 다음과 같이 설정됩니다.

• 괄호 안 에 들어 있지 않은 매개변수는 전체에 적용됩니다.

• 괄호는 매개변수가 적용되는 범위를 나타냅니다.

• 각각의 매개변수는 세미콜론(;)으로 끝납니다.

다음은 전형적인 dhcpd.conf 스크립트를 보여줍니다.

(1) | option domain-name "fugue.com";

(2) | option domain-name-servers toccata.fugue.com;

|

(3) | option subnet-mask 255.255.255.224;

(4) | default-lease-time 600;

(5) | max-lease-time 7200;

|

(6) | subnet 204.254.239.0 netmask 255.255.255.224 {

(7) | range 204.254.239.10 204.254.239.20;

(8) | option broadcast-address 204.254.239.31;

(9) | option routers prelude.fuge.com;

| }

|

| subnet 192.5.5.0 netmask 255.255.255.224 {

| range 192.5.5.26 192.5.5.30;

(11) | option domain-name-servers bb.home.vix.com,

gw.home.vix.com;

(12) | option domain-name "vix.com" ;

| option routers 192.5.5.1 ;

(13) | option subnet-mask 255.255.255.224;

(14) | option broadcast-address 192.5.5.31;

(15) | default-lease-time 600;

(16) | max-lease-time 7200;

| }

|

|

기타 서버스

터보리눅스 서버 사용자 안내서 5-6

(17) | host passacaglia {

(18) | hardware ethernet 0:0:c0:5d:bd:95;

(19) | filename "vulnix.passacagiliacom";

(20) | server-name "toccata.fugue.com";

| }

|

| host fantasia {

| hardware ethernet 08:00:07:26:c0:a5;

(21) | fixed-address fantasia.dugue.com;

| pp}

|

| host confusia {

| hardware ethernet 02:03:04:05:06:07;

(22) | fixed-address confusia-l.fugue.com, confusia

confusia-2.fugue.com;

| filename "vmunix.confusia";

| server-name "toccata.fugue.com" ;

| }

|

| host confusia {

| hardware ethernet 02:03:04:05:06:07;

| fixed-address confusia-3.fugue.com;

| filename "vmunix.confusia";

| server-name "snarg.fugue.com";

| }

|

| host confusia {

| hardware ethernet 02:03:04:05:06:07;

| filename "vmunix.confusia";

| server-name "bb.home.vix.com";

| }

DHCP

터보리눅스 서버 사용자 안내서

5-7

다음 단락은 위에 제시된 스크립트 내의 행들에 관한 설명입니다.

(1)… 클라이언트가 호스트 이름을 분석하기 위해 사용하는 도메인 이름을 지정합니다.

/etc/resolv.conf의 검색 행에 해당합니다.

(2)… 네임 서버를 지정합니다. 하나 이상이 있을 경우에는 콤마로 구분합니다. IP 주소로 네임

서버를 지정할 수 있지만 DHCP가 네임 서버의 호스트 이름을 분석할 수 있다면 IP 주소

로 네임 서버를 지정할 필요가 없습니다.

(3)… 클라이언트가 사용할 서브넷마스크를 지정합니다.

(4)… 서버가 클라이언트에게 건네는 IP 주소의 유효 기간(초로 표시)을 지정합니다. 유효 기간

이 만료되기 전에는 클라이언트가 실행되고 있는 동안 동일한 IP 주소를 사용할 수 있습니

다. 클라이언트는 서버에게 동일한 IP 주소를 다시 제시할 것을 요청하므로 유효 기간이 만

료되기 전에는 클라이언트가 실행되고 있는 동안 내내 동일한 IP 주소를 계속 사용할 수

있습니다. 클라이언트로부터 요청이 없을 경우에는 서버가 리스 기간 동안 클라이언트에게

임대한 IP 주소를 계속 유지하지만 시간이 만료된 후에는 IP 주소를 다른 클라이언트에게

할당할 수 있습니다.

(5)… 이것은 클라이언트가 일정한 기간 동안 임대를 요청할 때 서버가 부여할 수 있는 허용 가

능한 최대 임대 시간(초로 표시)입니다. 클라이언트가 임대 시간을 명시하지 않을 경우에

는 “기본값 임대 시간(default-lease-time)”이 적용됩니다.

(6)… 매개변수가 적용되는 범위를 정합니다. 일례로, 중괄호 안의 매개변수는 서브넷

204.254.239.0에 속하는 클라이언트에 적용됩니다. 서버에 속하는 모든 서브넷에 대한 구

성은 그 일부가 DHCP 서비스를 받지 않더라도 선언되어야 합니다.

(7)…,(10)… 임대된 IP주소의 범위를 지정합니다. IP주소는 반드시 서브넷 내에 포함되어야 합니다.

지정된 범위 내의 주소가 BOOTP 클라이언트에 동적으로 할당될 경우 dynamic-bootp

플래그를 지정할 수 있습니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-8

(8)… 클라이언트가 사용하게 될 브로드캐스트 주소를 지정합니다.

(9)… 라우터를 지정합니다. 하나 이상이 있을 경우에는 콤마로 구분합니다.

(11)… -(16)… 여기서는 서브넷 192.5.5.0에 포함된 클라이언트를 위해 전체적으로 지정된 매개변수에

대한 정의가 작성됩니다.

(17)… 중괄호 내에 포함된 매개변수를 사용하게 될 호스트(클라이언트)를 정의합니다.

(18)… 클라이언트 컴퓨터의 네트워크 카드 MAC 주소(각각의 개별 네트워크 카드에 고유하게 할

당)를 지정합니다.

MAC 주소를 확인하려면 다음을 실행합니다.

# dmesg | grep eth0

(19)… 클라이언트 컴퓨터가 서버에서 부팅 파일을 로드할 필요가 있을 때 초기 부팅 파일 이름을

지정합니다. 보통 커널 이미지 파일이 지정됩니다.

(20)… 클라이언트 컴퓨터가 서버에서 부팅 파일을 로드할 필요가 있을 때 bootpd 서버 이름을

지정합니다.

(21)…,(22)… 지정한 호스트 컴퓨터에 할당될 IP 주소와 호스트 이름을 지정합니다. 호스트 이름이 지정

될 경우 서버는 호스트 이름을 분석하여야 합니다. 범위가 지정될 경우, 아래 예에 제시된

것처럼 그 지정된 범위에서 클라이언트 주소를 선택합니다.

다음은 dhcpd.conf의 간단한 예입니다.

option domain-name "mydomain";

option domain-name-servers 192.168.1.2;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.244 192.168.1.254;

option routers 192.168.1.1;

}

DHCP

터보리눅스 서버 사용자 안내서

5-9

subnet 192.168.2.0 netmask 255.255.255.0 {

}

이 예는 서브넷 192.168.2.0은 지정된 범위에 속하지 않으므로 어떤 DHCP 서비스도 제공되지 않을 것

임을 지정합니다.

DHCP 시작하기와 끝내기

DHCP 시동 스크립트는 /etc/rc.d/init.d/dhcpd 에 있습니다.

시동 스크립트 옵션으로는 start, stop, restart, status 등이 있습니다.

DHCP 구성을 변경할 때마다 DHCP를 재시작해야만 적용이 됩니다.

DHCP를 시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/dhcpd start

DHCP를 끝내려면 다음을 실행합니다.

# /etc/rc.d/init.d/dhcpd stop

DHCP를 재시작하려면 다음을 실행합니다.

# /etc/rc.d/init.d/dhcpd restart

DHCP의 현재 상태를 확인하려면 다음을 실행합니다.

# /etc/rc.d/init.d/dhcpd status

또한 ps명령어로 DHCP가 실행되고 있는지 확인할 수도 있습니다.

# ps aux | grep dhcpd

root 766 0.2 0.2 1764 732 ? S 08:13 0:00 dhcpdd

위에 제시된 것과 유사한 응답이 보이지 않으면 DHCP가 실행되고 있지 않거나 설치가 되지 않은 것입니

다. 이러한 경우에는 DHCP를 재시작하거나 설치를 한 다음 이를 시작하여야 합니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-10

시스템이 재시작할 때 dhcpd가 시작되도록 하려면 다음을 실행합니다.

# chkconfig --add dhcpd

반대로, 시스템이 재시작할 때 dhcpd가 시작되지 않도록 하려면 다음을 실행합니다.

# chkconfig --del dhcpd

또한 serviceboard를 이용하여 dhcpd를 시작하거나 끝내고 상태를 확인할 수 있습니다.

DHCPD가 제대로 실행되지 않을 경우

dhcpd 가 올바르게 실행되지 않을 경우에는 포어그라운드에서 디버그 모드로 실행시켜 보십시오.

# dhcpd -d -f

dhcpd 를 끝내려면 Ctrl-C를 누릅니다.

또한, 클라이언트가 윈도우 95/98/NT를 실행하고 있기 때문에 올바르게 실행되지 않을 때는 dhcpd 를 시

작하기 전에 경로 지정 테이블을 변경해 보십시오.

다음을 실행합니다.

# route add -host 255.255.255.255 eth0

DHCP 패키지

터보리눅스 서 버 6.5에는 다음과 같은 패키지가 포함되어 있습니다.

DHCP서버 dhcp 패키지

DHCP클라이언트 dhcp-클라이언트 패키지

rpm 명령어로 다양한 패키지 내의 파일들을 확인할 수 있습니다.

# rpm -ql dhcp # rpm -ql dhcp-client

DHCP

터보리눅스 서버 사용자 안내서

5-11

dhcpd는 다음 파일들을 사용합니다.

/etc/rc.d/init.d/dhcpd dhcpd 시동 스크립트

/usr/sbin/dhcpd DHCP 서버 프로그램

/var/dhcp/dhcpd.leases DHCP 클라이언트 임대 데이터베이스

클라이언트 구성 (터보리눅스)

터보리눅스를 DHCP클라이언트로 실행하려면 다음 단계를 밟습니다.

1. netcfg를 실행합니다.

# netcfg

2. 네트워크 인터페이스에서 DHCP가 사용할 인터페이스를 선택합니다. 목록에 없으면 ‘추가’를 클릭

하여 새로 만듭니다.

3. ‘편집’을 클릭하고 [DHCP 사용]를 확인합니다. IP 주소, 넷마스크, 넷 주소, 브로드캐스트 주소 등은

입력할 필요가 없습니다. 나머지 설정을 입력하고 netcfg를 마칩니다.

4. 네트워크를 재시작하고 DHCP를 이용해서 운영합니다.

# /etc/rc.d/init.d/network restart

LDAP

디렉터리 서비스는 네트워크 상에서 배포된 소스와 정보를 통합하여 이들을 효과적으로 관리하고 사용할

수 있도록 해줍니다. LDAP(Lightweight Directory Access Protocol)는 주요 프로토콜로 이용되어 온

X.500 DAP(Directory Access Protocol)를 대체한 것입니다. LDAP는 인터넷용으로 개발되었으며 DAP

보다 용량이 작고 사용이 간단합니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-12

LDAP 디렉터리 서비스는 개방되고 유연하며 속도가 빠른 프로토콜로서 인트라넷과 엑스트라넷 상에서

사용자 이름, 이메일 주소, 전화 번호 등과 같은 네트워크 및 사용자 정보를 저장하고 검색할 수 있게 해줍

니다.

이 절에서는 LDAP 서버를 주소록으로 사용하고 개방 소스 OpenLDAP를 LDAP를 이용한 응용 프로그램

으로 사용하는 넷스케이프 메일 클라이언트를 간단한 예로 제시합니다.

OpenLDAP의 공개 사이트는 http://www.openldap.org/ 입니다.

LDAP 서버 데이터베이스 만들기

OpenLDAP 서버는 /usr/tmp 디렉터리에 데이터베이스를 구축합니다. 그러나 데이터베이스가 다소 클 경

우에는 /home처럼 공간이 넓은 곳에 데이터베이스 영역을 만드는 것이 바람직합니다.

LDAP 파일이 사용하는 바이너리 인덱스와 파일을 보관하는 LDBM 파일을 위한 공간을 확보해 두십시

오.

# cd /home

# mkdir -p ldap/ldbm/abook/public

주 /etc/passwd 를 데이터베이스로 사용하는 SLAPD(Standalone Lightweight Access Protocol)를

구축하거나 대화식 프로그램을 호출하는HTTP의 CGI(Common Gateway Interface)와 유사한

SLAPD 서버를 구성할 수 있습니다. 하지만 일반적으로는 LDBM 시스템을 사용합니다.

LDAP

터보리눅스 서버 사용자 안내서

5-13

LDIF 포맷으로 변환하기

LDIF는 "LDAP Data Interchange Format"의 머리글자로서 기본적으로 전체 LDAP 데이터베이스 또는

일반 텍스트로 표시된 그 엔트리를 가리킵니다.

1. 넷스케이프 커뮤니케이터(버전 4.5 이상 추천)를 실행합니다.

2. 주소록을 엽니다. (Shift-Alt-2를 누릅니다.)

3. File > Export를 선택합니다. (Alt-S를 누릅니다.)

4. 이를 홈 디렉터리에 address-book.ldif 라는 파일명으로 저장합니다.

넷스케이프는 비표준 속성을 이용하여 LDIP 파일을 저장하기 때문에 다음 sed 스크립트를 사용하여 그

출력을 대부분의 주소록으로 변환할 수 있습니다.

다음 스크립트를 홈 디렉터리에 ns-abook-lsdif.sed 라는 파일명으로 저장합니다.

1 i\

dn: scope=Public, app=Address Book\

objectClass: database\

scope: Public\

/^dn:/ s/$/,scope=Public,app=Address Book/

/^locality:/ s/locality/l/

/^xmozillanickname:/ s/xmozillanickname/nickname/

/^xmozillaanyphone:/ s/xmozillaanyphone/telephonenumber/

/^countryname:/ s/countryname/c/

/^streetaddress:/ s/streetaddress/street/

/^cellphone:/ s/cellphone/mobiletelephonenumber/

/^pagerphone:/ s/pagerphone/pager/

/^homeurl:/ s/homeurl/labeledurl

/^xmozilla.*:/ d

주소록을 변환하려면 다음을 실행합니다.

# sed -f ns-abook-ldif.sed < address-book.ldif > address-book.new.ldif

기타 서버스

터보리눅스 서버 사용자 안내서 5-14

주 dn(distinguished name)은 절대 경로명과 동일하며 [email protected],

o=company, c=country은 유닉스 경로명 /c=country/o=company/[email protected]에 해당합니다. rdn은 상대적(relative) dn입니다.

전세계적으로 호환이 되지 않는 주소록이나 기타 개인 주소록을 위해서 Private 레이블을 추가할 수

있습니다. slapd.conf 에 있는 access를 구성하면 개인들이 자신의 주소록을 읽고 업데이트할 수

있습니다.

slapd.conf 파일 만들기

slapd.conf 파일은 /etc/ldap 아래에 만들어집니다. 600, 루트 소유자에게 허가를 설정합니다.

#

# See slapd.conf (5) for details on configuration options.

# This file should NOT be world readable.

#

sizelimit 50

# shemacheck on

pidfile /var/run/slapd.pid

argsfile /var/run/slapd.args

access to dn= ".*, app=Address Book"

by * read

#############################

# Address Book database definitions

#############################

attribute telephonenumbertel

attribute workphone tel

attribute homephone tel

LDAP

터보리눅스 서버 사용자 안내서

5-15

attribute facsimiletelephonenumber tel

attribute pagerphone tel

attribute departmentnumber tel

attribute carlicense tel

attribute postalcode tel

attribute jpegphoto bin

attribute audio bin

attribute usersmimecertificate bin

attribute userpassword ces

attribute labeleduri ces

attribute manager dn

attribute secretary dn

objectclass person

requires cn, mail, objectclass

allows audio, businesscategory, c, carlicense, co, comment,

commonname,conferenceinformation, department,

departmentnumber, description,

display-name, employeetype, facsimiletelephonenumber, givenname,

homephone, homepostaladdress, info, initials, ipphone, jpegphoto,

l, labeleduri, manager, mobile, mobiletelephonenumber, nickname,

o, officefax, officepager, organizationalunitname,

organizationname,

otherfacsimiletelphonenumber, othermailbox, otherpager, ou,

pager,

physicaldelivepatfficeincename, postaladdress, postalcode,

reports,

secretary, sn, st, street, streetaddress, surname,

telephonenumber,

title, url, usercertificate, userpassword, usersmimecertificate,

workphone

database ldbm

기타 서버스

터보리눅스 서버 사용자 안내서 5-16

lastmod on

suffix "scope=Public, app=Address Book"

directory /home/ldap/ldbm/abook/public

index cn,mail,telephonenumber,o,ou,l,st,c,street,title

index objectclass,employeetype,buisnesscategory pres,eq

index secretary, manager pres,sub

index nickname pres,eq,approx

index labeleduri eq,sub

index userpassword eq

index description sub

index default none

rootdn "cn=root,scope=Public,app=Address Book"

rootpw password

주 위에 제시한 예는 보안 문제를 감안하지 않은 것입니다. LDAP 서버에 광범위하게 액세스할 경우에는 주소록

의 내용에 주의를 기울여야 합니다.

이때는 access를 변경하여 LAN 내에 있는 사용자와 특별한 사용자만이 LDAP 프로토콜을 통하여 엔트리를 수정

하거나 삭제할 수 있도록 허가하는 것이 바람직합니다. rootpw 필드를 변경합니다. rootdn 으로 LDAP 프로토콜을 통하여 LDBM 내에서 엔트리를 추가, 삭제 또는 수

정할 수 있습니다.

LDAP

터보리눅스 서버 사용자 안내서

5-17

주 거의 모든 항목에 인덱스가 작성됩니다. 전화 번호에서와 같이 대시(-)나 스페이스를 포함하는 숫자

값 필드가 저장됩니다. userpassword 및 labeleduri 속성을 위한 값은 대소문자를 가립니다.

넷스케이프 커뮤니케이터와 마이크로소프트 주소록은 위 파일 내의 속성들을 파악합니다. 일반적으

로 응용 프로그램이 지원하지 않는 속성들은 무시됩니다.

LDIF 데이터베이스를 LDBM 데이터베이스로 변환하기

LDAP 서버는 LDIF 텍스트 파일을 처리할 수 없기 때문에 반드시 LDIF 파일을 바이너리 인덱스로 변환해

야 합니다. 그렇지 않으면 LDAP 프로토콜에서 루트에 하나의 엔트리를 추가하여 LDAP를 실행할 수 있

습니다. 다음은 이미 작성된 데이터베이스에 대한 설명입니다.

슈퍼유저로서, 변환된 넷스케이프 커뮤니케이터 주소록과 동일한 디렉터리에서 다음 명령어를 실행합니다.

# ldif2ldbm -i address-book.new.ldif

위 명령어에서 ldif2ldbm은 /etc/openldap/spald.conf가 존재하는 것으로 가정한 것입니다.

LDIF 파일을 통해 이를 수행하고자 할 때는 아래의 스크립트를 다른 이름으로 저장합니다.

setup-ldap.sh:

#! /bin/sh

sed -f ns-abook-ldif.sed < address-book.ldif >

address-book.new.ldif

rm -f /home/ldap/ldbm/abook/public/*

/usr/sbin/ldif2ldbm -i address-book.new.ldif

기타 서버스

터보리눅스 서버 사용자 안내서 5-18

LDAP 서버 시동

LDAP 서비스를 위한 시동 스크립트는 /etc/rc.d/init.d/ldap 입니다. LDAP 서버를 시작하려면 슈퍼

유저로서 다음 명령어를 실행합니다.

# /etc/rc.d/init.d/ldap start

데이터베이스가 올바르게 구성되었다는 가정하에 이 동작을 수행하려면 slapd.conf가 적절해야 합니다.

LDAP 서버가 제대로 실행되고 있는지 확인하려면 다음을 실행합니다.

# /etc/rc.d/init.d/ldap status

또한 serviceboard를 이용하여 ldap 를 시작하거나 끝내고 그 상태를 확인할 수 있습니다.

서버 테스트하기

대부분의 사용자는 다음을 실행합니다.

$ /usr/bin/ldapsearch -h localhost -b scope=Public,app=Address Book "objectclass=*"

화면에 전체 주소록이 나타납니다.

매번 -h 와 - b (base dn)을 입력하고 싶지 않으면 DAP 구성 파일인 ldap.conf를 다음과 같이 수정합

니다.

#

# LDAP Defaults

# See ldap.conf(5) for details

# This file should be world readable.

BASE scope=Public, app=Address Book

HOST localhost

PORT 389

SIZELIMIT 12

TIMELIMIT 15

DEREF always

LDAP

터보리눅스 서버 사용자 안내서

5-19

넷스케이프 커뮤니케이터 구성

넷스케이프 커뮤니케이터에 들어 있는 주소록을 구성하려면 다음을 수행합니다.

1. 넷스케이프 커뮤니케이터를 시작합니다.

2. Alt-Shift-2를 눌러 주소록을 엽니다.

3. New Directory를 선택합니다.

4. Description 필드에 Example LDAP Public Address Book을 입력합니다. 5. LDAP Server 필드에 localhost를 입력합니다.

6. Server Root 필드에 scope=Public,app=Address Book을 입력합니다.

7. ‘확인’을 클릭합니다.

Personal Address Book 섹션에서 각자의 새로운 LDAP Public Address Book으로 바꾼 다음 요청을 합

니다.

넷스케이프의 문제로 인해 “알 수 없는 오류” 메시지가 뜰 때는 동작을 반복해야 합니다.

복귀한 엔트리를 더블 클릭하면 브라우저가 LDAP URL을 열게 됩니다.

기타 사항

이어지는 절에서는 LDAP에 관해 유의해야 할 몇 가지 기타 사항에 관해 설명합니다.

다국어 데이터를 데이터베이스에 저장하려면

가끔씩 주소에 영어 글꼴과 다른 언어의 글꼴이 함께 포함되어 있을 때가 있습니다. 이런 경우에는 다음

스타일을 사용하십시오.

어떤 언어에 대해서도 lang은 반드시 적절한 언어의 약어 코드로 설정되어야 합니다. 예를 들어 중국어 번

체는 lang = zh-TW, 중국어 간체는 lang= zh-CN으로 설정합니다. LDAP 데이터베이스 내의 모든 문

자열은 반드시 UTF-8 인코딩으로 된 유니코드를 이용해야 합니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-20

예를 들어 만일 EUC-JP로 인코딩된 데이터를 저장하면 넷스케이프 같은 응용 프로그램에서는 스크램블

이 걸릴 수도 있습니다.

동일한 속성에 대해 복수의 값을 가질 수 있습니다. 하나의 LDIF 엔트리에 복수의 이메일 주소를 추가하

려면 별도의 행에 다음을 추가합니다.

mail: [email protected] mail: [email protected]

바이너리 데이터 저장하기

Base-64 포맷으로 된 데이터는 LDIF 파일에 바이너리 데이터로 저장됩니다.

긴 행들은 몇 개의 짧은 행으로 분할할 수 있습니다.

다음은 /usr/sbin/ldif에 대한 Base-64 LDIF 엔트리의 보기입니다.

# /usr/sbin/ldif -b jpegPhoto < picture.jpeg > picture.ldif # /usr/sbin/ldif -b audio < hello.au > audio.ldif # /usr/sbin/ldif -b "usersmimecertificate;binary" < cert.p12 > cert.ldif

“referral”의 이용

slapd.conf 에 있는 referral 설정을 이용하여 현재의 LDAP 서버가 원하는 엔트리를 가지고 있지 않

을 경우 사용할 fallback LDAP 서버를 클라이언트에게 줄 수 있습니다.

LDAP 서버 미러링하기

OpenLDAP에는 마스터 slapd 데이터베이스에 대한 변경 사항을 s lapd 사본에 배포하는 데몬인 slurpd

가 포함돼 있습니다.

quota

quota를 이용하여 블록 수와 아이노드 수를 지정함으로써 각 사용자 및 그룹의 디스크 사용을 제한할 수

있습니다 한 블록의 기본값은 1KB입니다. 디스크 사용에 대한 제한이 10MB일 경우, 1MB = 1024KB이

므로 사용자가 이용할 수 있는 블록의 총수를 10240으로 설정합니다.

quota

터보리눅스 서버 사용자 안내서

5-21

유닉스 파일 시스템으로 파일을 작성할 경우 허가를 비롯한 파일에 관한 정보는 inode라고 불리는 영역에

저장됩니다. 파일 시스템을 포맷할 때 가능한 아이노드의 수를 결정합니다. 남아 있는 디스크 공간이 있더

라도 일단 아이노드를 모두 사용하게 되면 그 여분의 디스크 공간은 사용할 수 없게 됩니다. 작은 파일들

은 단 하나의 아이노드를 필요로 하므로 아이노드의 수와 파일의 수는 거의 일치한다고 볼 수 있습니다.

아이노드의 수를 확인하려면 dumpe2fs 명령어를 사용합니다.

파일 시스템이 ext2 (표준 리눅스) 파일 시스템 포맷으로 되어 있을 경우 /dev/hda1에서 사용할 수 있

는 아이노드의 수를 확인하려면 다음 명령어를 입력합니다.

# dumpe2fs /dev/hdal | grep ’Inode count:’

/dev/hdal 상에서 ext2로 포맷된 파일 시스템에 사용 가능한 아이노드가 얼마나 남아 있는지 확인하려

면 다음을 입력합니다.

# dumpe2fs /dev/hdal | grep ’Free inodes:’

quota 설정

이 절에서는 quota를 위한 다양한 설정에 관해 설명합니다.

Revising /etc/fstab

파일 시스템 상에서 quota를 사용 가능하게 하려면 /etc/fstab에 mount 옵션을 추가합니다. 사용자를

위해서는 usrquota를 추가하고 그룹을 위해서는 grpquota를 추가합니다.

아래에 제시한 패턴에 따라 /etc/fstab을 작성합니다.

/home 파일 시스템 내의 사용자 quota에 대해서는 다음을 사용합니다.

/dev/hda2 /home ext2 defaults,usrquota 1 1

기타 서버스

터보리눅스 서버 사용자 안내서 5-22

/home 파일 시스템 내의 그룹 quota에 대해서는 다음을 사용합니다.

/dev/hda2 /home ext2 defaults,grpquota 1 1

/home 파일 시스템 내의 사용자 quota와 그룹 quota 모두에 다음을 사용합니다.

/dev/hda2 /home ext2 defaults,usrquota,grpquota 1 1

변경된 /etc/fstab 설정은 재부팅 시에 적용됩니다. 그 전에 fstab에 계속 설정을 하고자 할 때는 그냥

mount 명령어를 사용하면 됩니다. 정보가 /etc/fstab에 포함되지 않았을 경우에는 아래와 유사한 방식으

로 명령어를 실행합니다.

mount -o userquota /dev/dha2 /home

이 때는 당연히 해당되는 장치와 파일 시스템으로 대치해야 합니다.

mount 옵션이 이미 /etc/fstab에 들어 있다면 그냥 다음을 실행하면 됩니다.

mount /home

quota 파일 만들기 이 절에서는 quota 파일을 만드는 방법을 예시합니다. 구성 파일은 quota가 사용 가능하게 된 파일의 루

트 아래에 들어 있습니다. 이 파일들은 다음과 같은 이름으로 저장됩니다.

quota.user 사용자를 위한 quota를 설정합니다.

quota.group 그룹을 위한 quota를 설정합니다.

대부분의 구성 파일과 달리 quota 구성 파일은 직접 편집할 수 없으며 edquota를 사용해서 편집해야만

합니다.

편집기 구성

edquota가 실행되고 있다면 설정을 편집하는 데 사용하는 편집기가 시동됩니다. 기본값 편집기는 v i입니

다. 다른 편집기를 사용하려면 환경 변수 EDITOR를 원하는 편집기로 설정하고 edquota를 다시 시작합

니다.

quota

터보리눅스 서버 사용자 안내서

5-23

예를 들어 Xemacs를 사용하려면 다음을 실행합니다.

# export EDITOR=xemacs

# edquota -u username

edquota를 이용한 구성

edquota를 처음 실행할 때 구성 파일이 자동으로 생성되지 않으므로 수동으로 구성 파일을 만들어야 합

니다.

사용자를 위한 quota를 /home 파일 시스템으로 설정하려면 다음과 같은 방식으로 명령어 시퀀스를 실행

해야 합니다.

# touch /home/quota.user <-- 파일을 quota.user로 만듭니다.

# chmod 600 /home/quota.user <-- root를 제외한 모든 읽기/쓰기를 금지합니다.

그런 다음, 다음과 같이 edquota를 실행합니다.

# edquota -u scott <-- 사용자 “scott”을 위한 quota를 설정합니다.

# edquota -g support <-- 그룹 “지원”을 위한 quota를 설정합니다.

q u o ta-관련 명령어에서 사용자를 위한 quota 를 설정하는 데는 u 옵션을 사용하고 그룹을 위한 quota를

설정하는 데는 g 옵션을 사용합니다. 아무런 옵션도 지정하지 않으면 사용자를 위한 quo ta를 요청한 것으

로 가정합니다.

예를 들어 사용자 “scott”를 위한 quota를 설정하려면 다음을 실행합니다.

# edquota -u scott

일단 편집기가 시작되면 등호(=) 뒤에 블록 및 아이노드 수를 입력하거나 변경합니다.

다음은 사용자 scott를 위한 quota입니다.

/dev/hda2: blocks in use: 0, limits (soft = 9000, hard = 10000)

inodes in use: 0, limits (soft = 900, hard = 1000)

blocks로 시작되는 행은 블록의 수를 제한하고 inodes로 시작되는 행은 아이노드의 수를 제한합니다.

리미트에는 하드와 소프트의 두 가지 범주가 있습니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-24

hard limit 사용자는 디스크 사용에 대한 하드 리미트를 초과할 수 없습니다. soft limit 소프트 리미트에 다다르게 되면 사용자는 경고를 받고 유예 기간이 주

어집니다. 유예 기간 동안 사용자는 하드 리미트에 도달할 때까지 디

스크에 쓰기를 할 수 있습니다. 그러나 일단 유예 기간이 종료되면 사

용자는 아직 하드 리미트에 도달하지 않았더라도 더 이상 하드에 쓰기

를 할 수 없게 됩니다. 유예 기간을 설정하지 않을 경우에는 안전하게

0 으로 유지됩니다.

유예 기간을 설정하려면 다음을 실행합니다.

# edquota -u -t <-- 사용자 quota용 block grace period:는 블록 카운트에 대한 유예 기간을 나타내며 file grace period:는 아이

노드에 대한 유예 기간을 나타냅니다. 기간은 날짜, 시간, 분, 초로 표시됩니다.

Time units may be: days, hours, minutes, or seconds

Grace period before enforcing soft limits for users:

/dev/hda5: block grace period: 1 days, file grace period: 24 hours

위의 예는 사용자 scott가 9000 블록 카운트(900 아이노드 카운트)를 초과해서 사용할 경우 24시간 후에

디스크에 액세스할 수 없게 된다는 것임을 보여줍니다. 1000 블록 카운트(1000 아이노드 카운트)를 넘게

사용하면 디스크에 액세스할 수 없게 되는 것입니다.

q u o ta 아래에 100명의 사용자가 있다면 각 사용자에 대해 일일이 edquota - u를 사용하기가 번거로울

것입니다. 각 사용자에 대한 설정은 동일하므로 복사를 해도 됩니다.

따라서 사용자 derik, john, scott가 동일한 리미트를 가질 경우 다음을 실행합니다.

# edquota -p derik john scott

quota

터보리눅스 서버 사용자 안내서

5-25

quota를 사용 가능하게 만들기

quota는 시스템을 시작할 때 사용 가능하게 됩니다. 이를 수동으로 사용 가능하게 만들려면 다음과 같이

quotaon 명령어를 사용합니다.

# quotaon -avug

사용 불능으로 만들려면 다음을 실행합니다.

# quotaoff –avug

기타 quota 명령어

repquota -a quota 리미트가 설정된 /etc/fstab 내의 모든 파일 시스템의 상태를 보고합니다.

quotacheck 디스크 사용을 위한 파일 시스템을 스캔하고 quota.user에 출력

을 반영합니다.

quota 특정한 사용자와 그룹에 대한 디스크 사용 및 리미트를 보여줍니다.

이것은 보통 사용자도 실행할 수 있습니다.

자세한 내용을 보려면 quota 온라인 매뉴얼 페이지를 참조하시기 바랍니다.

IP 매스커레이딩

IP 매스커레이딩은 라우터나 게이트웨이 내에서 전용 IP 주소를 범용 IP 주소로 변환합니다. 터보리눅스

서버 6.5는 이 작업을 위해 ipchains프로그램을 사용합니다.

ipchains

리눅스 커널 버전 2.2는 i pcha ins라는 시스템을 사용하여 네트워크 방화벽(패킷 필터링)의 매칭 규칙을

제어합니다. 이 작업을 위한 명령어는 ipchains입니다. 이것은 기존의 명령어 ipfwadm이 제공하던 기능

을 능가하는 명령어입니다. 그러나 그 사용법은 다릅니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-26

다음과 같이 특정한 호스트로부터의 액세스를 제어할 수 있습니다.

# ipchains -A input -s test.turbolinux.gr.jp -j REJECT

이 명령어를 통해 test.turbolinus.gr.jp로부터의 모든 액세스가 차단됩니다. 이 옵션들은 "소스

test.turbolinux.gr.jp로부터 액세스 시도가 있을 때마다 목표 REJECT로 점프하라 ”는 규칙이 입력

체인에 추가됨을 의미합니다.

체인의 현재 상태를 열거하려면 다음 명령어를 실행합니다. 여러분이 방금 추가한 엔트리가 표시됩니다.

# ipchains -L input

다음 단계로 넘어가기 전에 지금까지 만든 모든 설정을 삭제합니다. IP 체인에서 한 개 이상의 규칙을 삭

제하려면 -D 옵션을 사용합니다.

# ipchains -D input 1

이들을 한꺼번에 삭제하려면 -F 옵션을 사용합니다.

# ipchains -F input

더 미세한 구성이 가능합니다. 예를 들어 특정한 도메인의 접속으로부터 여러분 자신의 호스트 상에 있는

telnet port만을 차단하려면 다음과 유사한 방식으로 명령어를 실행합니다.

# ipchains -A input -p TCP -s turbolinux.gr.jp/25 -d test2.turbolinux.gr.jp telnet -j REJECT

이로써 tubolinux.gr.jp/25 도메인으로부터 test2.turbolinux.gr.jp로의 telnet port 상의 접속이 차

단됩니다.

위의 설정은 특정한 호스트로부터의 액세스를 차단하고자 할 때 적용되지만 반대로 오직 특정한 호스트로

부터의 액세스만을 허용하고자 할 때에도 활용할 수 있습니다. 그럴 경우에는 다음 명령어를 이용합니다.

# ipchains -A input -p TCP -s test.pht.co.jp -d test2.turbolinux.gr.jp telnet -j ACCEPT # ipchains -A input -p TCP -s 0.0.0.0/0 -d test2.turbolinux.gr.jp telnet -j REJECT

quota

터보리눅스 서버 사용자 안내서

5-27

위의 명령어 시퀀스는 다음 작업을 수행합니다.

• 호스트 자체가 수신처인 패킷에 적용되는 규칙을 설정합니다.

• 출력 체인을 이용하여 호스트 자체에서 다른 호스트로 가는 패킷을 구성할 수 있게 해줍니다.

• 순방향 체인을 이용하여 패킷 경로 지정을 위한 규칙을 설정할 수 있게 해줍니다.

IP 매스커레이딩은 일종의 경로 지정이기 때문에 순방향 체인과 MASQ 타겟이 이용되고 구성됩니다. 경

로 지정을 구성할 때는 아래에 제시한 명령어를 실행합니다. 경로 지정은 기본값으로 사용 불능으로 되어

있으므로 이를 명확하게 사용 가능으로 해주어야 한다는 점에 유의하십시오.

# echo 1 > /proc/sys/net/ipv4/ip_forward # ipchains -A forward -s 192.168.18.0/24 -d 0.0.0.0/0 -j MASQ

또한 사용자 정의 체인을 사용할 경우에는 특정한 장치와 호스트에 관련된 규칙 그룹을 동적으로 추가하거나 삭제하기가 쉽습니다. 이것은 이전의 IP 체인 관리 방법보다 이점이 있습니다. 기타 여러 가지 옵션

에 대해 알고 싶으면 ipchains를 위한 매뉴얼 페이지를 참조하시기 바랍니다.

기타 서버스

터보리눅스 서버 사용자 안내서 5-28

터보리눅스 서버 사용자 안내서

A-1

기본 동작

이 부록에서는 터보리눅스를 사용할 때 수행하는 몇 가지 기본 동작에 관해 설명합니다. 특히 다음 동작에

대해서 설명합니다.

• < 로그인과 로그아웃> A–2쪽

• < 사용자 계정 관리하기> A–5쪽

• < 시스템 종료하기> A–9쪽

• < 파일 작업하기> A–11쪽

• < 프로세스 관리> A–26쪽

• < 장 치 관리하기> A–30쪽

• < 소프트웨어 패키지 설치 및 업그레이드하기> A–40쪽

• < 온라인 매뉴얼 액세스하기> A–43쪽

위에서 <장치 관리하기>와 <소프트웨어 패키지 설치 및 업그레이드하기>는 <터보리눅스 서버 6.5 설치 안

내서>(터보리눅스 Companion CD의 /docs/en/TLS65InstallGuide.pdf 에 있습니다)에서 자세히 다

룹니다. 여기서는 간단히 참조할 수 있는 내용을 설명합니다.

부록 A

터보리눅스 서버 사용자 안내서 A-2

로그인과 로그아웃

다른 형태의 유닉스와 마찬가지로 터보리눅스를 사용하려면 먼저 로그인을 해야 합니다. 터보리눅스는 다

중 사용자 시스템이기 때문에 각각의 사용자는 고유하게 식별되어야 합니다. 로그인 절차는 각 사용자의

ID를 구축합니다. 이것은 합법적인 사용자가 시스템에 액세스할 수 있도록 하는 한편 불법 사용자의 진입

을 막는 역할을 합니다.

터보리눅스를 설치하는 과정에서 루트 계정이 생성됩니다. 보통 사용자 계정도 설치 과정에서 생성됩니다. 일반적으로 설치가 완료된 후에 보통 사용자 계정을 생성합니다.

프롬프트 행의 끝에 있는 “#”는 루트 사용자로서 “$” 프롬프트로 표시되는 보통 사용자와 구분됩니다.

루트 사용자와 보통 사용자의 차이에 대해서 자세히 알고 싶으면 A-5쪽의 사용자 계정 관리하기를 참조

하시기 바랍니다.

로그인 방법 정의하기

터보리눅스를 설치할 때 로그인 방법을 정의하게 됩니다. 설치 과정에서 “텍스트 모드 로그인”이나 “그래

픽 로그인”(GUI)을 선택합니다. 이 둘은 동일한 목적을 가지고 있지만 여러분이 시스템 콘솔에서 직접 작업을 시작할 것인지 아니면 X 윈도우 시스템 내에서 작업을 시작할 것인지 여부에 따라 차이가 있습니다.

xconf ig 명령어를 이용하여 로그인을 변경할 수 있습니다. 또한 터보툴의 하나인 tu rboxcfg 명령어를 이

용해도 됩니다.

로그인과 로그아웃

터보리눅스 서버 사용자 안내서

A-3

명령어 행을 이용하여 로그인하기

터보리눅스 시스템을 시작할 때 시스템 콘솔이 로그인 프롬프트를 표시합니다. 그러면 사용자 이름과 비

밀번호를 입력합니다. 아래에 제시한 명령어 시퀀스는 이 과정을 보여줍니다. 이 예시의 경우에는 호스트

이름으로 Turbo를, 사용자 이름으로 chris를 사용했습니다.

[Turbo] login: chris

Password: password

[chris@Turbo /home]$

보안상의 이유로 시스템은 비밀번호 문자열을 표시하지 않습니다.

위의 보기에서 호스트 이름이 [hostname]에서 [username@hostname /user_homedirectory]로

즉, [Turbo]에서 [chris@Turbo /home]으로 바뀌는 데 주목하시기 바랍니다.

X 윈도우 시스템 시작하기

명령어 행을 이용하여 로그인을 하되 GUI 바탕화면을 이용하고자 할 경우에는 다음 명령어를 입력하여 X

윈도우 시스템을 시작합니다.

[chris@Turbo /home]$ startx

명령어 행에서 로그아웃하기

특정한 사용자로서 로그아웃을 하려면 명령어 행에 logout 명령어를 입력하고 Enter를 누릅니다.

[chris@Turbo /home]$ logout

또한 exi t를 이용해서 로그아웃을 할 수도 있습니다.

컴퓨터를 끄기 전에 반드시 슈퍼유저로 전환한 뒤 shutdown 명령어를 실행해야 합니다. A-9쪽의 시스템 종료하기를 참조하시기 바랍니다.

터보리눅스 서버 사용자 안내서 A-4

GUI를 이용하여 로그인하기

GNOME GDM(Gnome Display Manager) GUI 로그인 절차는 텍스트 기반의 로그인과 동일한 두 개의

단계로 이루어져 있습니다.

1. Login: 행에 사용자 이름을 입력한 뒤 Enter를 누릅니다.

2. Password 프롬프트에서 비밀번호를 입력한 뒤 Enter를 누릅니다.

일단 성공적으로 로그인이 되면 X 윈도우 시스템이 시작되고 GNOME 바탕화면이 뜹니다.

GUI를 이용하여 로그아웃하기

GNOME 바탕화면에서 로그아웃하려면 GNOME 풋프린트 메뉴에서 Logout을 선택하거나 반달 모양의

종료 아이콘을 클릭합니다.

종료하기

루트 관리자로 GNOME에서 로그아웃을 하면 “정말로 로그아웃할까요?” 화면이 나타납니다. ‘시스템 멈

춤’을 선택하여 시스템을 종료합니다.

사용자 계정 관리하기

터보리눅스 서버 사용자 안내서

A-5

사용자 계정 관리하기

터보리눅스에는 root에 대한 참조가 몇 가지 있습니다. 이들은 다음을 참조합니다.

• 루트 계정

• 루트 계정의 로그인 디렉터리

• 루트 디렉터리. 슬래시(/)로 표시됩니다.

루트 계정은 슈퍼유저의 특권을 가집니다. 루트는 시스템 내에서 더 큰 능력과 권한을 가집니다. 루트로서

로그인을 하면 무엇이든 액세스하고 구성하고 실행할 수 있습니다. 이는 더 많은 능력을 부여하는 반면 항

상 루트 사용자로서 로그인하는 것은 그만큼 위험도 따릅니다. 올바르지 않은 구성을 하거나 중요한 파일

을 삭제했을 때는 복구가 불가능할 수도 있기 때문입니다.

안전하게 운영하려면 보통 사용자로서 로그인을 한 다음 슈퍼유저로 전환하는 것이 좋습니다(A-8쪽의 다

른 사용자(su)로 전환하기를 참조). 루트 특권을 가진 슈퍼유저로서 수행하고자 하는 작업을 마친 후에 루

트 계정에서 로그아웃을 합니다.

주 루트 계정 및 비밀번호는 시스템 담당자(보통 시스템 관리자)의 엄격한 통제를 받아야 합니다.

사용자 계정 만들기와 변경하기 (useradd, passwd)

일반적으로 터보리눅스 설치 과정에서는 루트 계정만 작성됩니다. 모든 보통 사용자 계정은 설치가 종료

된 후에 작성됩니다.

주 오직 슈퍼유저만이 useradd와 passwd 명령어를 사용할 수 있습니다.

터보리눅스 서버 사용자 안내서 A-6

새 사용자 계정 만들기

예를 들어 사용자 이름이 chris 이고 비밀번호가 jasper123인 계정을 작성하려면 아래에 제시된 명령

어 시퀀스를 실행합니다. 이 명령어 시퀀스에서 굵은 글꼴은 사용자 입력을, 보통 글꼴은 시스템 응답을

나타냅니다.

# useradd chris

# passwd chris

Changing password for user chris

New UNIX password: jasper123

Retype new UNIX password: jasper123

passwd: all authentication tokens updated successfully

#

주 위의 명령어 시퀀스에서 jasper123을 입력해도 화면에는 나타나지 않습니다. 이는 필수적인 보안

조치입니다.

비밀번호를 변경하려면 chris에 대한 기존의 비밀번호를 변경하려면 아래에 제시된 명령어 시퀀스를 실행합니다. 새 비밀번호가 bambi321이라고 가정합니다.

# passwd chris Changing password for user chris

New UNIX password: bambi321 Retype new UNIX password: bambi321 passwd: all authentication tokens updated successfully

#

주 위의 명령어 시퀀스에서 bambi321을 입력해도 화면에는 나타나지 않습니다. 이는 필수적인 보안 조

치입니다.

사용자 계정 관리하기

터보리눅스 서버 사용자 안내서

A-7

오류 메시지 처리하기

비밀번호를 설정할 때 다음 메시지 중 하나가 뜰 수 있습니다.

BAD PASSWORD: it is too short

길이가 여섯 글자보다 적은 비밀번호 문자열(예: me)을 입력한 경우입

니다.

BAD PASSWORD: it is based on a dictionary word

사전에 흔히 나오는 단어(예: system12)를 입력한 경우입니다.

BAD PASSWORD: it is too simplistic/systematic

너무 간단하거나 규칙적인 비밀번호 문자열(예: abcdef123456)을

입력한 경우입니다.

사용자 계정 삭제하기

가령 chris라는 사용자 계정을 삭제하려면 다음 명령어를 실행합니다.

# userdel chris

사용자의 홈 디렉터리도 함께 지우려면 - r 옵션을 사용합니다. 다음은 그 보기입니다.

# userdel -r chris

주 오직 슈퍼유저만이 userdel 명령어를 실행할 수 있습니다.

터보리눅스 서버 사용자 안내서 A-8

다른 사용자(su)로 전환하기

로그아웃이나 로그인을 하지 않고도 현재의 사용자에서 다른 사용자로 전환할 수 있습니다. 예를 들어 현

재 사용자를 terri로 전환하려면 다음 명령어 시퀀스를 실행합니다.

$ su terri Password: password

현재 사용자의 사용자 환경을 계속 사용하고 싶지 않을 때는 “-”(마이너스 기호)를 추가하고 뒤에 공백을

넣습니다.

$ su - terri

Password: password

주 루트로서 로그인되어 있는 동안 su 명령어를 사용할 경우에는 시스템이 사용자 비밀번호를 묻지 않

습니다.

전환한 사용자로서 로그인되어 있는 동안에는 exit 명령어를 실행하여 이전 사용자의 로그인으로 복귀할 수 있습니다.

$ exit exit $

루트로서 로그인을 하고자 할 때는 아무런 인수 없이 su를 사용합니다.

$ su Password: root_password #

현재 사용자를 찾으려면 다음 명령어를 실행합니다.

$ whoami terri

위의 예에서는 사용자 terri가 로그인되어 있습니다.

시스템 종료하기

터보리눅스 서버 사용자 안내서

A-9

시스템 종료하기

터보리눅스에서는 컴퓨터를 끄기 전에 반드시 시스템을 올바르게 종료하여야 합니다. 콘솔에 있을 때는

(즉, X 윈도우 시스템이나 GNOME 바탕화면에 있지 않을 때는) 슈퍼유저로 전환한 다음 명령어 행에서

다음을 실행합니다.

# shutdown [options][time][message]

다음은 사용 가능한 option의 보기입니다.

-h 끝내기(정지)

-r 재부팅

다음과 같이 시간을 정해서 예약 종료를 설정할 수 있습니다.

xx.yy xx시 yy분에 종료를 실행합니다.

+x x분 후에 종료를 실행합니다.

now 즉시 종료를 실행합니다.

message는 생략될 수도 있고 또는 로그인한 각 사용자에게 메시지를 전송할 수도 있습니다. 예를 들어

“The system will shutdown at 6 PM; please finish your work before then.”과 같은 메시지는 매우 유용

합니다.

즉시 전원 차단

즉시 컴퓨터를 끄고 싶을 때는 다음을 실행합니다.

# shutdown -h now

또는,

# halt

GNOME에 있을 때는 먼저 로그아웃을 합니다. GDM(Gnome Display Manager)을 실행하고 있다면

GUI 메뉴 박스가 제시되는데, 여기서 ‘시스템 멈춤’을 선택합니다. 그러면 시스템이 올바르게 종료됩니다.

터보리눅스 서버 사용자 안내서 A-10

그러나 텍스트 기반 설치를 이용한 다음 startx 명령어로 X 윈도우 시스템을 시작했다면, GNOME에서 로

그아웃을 한 후에 콘솔 프롬프트로 복귀하고 system 메뉴는 뜨지 않게 됩니다. 이런 경우에는 위에서 설

명한 명령어 행 종료 절차를 밟아야 합니다.

주 오직 슈퍼유저만이 shutdown 명령어를 실행할 수 있습니다.

halt 명령어로 실행중인 모든 프로세스가 정지됩니다. 화면에 다음과 같은 메시지가 나타나면 컴퓨터의 전원을 꺼도 됩니다.

The System is halted

APM(Advanced Power Management) 컴퓨터의 경우 전원 차단은 자동으로 이루어집니다. 그렇지 않으

면 이 시점에서 컴퓨터를 수동으로 끕니다.

종료 후 시스템 재시작하기

즉시 시스템을 재시작하고 싶을 때는 아래의 옵션과 함께 shutdown을 실행합니다.

# shutdown -r now

또는,

# reboot

컴퓨터는 실행중인 모든 프로세스가 정지되었다는 메시지를 표시합니다. 그런 다음 자동으로 재시작됩니

다.

파일 작업하기

터보리눅스 서버 사용자 안내서

A-11

파일 작업하기

터보리눅스 시스템은 고유 이름을 요구하고 트리 형 구조를 사용하여 이를 저장함으로써 파일과 디렉터리

(폴더)를 추적합니다. 이 절에서는 각자의 시스템에 있는 파일과 디렉터리의 목록을 보고, 다른 디렉터리

로 이동하고, 파일이나 디렉터리를 복사 또는 이동하고, 새 디렉터리를 만들고, 디렉터리를 삭제하는 방법

에 관해 설명합니다.

파일과 디렉터리 목록 보기 (ls)

파일과 디렉터리의 목록과 기타 정보를 보려면 ls 명령어를 사용합니다. 포맷은 다음과 같습니다.

$ ls [options] [file name] [directory name]

흔히 사용되는 옵션은 다음과 같습니다.

-l 파일 이름뿐 아니라 각 파일의 상세한 정보가 담긴 목록을 보여줍니다.

-a 숨김 파일을 포함한 파일의 목록을 보여줍니다.

-F 파일 형식을 나타내는 기호를 파일 이름에 첨부합니다. (실행 파일에는 별표 “* ”가, 디렉터리에는 슬래시 “/”가 붙습니다.) (터보리눅스에서 ls 는 ls -F에 대한

별칭으로 설정됩니다.)

파일 또는 디렉터리 이름이 주어지지 않을 경우에는 현재 디렉터리의 파일과 디렉터리의 목록을 보여줍니

다.

아래에서는 다양한 옵션과 함께 ls 명령어를 사용한 실례를 보여줍니다. 이 보기에서 ls 는 /home/jon 디렉

터리에 대해 사용되었습니다.

터보리눅스 서버 사용자 안내서 A-12

터보리눅스에서 이것은 -F 옵션과 동일합니다.

$ ls /home/jon nsmail/ foo1 foo2

터보리눅스에서 ls 는 ls - F 옵션과 동일합니다. 파일과 디렉터리만 표시됩니다.

$ ls -l /home/jon total 352

drwx------ 2 jon jon 1024 Aug 27 01:01 nsmail/

-rw------- 1 jon jon 356352 Aug 27 07:25 foo

각 파일과 디렉터리에 관한 상세한 정보가 표시됩니다.

$ ls -a /home/jon ./ .bashrc .lang/ .vimrc

../ .elvisrc .less .xemacs/

.ICEauthority .exrc .mc/ .xsession*

.Xdefaults .gnome/ .rhosts nsmail/

.bash_history .gnome-desktop/ .sawfish/ foo

.bash_logout .gnome_private/ .screenrc foo1

.bash_profile .inputrc .tcshrc foo2 숨김 파일, 디렉터리 및 서브디렉터리를 포함하여 현재 디렉터리에 있는 모든 파일과 디렉터리가 표

시됩니다.

다른 디렉터리로 변경하기 (cd)

현재 디렉터리에서 다른 디렉터리로 변경하려면 cd 명령어를 이용합니다. 포맷은 다음과 같습니다.

# cd [name of the desired directory]

아무런 인수 없이 cd 를 사용하면, 즉 디렉터리 이름을 생략하면, cd 는 사용자의 홈 디렉터리를 반환합니

다.

파일 작업하기

터보리눅스 서버 사용자 안내서

A-13

항상 원하는 디렉터리의 전체 경로를 지정할 필요는 없습니다. 다음과 같은 인수를 사용할 수 있습니다.

. 현재 디렉터리

. . 현재 디렉터리의 상위 디렉터리

~ 사용자의 홈 디렉터리

- 현재 디렉터리 바로 전의 디렉터리

예를 들어 현재 디렉터리(/home/jon)에서 /home 디렉터리로 변경하려면 다음 두 가지 명령어 중 하나를

이용합니다.

$ cd /home

$ cd ..

또 다른 예로, 현재 디렉터리(/home)에서 사용자의 홈 디렉터리로 변경하려면 다음 명령어 중 하나를 이

용합니다.

$ cd /home/jon

$ cd ./jon

$ cd jon

$ cd ~

$ cd

현재 디렉터리 찾기 (pwd)

현재 어떤 디렉터리에 있는지 찾으려면 pwd 명령어를 사용합니다.

$ pwd

/home/jon

터보리눅스 서버 사용자 안내서 A-14

파일과 디렉터리 복사하기 (cp)

cp 명령어를 이용하면 파일을 한 위치에서 다른 위치로 복사할 수 있을 뿐 아니라 디렉터리와 서브디렉터

리 전체를 다른 위치로 복사할 수도 있습니다. cp 를 위한 포맷은 다음과 같습니다.

$ cp [options] [source filename | source directory name] [destination filename | destination directory name]

다음은 자주 사용되는 옵션들입니다.

--b 목적 파일이 이미 존재할 경우 복사가 진행되기 전에 해당 파일을 백업합니다.

--f 목적 파일이 이미 존재할 경우 해당 파일을 강제로 덮어쓰기 합니다. --i 목적 파일이 이미 존재할 경우 해당 파일에 덮어쓰기를 할 것인지 묻습니다. 대답이 y이

면 파일을 덮어씁니다. y 이외의 대답을 입력하면 이동은 진행되지 않습니다. (터보리눅스에서 cp 는 cp –i에 대

한 별칭으로 설정됩니다.) --u 목적 파일이 이미 존재할 경우 목적 파일의 날짜가 원시 파일의 날짜보다 오래 되었을

경우에만 복사를 진행합니다. (목적 파일이 더 새것이면 복사는 진행되지 않습니다.) --p 사본에 원시 파일의 속성(날짜, 소유자, 허가)을 유지합니다.

--v 복사 결과(원시 파일명 -> 목적 파일명)를 표시합니다.

--R 디렉터리를 재귀적으로 복사합니다.

시스템 응답을 포함하는 다음의 예는 다양한 옵션과 함께 사용된 cp 를 보여줍니다.

$ cp -v file1.txt file2.txt

file1.txt -> file2.txt

--v 옵션을 붙이면 복사 결과가 표시됩니다.

파일 작업하기

터보리눅스 서버 사용자 안내서

A-15

$ cp -v file1.txt ../public

cp: overwrite ’../public/file1.txt’? y

file1.txt -> ../public/file1.txt

이 경우, 터보리눅스 cp 는 cp -i의 별칭이고 똑 같은 이름의 파일이 이미 존재하므로 덮어쓰기를 허가할 것인지 묻게 되고, y로 대답했기 때문에 복사가 진행되고 그 결과가 표시됩니다.

$ cp -rv directory1/ directory2/

directory1/ -> directory2/

directory1 전체가 directory2로 복사되었습니다.

파일 이동하기 (mv)

m v 명령어는 파일과 디렉터리를 한 위치에서 다른 위치로 이동할 수 있게 해줍니다. 포맷은 다음과 같습

니다.

$ mv [options] [source filename | source directory name] [destination filename | destination directory name]

다음은 자주 사용되는 옵션들입니다.

-b 목적 파일이 이미 존재할 경우 이동이 진행되기 전에 해당 파일을 백업합니다.

-f 목적 파일이 이미 존재할 경우 해당 파일을 강제로 덮어쓰기 합니다.

-i 목적 파일이 이미 존재할 경우 해당 파일에 덮어쓰기를 할 것인지 묻습니다. 대답이 y이

면 파일을 덮어씁니다.

y 이외의 대답을 입력하면 이동은 진행되지 않습니다. (터보리눅스에서 mv 는 m v –i에

대한 별칭으로 설정됩니다.)

-u 목적 파일이 이미 존재할 경우 목적 파일의 날짜가 원시 파일의 날짜보다 오래 되었을

경우에만 이동을 진행합니다. (목적 파일이 더 새것이면 이동은 진행되지 않습니다.)

터보리눅스 서버 사용자 안내서 A-16

-v 이동 결과(원시 파일명 -> 목적 파일명)를 표시합니다.

예를 들어 file1.txt를 ../public 디렉터리로 이동하려면 다음과 같이 mv 를 사용합니다.

$ mv -v file1.txt ../public

mv: overwrite ’../public/file1.txt’? y

file1.txt -> ../public/file1.txt

이 경우, 터보리눅스 m v 는 m v -i의 별칭이고 똑 같은 이름의 파일이 이미 존재하므로 덮어쓰기를

허가할 것인지 묻게 되고, y로 대답했기 때문에 이동이 진행되고 그 결과가 표시됩니다.

주 디렉터리를 이동할 경우 동일한 이름의 디렉터리가 이미 존재하면 move는 진행되지 않습니다.

파일 이름 바꾸기 (mv)

m v 명령어를 이용하면 파일 이름을 바꿀 수도 있습니다. 포맷은 다음과 같습니다.

$ mv [options] [source filename | source directory name] [destination filename | destination directory name]

다음은 자주 사용되는 옵션들입니다.

-v 이름 바꾸기(원시 파일명 -> 목적 파일명)의 결과를 표시합니다.

예를 들어 파일명 file1.txt를 file2.txt로 바꾸려면 다음과 같이 mv 를 사용합니다.

$ mv -v file1.txt file2.txt file1.txt -> file2.txt

이때 -v를 생략하면 확인을 위한 시스템 응답이 나타나지 않습니다. 자세한 내용은 m v 매뉴얼 페이지를 참조하시기 바랍니다.

파일 작업하기

터보리눅스 서버 사용자 안내서

A-17

디렉터리 만들기 (mkdir)

디렉터리를 만드는 데는 mkdir 명령어를 사용합니다. 포맷은 다음과 같습니다.

$ mkdir [options] [name of the new directory]

다음은 자주 사용되는 옵션들입니다.

-m 새 디렉터리를 만드는 것과 동시에 허가를 설정합니다.

예를 들어 현재 디렉터리 밑에 mydirectory를 만들려면 다음과 같이 mkdir을 사용합니다.

$ mkdir mydirectory $ ls mydirectory/

터보리눅스에서 ls는 ls -F에 대한 별칭으로 설정되므로 mydirectory/의 슬래시가 표시됩니다.

파일과 디렉터리 삭제하기 (rm, rmdir)

파일과 디렉터리를 삭제하려면 rm 명령어를 이용합니다. 또한 빈 디렉터리를 삭제하려면 rmdir 을 이용합

니다. 이 명령어들을 위한 포맷은 다음과 같습니다.

$ rm [options] [name of file to delete | name of directory to delete] $ rmdir directoryname

다음은 자주 사용되는 옵션들입니다.

-f 사용자가 쓰기 권한을 가지고 있지 않은 파일을 강제로 삭제합니다.

-i 목적 파일이 이미 존재할 경우 해당 파일에 덮어쓰기를 할 것인지 묻습니다. 대답이 y이

면 파일을 덮어씁니다.

y 이외의 대답을 입력하면 이동은 진행되지 않습니다. (터보리눅스에서 r m은 r m –i에 대한 별칭으로 설정됩니다.)

-v 삭제 결과를 표시합니다.

터보리눅스 서버 사용자 안내서 A-18

-r 모든 파일과 서브디렉터리, 디렉터리를 재귀적으로 삭제합니다.

예:

현재 디렉터리에 있는 file1.txt를 삭제하려면 다음과 같이 rm을 사용합니다.

$ rm -v file1.txt rm: remove ’file1.txt’? y 이 예의 경우, 터보리눅스에서 r m은 m v –i에 대한 별칭이고 질문에 y를 입력했으므로 파일이 삭제되

었습니다.

/home/directory1 디렉터리와 그 서브디렉터리를 삭제하려면 다음과 같이 rm 을 사용합니다.

$ rm -riv /home/directory1/ rm: descend into directory ’/home/directory1’? y removing all entries of directory /home/directory1

rm: remove ’/home/directory1/file1.txt’? y removing /home/directory1/file1.txt

rm: remove directory ’/home/directory1’? y removing the directory itself: /home/directory1

빈 디렉터리인 directory2를 삭제하려면 다음과 같이 rmdir을 사용합니다.

$ rmdir directory2

이 경우 시스템은 확인을 요구하지 않습니다.

자세한 내용을 보려면 rm 및 rmdir 매뉴얼 페이지를 참조하시기 바랍니다.

텍스트 파일 보기 (cat, less, more)

텍스트 파일의 내용을 보려면 cat, less, more 명령어를 이용합니다.

cat을 위한 포맷은 다음과 같습니다.

$ cat [options] [name of file to view]

파일 작업하기

터보리눅스 서버 사용자 안내서

A-19

다음은 자주 사용되는 옵션입니다.

-n 행 번호를 표시합니다.

예를 들어 /etc/lilo.conf 파일의 내용을 표시하려면 다음과 같이 cat을 사용합니다.

$ cat -n /etc/lilo.conf 1 boot=/dev/hda

2 map=/boot/map

3 install=boot/boot.b

4 prompt

5 lba32

6 timeout=50

7 default=linux

8 image=boot/vmlinuz

9 label=linux

10 root=/dev/hda6

11 initrd=/boot/initrd

12 read-only

cat을 이용하면 긴 파일은 화면 밖으로 스크롤되어 끝 부분만 보이게 됩니다. 이런 불편을 없애기 위해 긴

파일을 화면별로 표시하도록 하려면 less와 more 명령어를 이용하는 것이 편리합니다.

less를 위한 포맷은 다음과 같습니다.

$ less [options] [name of file to view]

터보리눅스 서버 사용자 안내서 A-20

파일을 보기 위해 less를 사용할 때는 몇 가지 키 스트록 명령어를 사용할 수 있습니다. 주요 명령어는 다

음과 같습니다.

키 스트록 기능

Space 한 화면 아래로 스크롤합니다.

Enter 한 행 아래로 스크롤합니다.

q 화면 표시를 중단하고 빠져나갑니다.

/<search pattern> 현재 화면부터 ‘search pattern’을 검색합니다.

n 검색을 반복합니다.

d 반 화 면 아래로 스크롤합니다.

h 도움말을 표시합니다.

w 한 화 면 위로 스크롤합니다.

u 반 화 면 위로 스크롤합니다.

y 한 행 위로 스크롤합니다.

? <string pattern> 현재 화면부터 시작하여 <string pattern>을 반대 방향으로 검색합니다.

N 현재 화면부터 시작하여 이전의 반대 방향 검색을 반복합니다.

m 자세하게(verbosely) 프롬프트하면서( m o re 처럼) 화면의 마지막 행의 위

치를 파일에 대한 퍼센티지로 표시합니다. 기본값으로 less 는 콜론으로

프롬프트됩니다.

M m 보다도 더 자세하게 프롬프트됩니다.

파일 작업하기

터보리눅스 서버 사용자 안내서

A-21

예를 들어 /etc/X11/xinit/xinitrc 파일의 내용을 화면에 표시하려면 다음과 같이 less를 사용합니다.

$ less /etc/X11/xinit/xinitrc userresources=$HOME/.Xresources

usermodmap=$HOME/.Xmodmap

sysresources=/etc/X11/xinit/Xresources

sysmodmap=/etc/X11/xinit/Xmodmap

if [-f $sysresources ]; then

xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then

xmodmap $sysmodmap

fi

if [ -f $userresources ]; then

/etc/X11/xinit/xinitrc 1/89 30%

파일의 일부분만이 화면에 들어갈 때는 상태 행이 화면 아래쪽에 나타나 “/etc/X11/xinit/xinitrc 1/89

30%”(표시된 파일의 퍼센티지)와 같은 방식으로 표시됩니다. less 명령어를 –m 옵션과 함께 사용하면

퍼센티지가 표시됩니다.

less 명령어보다 먼저 나오고 기능도 더 적은 more 명령어를 위한 포맷은 다음과 같습니다.

$ more [options] [name of file to view]

“퍼센티지 표시”는 more에 대한 기본값으로 설정됩니다.

파일 찾기 (find)

파일을 찾으려면 f i nd 명령어를 이용합니다. 포맷은 다음과 같습니다.

$ find [options] [path to search target] [expressions]

터보리눅스 서버 사용자 안내서 A-22

다음은 자주 사용되는 옵션들입니다.

-name <string pattern> <string pattern>에 일치하는 파일을 검색합니다.

-iname <string pattern> 대소문자를 구분하지 않고 <string pattern>에 일치하는 파일을

검색합니다.

-path <string pattern> 전체 경로명을 포함한 <string pattern>에 일치하는 파일을 검색

합니다.

-ipath <string pattern> 전체 경로명을 포함하고 대소문자를 구분하지 않는 <string pattern>

에 일치하는 파일을 검색합니다.

-u id <user ID> 목적 파일의 숫자로 된 사용자 ID가 <user ID>입니다.

-user <user name> 목적 파일의 소유자가 <user name>입니다.

-g id <group ID> 목적 파일의 숫자로 된 그룹 ID가 <group ID>입니다.

-group <group name> 목적 파일의 그룹이 <group name>입니다.

예를 들어 /etc 아래에 있는 .conf 로 끝나는 모든 파일을 검색하려면 다음을 입력합니다.

$ find /etc -name "*.conf" /etc/resolv.conf

/etc/ld.so.conf

/etc/X11/gdm/gdm.conf

.

.

/etc/smb.conf

/etc/yp.conf

/etc/lilo.conf

/etc/apcupsd.conf

/etc/esd.conf

/etc/xinetd.conf

파일 작업하기

터보리눅스 서버 사용자 안내서

A-23

<group name>을 설정할 때 와일드카드 문자 “*”와 “?”를 사용할 수 있습니다.

자세한 내용을 보려면 f i nd 매뉴얼 페이지를 참조하시기 바랍니다.

문자열 검색하기 (grep)

텍스트 파일 내의 텍스트 문자열을 검색하려면 grep 명령어를 이용합니다. 포맷은 다음과 같습니다.

$ grep [options] [string pattern for search] [target files]

다음은 자주 사용되는 옵션들입니다.

-i 검색 시에 대소문자를 구분하지 않습니다.

-l 보통의 검색 결과에서 파일의 이름만을 표시합니다.

-n 행 번호를 표시합니다.

-x 전체 문자열 패턴에 일치하는 항목만을 검색합니다.

예를 들어 /etc/lilo.conf 아래에 있는 모든 파일에서 “boot ” 문자열을 포함하는 파일을 검색하려면 다음과

같이 grep를 사용합니다.

$ grep -n boot /etc/lilo.conf 1:boot=/dev/hda

2:map=/boot/map

3:install=/boot/boot.b

8:image=/boot/vmlinuz

11: initrd=/boot/initrd

- n 옵션은 검색 결과를 표시할 때 행 번호를 추가합니다.

터보리눅스 서버 사용자 안내서 A-24

파일 압축하기와 풀기 (gzip)

이따금씩 큰 파일을 압축하여 크기를 줄이고 싶을 때가 있습니다. 그런가 하면 압축한 파일을 풀어야 할

때도 있습니다. (압축된 파일의 확장자는 .gz입니다.) 이 작업을 수행하려면 gz ip 명령어를 이용합니다.

gz ip 을 사용하기 위한 포맷은 다음과 같습니다.

$ gzip [options] [file name]

다음은 자주 사용되는 옵션들입니다.

-d 파일의 압축을 풉니다. -d 를 생략하면 압축 동작을 수행합니다.

-f 이름이 똑 같은 파일을 강제로 덮어쓰기 합니다.

-v 결과를 자세히 표시합니다.

예들 들어 현재 디렉터리 내에 있는 모든.txt 파일을 압축하고 결과를 자세히 표시하려면 다음과 같이 gzip

명령어를 사용합니다.

$ gzip -v *.txt file1.txt: -82.6% -- replaced with file1.txt.gz file2.txt: -53.0% -- replaced with file2.txt.gz file3.txt: -72.2% -- replaced with file3.txt.gz file4.txt: -75.3% -- replaced with file4.txt.gz file5.txt: -66.5% -- replaced with file5.txt.gz

파일 이름의 . g z 확장자는 파일이 압축되었음을 가리킵니다.

앞의 보기에서 압축한 파일을 모두 풀려면 다음과 같이 gz ip 을 사용합니다.

$ gzip -dv *.gz file1.txt.gz: -82.6% -- replaced with file1.txt file2.txt.gz: -53.0% -- replaced with file2.txt file3.txt.gz: -72.2% -- replaced with file3.txt file4.txt.gz: -75.3% -- replaced with file4.txt file5.txt.gz: -66.5% -- replaced with file5.txt

파일 작업하기

터보리눅스 서버 사용자 안내서

A-25

아카이브 만들기와 추출하기 (tar)

tar 명령어는 여러 개의 파일을 하나의 아카이브 파일로 한데 묶어줍니다. 원한다면 파일들을 아카이브로

묶기 전에 각 파일을 압축할 수 있습니다. 이것은 시스템 하드 디스크, 분리 가능한 디스크, 테이프 등에

들어 있는 중요한 데이터를 보관하는 데 유용한 명령어입니다.

tar를 사용하기 위한 포맷은 다음과 같습니다.

$ tar [options] [file name of archive] [target file name]

다음은 자주 사용되는 옵션들입니다.

-c 새 아카이브를 만듭니다.

-f 파일 이름을 사용하여 아카이브를 만듭니다.

-v 처리한 파일을 자세히 표시합니다.

-x 아카이브에서 파일을 추출합니다.

-z 아카이브에 파일을 추가하기 전에 파일을 압축할 때나 아카이브에서

파일을 추출한 후에 압축을 해제할 때 g z i p을 사용합니다.

예들 들어 현재 디렉터리에 있는 모든.txt 파일로 이루어진 새 아카이브를 만들려면 다음과 같이 tar를 사

용합니다.

$ tar -cvf file.tar *.txt file1.txt

file2.txt

file3.txt

file4.txt

file5.txt

위의 보기에서 tar 는 목록에 표시된 텍스트 파일들을 포함하는 file.tar 아카이브를 만듭니다.

앞의 보기에서 생성된 아카이브에서 모든 파일을 추출하려면 다음과 같이 tar를 사용합니다.

터보리눅스 서버 사용자 안내서 A-26

$ tar -xvf file.tar file1.txt

file2.txt

file3.txt

file4.txt

file5.txt

위의 보기에서 tar는 file.tar 아카이브에서 파일을 추출하여 목록을 표시합니다.

파일 중에는 .tar.gz 확장자가 붙어 있는 경우가 있습니다. 이런 파일들은 아카이브한 후에 gz ip으로 압축

한 것입니다. 다음과 같이 tar를 사용하여 한 동작으로 압축을 해제하여 파일을 추출할 수 있습니다.

$ tar -zxvf file.tar.gz

file1.txt

file2.txt

file3.txt

file4.txt

file5.txt

프로세스 관리

사용자가 시작한 프로세스, 백그라운드로 실행되는 서버 서비스, 그리고 데몬 등은 모두 넓은 의미의 “프

로세스”에 포함됩니다.

터보리눅스는 멀티태스킹 복수 사용자 운영 체제이기 때문에 프로세스 관리가 필요합니다. 아래에서 프로

세스 관리 명령어에 관해 설명합니다.

프로세스 관리

터보리눅스 서버 사용자 안내서

A-27

프로세스의 상태 알아보기 (ps)

프로세스의 상태를 알아보려면 ps 명령어를 이용합니다. 또한 p s 를 사용하여 어떤 프로세스가 실행 중인

지 확인할 수 있습니다. 이 명령어를 실행하기 위한 포맷은 다음과 같습니다.

$ ps [options]

다음은 자주 사용되는 옵션들입니다.

-a 현재 터미널에서 시작된 모든 프로세스를 화면에 표시합니다.

-f 프로세스 계층을 트리 구조로 표시합니다.

-l 상세한 목록(긴 포맷)을 표시합니다.

-u 사용자가 선호하는 포맷으로 정보를 표시합니다.

-x 현재 터미널(tty)에서 시작되지 않은 프로세스를 함께 표시합니다.

예를 들어 현재 실행되고 있는 프로세스를 모두 화면에 표시하려면 다음과 같이 p s를 사용합니다.

$ ps -ax PID TTY STAT TIME COMMAND

1 ? S 0:03 init

2 ? SW 0:00 [kflushd]

3 ? SW 0:00 [kupdate]

4 ? SW 0:00 [kpiod]

5 ? SW 0:00 [kswapd]

6 ? SW< 0:00 [mdrecoveryd]

159 ? SW 0:00 [apmd]

169 ? S 0:00 syslogd -m 0

177 ? S 0:00 klogd

187 ? S 0:00 /usr/sbin/atd

197 ? S 0:00 crond

208 ? SW 0:00 [inetd]

214 ? S 0:00 /usr/sbin/sshd

터보리눅스 서버 사용자 안내서 A-28

252 ? SW 0:00 [dpkeyserv]

262 ? SW 0:00 [papd]

267 tty2 S 0:00 login -- root

268 tty3 SW 0:00 [mingetty]

269 tty4 SW 0:00 [mingetty]

270 tty5 SW 0:00 [mingetty]

271 tty6 SW 0:00 [mingetty]

현재 프로세스를 모두 트리 구조로 표시하려면 다음과 같이 p s를 사용합니다.

$ ps -axf

자세한 내용을 보려면 ps 매뉴얼 페이지를 참조하시기 바랍니다.

프로세스 관리

터보리눅스 서버 사용자 안내서

A-29

프로세스 끝내기 (kill)

현재 실행되고 있는 프로세스를 선택적으로 종료할 수 있습니다. 이를 위해서는 kill 명령어를 이용합니다.

포맷은 다음과 같습니다.

$ kill [options] [PID]

PID는 Process ID를 줄인 말로 각 프로세스에 할당된 고유 번호를 가리킵니다.

다음은 자주 사용되는 옵션들입니다.

-l 모든 신호 이름의 목록을 표시합니다.

- <signal number> 신호 번호로 지정된 신호를 프로세스에 전송합니다.

이 기호들에 관한 자세한 설명을 보려면 kill 매뉴얼 페이지를 참조하

시기 바랍니다.

예를 들어 사용 가능한 모든 신호 번호와 그 이름을 화면에 표시하려면 다음과 같이 k i l l을 사용합니다.

$ kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL

5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE

9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2

13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD

18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN

22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO

30) SIGPWR 31) SIGSYS 32) SIGTRMIN 63) SIGRTMAX

신호 번호를 생략하면 kill 명령어는 소프트웨어 종료 신호(신호 번호 15. SIGTERM에 해당)를 전송합니다.

예를 들어 다음과 같이 신호 번호를 지정하지 않고 kill 명령어로 PID 555 프로세스를 종료할 수 있습니다.

터보리눅스 서버 사용자 안내서 A-30

$ kill 555

강제로 프로세스를 종료하려면 신호 SIGKILL에 해당하는 -9를 지정합니다.

$ kill -9 555

주 프로세스에 대해 kill 명령어를 실행하려면 반드시 슈퍼유저이거나 해당 프로세스의 소유자이어야 합

니다.

장치 관리하기

터보리눅스는 유닉스 계열이기 때문에 마우스, 하드 드라이브, 주변 장치 등을 파일로 취급합니다.

터보리눅스는 유닉스처럼 루트(/)를 기반으로 시작되는 역 트리 구조로 조직됩니다. 이미 언급한 것처럼

장치는 파일로 취급됩니다. 장치는 상호 연결된 트리의 형태로 존재합니다. 터보리눅스는 mount 명령어

를 통해 CD-ROM이나 플로피 드라이브 같은 장치(상호 연결된 트리 구조를 형성)를 관리합니다.

파티션

하나의 물리 디스크는 반드시 하나 이상의 파티션(물리 디스크 상에서 논리적으로 인식되는 구역)으로 분할되어야 합니다.

파티션 분할은 단일한 물리 디스크의 부분을 논리적으로 할당하는 것입니다. 이런 방식으로 하나의 디스

크를 여러 개의 디스크처럼 취급할 수 있습니다. 마이크로소프트 도스 및 윈도우에서는 각 파티션에 별도

의 드라이브 문자(예: 드라이브 C, 드라이브 D)가 할당됩니다.

장치 관리하기

터보리눅스 서버 사용자 안내서

A-31

하지만 유닉스 계열인 터보리눅스에는 드라이브라는 개념이 없습니다. 아래에 나타난 것처럼 드라이브와

파티션은 파일로 취급됩니다.

IDE 하드 드라이브:

/dev/hda 프라이머리 드라이브

/dev/hdb 프라이머리 슬레이브

/dev/hdc 세컨더리 드라이브

/dev/hdd 세컨더리 슬레이브

SCSI 하드 드라이브:

/dev/sda

/dev/sdb

/dev/sdc

... SCSI ID 순으로 정렬

파티션 정보도 함께 포함

/dev/hda1

/dev/hda2

/dev/hda3

...

파티션과 파일 시스템

운영 체제들은 파티션을 다양한 방식으로 취급합니다. 전형적으로 MS-DOS와 윈도우는 각 파티션이 별

도의 하드 드라이브처럼 행동하고 표시되는 FAT와 NTFS 파일 시스템을 사용합니다. MacOS의 파일 시

스템은 HFS이며 OS/2의 파일 시스템은 HPPS입니다. 터보리눅스는 유닉스처럼 하나의 계통으로 된 파

일 시스템 구조를 가집니다. 터보리눅스에서는 ext2 파일 시스템이 표준입니다. 이 모든 파일 시스템은 서

로 다르기 때문에 하나의 파티션 상에 서로 다른 파일 시스템을 동시에 사용할 수는 없습니다. 다시 말해

터보리눅스에서 하나의 하드 디스크 상에 다른 운영 체제가 동시에 존재하려면 각기 자체의 파티션을 가

지고 있어야만 합니다.

터보리눅스 서버 사용자 안내서 A-32

예들 들어 FAT 파일 시스템을 위한 파티션을 만들었다면 그 파티션에는 터보리눅스를 설치할 수 없게 됩

니다. 이때는 기존의 파티션을 완전히 삭제한 후에 전적으로 터보리눅스만을 위한 새 파티션을 만들어야

합니다.

디스크에 파티션을 분할하는 이유

디스크에 파티션을 분할하는 것은 시스템 및 사용자 파일이 배치될 곳을 정의하는 일입니다. 마이크로소

프트 윈도우 환경에서는 fdisk 프로그램을 이용하여 파티션을 관리할 수 있습니다. 또한 Partition Magic

같은 제삼자 유틸리티는 기존의 파티션을 삭제하지 않고도 새 파티션을 만들 수 있게 해줍니다.

터보리눅스 시스템에서는 리눅스 fdisk 프로그램을 이용하여 파티션을 만들거나 삭제할 수 있습니다. ext2

파일 시스템을 만들려면 이 버전의 fdis k가 필요합니다.

마이크로소프트 윈도우 버전의 fd isk는 터보리눅스 시스템에서는 실행되지 않습니다.

터보리눅스는 여러분이 fd isk에 익숙할 경우에만 이를 사용할 것을 권장합니다. fdisk 프로그램은 명령어

행 인터페이스를 활용하며 온라인 명령어는 제공하지 않습니다.

주 파티션을 삭제하기 전에는 반드시 데이터를 백업해 두어야 합니다.

파티션을 삭제하면 그 안에 들어 있는 모든 데이터를 잃게 됩니다.

루트 및 스왑 파티션

터보리눅스를 설치할 때는 하나의 시스템에 여러 개의 파티션을 만드는 것이 보통입니다. 최소한의 경우

라도 스왑 파티션을 만들어야 합니다. 스왑 파티션은 시스템이 "가상 메모리"로 사용합니다. 여기에는 사용

자가 액세스할 수 없습니다.

장치 관리하기

터보리눅스 서버 사용자 안내서

A-33

대부분의 경우 루트 및 스왑 파티션 외에 추가로 파티션을 만드는 것이 바람직합니다. 이 추가 파티션들을

설정하는 방법은 각자가 실행하는 터보리눅스 시스템의 유형에 좌우됩니다. 예를 들어 로그인 사용자가

많다면 /home 아래에 사용 가능한 공간을 충분히 확보해 두어야 합니다. 이런 경우에 필요한 대용량 하드

디스크를 더욱 효과적으로 사용할 수 있도록 해주는 파티션을 만드는 것이 좋습니다. 그렇지 않으면 각자

의 데이터를 백업하기 쉽도록 백업만을 위한 파티션을 만들어 루트 디렉터리에서 분리시키는 것도 고려해

볼 수 있습니다. 모든 상황에 들어맞는 하나의 패턴이란 있을 수 없습니다. 따라서 각자의 필요에 따라 파

티션을 나누는 것이 중요합니다. 이때 미리 계획을 세우는 것이 매우 바람직합니다.

mount 명령어 사용하기

터보리눅스 상에서 플로피 드라이브와 CD-ROM을 포함한 다양한 파일 및 파일 시스템에 액세스 하는

데는 mount 명령어를 사용합니다. (유닉스에서는 대부분의 I/O 장치를 파일로 간주한다는 점을 상기하십

시오.) 다음은 mount 명령어를 위한 포맷입니다.

자세한 내용을 보려면 mount 매뉴얼 페이지를 참조하시기 바랍니다.

# mount [options] [device to mount] [mount-point]

다음은 자주 사용되는 옵션들입니다.

-r 파일 시스템을 읽기 전용으로 탑재합니다.

-w 파일 시스템을 읽기/쓰기로 탑재합니다.

-v 자세히 보기. 현재의 탑재 정보를 화면에 표시합니다.

-t 지정한 파일 시스템 유형을 이용하여 탑재합니다.

다음은 자주 사용되는 파일 시스템입니다.

ext2 터보리눅스 파일 시스템에서 사용되는 표준 리눅스 파일 시스템

ext3 새로운 리눅스 파일 시스템

터보리눅스 서버 사용자 안내서 A-34

iso9660 CD-ROM 파일 시스템

hfs 표준 MacOS 파일 시스템

hpfs 표준 OS/2 파일 시스템(읽기 전용)

msdos 표준 MS-DOS 파일 시스템(긴 파일 이름을 지원하지 않음)

vfat MS-DOS와 윈도우 95/98를 위한 파일 시스템(긴 파일 이름을 지원)

swap 스왑 파티션을 위한 파일 시스템

MS-DOS 플로피 디스크로 작업하기

다음 명령어로 MS-DOS 포맷으로 된 플로피 디스크를 읽을 수 있습니다.

# mount -t msdos /dev/fd0 /mnt/floppy

mtools 는 미리 탑재를 하지 않고도 플로피 디스크에 액세스할 수 있도록 해주는 편리한 툴입니다.

mtools를 이용하면 아래에 예시된 것처럼 일반적인 MS-DOS 명령어 앞에 “m”을 붙여 MS -DOS 명령

어 자체를 실행하는 것과 동일한 효과를 얻을 수 있습니다.

# mdir

# mcopy

# mdel

예: 탑재점 /mnt/cdrom에 CD-ROM을 탑재하려면 다음 명령어를 이용합니다.

# mount -r -t iso9660 /dev/cdrom /mnt/cdrom

위는 통상적인 명령어 구문의 포맷입니다. 그러나 터보리눅스에서는 CD-ROM(iso9660)과 플로피

(ext2)가 /etc/fstab에 설정된 각각의 탑재점을 가지고 있기 때문에 탑재 명령어를 다음과 같이 단축할 수

있습니다.

# mount /mnt/cdrom # mount /mnt/floppy

장치 관리하기

터보리눅스 서버 사용자 안내서

A-35

CD-ROM이나 플로피 디스크를 이젝트하려면 먼저 umount 명령어를 이용하여 탑재를 해제해야 합니다.

# umount /mnt/cdrom # umount /mnt/floppy

주 오직 슈퍼유저만이 mount 및 umount 명령어를 실행할 수 있습니다.

디스크 사용 알아보기 (df, du)

df와 du의 두 명령어를 이용하여 시스템의 하드 디스크에 얼마나 많은 공간이 사용되고 있고 또 사용이

가능한지를 파악할 수 있습니다.

하나 이상의 파일 시스템, 즉 파티션에 사용 가능한 디스크 공간이 얼마나 되는지 파악하려면 d f를 사용합

니다.

파일 시스템이 아니라 개별 파일들이 얼마나 많은 디스크 공간을 사용하고 있는지 파악하려면 d u 를 사용

합니다.

df 명령어 사용하기

현재 탑재된 하나 이상의 파일 시스템에 사용 가능한 공간이 얼마나 되는지 파악하려면 d f 를 사용합니다.

다음은 d f를 사용하기 위한 포맷입니다.

$ df [options] [target device name | target partition name |

target directory name | target file name]

이 명령어는 총 용량, 사용된 용량, 사용 가능한 용량, 블록(1024바이트) 단위로 사용된 퍼센티지, 그리고

탑재점을 화면에 표시합니다.

타겟을 생략하면 현재 탑재된 파티션에 관한 모든 정보가 화면에 표시됩니다.

다음은 자주 사용되는 옵션들입니다.

-a 모든 파일 시스템에 관한 정보를 화면에 표시합니다.

터보리눅스 서버 사용자 안내서 A-36

- k 크기를 킬로바이트로 표시합니다.

- m 크기를 메가바이트로 표시합니다.

- h 크기를 G (기가바이트) 또는 M(메가바이트)으로 표시합니다.

- H -h 옵션과 동일하지만 크기를 1024바이트 단위가 아닌 1000바이트 단위로 표시합

니다.

- i 크기를 아이노드로 표시합니다.

다음은 다양한 옵션을 사용한 df의 예입니다.

$ df Filesystem 1k-blocks Used Available Use% Mounted on

/dev/hda2 1981000 193574 1685012 10% /

/dev/hda6 1981000 14349 1864239 1% /home

/dev/hda5 1981000 1099841 778747 59% /usr

$ df -a Filesystem 1k-blocks Used Available Use% Mounted on

proc 0 0 0 - /proc

/dev/hda6 1981000 14349 864239 1% /home

/dev/hda5 1981000 1099841 778747 59% /usr

$ df -k Filesystem 1k-blocks Used Available Use% Mounted on

/dev/hda2 1981000 193574 1685012 10% /

/dev/hda6 1981000 14349 1864239 1% /home

/dev/hda5 1981000 1099841 778747 59% /usr

$ df -m Filesystem 1M-blocks Used Available Use% Mounted on

/dev/hda2 1935 189 1645 10% /

/dev/hda6 1935 14 1820 1% /home

/dev/hda5 1935 1074 760 59% usr

장치 관리하기

터보리눅스 서버 사용자 안내서

A-37

du 명령어 사용하기

각 디렉터리가 얼마나 많은 공간을 사용하고 있는지 알아보려면 du 명령어를 이용합니다. 다음은 이 명

령어를 사용하기 위한 포맷입니다.

$ du [options] [target directory name | target file name]

지정한 디렉터리 아래에 각 파일의 크기가 블록으로 표시됩니다. 타겟을 생략하면 현재 디렉터리에 관한

정보가 화면에 표시됩니다.

다음은 자주 사용되는 옵션들입니다.

-a 디렉터리뿐 아니라 모든 파일의 수를 화면에 표시합니다.

-b 크기를 바이트로 표시합니다.

-c 타겟의 총 크기를 마지막 행에 표시합니다.

-k 크기를 킬로바이트로 표시합니다.

-h 크기를 G(기가바이트) 또는 M (메가바이트)으로 표시합니다.

-H -h 옵션과 동일하지만 크기를 1024바이트 단위가 아닌 1000바이트 단위로 표시합

니다.

터보리눅스 서버 사용자 안내서 A-38

다음은 d u를 단독으로 또는 �b (바이트) 옵션을 붙여 사용한 예입니다.

$ du /home

12 ./lost+found

776 ./ftp/lib

1 /ftp/pub

778 ./ftp

22 ./httpd/cgi-bin/man

142 ./httpd/cgi-bin

47 ./httpd/html/manual/images

339 ./httpd/html/manual/misc

594 ./httpd/html/manual/mod

8 ./httpd/html/manual/search

123 ./httpd/html/manual/vhosts

1425 ./httpd/html/manual

1438 ./httpd/html

37 ./httpd/icons/small

136 ./httpd/icons

17 ./httpd/aux/man

18 ./httpd/aux

1735 ./httpd

1 ./gopher

1 . /samba

193 ./public

1 ./nfs

14002 .

장치 관리하기

터보리눅스 서버 사용자 안내서

A-39

$ du -b /home

12288 ./lost+found

794624 ./ftp/lib

1024 ./ftp/pub

796672 ./ftp

22528 ./httpd/cgi-bin/man

145408 ./httpd/cgi-bin

48128 ./httpd/html/manual/images

347136 ./httpd/html/manual/misc

608256 ./httpd/html/manual/mod

8192 ./httpd/html/manual/search

125952 ./httpd/html/manual/vhosts

1459200 ./httpd/html/manual

1472512 ./httpd/html

37888 ./httpd/icon/small

139264 ./httpd/icons

17408 ./httpd/aux/man

18432 ./httpd/aux

1776640 ./httpd

1024 ./gopher

1024 ./samba

197632 ./public

1024 ./nfs

14338048 .

터보리눅스 서버 사용자 안내서 A-40

소프트웨어 패키지 설치하기와 업그레이드하기

터보리눅스가 패키지 관리자로 사용하는 r p m 은 패키지를 설치, 언인스톨(삭제), 업데이트, 또는 검사하기

위한 효과적인 관리 환경을 제공하며 패키지들 사이에 존재하는 상호 존속성을 관리합니다.

명령어 행에서 rpm 을 실행합니다. (터보툴의 하나인 turbopkg도 패키지를 관리할 수 있게 해줍니다.)

일부 패키지는 슈퍼유저만이 설치할 수 있다는 점에 유의하십시오.

패키지는 터보리눅스 Install CD의 /TurboLinux/RPMS/에 저장되어 있습니다.

rpm 사용하기

다음 포맷으로 rpm 명령어를 사용합니다.

$ rpm [options] [RPM package name]

다음은 자주 사용되는 옵션들입니다.

-i 설치

-U 업그레이드

-e 삭제

-h 우물 정자(#)로 진행 상태를 표시합니다.

-v 자세히 보기. (정밀하게 표시하려면 �h를 붙여 사용합니다.)

-q 현재 어떤 패키지를 설치하고 있는지 조회합니다.

rpm 사용의 예

netscape-communicator4.76-1.i386.rpm 패키지를 시스템에 설치하기 위해 r p m 을 사용하였다면

아래에 설명한 작업을 수행하는 데 rpm 을 사용할 수 있습니다.

소프트웨어 패키지 설치하기와 업그레이드하기

터보리눅스 서버 사용자 안내서

A-41

현재 설치된 rpm 패키지를 보려면,

# rpm -q netscape-communicator netscape-communicator-4.76-1

패키지가 설치되어 있지 않은 경우, 다음과 같은 메시지가 표시됩니다.

package netscape-communicator-4.76-1 is not installed

현재 설치된 r pm 패키지와 관련된 모든 파일의 목록을 보려면 아래에 제시된 것과 같이 r p m 을 실행합니

다.

# rpm -ql netscape-communicator

/etc/X11/wmconfig/netscape-communicator

/usr/bin/netscape/communicator

/usr/lib/netscape

.

.

. <lines omitted>

/usr/share/doc/packages/netscape-communicator-4.76

/usr/share/doc/packages/netscape-communicator-4.76/LICENSE

/usr/share/doc/packages/netscape-communicator-4.76/README

패키지를 언인스톨하려면 다음과 같이 rpm 을 실행합니다.

# rpm -e netscape-communicator

터보리눅스 서버 사용자 안내서 A-42

넷스케이프 패키지에 관한 상세한 정보를 화면에 표시하려면 아래에 제시된 것과 같이 rpm 을 실행합니다.

# rpm -qi netscape-communicator

Name : netscape-communicator Relocation : /usr

Version : 4.75 Vendor : (none)

Release : 1 Build Date : Sun 20 Aug 2000

09:11:47 PM MDT

Install : Sat 03 Feb 2001 Build Host : build.jp.tlan

Date 06:40:18 AM MST

Group : X11/Applications Source RPM : netscape-

communicator-

4.76-1.src.rpm

Size : 34842555 License : Mozilla/

Commercial

(distributable)

URL : http://

www.netscape.com/

Summary : The Netscape Communicator Web

browser.

Descrip : Netscape Communicator is a full-featured web

tion browser, mail reader, news reader, and HTML

editor. This version contains strong (128bit)

encryption.

주 r p m 패키지는 Install CD의 /TurboLinux/RPMS에 들어 있습니다.

반드시 먼저 CD-ROM을 /mnt/cdrom으로 탑재해야 합니다.

일부 패키지는 슈퍼유저만이 설치할 수 있습니다.

온라인 매뉴얼에 액세스하기

터보리눅스 서버 사용자 안내서

A-43

온라인 매뉴얼에 액세스하기

터보리눅스를 포함한 다양한 유닉스 계열 운영체제에 포함된 전통적인 온라인 참조 매뉴얼에 액세스하려

면 man 명령어를 이용합니다. man을 사용하기 위한 일반적인 포맷은 다음과 같습니다.

$ man [options] [chapter number] [the name of the command you

want information about]

주 less 명령어와 거의 동일한 방식으로 man 이 표시하는 정보를 탐색할 수 있습니다.

다음은 자주 사용되는 옵션들입니다.

-a 여러분이 찾고 있는 명령어와 관련된 모든 매뉴얼 페이지를 연속으로 보여줍니다.

-w 화면에 표시될 매뉴얼 페이지가 위치한 전체 경로를 보여줍니다.

예를 들어 ls 명령어에 대한 매뉴얼 페이지를 보려면 다음과 같이 man을 사용합니다.

$ man ls

또 다른 예로 moun t 명령어와 관련된 모든 매뉴얼 페이지를 화면에 표시하려면 다음과 같이 man 을 사용

합니다.

# man -aw mount

/usr/man/man8/mount.8

/usr/man/man2/mount.2

터보리눅스 서버 사용자 안내서 A-44

온라인 매뉴얼은 다음 절들로 구성되는 점에 유의하십시오.

1. 셸 명령어

2. 시스템 호출

3. 라이브러리 호출

4. 특수 파일

5. 파일 포맷과 약속

6. 게임

7. 매크로 패키지와 약속

8. 시스템 관리 명령어

9. 커널 루틴

예를 들어 시스템 호출로서의 mount 는 1절 “시스템 호출”에서 설명하고 명령어로서의 mount는 8절

“시스템 관리 명령어”에서 설명합니다. 따라서 mount 명령어에 관한 정보를 찾아보려면 다음을 입력해야

합니다.

$ man mount

man 의 사용법에 관한 상세한 내용을 보려면 man 자체에 대한 매뉴얼 페이지를 참조하시기 바랍니다. 이

를 위해서는 다음 명령어를 실행합니다.

$ man man

터보리눅스 서버 사용자 안내서

B-1

TCP/IP 네트워킹

이 부록에서는 TCP/IP 네트워크의 기본적인 구성 요소에 관해 심도 있게 설명합니다.

여러분은 터보리눅스를 설치할 때, 가령 네트워크 인터페이스를 설정하는 것과 같은 다양한 구성 작업을

수행합니다. 이 구성 작업은 반드시 다른 서버 프로그램을 실행하기 전에 수행되어야 합니다. 이 부록은

TCP/IP 네트워크와 일부 기본적인 구성 요소에 관한 수준 높은 이해를 돕기 위한 것입니다.

부록 B

터보리눅스 서버 사용자 안내서 B-2

TCP/IP

TCP/IP는 Transmission Control Protocol/Internet Protocol(전송 제어 프로토콜/인터넷 프로토콜)의 약

어입니다.

이 두 프로토콜은 인터넷을 비롯한 네트워크 상에 있는 두 대 이상의 컴퓨터간의 전송 기능을 제공합니다.

다음은 이 프로토콜들이 작동하는 원리를 아주 간단하게 단순화해서 설명한 것입니다.

• 원시 컴퓨터에서 데이터 메시지를 데이터그램으로 쪼개는 TCP는 각 세그먼트에 헤더와 시퀀스

번호를 붙입니다. 그런 다음 이들을 순차적으로 IP에 건네줍니다.

• IP는 원시 및 목적지 IP 주소, 물리 주소, TCP 데이터그램 등을 가기 포함하고 있는 패킷을 만

듭니다. 그런 다음 IP가 이 패킷들을 데이터 연결 계층에 건네주면 이들은 다시 목적지 주소로

전달됩니다.

• 목적지 컴퓨터에서 IP는 패킷이 손상 없이 도착했는지 점검하여 TCP로 건네줍니다. 그러나 IP

는 데이터 세그먼트의 무결성을 점검하지는 않습니다.

• TCP는 데이터그램의 데이터 무결성을 점검하고 이들을 올바른 시퀀스로 재조립하여 원래의 메

시지와 똑같이 보이게 만든 다음 목적지 컴퓨터로 보냅니다.

TCP는 OSI(Open Systems Interconnection: 개방형 시스템 상호접속) 모델의 트랜스포트 계층에 해당

하며, IP는 네트워크 계층에 해당합니다.

IP는 패킷 내에 있는 데이터의 무결성을 보장하지 않습니다. 이는 TCP의 책임입니다.

이더넷

터보리눅스 서버 사용자 안내서

B-3

이더넷

이더넷은 1970년 초반에 제록스 사가 처음으로 개발했습니다. 여기서 다루는 이더넷의 현재 버전은 제록

스, DEC, 인텔 등이 표준으로 채택한 버전 2입니다. 이것은 IEEE802.3 표준에 해당합니다.

이더넷은 버스 또는 스타 토폴로지를 사용하며 CSMA/CD를 이용하여 네트워크 트래픽을 관리합니다. 이

더넷 네트워크 상에서는 노드(컴퓨터, 프린터 등)가 동축 케이블, 광섬유 케이블, 또는 트위스트 페어 선을

통해서 연결됩니다.

TCP/IP 프로토콜 세트는 다양한 인터넷 프로토콜 세트 중 하나입니다.

그러나 TCP/IP는 이더넷 네트워크를 통한 데이터 통신의 실질적 표준이 되었습니다. 이 프로토콜은 하나

의 노드에서 다른 노드로 전송되는 모든 데이터를 패킷으로 분할하고 각 패킷에 헤더와 트레일러를 삽입

한 다음 하드웨어로 보내 전송하도록 합니다. 헤더에는 원시 및 목적지 주소를 비롯한 기타 정보가 포함됩

니다.

이더넷 네트워크 상에서 각 노드는 네트워크를 통해 전송되는 각 패킷을 끊임없이 검사하여 해당 노드로

명확하게 주소가 지정되거나 복수 노드에 브로드캐스트되는 패킷만을 수취합니다. 스위칭 허브나 라우터

를 사용할 경우에는 이를 통해 목적지를 결정하고 패킷을 다른 네트워크나 서브넷에 전송합니다.

CSMA/CD 프로토콜

CSMA/CD(Carrier Sense Multiple Access with Collision Detection: 캐리어 검출 다중 접근/충돌 검출

기능) 프로토콜은 이더넷 전송을 위해 사용되는 프로토콜 중의 하나입니다. 이 프로토콜은 복수의 호스트

가 동시에 데이터 전송을 시도하여 자칫하면 패킷 “충돌”이 일어날 수 있는 상황을 해결해줍니다.

CSMA/CD 프로토콜은 물리적 네트워크 케이블(캐리어)을 끊임없이 감시하여 트래픽이 있는 것으로 감지

되면 패킷을 전송하지 않습니다. 캐리어 상에서 트래픽이 없어질 때까지 기다렸다가 패킷을 전송합니다.

그래도 간혹 충돌이 일어나는데, 그럴 경우에는 패킷이 재전송됩니다. CSMA/CD 프로토콜은 많은 수의

컴퓨터와 기타 장치를 지원하는 네트워크를 구축할 수 있게 해줍니다. 극단적인 경우에는 충돌 회수가 많

으면 네트워크의 성능이 갑자기 저하될 수 있습니다. 이 문제는 라우터나 스위칭 허브를 이용하여 대형 네

트워크를 몇 개의 작은 네트워크로 분할하면 해결됩니다.

터보리눅스 서버 사용자 안내서 B-4

MAC 주소

이더넷 네트워크 상에서 IP 주소는 논리적 주소인 반면 MAC(Media Access Control) 주소는 각

NIC(Network Interface Card)에 할당된 고유 물리 주소를 참조합니다. 각 노드는 IP 주소와 그에 해당하

는 MAC 주소가 포함된 테이블을 구축하고 관리합니다. 각 개별 노드는 이 테이블을 구축하기 위해

ARP(Address Resolution Protocol) 를 사용합니다. 자세한 내용을 보려면 B-5쪽의 ARP 절을 참조하

시기 바랍니다.

MAC 주소는 IEEE 규칙을 따르는 6바이트 수치 벡터입니다 처음 3바이트는 제조업체 번호이고 뒤의 3바

이트는 장치에 대한 제조업체의 고유 식별 번호입니다. 서로 다른 NIC는 동일한 MAC 주소를 가질 수 없

습니다.

리눅스에서는 i fconfig 명령어를 실행하여 각자의 NIC에 대한 MAC 주소를 결정할 수 있습니다.

(Hwaddr은 MAC 주소입니다.)

# ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:20:AF:??:??:??

inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:0 errors:) dropped:0 overruns:0 frame:0

TX packets:14 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

주 이중 의문 부호(??)는 임의의 수치 값을 가리킵니다.

이더넷

터보리눅스 서버 사용자 안내서

B-5

ARP

ARP(Address Resolution Protocol) 는 상위 수준 프로토콜인 IP 주소에 대한 MAC 주소를 찾을 때 필요

한 프로토콜입니다. 시스템이 시작되면 각 호스트는 자신의 MAC 주소가 IP 주소와 일치한다는 사실만을

알게 됩니다. 하나의 호스트가 다른 호스트와 통신하기 위해서는 해당 호스트의 MAC 주소를 알아야만 합

니다. 이 시점에서 ARP 요청이 전송되고 상대방 호스트가 자신의 MAC 주소로 응답하면 조회하는 호스

트는 이를 메모리에 캐시합니다. 캐시의 내용은 arp 명령어를 통해 살펴볼 수 있습니다.

# arp -a

gateway.calleprivada.co.jp (192.168.1.1) at 00:00:93:??:??:??

[ether] on eth0

diablo.calleprivada.co.jp (192.168.1.2) at 00:80:C8:??:??:??

[ether] on eth0

주 이중 의문 부호(??)는 임의의 수치 값을 가리킵니다.

터보리눅스 서버 사용자 안내서 B-6

IP 주소

IP 주소는 인터넷 상에서 하나의 컴퓨터를 다른 컴퓨터와 구분해주는 논리 주소입니다. 현재는 IP 주소를

위해 IPv4라는 시스템을 사용하고 있습니다. 이 시스템에서 각 주소는 4바이트 수치 값으로 표시됩니다.

통상적으로 각 바이트는 피리어드(.)로 다음 바이트와 구분되는 십진수 값입니다(예: 192.168.1.2).

IP 주소는 네트워크 주소와 호스트 주소의 두 부분으로 나뉩니다. 동일한 네트워크 상에 있는 호스트 각각

의 IP 주소에는 동일한 네트워크 주소 부분이 포함돼 있습니다.

IP 주소 시스템에 관해 심도 있게 이해하려면 넷마스크, 네트워크 주소, 브로드캐스트 주소, 네트워크 클

래스 등에 대해 이해하는 것이 필요합니다.

넷마스크는 4바이트 길이의 수치 값으로서 점으로 구분된 10진법 또는 16진법으로 지정됩니다(예:

255.255.255.0 또는 0xFF.0xFF.0xFF.0x00). 넷마스크 값을 1과 0의 수열로 시각화해보면 넷마스크

의 작동 방식을 쉽게 이해할 수 있습니다. IP는 넷마스크를 이용하여 IP 주소에 대한 AND 논리 연산을 수

행합니다. 넷마스크 내의 0비트에 해당하는 IP 주소 내의 비트가 0으로 변환되는 반면에 넷마스크 내의 1

비트에 해당하는 IP 주소 내의 모든 비트는 변경되지 않습니다.

예를 들어 넷마스크가 255.255.255.0인 IP 주소 192.168.1.2가 사용될 경우 네트워크 부문은

192.168.1, 호스트 부분은 2가 됩니다. 때로는 넷마스크 비트가 IP 주소 뒤에 첨부되어 192.168.1.2/24

처럼 표시되기도 합니다.

또 하나의 중요한 개념은 브로드캐스트 주소입니다. IP 주소의 호스트 부분의 비트가 모두 1일 때는 브로

드캐스팅(하나의 패킷을 동일한 네트워크 상의 모든 호스트에게 전송하는 것)에 사용되는 동보통신 주소

가 만들어집니다. 예를 들어 192.168.1.2/24 네트워크 상에서 브로드캐스트 주소는 192.168.1.255가 됩

니다. 나아가 모든 비트가 하나로 설정되는( 255.255.255.255) 브로드캐스트 주소도 가능합니다.

IP 주소

터보리눅스 서버 사용자 안내서

B-7

주소가 255.255.255.255일 경우에는 동일한 네트워크 내에서만 적용되지만 특정한 네트워크 주소를 지

정함으로써 네트워크 주소를 브로드캐스팅에 사용할 수 있습니다.

브로드캐스트 주소는 ARP(Address Resolution Protocol)나 DHCP(Dynamic Host Configuration

Protocol) 같은 프로토콜이 호스트 IP 주소를 분석하는 데 이용됩니다. 응용 프로그램이나 개인이 데이터

메시지를 전송하기 위해 브로드캐스트 주소를 지정하는 것도 가능합니다. 그러나 이런 관행은 네트워크를

급속히 둔화시키고 상당한 성능 저하를 초래하게 됩니다.

브로드캐스트 주소는 호스트 IP 주소로 사용될 수 없습니다.

방금 언급한 넷마스크 및 브로드캐스트 주소를 보려면 ifconfig 명령어를 이용합니다. 이 명령어의 출력에

서 inet addr은 IP 주소이고 Bcast는 브로드캐스트 주소, Mask는 네트워크 마스크입니다. (네트워

크 주소는 출력되지 않습니다.)

# ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:20:AF:??:??:??

inet addr:192.168.1.255 Bcast:192.168.1.255 Mask:255.255.255.0

주 이중 의문 부호(??)는 임의의 두 자리 수치 값을 가리킵니다.

처음에 IP 주소의 네트워크 부분은 8비트로, 호스트 부분은 24비트로 구성되어 있습니다. 이것은 한 사람

이 몇 개의 대규모 네트워크를 관리할 수 있다는 생각에서 비롯된 것입니다. 하지만 중소형 네트워크의 수

요가 증가함에 따라 이런 유형의 IP 주소는 알맞지 않게 되었습니다. 이 문제를 해결하기 위해 IP 주소에

대한 A(8비트 마스크 ), B (16비트 마스크 ), C (24비트 마스크 ) 등의 클래스 개념이 도입되었습니다.

터보리눅스 서버 사용자 안내서 B-8

네트워크 클래스는 다음과 같이 네트워크 부분의 두 하이 비트에 의해 결정됩니다.

Class High bits Address Range Netmask

A 00 0.0 – 127.255.255.255 255.0.0.0

B 10 128.0.0.0 – 191.255.255.255 255.255.0.0

C 11 192.0.0.0 – 223.255.255.255 255.255.255.0

클래스 A는 최대 16,770,000개의 호스트를, 클래스 B는 약 65,000개, 클래스 C는 256개의 호스트(실제

로는 254개)를 가질 수 있습니다. 최근에는 개인과 소기업을 위한 저가의 영구 접속 서비스가 확산되어

클래스 C 보다 작은 네트워크(서브넷으로 간주될 수 있습니다)가 널리 보급되고 있습니다. 결과적으로 넷

마스크는 각 바이트에 따라 변하지 않으므로, 즉 넷마스크는 바이트가 아니라 비트 수준에 따르므로, 넷마

스크와 네트워크의 계산이 다소 복잡하게 됩니다.

아래는 서브넷을 위한 넷마스크 설정의 보기입니다.

Name Address Lower b i te ( in b i ts)

host 200.200.200.100/28 01100100

Netmask 255.255.255.240 11110000

Network

Address

200.200.200.96 01100000

Broadcast 200.200.200.11 01101111

인터넷 상에서는 InterNIC라는 단체가 할당하고 관리하는 IP(Internet Address) 주소만을 사용할 수 있습

니다.

게이트웨이 주소

터보리눅스 서버 사용자 안내서

B-9

그러나 인터넷에 연결되지 않은 네트워크를 구축하고자 할 경우가 있습니다. 이런 경우에는 로컬 네트워

크의 사용을 위해 예약해 둔 전용 주소에서 IP 주소를 고를 수 있습니다.

RFC에 지정된 전용 주소의 범위는 다음과 같습니다.

Class Address Range Netmask

A 10.0.0.0 – 10.255.255.255 255.0.0.0

B 172.16.0.0 – 172.31.255.255 255.255.0.0

C 192.168.0.0 – 192.168.255.255 255.255.255.0

게이트웨이 주소

B-4쪽의 MAC 주소 절과 B-5쪽의 ARP 절에서 설명한 것처럼 이더넷 환경에서는 동일한 네트워크 상

에 있는 호스트간에만 통신이 가능합니다. 다른 네트워크 상에 있는 호스트와 통신하려면 반드시 라우터

라 불리는 중개용 네트워킹 장치를 설치해야 합니다. 라우터는 양측에서 사용할 수 있는 IP 주소를 가지

고 있습니다. 이 장치의 IP 주소를 게이트웨이 주소라고 부릅니다.

부팅 프로세스 설정

앞 절에서는 개념을 설명했습니다. 이어지는 절에서는 시스템이 부팅할 때 설정되는 다른 호스트와 통신

하는 프로세스를 구체적으로 설명하기로 합니다.

터보리눅스 서버 사용자 안내서 B-10

터보리눅스 서버 6.5는 /etc/rc.d/init.d/network 스크립트를 이용하여 네트워킹 인터페이스를 설정합니

다. (실제로는 /etc/sysconfig/network-scripts에 있는 구성 스크립트를 실행합니다.) 이 스크립트를

통해, System V init 프로세스에 따라 실행되는 다양한 네트워크 구성 파일에 준하여 융통성 있는 네트

워크 인터페이스를 설정하고 할 수 있습니다. 기본적으로, 일단 이 스크립트가 정상적으로 실행되면

다른 호스트와의 통신이 가능하게 됩니다.

/etc/rc.d/init.d/network 스크립트를 실행하여 네트워크 인터페이스를 설정하는 일은 아래에 설명한 것

과 같은 절차를 요구합니다.

네트워크 인터페이스 설정하기

1. i fconfig 명령어를 이용하여 이더넷 장치의 IP 주소를 설정합니다.

# ifconfig eth0 192.168.0.10 broadcast 192.168.0.255 netmask 255.255.255.0

2. route 명령어를 이용하여 네트워크 주소를 설정합니다.

# route add -net 192.168.0.0

3. route 명령어를 이용하 여 기본 게이트웨이를 설정합니다.

# route add default gw 192.168.0.1

ifconfi g 를 이용하여 네트워크 구성을 영구히 변경하려면 슈퍼유저로 로그인한 다음 다음을 수행합니다.

/sysconfig/network-scripts/ifcfg (또는 각자가 사용하고 있는 인터페이스에 해당하는 파일)을 편집하여

lo, ip address, broadcast, netmask 등에 대한 정확한 값을 설정합니다. 편집한 파일을 저장합니다.

다음 부팅 시에 이 새 i fconfig 설정이 적용됩니다.

실제로 단계 1 이전에 반드시 이더넷 장치(여기서는 eth0)가 인식되어야 합니다. (dmesg를 실행하여

결과를 확인할 수 있습니다.) 이더넷 장치가 커널 내에 구축되면 /etc/rc.d/init.d/network 스크립트

가 실행되기 전에 인식이 됩니다. 터보리눅스 서버 6.5용 표준 커널 패키지에서는 모든 이더넷 드라이버

를 모듈로 취급합니다. 따라서 단계 1을 수행할 때 커널은 자동으로 모듈을 읽어들여 이더넷 장치

를 인식합니다.

부팅 프로세스 설정

터보리눅스 서버 사용자 안내서

B-11

eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ?? ??

??, IRQ 10.

이때 NIC(3c509)를 리눅스 장치 eth0(/dev/eth0)으로 사용하는 것이 가능해 보입니다.

주 위의 설명은 IP 주소와 DNS 서버 주소 등이 올바르게 구성된 컴퓨터 환경에서 아무런 문제 없이 단

일 NIC를 실행하고 있을 것과 NIC와 네트워크 장치가 올바르게 서로 연결돼 있을 것을 전제로 한 것

입니다.

터보리눅스 서버 사용자 안내서 B-12

네트워크 점검하기

이따금씩 어떤 이유로 네트워크가 제대로 작동되지 않을 때가 있습니다. 이런 경우에는 아래에 개괄한 절차에 따

라 네트워크의 작동을 점검할 수 있습니다.

네트워크를 점검하려면

1 . lsmod 명령어를 이용하여 NIC 드라이버가 적절히 인식되고 읽혀졌는지 확인합니다.

# lsmod Module Size Used by

applestalk 4 11 (autoclean)

lp 2 0

nfs 12 5 (autoclean)

3c59x 5 1 (autoclean)

aic7xxx 23 3

위의 시스템 응답은 3Com 3c90x NIC를 위해 사용된 3c59 모듈을 읽어 들였음을 나타냅니다.

이때 모듈이 읽히지 않으면 modprobe 명령어를 이용하여 NIC용 모듈을 읽어 들입니다.

# modprobe 3c59x

2 . ifconfig 명령어를 이용하여 네트워크 인터페이스가 올바르게 구성되었는지 점검합니다. iconfig 는 시스템

상의 모든 인터페이스를 보여줍니다.

# ifconfig eth0 Link encap:Ethernet HWaddr 00:60:08:??:??:??

inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:10559536 errors:0 dropped:0 overruns:0 frame:0

TX packets:1135365 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

lo Link encap:Local Loopback

부팅 프로세스 설정

터보리눅스 서버 사용자 안내서

B-13

inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0

UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1

RX packets:101202 errors:0 dropped:0 overruns:0 frame:0

TX packets:101202 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

다른 호스트와 통신하려면 적어도 두 개의 네트워크 장치를 구성해야 합니다. lo는 호스트 내의 통신을 위한

가상 장치인 "local loopback"을 줄인 말입니다. 또 하나의 항목 eth0은 NIC에 해당하는 네트워크 장치

입니다.

이 시점에서 문제가 발생하면 ifconfig 명령어를 이용하여 장치의 재구성을 시도해 보십시오.

# ifconfig eth0 192.168.0.10 broadcast 192.168.0.255 netmask 255.255.255.0

3 . netstat 명령어를 이용하여 경로 지정 테이블이 올바르게 구성되었는지 점검합니다.

# netstat -rn Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

192.168.1.0 0.0.0.0 255.255.255.0 U 1500 0 0 eth0

0.0.0.0 192.168.1.1 0.0.0.0 UG 1500 0 0 eth0

반드시 동일한 네트워크 상에서 lo와 eth0을 위한 네트워크 주소를 설정해야 합니다.

또한 다른 네트워크와 통신하려면 반드시 게이트웨이 주소를 설정해야 합니다.

경로 지정 테이블이 올바르게 구성되지 않았다면 route 명령어를 이용하여 경로 지정 테이블을 재구성합니다.

# route add -net 192.168.1.0 # route add default gw 192.168.1.1

터보리눅스 서버 사용자 안내서 B-14

4. p i n g 명령어를 이용하여 동일한 네트워크 상의 다른 호스트와 통신할 수 있는지 점검합니다.

# ping 192.168.1.2 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.9 ms

64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.5 ms

...

# ping 192.168.2.3 64 bytes from 192.168.2.3: icmp_seq=- ttl=64 time=0.9 ms

64 bytes from 192.168.2.3: icmp_seq=1 ttl=64 time=0.9 ms

...

이 시점에서 문제가 발생한다면 여러 가지 이유가 있을 수 있습니다. 먼저 네트워크 인터페이스와 경

로 지정 테이블을 재점검합니다. 그런 다음 네트워크 케이블이 올바르게 연결되어 있는지, 그리고 허

브와 같은 네트워크 장치가 제대로 작동하는지를 점검해야 합니다.

5. nslookup 명령어를 이용하여 네임 서버가 올바르게 참조되고 있는지 점검합니다.

# nslookup

Default Server: dns.calleprivada.co.jp

Address: 192.168.10.2

>

이 시점에서 문제가 발생하면 /etc/resolv.conf 파일에 올바른 IP 주소가 작성되었는지 점검합

니다.