원래 이 문서는 Sun Microsystems의 Dan Farmer 씨의 글을 번역한 내용이며,
한국어 번역은 (주)아이즈랩의 김상우씨에게 저작권이 있습니다. <swlive [at] cais [dot] kaist [dot] ac [dot] kr>
또는 <webmaster [at] iznet [dot] net>
기본 네트워크 서비스
---------------------------------------------------------
inetd daemon
이전의 Unix는 많은 서버 프로그램들이 비록 다른 호스트의 접속이 없더라도 네트워크의 연결을 한없이 기다리며 귀중한 시스템 자원을 소비해 왔다. 그래서 결과적으로 생겨난 것이 /etc/inetd라는 Internet Daemon이 개발되었다. 이 프로그램은 다른 호스트의 연결이 있을 때에만 TCP기반이나, UDP기반의 적당한 서버를 실행시키는 프로그램이다.
inet는 booting시에 실행되며 실행시 etc/inetd.conf파일을 조사하여 어떤 network service를 공급할 것인지 결정한다. 다음은 ined.conf파일의 일부분이다.
ftp stream tcp nowait root /usr/etc/ftpd ftpd
telnet stream tcp nowait root /usr/etc/telnetd telnetd
shell stream tcp nowait root /usr/etc/rshd rshd
login stream tcp nowait root /usr/etc/rlogind rlogind
exec stream tcp nowait root /usr/etc/rexecd rexecd
uucp stream tcp nowait root /usr/etc/uucpd uucpd
finger stream tcp nowait nobody /usr/etc/fingerd fingerd
talk dgram udp wait root /usr/etc/talkd talkd
time stream tcp nowait root internal
tftp dgram udp wait nobody /usr/etc/tftpd tftpd
각 field의 의미는 다음과 같다.
ftp Service name
stream Socket Type(stream, datagram)
tcp Protocol Type(Tcp, Udp)
nowait 대부분의 tcp 서비스는 nowait, 대부분의 udp서비스는 wait
root 사용자(서버 프로세스를 실행시킬수 있는 사용자)
/usr/etc/ftpd ftpd Command name과 arguments
internal은 inetd에 의해 내부적으로 실행됨을 의미한다.
FTP(File Transfer Protocol)
FTP는 사용자가 시스템간의 완전한 파일 전송을 가능하게 한다. Unix에서는 ftp는 client 실행 프로그램이며, /etc/ftpd는 server 프로그램이다. 주로 TCP Port 21이 명령 전송에 사용된다.
만약 FTP를 이용하여 remote machine에 접속한다면 remote machine은 로그인을 요구한다. 또한 이 로그인 정보는 /usr/adm/wtmp 파일에 기록된다.
TELNET
Telnet이란 사용자가 인터넷에서 remote computer에 login 하도록 해 주는 서비스이다. Telnet은 사용자에게 가상 터미널을 제공한다. Unix에서의 client 프로그램은 # telnet [호스트 주소]이며 server 프로그램은 telnetd이다.
Telnet을 이용하여 원격 머신에 접속하는 화면의 예이다.
# telnet evol
Trying...
connected evol
Escape character is '^]'
login : evol
password : ********
SMTP(Simple Mail Transfer Protocol)
SMTP란 컴퓨터 간의 전자메일을 보내는 인터넷 표준이다. Unix에서는 /usr/lib/sendmail이 client와 server를 모두 구현한다. sendmail의 설정은 sendmail.cf으로 한다. TCP Port 25.
DNS(Domain Name System)
호스트 이름으로 IP 주소를 결정해 주거나 IP주소를 이용하여 호스트 이름을 결정해 주는 데이터베이스 시스템이다. Unix에서 DNS는 /etc/resolv.conf파일에 의해 구현된다.
Finger
finger 프로그램은 두가지 사용법이 있다. argument 없이 finger를 실행하면 현재 시스템에 연결한 모든 사용자의 username, full name, location, login name과 같은 정보를 보여준다. 그리고 name argument를 사용하여 finger명령어를 실행하면 이 프로그램은 /etc/passwd 파일에서 name과 같은 first name, last name, username을 가진 모든 사용자를 찾아준다. finger는 일반적으로 local machine에서 사용하지만 remote machine에서 로그인한 사용자의 정보도 알아볼 수 있다. TCP port 79
HTTP(HyperText Transfer Protocol)
WWW(World Wide Web)에서 서버로부터 문서를 요청하고 받는데 사용되는 프로토콜이다. HTTP는 매우 간단하다. client가 서버에 접속해서 파일을 요구하면 tjqjsms HTML(HyperText Markup Language)이나 Plain ASCII의 형태의 문서로 회답한다. TCP Port 80.
rlogin and rsh
rlogin과 rlogind는 telnet과 같은 remote terminal 서비스를 제공한다. rlogin은 client프로그램이며 rlogind는 서버다. telnet과 rlogin의 차이점은 다음과 같다.
rlogind는 사용자가 사용자이름을 입력할 필요가 없다. 사용자이름은 연결 시작시에 자동으로 전송된다.
"trusted host"에서 "trusted user"가 접속시에는 패스워드를 입력하지 않고 사용자가 로그인할 수 있도록 한다.
rsh, rshd는 rlogin, rlogind와 비슷한 프로그램이다. rlogin, rlogind의 TCP Port는 513, rsh, rshd의 TCP Port는 514.
NIS
NIS는 Sun에서 배포된 network lookup service이며, 몇개의 master node들로 완전히 복사하는 database를 가지고 있다. 각 master node는 database를 위한 server process를 수행하며 이것은 NIS server로 나타내어진다. muntiple server는 database 일치를 보장하기 위해 그들 스스로 수정된 database를 퍼트린다. 안정된 상태에서, 어느 server process가 client request에 답할 것인지는 문제가 되지 않는다. 그 이유는 server들의 대답이 동일하기 때문이다. 이것은 network당 multiple server가 높은 유효성과 신뢰성의 NIS service를 주게된다. NIS Domain은 동일한 NIS database를 사용하는 하나의 network상에서의 node들의 집합이다. NIS domain들은 internet domain들과 sendmail domain들로 부터 다르게 설정될수도 있다. NIS domainname directory는 map집합들을 포함하는 /var/yp안의 directory이다. NIS server는 /var/yp의 subdirectory안에 있는 NIS domain의 모든 map들을 유지한다. 예를들면, sunse domain을 위한 map들은 /var/yp/sunse안에 존재한다. domain name은 NIS database로부터 data를 검색하기 위해 요구된다. network상에서의 각 machine은 /etc/defaultdomain로 설정된 default domain에 속하고 /etc/rc.local를 booting시 참조한다. domain name은 server와 client들 모두에 설정되야 한다. 각 NIS map은 일련의 값들과 그들의 연관된 key들을 포함하고 있으며, 프로그램들은 이런 값들을 조사한다. 대부분 현재 map들은 전통적으로 /etc directory에서 발견되는 ASCII file들로 부터 추출된다. NIS map의 정보는 ASCII file안의 data와 유사하지만 dbm format으로 유지된다. 모든 dbm file들에서, 하나의 NIS map은 구분할수 있는 mapname을 가지고 있고, 두개의 화일인 mapname.dir과 mapname.pag를 보충한다. 예를들면, hosts.byname은 internet address를 찾기 위해 machine들에 의해 참조된다. hosts.byname database를 위한 정보는 hosts.byname.pag와 hosts.byname.dir인 두화일안에 저장된다. .pag로 끝나는 화일은 실제적인 map entry들을 포함하고 있다.
NFS
disk 영역을 관리하고 file의 access를 관리하기도 하는 등의 일은 OS의 filesystem이 담당하던 것인데 이와 같이 filesystem이 하던 작업을 network을 초월해서 여러대의 컴퓨터가 실행할 수 있게끔 한 것이 바로 NFS이다.
NFS는 local file system이 있는 directory에서 remote system상의 directory와 논리적으로 연결(mount)하는 작업을 해준다. 일단 그 접속(mount)가 이루어지면 local disk와 마찬가지로 remote disk를 전혀 차이 없이 access할 수 있다. 사용자나 application은 자신이 access하려는 화일이 실제로 어느 컴퓨터에 있는지를 의식할 필요가 없다. NFS 접속 방식은 local disk의 filesystem이 "UFS(4.2)" type으로 mount되듯이 remote disk의 filesystem or directory를 "nfs" type으로 mount하면 된다.
NFS는 server-client model로 구현되며 local disk를 사용할 수 있게끔 허용해 주는 쪽, 즉 export해 주는 쪽을 "nfs server"라 하고 remote disk를 사용하려 하는 쪽, 즉 nfs mount하려는 쪽을 "nfs client"라 한다.
NFS를 사용하여 얻을 수 있는 이점 중 'disk의 절약'이 있다. 여러 시스템에서 똑 같이 사용하는 file들을 각 시스템 disk마다 저장해 놓지 않고 한 시스템에만 저장해 놓고 NFS mount해 사용하면 그만큼 disk를 절약할 수 있게된다.
처음에는 Sun workstation들이 disk를 공유하기 위해 개발하였지만 요즈음은 기종에 관계없이 또 여러 OS에 구현되도록 설계되어 있다. 많은 vendor들이 그들의 컴퓨터에 대해 NFS를 제공하고 있다.
'Server' 카테고리의 다른 글
apache module mod_gzip (2) | 2002.03.03 |
---|---|
Apache + PHP + MySQL + mod_ssl (1) | 2002.03.02 |
proftpd서버에서 특정 아이피 거부하기 (0) | 2002.02.22 |
http to https (rewrite urls) (0) | 2002.02.22 |
samba서버사용시 파일생성모드 변경 (0) | 2002.02.13 |