배철수:리눅스월드 발행인
|
레드햇 6.0 얼마전에 인천의 모 업체의 의뢰로 인천해양과학고등학교에 2대의 리눅스 서버를 설치하게 되었다. PC는 국내의 모 대기업에서 생산한 펜티엄프로칩을 쓴 서버급으로 Wide SCSI 하드 8기가에 100Mbps PCI 랜카드가 꼽힌, 3~4년 전의 구입시에는 최고급 기종에 속한 PC였다. 원래 다른 업체에서 리눅스를 설치할려고 했으나 여러 이유로 설치에 실패해 본인에게 의뢰가 들어왔다. 그런데 설치를 레드햇으로 해달라고 한다. 본인이 지금까지 설치한 서버는 거의 데비안이었다. 버전은 1.2로서 예전에 Jon Maddog Hall 씨가 가져온 리눅스 저널에서 만든 CD 였다. 데비안을 써 온 이유는 아무래도 네트워크 부분 설정에서의 간편함 때문이었다. 또 다른 배포본에 비해 버그가 적다는 이유도 있다. 본인이 설치한 리눅스는 모두 인터넷 서버용 이었기에 네트워크 부분 설정의 간편함과 안정성 때문에 데비안을 선호해 왔다. 하지만 발주처에서 레드햇을 깔아 달라니 그렇게
하기로 했다. 업체에서 가져온 서버를 보니 그 업체에서 설치를
못 한 이유를 알만했다. 한가지 다행인 것은 서버가 3-4년전에 만들어진 것 이라는 점이다. 그 당시에 생산된 SCSI 콘트롤러나 랜카드라면 리눅스에서 지원되리라는 것은 99% 자신할 수 있었기 때문이다. 만약에 최신 기종이라면 리눅스용 드라이버가 아직 안나왔을 수 있기 때문이다. SCSI 카드의 제조업체는 알려줘서 우선 레드햇 6.0 설치용 부트 디스켓에서 SCSI 모듈에 회사 이름이 있는지를 찾아 보았으나 없다. (서버가 구형이라 CD 부팅도 안된다) 그래서 SuSE 설치용 부팅 디스켓에서 SCSI 모듈에 찾아보니 나와있다. Initio INI-A100U2W였다. 그렇다면 설치에는 문제가 없다. 커널에 드라이버가 있는게 확실하기 때문이다. 레드햇 부트 디스켓에 SCSI 모듈이 없을 때 설치하는 방법은 두가지다. 레드햇에서 모듈 디스켓을 만드는 것과 레드햇 부트 디스켓의 커널을 바꾸는 것이다. 다음 차례가 랜카드 드라이버를 찾아내는 것이다. 그러나 랜카드를 아무리 살펴봐도 제조업체 및 모델명을 발견할 수가 없다. 단지 생산지가 대만이라는 것만 적혀 있다. 그렇다고 모든 랜카드 드라이버를 넣어 커널을 컴파일 할 수는 없다. 커널이 너무 커져서 올라오지 않을 것이기 때문이다. 모듈로 만들어 그 많은 모듈을 하나하나 테스트하는 것도 쉬운 일은 아니다. 다시 랜카드를 자세히 보니 칩 중의 하나에 DEC21XXX라고 쓰여있다. 대만에서 100Mbps 랜카드를 자체 생산할리는 없고 분명 핵심 칩은 외국에서 수입한게 뻔한데(모뎀도 마찬가지다. 전 세계에서 모뎀의 엔진에 해당하는 칩을 만드는 회사는 몇몇 회사에 불과하고 다른 업체는 이 칩을 수입해 몇가지 보조 칩을 더해 모뎀을 생산한다) 그렇다면 이걸 찾아 보아야겠다. SuSE 리눅스의 2.2.6 커널 컴파일에서 랜카드
부분을 자세히 보니 DECchip Tulip (dc21x4x)가 있다. 찾았다! 이게
바로 그거구나. 이걸 넣고 컴파일해서 만든 커널을 플로피에 넣고
부팅하니 랜카드가 바로 인식된다. 아래는 커널 메시지이다. tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov 이제 일의 절반은 끝난 것 같다. 설치에 착수할 단계다. 어느 방법으로 설치할까 곰곰히 생각하다 가장 쉬운 방법을 택하기로 했다. 해양고 서버의 하드를 떼내 AHA2940UW SCSI 콘트롤러와 3COM 3c905 카드가 들어있는 SuSE가 설치된 내 PC로 옮겼다. 이 둘은 레드햇 6.0 부트 디스크에서 모두 지원하므로 다른 복잡한 절차가 필요없기 때문이다. 레드햇 설치를 다 하고서 하드를 원 위치 한후 SuSE에서 Initio 콘트롤러 드라이버와 Tulip 랜카드 드라이버를 넣어 커널을 컴파일 한후 이 커널로 부팅 디스켓을 만들었다. 다음에 이 디스켓으로 해양고 서버를 부팅후에 SuSE에서 만든 커널로 바꾸고 lilo를 돌려주니 설치 작업이 끝났다. 부트 디스켓 없이 하드로 부팅하니 이상이 없다. 그런데 부트 과정에서 에러 메시지가 하나 나온다. 무슨 System.map 이 안 맞다나. 무슨 말인가. 설치시에 아무런 이상도 없는데 왠 에러? 자세히 보니 원인이 있었다. 레드햇 6.0(CheapBytes에서 수입한 영문판)에 들어있는 커널 버전은 2.2.5였다. 그런데 커널을 SuSE에서 컴파일해 옮겼으므로 서버의 커널 버전이2.2.6이다. 레드햇의 /boot 디렉토리에 있는 System.map이 2.2.5인데 커널이 2.2.6이니 에러가 나는것이다. 2.2.6 커널 소스에 있는 System.map을 /boot 디렉토리에 System.map-2.2.6로 복사해 주니 에러가 안뜬다. 이제는 각종 서버 프로그램을 설치하는 단계다. #pop-3 stream tcp nowait
root /usr/sbin/tcpd ipop3d 둘다 풀어주고 inetd를 다시 시작 후 윈95에서 메일 보내기를 하려니 역시 안된다. 다시 pop을 테스트 해 볼 수밖에. telnet 127.0.0.1 110 해보니 pop 데몬은 떠 있다. 그런데 user 와 pass 명령을 주는데 계속 에러가 난다. 에러 메시지를 보니 imapd가 없다나. 레드햇 CD에서 rpm 명령으로 imap-??? 파일을 설치해 주니 이제 메일이 제대로 된다. 메일서버는 끝났다고 안심하고 있었는데 서버 가져간 후 연락이 왔다. 원격지에서 pop으로 메일을 보내는게 안된다나. 받기는 되는데. 보내기에서 자꾸 “550 relaying denied” 에러가 뜬다고. 데비안에서 smail은 config 파일에서 한 줄만 바꾸어 주면 되는데 sendmail은 왜 이리 복잡한지. smail 만 쓰다 sendmail 쓸려니 쉽지가 않다. 단학선원에서 네트워크 담당하는 이수준씨에게 물으니 sendmail.cf에서 원격지에서 메일 보내는 relay 기능을 막았으니 그걸 풀어주란다. R$* $#error $@ 5.7.1 $: “550 Relaying denied” 이 줄이 원인이었다. 이 줄을 막으니 제대로 된다. apache 웹서버는 특별히 고칠게 없었다. conf
파일은 /etc/httpd/conf 디렉토리에 있는데 수정 않아도 별
문제 없다. 어려웠던 부분은 네임서버 설치였다. 인천해양과학고등학교의 도메인네임은 inchon-mah.ed.inchon.kr 인데 데비안에서 설치했던 hosts, reverse, local 파일을 수정해 넣고 bind를 가동해도 계속 에러 메시지가 뜬다. 아무래도 레드햇에서 bind를 컴파일할 때 뭔가 약간 다른 옵션을 넣은 것 같은데 그걸 찾아 내려면 쉽지가 않을 것 같다. 그렇다고 bind를 다시 컴파일하기도 싫어서 데비안에 있는 named로 대체하니 바로 네임서버가 작동한다. proxy 서버는 보통 squid를 많이 쓰지만 apache도 컴파일할 때 proxy 모듈을 넣으면 proxy 서버로 사용이 가능하다. 그외에도 괜찮은 proxy 서버 프로그램이 많다. 혹시 위 둘외의 다른 proxy 프로그램을 써본 리눅서가 있으면 리눅스 월드로 그에관한 글을 보내 주기를, proxy 서버로 쓸 수 있는 프로그램을 소개하면 socks5(http://www.socks.nec.com) 위의 프로그램은 proxy 서버 기능 외에도 다른 많은 기능이 더 있으므로 한번쯤 설치해 볼 가치가 있다.
mgetty 와 모뎀통신 리눅스에 PPP 서버를 설치하려면 mgetty를 설치해야 한다. PPP는 클라이언트/서버 어플리케이션이 아니라 두 컴퓨터를 연결해주는 프로토콜이므로 서버와 클라이언트의 구분이 없지만 편의상 연결을 받아 주는 쪽을 서버라고 구분한다. mgetty는 본인이 커널 다음으로 많이 컴파일해 본 프로그램이다. 그동안 여러 TT 선 업체에 PPP 서버를 설치해 줄때도 mgetty를 썼었고, 팩스 서버를 설치할 때도 이를 사용했다. mgetty 관련한 매뉴얼 등 자료만 3권이 넘는다. 모뎀 통신을 한다면 꼭 mgetty는 살펴 볼 가치가 있다. 이는 다이얼 아웃용이 아니라 다이얼인 용이다. 즉 다른 리눅스나 윈95 PC에서 모뎀을 통해 리눅스에 login을 허용할 때 필요하다. 모뎀 통신은 본인과 인연이 많다. 그러다 AT급 PC를 들여 왔는데 여기에 모뎀 연결이
가능하다는 글을 보고서(PC 매뉴얼에서) PC 판매처인 삼보에서 통신
프로그램인 Xtalk(크로스 토크)를 구해왔다. 물론 불법 복제였다. 그렇게해서 모뎀과 인연을 맺어 그 후로 회사의 모든 모뎀 통신 설치를 떠 맡았다. 동해 대륙붕 시추 때는 시추선에서 이동전화기에 모뎀을 연결하여 하이텔을 통해 시추선의 자료를 본사로 전송하는 작업을 담당하기도 했었고, 96년엔가는 시추선 업무 전산화를 위해 싱가포르에 정박 중인 시추선에서 지낼 때는 위성 통신 장비에 모뎀을 연결하여 INMARSAT(International Marine Satellite) 위성을 통해 본인의 집에 설치된 리눅스에 연결하여 내게 온 메일을 검사하기도 했다. 물론 이때도 리눅스에 mgetty를 설치해서 사용했다. mgetty는 독일의 Gert Doering이 개발하였다. 이분의 개발 동기가 재미있다. 이 분도 모뎀 통신을 좋아해서 원격지의 리눅스나 유닉스 BBS를 전화로 자주 연결하곤 했는데 당시의 getty 프로그램에 버그가 많아 전화비만 축내는 경우가 많았다는 것이다. 유닉스나 리눅스 서버가 전화 접속을 허용하려면 getty 프로그램을 뛰운 후 모뎀을 자동 응답으로 설정한다. 즉 ats0=1 명령을 준다. 그런데 이 경우 어떤 사유로 getty 프로그램이 다운되도 모뎀은 자동 응답이므로 다른 PC에서 전화 연결을 하면 모뎀이 전화를 받는다. 결국 통신은 안되고 전화비만 날리는 결과가 발생한다. 이런 경우를 자주 겪은 Doering 씨는 getty 프로그램이 다운되면 전화를 받지 않는 형태의 다이얼인 프로그램을 만들어야겠다고 생각해 mgetty를 만들었다고 한다. mgetty의 통신 방식은 다른 getty 프로그램과 약간 다르다. mgetty에서는 모뎀을 자동 응답으로 설정하지 않는다. 다른 PC에서 모뎀으로 전화 연결을 시도하면 모뎀은 mgetty에게 Ring 시그널을 보낸다. (9핀 시리얼포트는 9번 핀이 Ring 인디케이터임) mgetty는 Ring 신호를 받으면 모뎀에 ata 명령(즉 전화를 받으라는 명령)을 준다. 따라서 만약 getty 프로그램이 다운돼 있으면 아무리 ring이 울려도 모뎀에 ata 명령이 오지 않으므로 모뎀은 전화를 받지 않는다. PC가 꺼져 있으면 모뎀은 자동 응답으로 설정돼 있어도 전화를 받지 않는다. 이는 PC가 꺼져 있으면 DTR(Data Termininal Ready)가 off이므로 모뎀이 정상적으로 셋팅돼 있으면(at&D2) 전화를 받지 않기 때문이다. 이 경우도 만약 DTR을 강제로 on(AT&d0) 시키면 모뎀이 전화를 받으니 주의해야한다. mgetty는 팩스 송수신에도 사용할 수 있다. 리눅스를 팩스 수신용으로 사용하는 경우는 좋은 점이 많다. 팩스 내용을 파일에 저장하므로 필요시는 언제든 출력할 수 있고 도착한 팩스를 gif 파일로 변환 후 메일로 받을 수 있어 네트스케이프에서 팩스 내용을 확인할 수도 있다. 음성을 지원하는 모뎀을 쓸 경우 음성 메시지의 수신도 가능하다고 하나 테스트해 보지 못했다.
정부의 리눅스 지원책 정부에서 리눅스를 지원하는 사유 중에 하나로 구형 486에 리눅스를 설치하므로서 사장되는 486을 활용하여 예산을 크게 절약할 수 있다는 설명을 넣고 있다. 이 의견이 정부의 공식 의견인지 담당자의 사견인지는 모르나 이 의견은 별로 바른 견해가 아닌 듯 싶다. 우선 이 설명대로라면 486은 별로 쓸모 없는 PC라는 전제인데 과연 그러한가? 회사나 가정의 피시 수요의 상당부분이 워드나 통신, 인터넷 사용 정도인데 이 정도라면 기존의 486에 메모리만 추가해서 사용해도 별 지장이 없다. PC업체에서 신제품 판촉의 목적으로 마치 486으로는 안되는게 많은 것처럼 설명하고 PC를 잘 모르는 일반인들은 그런가 보다하고 다투어 펜티엄으로 바꾸고 있지만, 정말로 486으로 부족해 펜티엄급이 필요한 사용자는 많지 않을 것이다. 리눅스 월드 사무실에서도 정기 구독자 관리를 위한 워드나 데이터베이스 입력, 입금 확인을 위한 피시 뱅킹, 온라인 정기구독 및 CD 주문 확인을 위한 인터넷 전자우편 확인 및 발송에 사용되는 PC는 486을 사용하고 있다. 미국에서도 컴퓨터 주류는 아직도 486이라고 한다. 그런데도 우리나라는 펜티엄 이하는 PC로 쳐 주지도 않는다. 미국의 CPU 제조업체에서 한국은 신제품의 시험장이라고 한다. 한국만큼 최신 CPU가 많이 팔리는 나라가 드믈다는 뜻이다. 우리나라는 컴퓨팅 분야의 자원 낭비가 심한 것 같다. 한국통신에서 인터넷 연결시 대여해주는 미국 모 업체의 라우터는 대당 몇백만원 하는 최고급품이다. 미국의 경우 이 라우터는 대형 네트워크 회사만이 사용하는 기종이고 대부분의 회사나 네트워크 업체는 비싸서 거의 사용하지 않고 있는 기종인데도 우리나라는 56k 랜투랜 연결을 하는 개인 회사까지도 이 라우터를 구입하거나 임대해 쓰는 실정이다. 그렇다고 이 라우터가 다른 라우터보다 성능이 좋아서 비싼게 아니다. 이 라우터가 비싼 이유는 간단한다. 이 라우터는 X.25나 appletalk 등 일반 회사에서는 거의 쓸 일이 없는 라우팅 프로토콜이 수십 가지나 들어있다. 일반 회사에서 인터넷 연결하는데는 TCP/IP 하나면 충분한데 왜 쓸데없는 돈을 더 주고 네트워크 전문회사에서나 필요한 프로토콜까지 돈을 지불해야 하는건지... 컴퓨터 용량 과다도 문제이다. 예전에 386급이
최상인 때에 B. Brown이라는 독일 의료회사 한국지사에 SCO UNIX에서의
한글 입출력 문제를 해결해 준적이 있었는데, 이 의료회사에서 사용하는
기종이 1천만원대의 386 서버급 PC였다. 이 서버 하나에 데이터베이스를
설치하고 PC 5-6대를 물려서 국내의 1000 여개 병원 및 의료기기
판매업체 관리를 훌륭히 해내고 있었다. 정부의 리눅스 지원책에대해 더 이야기하자면, 486에 리눅스를 깐다고 PC의 성능이 크게 향상되는것도 아니다. 기존에 깔려 있는 운영체제를 쓰는거나 큰 차이가 없다. 우리나라에서는 PC판매 값에 이미 운영체제 비용이 들어있으므로 기존의 운영체제를 그대로 쓰는게 더 나은 길인지도 모른다. 리눅스를 써서 예산을 절감할 수 있는 부분은 얼마든지 있는데 이 부분은 오히려 검토가 안되고 있는 것 같다. 예를들어 정부나 공공기관이 매년 구입하는 워크스테이션이 수천대를 넘을텐데 이 대분은 유닉스가 설치되어있고 유닉스 비용만 몇 백만원한다. 이 유닉스를 리눅스로만 대체해도 그 예산 절감은 몇 십억이 넘을것이다. 리눅스를 깐다고 성능이 떨어지는 것도 아니고 관리의 어려움이 있는 것도 아니다. 개발된 소프트웨어가 유닉스용이라면 리눅스로 바꾸는건 별로 돈이 들거나 어려울게 없다. 지금 전국의 중고등학교에 교육 전산화용으로 미국의 모 업체의 유닉스 워크스테이션이 학교 당 몇 대씩 공급되고 있다(리눅스 설치가 가능한 기종이다). 이 기계 한 대당 유닉스 운영체제 값만 100만원이 넘을것이다. 여기에 리눅스를 탑재하는걸 검토해 보기나 한건지... 미국에서는 정부에서 예산절감에 앞장서는 것을 알 수 있다. 정부기관인 나사에서 우주왕복선에 들어가는 실험장치에 리눅스 운영체제를 사용하고 있고, 공립학교에서 소프트웨어 구입비를 절약하기 위해 실습실에 들어가는 각종 서버 및 컴퓨터에 리눅스를 쓰는 경우가 많다. 자신의 돈을 쓸 때보다 국민의 세금을 쓸 때 더 절약에 앞장선다. 그러나 우리나라의 경우 국가 기관에서 파일서버나 프린터 서버용으로 쓰는 서버에 리눅스를 사용하는걸 본 적이 없다. 비싼 돈을 주고 외국업체의 상용 제품을 쓰고 있다. 미국에서는 국가 주도의 컴퓨터 사업이 성공을 거둔다. 인터넷의 시작은 미국방성에서 발주한 프로젝트였다. 우리나라는 어떤가. 국가 주도의 컴퓨터 사업치고 별로 성공을 거두고 있지 못하다. 한국형 MS-DOS는 그렇다쳐도, 값만 비싸고 성능은 별 볼일 없는 타이컴, 상용망보다 느린 초고속망 등 등... 통신망에 대한 중복투자도 많다. 인터넷에 통합해도 별 문제가 없는데도 웬만한 정부 부처는 별도 망을 하나씩 갖고 있다. 석유사업기금 수십억을 부은 석유정보망인가도 그렇다. 전국의 석유거래업체를 연결하겠다고 하는데 기존의 인터넷을 쓰면 될 걸 무슨 별도망이 필요한가. 보안이 문제라면 구더기 무서워 장 못 담그는 격이다. 보안은 기술을 개발하고 운영 능력을 향상시켜 해결해야지 회피의 대상이 아니다. 미국방성도 산하기관이나 연구소들을 인터넷으로 연결하는데 보안이 무서워 독자망을 쓰는건 결국 운영 능력이 부족하다는걸 자인하는 것이다. |