반응형



5. play with linuxconf !!! - 서강리눅스 유저그룹 노태영

이 문서에 대한 질문은 teguri@slug.sogang.ac.kr 로 해주시길... 이 문서는 알짜 6.0 배포판에 깔려 있는 gnome-linuxconf 1.14 를 기준으로 설명합니다.

1. 들어가며 - linuxconf 란?

linuxconf 는 리눅스 운영체계의 복잡한 설정파일들을 한 곳에 모아, 시스템 관리자들이 쉽고 빠르게 서버의 전체 설정을 할 수 있게 하기 위하여 만들어진 프로그램이다. 그러나 리눅스의 사용자가 증가하고 사용자층이 시스템 관리자 뿐 아니라 일반사용자들까지 확대됨에 따라, 주요한 유틸리티로 자리매김할 전망이다.

알짜 레드햇 6.0 판에 포함된 버전은 1.14이고 최신 버전은 1.16r3 로 다운로드 하려면

http://www.solucorp.qc.ca/linuxconf/download.hc 로 가면 된다.

2. linuxconf 의 인터페이스 :

linuxconf 의 user interface 에는 4가지가 있고 이중 3가지는 완료된 상태이다.

- 택스트 기반

: x 윈도우 시스템 하가 아닐 때 콘솔 상에서 동작하는 인터 페이스이다. 외부에서 telnet 등으로 접속했을시 유용하게 사용할 수 있다.

- 인터페이스

: 관리자가 웹을 통해서 원격으로 서버 관리를 할 수 있도록 만든 인터페이스이다. 자세한 것은 linuxconf홈페이지 (http://www.solucorp.qc.ca/linuxconf/) 를 참조하라.

- 그래픽 인터페이스

: gui 는 두가지 방식으로 만들어졌는데 하나는 자바 언어로 씌여져 브라우저에서 사용되는 것이고 하나는 x 윈도우 시스템에서 동작하도록 만들어진 것이다. 우리가 오늘 공부하고자 하는 gnome linuxconf가 후자에 속한다.

- 명령어 방식

: 콘솔상에서 명령어로 입력된다.

linuxconf --help 해보면 그 전모를 알 수 있다.

3. linuxconf 활용

linuxconf는 오른쪽 그림과 같은 메뉴들을 가지고 있다.

그러나 이 중에서 초보자들이 자주 쓸만한 것은 많지가 않다. 아래에서는 지면관계상 모든 메뉴들을 설명할 수 없기 때문에, 초보자들에 맞는 메뉴만을 중심으로 설명하도록 하겠다.

3.1. 네트웍 관련 설정

먼저 리눅스 박스로 할 수 있는 일중 가장 흥미로운 부분인 네트워크 관련 설정이 눈에 띈다. 네트웍 관련 설정은 클라이언트쪽의 설정과 서버쪽의 설정 두가지로 나뉘어 있다.

3.1.1. tcp/ip 관련 설정 (config-networking-clienttask-basichostinformation)

- 왼쪽의 그림과 같이 자신의 시스템에 맞는 호스트 네임을 입력한 후,

- adoptor 택을 선택하여

 

 

,

- 각각의 랜카드에 맞는 ip 설정을 해준다.

(랜카드는 네 개까지 설정이 가능하다. )

- enabled 에 체크되어 있는지 확인 하고,

- config mode를 선택하고

(거의 대부분의 경우 manual을 선택해야 한다. dhcp와 bootp는 서로 짝이되어 서버가 클라이언트에 동적으로 ip를 할당해주는 프로토콜이다. 이에 대해 자세한 것은 kldp 사이트의 네트워크 부분을 참조하라.)

- 그리고 primary name + domain에 호스트네임을 써 주고,

- ip 어드레스를 입력하고

- 디바이스명을 선택하고 (랜카드가 하나인 시스템의 경우, eth0 라고 하면 무방하다.)

- kernel module 부분은 네트웍 디바이스의 제품명과 동일한, 혹은 호환되는 모듈명을 선택해 주면 된다.

<위의 설정은 kernelcfg로 렌카드를 인식시키고 netcfg로 네트웍 관련 설정을 하는 것과 동일한 효과를 낼수 있다.>

[ 관련 설정 파일 : /etc/hostname , /etc/hosts , /etc/sysconfig/network ]

3.1.2. 도메인 네임서버 설정

(config-networking-clienttask-nameserverspecification)

- 도메인 네임 서버란 글자로 되어있는 도메인 네임으로 원래의 ip 넘버를 찾아내어 긴 숫자를 입력하지 않고도 원하는 곳에 연결할 수 있도록 해준다.

- 그러므로 자신이 가입한 isp 의 도메인 네임서버의 주소를 알아서 입력해 두어야만 긴 ip 넘버를 기억해야 하는 수고를 덜 수 있다.

- 시스템이 물려있는 isp의 도메인서버의 ip number를 왼쪽의 그림과 같이 써주면 된다.

<이 부분도 netcfg/names로 가능하다.>

[ 관련 설정 파일 /etc/resolv.conf ]

 

 

 

3.1.3. 라우팅 설정

라우팅에는 5가지 메뉴가 있지만 고쳐 주어야할 부분은 많지 않다. 게이트웨이만 설정하면 된다. 물론 초보자가 아닌 관리자의 경우는 알아야 하겠지만 ...

게이트웨이 설정은

network-clienttask-routingandgateway-default 부분에서 할 수 있다.

- 오른쪽 위그림에서 defaultgateway에 알맞는 게이트웨이 주소를 적어주고 라우팅 가능 옵션은 그대로 둔다.

<마찬가지로 이부분도 netcfg로 할 수 있다.>

3.1.4. nis(network information system)

nis는 네트워크에 물린 시스템들 사이에 정보를 공유하기 위한 시스템이다. nis server에서 사용자 계정/패스워드/홈디렉토리/그룹정보 등을 가지고 있으면 nis client설정이 되어 있는 컴퓨터에서 똑같은 계정과 패스워드로 로그인 할 수 있고 server와 동일한 정보를 공유할 수 있다. 이는 서버의 데이터베이스에 담겨 있는 정보를 클라이언트들이 계속해서 가져오고 갱신함으로써 가능해진다. linuxconf에서 nis 설정을 하려면

network-clienttask-networkinformationsystem에서 하면된다.

필자도 nis를 직접 해본 적이 없어서 상세한 설명을 적고 싶지만 여기서... 죄송...

[ 관련 설정 파일 : /etc/yp.conf , /etc/ypserv.conf ]

3.1.5. ppp 연결 설정

클라이언트에서 전화접속을 통해 가상적으로 tcp/ip 연결이 가능하게 해 준다. 여러분이 ppp 서비스를 제공하는 isp를 이용하고 있다면 linuxconf에서 다음의 메뉴를 조정하여 ppp 연결을 자동화 할 수 있다.

network-clienttask-ppp/slip/plip 메뉴룰 실행하면 다음과 같은 메뉴가 뜬다.

- 아무 설정도 하지 않은 상태에선 당연히 비어 있다.

- add를 누르면, 오른쪽의 선택화면이 나타난다.

- ppp를 선택하고 accept 하면 아래의 화면이 나타나는데, 연결할 전화번호와 모뎀 포트를 적어 넣고,

- 그 아래 있는 pap authentification 항목은 아이디와 패스워드를 연결시에 묻지않고 자동적으로 처리해 주는 방식이다.

- costomize를 선택하면 모뎀과 관련한 자세한 설정을 할 수 있다. 모든 설정이 끝나면 accept를 누른다.

<ppp 설정도 netcfg 명령으로 동일하게 실행할 수 있다.>

[ 관련 설정 파일 : /etc/ppp/* ]

지금 부터는 서버 측면의 네트워트 설정 메뉴들이다. 아직까지 많은 부분에 있어서 완성되지 않은 메뉴들을 가지고 있지만 서버를 운영하는 관리자라면 관심을 가지고 지켜볼만하다.

3.1.6. dns server 운영 (network-servertask-domainnameserver)

dns는 앞서 말한 바와 같이 도메인네임과 ip 넘버를 이어주는 역할을 하는 서버이다. 그러나 많은 수의 클라이언트를 가진 네트워크 운영자가 아니라면 사실 dns를 운영할 이유가 없을 것이다. isp나 대학, 대기업 등의 대규모 네트워크의 dns를 이용하면 되기 때문이다. 그러나 혹시 도전해 보고픈 마음이 생기는 분이 있다면 dns howto 등의 문서를 살펴본 후, linuxconf를 이용할 수 있다. linuxconf에 많은 관련 메뉴를 찾아볼 수 있을 것이다.

3.1.7. nfs server

윈도우에 익숙한 사용자라면 "공유"라고 설명할 수 있는 것이겠다. 한 시스템의 파일을 다른 시스템에서 마운트하여 사용할 수 있도록 만들어 준다.

아래의 그림은 network-servertask-exportedfilesystem을 선택한 후, add를 클릭하면 나오는 상자로 공유할 서버와 클라이언트, 그리고 권한을 설정할 수 있는 메뉴가 있다.

- path to export에 공유할 디렉토리명을 적고,

- client name에 클라이언트의 주소를 써준 후,

- 쓰기, root 권한등의 옵션을 체크해 준다음

- 시스템을 재부팅하거나 nfs 서버데몬인 rcp.nfsd 와 rcp.mountd를 재실행한다.

- 그림에는 하나의 클라이언트만을 정해주는 것처럼 보이지만 여러개를 설정할 수가 있다.

- 그리고 나서 위에 정해준 클라이언트에서 mount -t nfs slug3:/home /mountpoint 와 같이 하면 된다.

[ 관련 설정 파일 : /etc/exports ]

3.1.8. ip aliasing(network-servertask-ipaliasesforvirtualhost)

하나의 렌카드가 설치된 시스템에서 여러개의 ip를 써서 virtual hosting을 하고 싶을 때 사용한다.

3.1.9. apache web server 운영

아파치 서버 설정 메뉴를 실행하면 몇가지 에러가 발생하는 것을 볼수 있다. 걱정하지는 말라. 여러분의 문제가 아니라 아마도 아직까지 아파치 서버의 설정파일을 완벽히 linuxconf에서 읽어내지 못하는 때문으로 보인다.

그러나 그런 에러메세지에 대해 ok 버튼으로 몇번만 응수해 주면, 아파치 설정파일을 그대로 옮겨 놓은 linuxconf의 모양을 볼수 있다. 물론 몇가지 빠진 것들이 있기는 하다. 아파치 설정에 관해 여기서 깊게 다루는 것은 강의의 목적에 맞지 않을지도 모르나, 기본적인 것들에 대해 소개하면 다음과 같다.

- listen on port: 웹서버의 포트 번호를 설정한다.

- hostname lookups: 선택된 경우, n 로그파일에 dns lookup 하여 호스트네임으로 기록한다.

- administrator email : 웹서버 관리자 e-mail 주소 기입

- errorlog: error 로그가 기록될 파일의 경로

- transferlog: 웹서버 접근에 대한 모든 기록을 남길 경로

- pidfile: 서버의 process id 를 기록할 파일

- timeout: 클라이언트 요청에 서버가 기다려야 할 시간 (초단위)

- minimum(maximum) of spare servers: 각 클라이언트의 접속에 대해 생성되는 서버의 최소수와 최대수

- startservers: 서버 시작시에 동작할 서버의 개수를 나타낸다.

- maxclients: 웹 서버에 접근할수 있는 클라이언트 개수를 제한

- cgi script alias: cgi 스크립트가 있을 디렉토리 경로

- serversideincludes: 체크하면 ssi 실행이 허용된다.

- includesnoexec: ssi 명령 중 몇가지를 제외하고 허용.

- may excute cgi: cgi 실행을 가능하게 한다.

- may follow symlinks: 심볼릭 링크를 가능하게 한다.

linuxconf 에서는 virtual web server 설정도 할 수 있으며, 각 디렉토리마다 다른 옵션을 적용해 줄 수도 있다.

< comanche라는 아주 잼있는 gui 아파치 설정 파일도 나와 있으니 꼭 살펴보도록 하자. >

[ 실제 아파치 서버 설정파일에는 이보다 더 많은 옵션들을 정해줄 수 있다.

아파치 서버 설정 파일은 알짜 6.0 배포판 기준으로

/etc/httpd/conf/httpd.conf 에 하나로 합쳐져 있다. ]

3.2 사용자 계정 설정

사용자 계정 설정은 네부분으로 이루어져 있는데, 기본 사용자설정, 특수사용자설정, 이메일 alias, 사용자 정책이 그것이다.

3.2.1. 기본 사용자설정 (config-useraccount-normal)

기본 사용자 설정에서는 사용자들의 정보, 권한, 메일 alias 등을 변경하거나, 사용자를 추가/삭제 하고 루트아이디의 패스워드를 변경하는 부분이 있다. 이 부분은 상당히 직관적으로 되어 있으므로 자세한 설명은 하지 않겠다.

 

 

 

 

 

 

 

 

다만 뭐가 있는지만 보자.

- 왼쪽의 그림은 현재 사용자들의 리스트이다.

- 각각의 사용자를 클릭하면 상세정보를 볼 수 있고

- add를 클릭하면 새로운 사용자를 등록할 수 있는 폼이 생긴다.

- 왼쪽그림은 사용자 상세정보이다. < comanche라는 아주 잼있는 gui 아파치 설정 파일도 나와 있으니 꼭 살펴보도록 하자. >

- base info엔 아이디와 그룹, 홈디렉토리, 셸 종류등이 선택된다.

- param엔 사용자 계정 만기 일자 등을 정할 수 잇는데.. 특수한 경우 아니면 건들 필요가 없다.

- mail aliases에서는 메일 포워딩과 aliasing을 할 수 있다.

- privileges 에서는 기본 사용자에게 주어지지 않는 특수한 권한을 지정할 수가 있다.

- 마찬가지로 그룹정보도 왼쪽과 같은 화면으로 볼수가 있고 상세정보와 추가, 삭제가 가능하다.

마지막으로 아래그림과 같이 루트 패스워드도 고칠 수 있다.




[ 관련 설정 파일 : /etc/passwd , /etc/shadow ]

3.2.2. 특수 사용자설정 (config-useraccount-specialaccounts)

기본 사용자 이외에 ppp, slip, uucp, pop3(mail only) 사용자를 설정해 줄 수가 있다.

3.2.3. email aliases

(config-useraccount-emailaliases)

이 기능은 메일링 리스트를 만들고자 할 때 유용하게 이용될 수 있다.

add를 클릭하면 오른쪽과 같이 나오는데, alias 이름을 적고 리스트파일을 적어준다. 그리고 나서 slug-list 앞으로 메일을 보내면, 리스트 파일에 적혀 있는 메일 주소들로 각각 메일이 보내진다.

[ 관련 설정 파일 : /etc/aliases ]

3.2.4. 사용자 정책 (config-useraccount-policies)

다중 사용자가 가능한 리눅스에서 공통적으로 적용되는 사용자 정책이 필요하다. 이 메뉴에서는 패스워드 관련 정책, 사용자 홈 디렉토리, 퍼미션, 셸 추가 등등을 할 수가 있다. message of the day 항목을 건드려 보라... 로그인 할 때 메시지를 띄울수 있다.

[ 관련 설정 파일 : /etc/shells , /etc/motd , /etc/default/useradd ]

3.3. file system (config-filesystem)

파일시스템과 관련된 부분이다. 장치를 마운트 할 수 있으며 각각의 장치에 따라 옵션을 부여할 수 있다.

각각의 드라이브를 선택하면 세부사항이 나타나고 옵션을 바꿀 수 있다. 물론 추가도 가능하다. nfs 드리이브도 마운트시키는 메뉴가 있다. set qouta default 메뉴에서는 사용자계정 공간의 한계를 설정할 수도 있다.

[ 관련 설정 파일 : /etc/fstab, /etc/mtab ]

3.4. 초기 run level 설정 (config-miscellaneousservices-initialsystemservice)

리눅스에는 run level이 일곱 가지가 있는데, 각각은 다음과 같다.

0 - halt

1 - 단일사용자모드

2 - nfs를 제외한 다중사용자모드

3 - 완전한 다중사용자모드

4 - 사용되지 않음

5 - x 윈도우

6 - reboot

이 일곱가지중 다섯까지(1-5)를 디폴트로 사용할 수 있는데, 그 선택을 linuxconf에서 할 수 있다.

< tksysv 라는 명령으로 run level을 더욱 자세하게 편집할 수 있다. >

[ 관련 설정 파일 : /etc/inittab ]

3.5. lilo 관련 설정 (config-bootmode-lilo)

왼쪽 그림에서 보이듯이, lilo 관련 설정을 할 수 있다. 부팅 시의 옵션 변경과 부트 섹터, 암호걸기 등이 가능하다.

이것 외에도 다른 파티션에 윈도우를 설치했을 때의 설정 메뉴와 새로운 커널을 컴파일하여 그 커널로 부팅 시키는 메뉴도 있다.

[ 관련설정 파일 : /etc/lilo.conf ]

3.6. 그외의 것들

나머지 것들은 다 자잘한 메뉴들이다. 한번 쭉 튐어 보기만 한다.

3.6.1. shutdown/reboot (control-controlpanel-shutdown/reboot)

linuxconf에서 shutdown 과 reboot을 실행할 수가 있다. 그러나 별 쓸모가 있나 싶다.

3.6.2. cron 등록 (control-controlpanel-configuresuperuserschedule)

일정한 시간마다 백업 등의 작업을 자동으로 실행하도록 해놓는 것이 cron이다.

[ 관련 설정 파일 : /etc/crontab ]

3.6.3. 리눅스 설정파일 리스트를 보고 싶다면

(control-controlfilesandsystem-configureallconfigurationfile)

3.6.4. 여러개의 시스템 설정을 만들어 두고프다면 ?

(control-controlfilesandsystem-configuresystemprofile)

3.6.5. 시간과 날짜 고치기 (control-dateandtime) ^^;

< timetool 이라는 것을 써도 동일한 기능을 할 수 있다. >

3.6.6. 키보드 셋과 색깔... (control-features)

[ 관련 설정 파일 : /etc/sysconfig/keyboard ]

이상으로 linuxconf 의 메뉴들을 살펴보았다. 아직은 작성되지 않은채로 남아 있는 부분도 있고, 불안정한 부분들도 있지만, 매력적인 프로그램임에는 틀림이 없는 것 같다. 좀더 사용자에게 필요한 기능들을 추가시키고, 성능을 개선 시킨다면 하는 마음으로 최신 버전을 다운 받아 설치해보고 발전한 점을 소개하는 것으로 이 강의록을 마칠까 한다.

4. linuxconf 최신버전 맛보기

4.1. 구하기 : linuxconf 최신 버전은 1.16r3 다운로드 하려면

http://www.solucorp.qc.ca/linuxconf/download.hc 에 가면 된다.

그곳에서 redhat 6.0을 클릭하고 rpm 파일을 다운 받자.

4.2. 설치하기 : 설치 과정은 매우 쉽다.

rpm -uvh linuxconf-1.16r3-1.i386.rpm 명령으로 설치하라.

4.3. 살펴보기

- 악 !!! 한글화가 되었다... 약간 어설프긴 하지만 도움말 파일까지 한글화가 되었다.

- 네트워크 서버태스크에 삼바와 센드메일 관련 설정이 완성되었다.

(스팸메일 방지 설정도 있네요.)

- 아파치 관련 메뉴가 더 늘었다. (모듈과 ssi 관련)

- 방화벽 관련 설정이 생겼다.

- 시스템 상황보기 메뉴가 생겼다.

- 이외에도 많은 부분의 소소한 것들이 고쳐졌다.

- 근데 아무래도 전보다 시스템 자원을 많이 먹는다.

4.4. 마지막으로 그림을 보면서 강의록을 마칠까 합니다

다음장은 linuxconf 최신버전 캡쳐화면입니다.




그럼 이만 강의를 마칩니다.


반응형

+ Recent posts