include "top.php" ?>
| 시스템 관리 및 실습 #7 | |||||||||||||||||||||||||||||||||||||||||
| 1. 시스템에서 샐행되는 데몬 정리 | |||||||||||||||||||||||||||||||||||||||||
|
*데몬의 종류* amanda : 백업 클라이언트인 amanda 데몬 amandaidx : amanda 서버의 패키지 서비스 중 하나인 amandaidx 데몬 amd : auto mount daemon, 시스템의 요청이 있는 경우에 자동으로 장치와 NFS 호스트를 마운트해 주는 데몬. 네트워크의 설정이 잘못된 경우에는 부팅을 하는 도중에 문제를 일으킬수 있으므로 처음에서 꺼두는 것이 좋다. amidxtape : amand 서버에 패키지 서비스 중 하나인 amidxtape 데몬 anacron : 시간에 따라 지정한 프로그램을 정기적으로 실행하는 데몬. cron과 같은 기능을 하지만 계속 켜두지 않는 컴터에서 사요하는 데몬 apmd : 베터리 상태를 감시하고 syslog(8)에 기록하며 시스템을 끄기도 하는 데몬 arpwatch : 이더넷 카드와 ip 어드레스의 설정 관계를 유지하는 데몬 atd : 특정 시간 또는 시스템 부하가 적을때 지정된 명령을 실행시키는 데 autofs : 파일 시스템을 사용하고자 할때 자동으로 마운트 시켜주는 데몬 chargen : chargen의 TCP 버전 서버 chargen-upd : chargen의 UDP 버전 서버 ciped : ip address를 암호화하는 CIPE 데몬 crond : cron을 실행시키는 데몬, cron은 지정한 프로그램을 특정 시간에 주기적으로 실행시키는 유닉스 표준 프로그램 daytime : daytime의 TCP 버전 서버. daytime은 클라이언트의 질의에 응답하여 아스키 형태로 현재 시간과 날짜를 출력하는 데몬. TCP 포트 13을 사용 daytime-udp : daytime의 UDP 버전 서버. UDP포트 13을 사용 dhcpd : Dynamic host configuration protocol server daemon. 동적 호스트 제어 프로토콜 서버 데몬. BOOTP와 DHCP가 포함된 데몬으로 클라이언트들이 부팅할때 자동으로 동적 IP 어드레스와 네트워크 정보를 가질수 있게 해줌. echo : echo 의 TCP 버전 서버 echo-udp : echo 의 UDP 버전 서버 finger : finger 리퀘스트에 응답하는 서버. finger는 사용자에 대한 로그인 네임, 디렉토리, 쉘과 최종 로그인 시간에 대한 정보를 볼수 있게 하는 프로토콜 gated : gated(라우팅 데몬) 을 시작하거나 종 gpm : MC(midnight command) 와 같은 텍스트 기반 리눅스용 애플리케이션에서 마우스를 쓸수 있게 해주는 데몬. 콘솔에서 마우스를 이용한 팝업 메뉴와 복사/ 붙이기 기능도 지원 httpd : 웹 서비스를 위한 아파치 데몬. html파일과 cgi를 사용가능하게 함 identd : 특별한 TCP 연결에서 사용자의 신원을 결정해 주는 데몬. TCP 포트번호를 주면 연결된 서버 시스템 소유자를 확인할수 있는 문자열을 돌려줌 imap : 원격 사용자가 imap 클라이언트(Pine, netscape communicator)를 이용하여 자신의 메일에 접근할수 있게 하는 서비스 imaps : 원격 사용자가 SSL을 지원하는 imap 클라이언트(netscape communicator, fetchmail 등)를 이용하여 자신의 메일에 접근할수 있게 하는 서비스 innd : 유즈넷 뉴스 서버를 이용하여 지역 뉴스 서버를 설정할수 있는 데몬 ipchains : 패킷 필터링 파이어월을 자동으로 실행하는 데몬 ipop2 : 원격 사용자가 pop2 클라이언트를 이용하여 메일에 접근할수 있게 하는 서비스 ipop3 : 원격 사용자가 pop3 클라이언트를 이용하여 메일에 접근할수 있게 하는 서비스 irda : irda 가 정상적으로 동작하도록 해 주는 데몬 keytable : /etc/sysconfig/keytable로 키보드 유형을 변환할수 있게 하는 서비스. 한텀에서 kbdconfig 프로그램을 실행하여 키보드 유형을 변환할수 있다. 대부분의 시스템에서 keytable 데몬은 실행시켜 두어야 한다. kudzu : 부팅시 새롭게 추가된 하드웨어를 설정할 수 있게 hardware probe를 실행시키는 데몬 linuxconf : 시스템 설정을 유지하기 위해 부팅시에 다양한 태스크의 실행을 정렬시키는 데몬. linuxconf-web : 웹을 통해 linuxconf를 실행할수 있게 연결을 허용하는 데몬 lpd : 프린터(line printer)가 정상적으로 동작하도록 해 주는 프린트 서비스 데몬 mars-nwe : netware IPX 프로토콜을 사용하는 클라이언트에게 리눅스 머신에서 파일과 프린트 서버를 호환시켜 주는 데몬 mcserv : midnight command(MC) 서버이다. MC끼리 네트워크를 공유한다 mysqld : 매우 빠르고 안정적인 mysql 데이타 베이스 서버 데몬이다 named : 도메인 네임과 ip어드레스를 해석하기 위한 DNS서버(BIND) 데몬. 로컬 호스트에서 DNS서버를 운영할때만 실행 시킨다. netfs : 삼바, 네트워크 파일 시스템(NFS), NCP(netware)등의 마운트와 언마운트에 관여하는 데몬. network : 네트워크 인터페이스의 설정을 시스템 부팅시 커널에 적재시키는 데몬. nfs : TCP/IP 네트워크에서 파일을 공유할수 있게 하는 데몬. /etc/exports 파일에서 설정한 NFS 서버가 기동할수 있게 해 준다. nfslock : NFS파일을 locking 한다. nscd : NIS/NS 를 사용할수 있게 하는 데몬. nscd는 실행중인 프로그램의 그룹을 살피고 패스워드를 변경하거나 다음 질의를 위해 결과를 캐시하는 데몬이다. ntalk : 서로 다른 시스템끼리 채팅이 가능하게 ntalk 연결을 허용하는 서버 ntpd : NTPv4데몬 pcmcia : 휴대용 PC에서 이더넷이나 모뎀을 쓸수 있게 하는 데몬. pop3s : SSL을 지원하는 pop3클라이언트를 사용하여 메일에 접근할수 있게 하는 서비스이다. portmap : RPC(NFS, NIS, mcsev등) 연결을 관리하기 위한 포트 매핑 데몬으로 RPC를 사용하는 프로그램을 실행하기 위해서는 반드시 선택하여야 하는 데몬. postgresql : postgresql 디비에 관한 데몬 pppoe : adsl서비스에 연결시켜 주는 데몬 proftpd : 쉬운설정, 보안성, 단순성에 초점을 맞춘 개선된 ftp 서버 데몬 pxe : 부팅전 실행환경 서버. 다른 PXE기반 머신에 네트워크 부팅을 제공한다 random : 시스템에 필요한 난수 발생 및 저장 데몬 rawdevices : HDD 파티션과 같은 블론 디바이스를 위한 스크립트. /etc/sysconfig/rewdevices 파일을 편집하여 원시 디비아스를 블론 디바이스로 매핑할수 있다. reconfig : /etc/reconfigSys 파일이 존재하면 재설정을 실행하는 데몬 rexec : rexec(3) 루틴을 위한 서버 데몬. 인증된 사용자 이름과 패스워드로 원격 실행을 제공하는 서버이다. rlogin : rlogin 프로그램을 위한 서버 데몬. 신뢰할수 있는 호스트로부터 특권화된 포트 번호에 기반한 인증을 통해 원격 로그인을 제공한다. routed : RIP 프로토콜을 통해 업데이트된 자동 IP 라우팅 테이블 설정 데몬 rsh : rshd 서버는 rcmd 루틴을 위한 서버이며 따라서 rsh 프로그램을 위한 서버이다. 신뢰할수 있는 호스트로부터 특권화된 포트번호에 기반한 인증 통해 원격 실행을 제공한다. rstat : 네트워크에 연결된 사요자에게 그 네트워크 상의 머신에 대한 퍼포먼스 매트릭스를 회수할수 있게 해주는 프로토콜 rsync : 컴퓨터간 자료 공유를 위해서 사용되는 rsync에 대한 데몬이다. rusersd : 네트워크에 특정 사용자가 있는 검색해 주는 데몬. rwalld : 시스템에 동작중인 모든 터미널에 메시지를 표시할수 있게 해 주는 프로토콜 rwhod : 원격 접속자의 목록을 볼수 있게 해주는 데몬. finger와 비슷한 기능을 한다. sendmail : 메일을 다른 호스트로 전송하는 메일 전송(Mail Transport Agent)데몬 smb : SMB 네트워크 서비스를 제공하기 위한 삼바 서버(smbd와 nmbd)데몬 snmpd : SNMP(Simple Network Management Protocol)데몬 squid : HTTP, FTP, gopher와 같은 프로토콜을 사용할때 캐싱 속도를 높이는 데몬. sshd : openssh 서버 데몬 swat : 삼바 웹 관리 툴, 삼바 서버의 설정을 위해 swat를 사용하며, 웹 브라우저를 통해 901포트로 접속한다. syslog : 많은 데몬들이 로그 메세지를 다양한 시스템 로그파일에 기록하는데 사용하는 데몬. syslog는 항상 실행되는 것이 좋다. talk : 다른 시스템에 접속한 사용자로 부터 채팅 요구에 응답하여 터미널의 내용을 다른 사용자에게 보내서 대화할수 있게 하는 데몬. telnet : telnet 세션을 제공하는 서버. 인증을 위해 사용자 이름과 패스워드를 사용한다. tftp : 파일 전송을 위한 프로토콜. tftp프로토콜은 어떤 OS에서는 부팅 디스켓이 없는 워크스테이션이나 네트워크 인식 프린터를 위한 설정 파일의 다운로드, 설치 프로세스의 시작을 위해 가끔 이용된다. time : rdate 데몬에 의해 사용되는 RFC 868 시간 서버의 TCP 버전 time-udp : rdate 데몬에 의해 사용되는 RFC 868시간 서버의 UDP 버전 webmin : webmin 관리자 서버 데몬 xfs : 부팅과 셧다운시 X 폰트 서버를 시작하거나 종료시키는 데몬 xinetd : inetd 데몬을 대체하는 강력한 데몬. telnet, ftp 등과 같은 서비스를 처리하는 슈퍼 데몬. ypbind : NIS/YP 클라이언트에서 실행되는 데몬으로 NIS도메인을 바인드한다. NIS클라이언트로 동작하기 위해서는 glibc에 기반한 시스템에서 실행되어 한다. 그러나 NIS를 사용하지 않는 시스템에서는 실행하지 말아야 한다. yppasswd : NIS클라이언트 사용자의 패스워드를 변경할수 있게 해 주는 데몬 ypserv : 표준 NIS/YP 네트워크 프로토콜 서버. 호스트 네임, 사용자 네임과 다른 정보 데이타베이스를 네트워크를 통하여 배포하는 것은 허용한다. ypserv데몬은 클라이언트에서는 필요하지 않으며 NIS 서버에서 실행된다. |
|||||||||||||||||||||||||||||||||||||||||
| 3. inetd 개념 이해 및 smf(5), svcs svcadm 등 정리 | |||||||||||||||||||||||||||||||||||||||||
|
- #inetd 수퍼데몬이란? inetd는 인터넷수퍼데몬이라고 하는 것으로 외부 네트웍의 요청이 있을 때 /etc/inetd.conf 혹은 /etc/xinetd.d/의파일들 에 등록되어 있는 내부 프로그램인 인터넷서비스들의 데몬을 실행시켜주는 역할을 한다. 예를 들어 inetd가 없다면 ftp, telnet 데몬들은 자기들을 호출하는가를 항상 확인해야한다. 하지만 inetd가 그 역할을 대신해서 해당 서비스의 요청이 들어올 때마다 해당데몬을 실행시켜준다. - inetd모드의 서비스 흐름도 서비스가 이루어 지는 절차는 다음과 같다. (telnet의 경우) 1. 외부에서 telnet 서버스의 요청이 들어돈다. 2. inetd 데몬이 /etc/inetd.conf에 등록되어 있는 telnet 프로그램을 호출한다. ex.) telnet stream tcp nowait root /usr/sbin/telnetd telnetd 3. 외부의 telnet 요청과 내부프로그램을 연결시텨 서비스요처에 대한 처리를 해주게 된다. TCP wrapper를 설치하여 tcpd를 운용할 경우에는 위의 순서와는 조금 다른 절차를 통해서 실행된다. 우선 tcpd가 설치가 되면 /etc/inetd.conf의 모양이 조금 바뀌게 되는데 예를 들어보면 다음과 같습니다. telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd 1. 외부에서 telnet 서비스의 요청이 들어온다 2. inetd 데몬은 외부에서 요청된 서비스를 tcpd에 넘겨준다. 3. tcpd는 /etc/hosts.allow를 먼저 검사하여 허가된 접속인지를 체크한다. 4. 3.에서 허가되지 않은 요청일 경우에는 /etc/hosts.deny를 검사하여 거부된 요청일 경우에는 이 요청을 최종적으로 거부하게 된다. 5. 3.과 4.에서 검사하여 허거된 요청일 경우에는 /etc/syslog.conf에 설정되어 있는 /var/log/secure 파일에 접속요청에 대한 정보를 기록하고 in.telnetd를 호출하여 서비스를 제공한다. - inetd(xinetd)에 관련된 파일들
- /etc/inetd.conf 의 이해 inetd.conf 파일 정보를 보는 방법
socket type : TCP일 경우에는 stream이며, UDP일 경우에는 dgram이라고 명시되어 있다. protocol : tcp 혹은 udp의 프로토콜을 명시하며 /etc/protocols에 등록되어 있다. wait flag : inetd가 서비스 요청을 받은 경우, 이후에 즉시 또 다른 요청을 처리할 것인지 아닌지의 여부에 따라 nowait 또는 wait로 구분한다. stream일 경우에는 반드시 nowait이어야 한다. # 한가지 중요한 것은 1분에 최대 허용 접속수를 몇 회까지 제한할 것인가에 대한 설정이다. 이에 대한 설정이 없다면 1분에 40회가 기본설정값이다. 만약 40회 이상요청이 있을 경우에는 관련 서비스를 내려버립니다. 만약, 잦은 접속이 있을 경우에는 이 값을 다음과 같이 설정해 주어야 한다. nowait.100 또는 nowait.200 login name : 어떤 사용자의 권한으로 프로그램을 실행시켜 줄 것인가를 명시 server : 어떤 응용프로그램을 실행시킬 것인가를 명시. 절대경로를 모두 명시해야 한다. argument : 응용 프로그램의 인자를 지정하며 5개까지 가능하다. 일반적으로 argv[0]는 프로그램 자신의 이름이 되므로 첫 번째 인자는 응용 프로그램 자신의 이름이 된다. |
|||||||||||||||||||||||||||||||||||||||||
| 4. man으로 ps 관련 옵션 확인 및 정리 | |||||||||||||||||||||||||||||||||||||||||
|
ps - report process status ps : 프로세스를 확인 하는 명령어 [사용법] ps -옵션 [옵션] -A 모든프로세스를 나열한다. -a 세션리더를 제외하고 모든 프로세스를 나열 a x옵션과 함께 모든 프로세스 나열 -c 해당명령어 이름을 task-struct 에 참조 -e 모든 프로세스나열 e 해당 프로세스에 관련된 환경변수 정보 출력 f 프로세스간 상속관계 트리구조로 표시 h 메뉴는 보여주지 않는다. -j 작업에 관련된 id를 출력 -l j보다 자세하게 출력 u 사용자 이름과 프로세스가 시작된 시간을 출력 x a옵션과 함께 터미널종속되지않은 프로세스 출력 n 사용자의 정보를 ID와 숫자로 푝시 -w 출력 결과를 생략하지 않고 출력 r 현재 실행상태만 출력 [필드]
|
|||||||||||||||||||||||||||||||||||||||||
| 5. kill, fg, bg, Ctrl-Z, jobs, nohup, nice 확인 | |||||||||||||||||||||||||||||||||||||||||
|
작업제어 명령어 1. ps, kill kill [-sihno] PID : 지정한 프로세서에게 종료신호를 보내는 명령어이다. 2. fg, bg, Ctrl-Z, jobs, nohup, nice fg : 현재작업을 foreground 로 전환시킴 bg : 정지되있거나 화면에서 안보이게 실행중인 프로세스 보여주기 nohup command& : logout 후에도 명령 실행 계속유지 Ctrl + z : 현재 작업중인 프로세스를 background작업으로 돌리기 위해서 사용 jobs : background 작업번호 및 상태 디스플레이 nice [-정수값:1~39 , 20으로 설정] 명령어 : 우선 순위 변경 명령어 |
|||||||||||||||||||||||||||||||||||||||||
| 8. at, cron 비교 정리 | |||||||||||||||||||||||||||||||||||||||||
|
1. at : 수행 시간 지정 명령어 : at 11:30 pm cc test.c 옵션 -r: 이전에 지정된 작업 취소 -l : 지정된 작업 번호 출력 (sleep 20; cc -o sample sample.c)& -->백그라운드 실행, 20초 뒤 프로그램 컴파일 (sleep 10; ps -el) --> 10초후 모든 프로세서 상태 출력 2. cron은 유닉스의 작업 스케쥴러 crontab 사용법 1) cron작업 스케쥴링은 crontab을 편집하는 것입니다. $ crontab -e 엔터 이렇게 하면 vi 편집기 화면이 뜨게 되며 거기다가 줄단위로 명령어를 스케쥴하게 됩니다. 2) 코멘트 "#" 뒤에 나오는 것은 코멘트가 됩니다. 3) 형식은 아래의 순서대로 나와야 함 (공백이 구분자가 됨) 분 : 0-59 (별"*"은 매[분]을 의미하며 콤마","로 나열하거나 데쉬"-"로 범위를 지정한다. 이하 주까지 동일함) 시 : 0-23 일 : 1-31 월 : 1-12 주 : 0-6 0은 일요일 명령문 : 반드시 full path로 써야하며, 뒤에 옵션과 재지정이 올 수 있음 |
| 맨위로 |
| 1.시스템에서 샐행되는 데몬 |
| 3.inetd 개념 이해 및 smf(5), svcs svcadm 등 |
| 4.man으로 ps 관련 옵션 확인 |
| 5.kill, fg, bg, Ctrl-Z, jobs, nohup, nice 확인 |
| 8.at, cron 비교 |
| 맨아래로 |
| 이동 |