작성자: 기술지원부 김 삼 수 <kiss@nextline.net>
qpopper 설치
qpopper란 무엇인가? 메일 수신을 하기 위해 필요한 프로그램으로 qpopper는 가장 인기있는 email 클라이언트에 의해 사용되는 인터넷 email 다운로딩을 위한 POP3프로토콜을 사용합니다. 그러나 qpopper는 sendmail이나 smail과 같이 SMTP프로토콜은 포함하고 있지 않습니다.
( 1 ) 다운로드 http://www.eudora.com/products/unsupported/qpopper/index.html ftp://mirror.aarnet.edu.au/pub/eudora/servers/unix/popper/old/
wget은 웹에서 자동적으로 파일을 받아오는데 사용되는 유틸리티이며 HTTP, HTTPS, FTP 프로토콜을 지원합니다.
qpopper 프로그램을 다운로드 합니다. [root@nextline ~]# wget ftp://mirror.aarnet.edu.au/pub/eudora/servers/unix/popper/old/qpopper4.0.4.tar.gz

( 2 ) 압축해제
tar 명령어 옵션 tar 명령어는 파일을 묶거나 풀 때 사용되는 리눅스 명령어 입니다. c : tar 파일을 생성할 때(여러 개의 파일을 하나의 파일로 묶을 때) v : 묶을 때나 풀어줄 때 파일들의 내용을 자세하게 보려고 할 때. z : gzip과 관련하여 압축이나 해제를 한꺼번에 하려고 할 때 사용. x : 주어진 이름의 파일에 대하여 추출 사용법: tar [옵션] 파일명
다운로드한 qpopper4.0.4.tar.gz 파일의 압축을 해제합니다. [root@nextline ~]# tar zxvf qpopper4.0.4.tar.gz

( 3 ) 환경설정
컴파일을 위한 환경설정을 위해./configure를 실행합니다.
컴파일 옵션 --enable-specialauth 보안을 위해 암호화하거나 암호화된shadow패스워드를 사용합니다. --enable-servermode 위 옵션은xinetd모드의 반대인 독립(standalone)데몬을 의미하는 것이 아닙니다. 일반적 으로 사용자가pop3서버에 접속하면 인증 후에 사용자의 메일박스를 임시파일(/var/spool/mail/사용자명.pop)에 복사하며, 이후 사용자가 접속을 종료하였을 때에 삭제되지 않은 메지시들이 원래의 메일박스로 옮겨지게 됩니다. 하지만 모든 사용자가 접속중에 모든 편지를 다 읽어서 삭제시킨다든지, 아니면 모든 사용자가 접속중에 모든 편지르 삭제하지 않고 그대로 놓아 둔다면, 이러한 불필요한 복사작업은 없어질 것입니다. 여기서 지정하는 servermode란 이러한 오버헤드를 줄이기 위하여 메일박스 자체에 락(locak)을 걸고 내용을 검사하고 다시 락(locak)을 푸는 방법을 사용합니다. 일반적으로 사용하면 성능을 조금 높일 수 있으니 사용하기를 권해드립니다. --enable-shy 이 옵션은qpopper버전 숨기기 위한 옵션입니다.
그 외 옵션 --enable-auto-delete 이 옵션은 메일을 가져 간 후에 가져간 메일 자동삭제를 적용할 때 사용합니다. --enable-auth-file=path 메일relay를 허용할 사용자 설정파일을 지정합니다. --enable-nonauth-file=path 메일relay를 허용하지 않을 사용자 설정파일을 지정합니다.
압축 해제된qpopper4.0.4 디렉토리로 이동합니다. [root@nextline ~]# cd qpopper4.0.4
② ./configure를 실행합니다. [root@nextline qpopper4.0.4]# ./configure --enable-specialauth --enable-servermode --enable-shy

( 4 ) 컴파일
컴파일을 하기위해make를 실행합니다. [root@nextline qpopper4.0.4]# make

( 5 ) 설치
qpopper 설치를 위해 make install를 실행합니다. [root@nextline qpopper4.0.4]# make install
make install 오류 man페이지 디렉토리가 생성되지 않아 발생한 오류입니다. /usr/bin/install -c -m 0644 -o root ./man/popper.8 /usr/local/man/man8/ /usr/bin/install: cannot create regular file `/usr/local/man/man8/': 디렉토리입니다 make: *** [install] 오류 1
② /usr/local/man 하위에 man8디렉토리를 생성합니다. [root@nextline qpopper4.0.4]# mkdir -p /usr/local/man/man8
③ make install를 재 실행합니다. [root@nextline qpopper4.0.4]# make install

( 6 ) popper 복사
컴파일 결과로 생성된popper 실행파일을 /usr/local/lib디렉토리로 복사합니다. Popper 실행파일을 popper디렉토리 하위에 위치하고 있습니다. [root@nextline qpopper4.0.4]# cp popper/popper /usr/local/lib
② 복사된 popper 실행파일을 확인합니다. [root@nextline qpopper4.0.4]# ls /usr/local/lib

( 7 ) xinetd 등록
vi 에디터 사용법 사용형식: vi [옵션] [생성할 파일명/편집할 파일명]
vi 에디터는 입력모드, 명령모드, 실행모드로 구분됩니다.
입력모드: vi 편집화면에서 문자를 입력할 수 있는 모드로서 입력모드로 진입하기 위해서는 i, a, o, I, A, O, R등이 있습니다. 즉 초기 vi 편집기 모드는 명령어 모드로 진입을 하기때문에 문자를 입력하기 전에 앞의 단축키중 하나를 먼저 입력해야 원하는 문자를 입력할 수 있습니다. 명령모드: 커서이동/문자삭제/문자(열)교체/문자열검색 등을 할수 있는 모드로서 입력모드에서 편집이 완료되면 Esc키를 눌러 명령모드로 진입하면 됩니다.
x : vi 명령모드에서 커서위치의 한 문자 삭제 dw : vi 명령모드에서 커서위치의 한단어 삭제 dd : vi 명령모드에서 커서위치의 행 삭제 Ndd : vi 명령모드에서 커서위치의 여러행 동시 삭제
실행모드: 특별한 명령어를 실행하는 모드로서 명령어모드에서 ":"(콜론)를 누르면 vi 화면 하단 좌측에 vi 특수명령어를 입력할 수 있습니다.
실행모드의 일반적으로 쓰이는 특수 명령어 q : 수정 작업이 이루어지지 않은 상태에서 vi 편집기에서 빠져나옵니다. q! : 수정 작업이 이루어진 부분을 적용시키지 않고 vi 편집기를 강제로 빠져나옵니다. w : 수정된 작업을 저장합니다. wq : 수정된 작업을 저장하고 vi 편집기에서 빠져나옵니다.
초기 명령어모드-> 입력모드진입 -> 편집 -> 명령어모드 -> 실행모드 -> 종료
① 설치한popper를 xinetd환경에서 인식하도록 하기 위하여 다음과 같이 /etc/xinetd.d/pop3 파일을 vi 에디터를 이용하여 생성해 줍니다. [root@nextline qpopper4.0.4]# vi /etc/xinetd.d/pop3

② pop3 스크립트를 추가합니다. service pop3 { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/local/lib/popper server_args = qpopper -s log_on_failure += USERID } 위의 내용 가운데 중요한 것은disable = no, server=/usr/local/lib/popper 값입니다. Disable 값이 no로 되어있어야만 이 설정이 사용될 수 있으며 sever값이 방금 설치하여 복사한 popper를 정확하게 지정하고 있어야만 합니다.

( 8 ) pop3 구동
① 설치된qpopper를 적용하기 위하여 다음과 같이 xinetd를 재 시작 합니다. qpopper는 xinetd모드로 작동이 되기 때문에 /etc/rc.d/xinetd.d/pop3파일을 새로 만들거나 수정하였을 때에는 반드시 xinetd를 재 시작해 주셔야 합니다. [root@nextline qpopper4.0.4]# /etc/rc.d/init.d/xinetd restart

( 9 ) 포트확인
① pop3가 사용하는 110포트가 정상적으로 LISTEN되는지 확인합니다. [root@nextline qpopper4.0.4]# netstat -anp | grep LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 4348/xinetd

( 10 ) pop3 테스트
pop3가 정상적으로 실행되는지 확인합니다. [root@nextline qpopper4.0.4]# telnet localhost 110
|
|