2014년 8월 6일 수요일

소호용으로 팩스서버를 구축

[출처 : http://www.ubuntu-kr.org/ ]
소호 오피스용으로 팩스서버를 구축해서 사용하고 있습니다.
3Bon-USB56K 팩스모뎀, hylafax 서버-클라이언트, avantFAX 웹 클라이언트 프로그램을
설치해서 웹서비스로 팩스서버를 운용중입니다.

이게 설치과정이 순탄하지는 않더라구요. 그래서 좋은 기록이 될까 싶어서 글을 정리하고 남겨둡니다.
보통 온라인 글들이 구버전과 RedHat, Apache 계열이라 우분투 계열에 맞게, 그리고 최근 보안강화 관련 설치가 힘든 부분들을 수정해서 올려뒀습니다.

1. 3Bon-USB56K USB 팩스모뎀 사용기

용하던 Samsung CF-360 잉크젯 팩시밀리가 헤드 수명이 다해가는지 흐릿하게 나오고 숫자의 경우는 잘 인식이 되지 않아 팩스에 대해서 이것저것 살펴보고 있었다.
복합기를 살까! 팩스 전용 기기를 살까 고민하던 차에 인터넷 팩스에 대해서 다시 조사를 시작했다. 하지만 인터넷 팩스의 단점이 기존에 사용하던 전화번호를 사용하지 못한다는 점. 기존 전화를 사용할려면 착신을 해야 하기 때문에 어짜피 인터넷 팩스 사용료와 전화요금 이중 요금을 둘 다 부담해야 된다.
팩스번호도 20년 가까이 사무실에서 오랫동안 사용한 번호라 번호를 쉽게 바꿀수 없었다.
 ▲ CF-360 제품, 구매당시 가격이 저렴했고, 복합기처럼 다기능 제품들은 잔고장이 많았던 시절이므로 복합기를 사지 않고 팩스 전용으로 사용하기 위해 구매한 제품 일단 구매비용은 저가였지만 유지비의 경우 삼성 CF-360 의 경우 팩스잉크가 두달에 한번 교체로 약 50,000원의 비용이 발생했다.
그리고 매일 날아오는 10여장 정도의 스팸팩스도 짜증나는 수준이었다.
스팸등록을 해서 블럭을 시킨다해도 어짜피 번호 바꿔가면서 팩스가 날아오기 때문에 사실상 스팸을 막는 다는 것은 한 두어달 정도만 효과가 있어 보일 뿐이었다.
사용량이 적은 곳은 당연히 팩스서버나 팩시밀리 전용 기기를 들이는 것보다 인터넷 팩스 사이트에 가입해서 사용하시는 것이 훨씬 비용 절감에 도움이 된다.

위에서 말했듯이 비용을 적게 들이면서 전화번호를 유지할수 있고 불필요한 스팸은 인쇄가 되지 않는 시스템을 구축할 필요가 있었다.
그때 생각이 든것이 사무실에서 운용하고 있는 리눅스 서버에 팩스서버를 만드는 것이었고, 검색을 통해서 충분히 구축이 가능하리라는 것을 알게 되었다.
실제로 3Bon-USB56K 모뎀을 사용한 팩스서버 구축 후기가 11번가에 올라와 있어서 팩스모뎀을 구매하였다. 구매가격은 제주 택배비 포함 55,000원



▲ 박스 도착후 개봉, 들어있는 구성품들
안에 들어 있는 CD를 사용하면 윈도우 환경에서 더욱 편리하게 프로그램들을 설치하고 사용할수 있을것이다.
하지만 결론은 팩스서버였다. 각 거래처에서 주문발주가 팩스로 들어오는데 출근시간 보다 훨씬 전에 들어오거나 밤늦게 들어오는 경우가 종종 있었기 때문에 윈도우를 사용하는 클라이언트 컴퓨터처럼 꺼버리는게 아니라 항상 켜져 있어서 팩스 받기를 대기하고 있는 서버가 필요했다. 결론은 팩스서버 구축. USB로 연결할수 있도록 제품이 되어있는데 크래들처럼 라인이 연장되어 있어서 오래 사용 했을 경우 피복이 벗겨지거나 내부 단선이 일어나지 않을까 걱정이 조금 되는 모양을 가지고 있다.
윈도우용 운용 프로그램 CD와 드라이버 CD 두장, 그리고 연결용 전화선이 한개, 간편 설명서가 들어있다.
USB로만 연결하면 다른 설치는 전혀 필요가 없는 제품이라 뭐 특별히 설명할 부분도 없는것 같다.

































▲ 컴퓨터에 장착한 모습, 팩스를 송수신 하게 되면 램프에 불이 들어오면서 DATA램프가 신호를 보내고 받을때마다 계속 깜박거린다.
리눅스서버(Linux Mint 17 Mate 사용중)에 hylafax를 설치하고 운영을 시작, /var/spool/hylafax/recvq 폴더에 팩스를 통해서 받은 tif 파일들이 저장되었다.
hylafax에 대한 설치 및 설정과정은 [우분투, 민트] USB56K 팩스모뎀과 hylafax로 팩스서버 구축하기 포스팅을 참고해주기 바란다.
 ▲ 터미널을 통해 tif 파일로 팩스가 들어온 것을 볼 수 있다.
이 tif 파일들은 멀티페이지 tif로 여러장의 팩스를 보냈을때도 한장의 파일에 전부 들어있는데 XP나 windows 7 기본 이미지 뷰어에서도 Page UP, Down 키를 이용해서 다른 페이지들까지 다 볼수 있다. 이 상태에서 삼바(Samba)를 이용해서 recvq 폴더를 공유하고 윈도우에서 네트워크 드라이버를 구성해도 되지만, 다른 네트워크 즉, 회사외부에서도 간편하게 접속해서 팩스 내용을 프린트 하거나 회사내부에서도 어느 컴퓨터에서든지 간편하게 팩스를 보고 프린트 할수 있게 만들고 싶었다.
그래서 PHP로 작성된 avantFAX라는 프로그램을 설치했고, 기존 설명에서는 대부분  REDHAT 리눅스 계열이고, Apache를 기반으로 한 웹서버에서 설치하는 구버전에 대한 설명이라 좀 헤메긴 했지만 무리없이 설치되서 nginX 웹서버 상에서 웹클라언트 avantFAX를 이용 잘 사용하기 시작했다.

▲ avantFAX 스크린샷 화면, 아직 사소한 문제를 못잡았는데 삭제 아이콘이 뜨지 않는다.(문제 해결함) 한글화 작업은 직접 했으며, 추후 한글화 작업이 된 파일을 공개할 예정이다. hylafax, avantFAX 설치는 자료 정리와 글쓰기가 끝나는 대로 이곳에서 링크를 제공하도록 하겠습니다. Rotate 메뉴가 제대로 작동하지 않을때는 Imagemagick이 설치되었나 확인해보면 된다. 나 역시 설치한줄 알고 있다가 추후에 보니 설치가 되어 있지 않았다. T_T
avantFAX에 대한 설치 및 설정은 [우분투, 민트] hylafax를 위한 avantFAX 웹 클라이언트 설치로 어디서나 편하게 팩스 이용하기 포스팅을 참고 해주시기 바란다.
상당히 마음에 든다. 팩스의 인쇄물 퀄리티도 높아졌다. 게다가 꼭 필요한 녀석만 중요도에 따라 이면지도 활용할수 있고, 프린트를 하지 않아도 되는 내용들이 많아서 종이값 + 잉크비를 생각하면 연간 320,000원 이상의 비용이 절감될 것으로 예상하고 있다.
서버 운용에 필요한 전기료는 생각하지 않았다. 이미 기존에 서버를 운용하고 있었기 때문에 따로 비용이 들어갈 것이 없다고 생각된다.
기존 팩스는 여러곳에 보낼때 보내는 곳마다 전화를 걸어서 수동으로 문서를 걸어줬는데, 이제는 여러 발송지를 선택하고 pdf 파일이나 tif 파일을 걸어두면 자동으로 멀티전송을 해주어서 일도 상당히 편해지게 되었다.
가장 큰 단점은 아마 팩스가 들어올때의 전화울림음이 없이 조용히 들어온다는 것이 장점도 될수 있고, 단점도 될수 있다고 생각한다. 1번의 벨 울림으로 받게 설정했지만 자체테스트나 다른곳에서 팩스를 넣을때 보면 10번정도 울려야 받는 것 같았다. 이 문제 두가지는 hylafax 프로그램 자체의 문제일수도 있으므로 3Bon-USB56K의 단점이라고 딱 잘라 말하지는 못하겠다. 하지만 몇일간 테스트한 결과 팩스가 사라지는 일 없이 잘 들어오기 때문에 팩스 신뢰도에 문제는 없을듯 하다.
결론적으로 이 팩스모뎀은 USB라는 간편한 설치(꼽기만 하면 끝!!)로 최대의 효과를 얻을수 있는 정말 만족스러운 제품이다.
전용 팩시밀리를 사용하는 분들이 비용절감을 위해 다른 방법을 모색하고 있다면 3Bon-USB56K를 설치해보시는 것도 좋을 것 같다는 생각이다.

2. [우분투, 민트] USB56K 팩스모뎀과 hylafax로 팩스서버 구축하기

스모뎀으로 팩스서버를 구축하기 위한 설치과정은 1. 모뎀장착, 2. hylafax 팩스서버 설치, 3. avantFax 웹용 팩스 어플리케이션 설치 차례로 이루어진다. 모뎀의 종류에는 PCI 슬롯에 꼽을수 있는 PCI 팩스도 있고, 외장형 팩스모뎀도 있는데, 소호용으로 구축하기 좋게 간편하고 저렴한 USB 모뎀을 선택하기로 한다. 제품에 대한 홍보는 절대 아니고 USB로 된 팩스모뎀은 현재 판매중인 것이 이것 밖에 없는 것으로 보였다. USB팩스모뎀을 이용해서 구축한 서버의 대략적인 사용기는 3Bon-USB56K USB 팩스모뎀 사용기 글을 참고하도록 하자.
내 설치환경
Linux Mint 17 Mate
설치하면서 외국의 우분투 포럼 등을 참조해서 설치했으므로 Ubuntu 12.04나 14.04에서도 Mint 17과 똑같이 잘 작동할 것이라고 생각한다.

1. 모뎀 설정

다음 명령어를 입력하고 나면 /dev 디렉토리내에 ttyACM0 파일이 생성되어 있을것이다.
아주 간헐적으로 재부팅 후에 ttyUSB0로 잡히는 경우가 있는데, 정확한 원인은 모르겠지만 재부팅을 해주거나 USB모뎀을 뺏다가 다시 꼽은후에 명령어를 다시 입력해주면 된다.

2. hylafax 설치

hylafax-server, hylafax-client를 설치해준다. hylafax-server만 설치해도 자동으로 -client 패키지가 따라온다. 소프트웨어 센터, 시냅틱 패키지 관리자를 통해서 설치해도 되고, 터미널에서 명령어를 직접 입력해도 된다. 설치시 postfix 메일 서버가 함께 설치되는데 로컬전용으로 설정해줬다.
▲ 시냅택 패키지로 설치할때는 위와 같은 그림이 나온다. 우분투에서도 거의 비슷하다. 소프트웨어 센터를 통해서도 hylafax를 찾아서 설치하면 된다. 설치방법은 어느것을 이용해도 상관이 없다.

3. hylafax 설정

이제부터 설정을 시작한다. 대부분 그냥 엔터를 누르면 된다.

▲ 설정이 완료되면 다음과 같이 /etc/hylafax, /var/spool/hylafax/exc 디렉토리 두곳에 위의 그림과 같은 config.ttyACM0 라는 설정 파일이 생성된다. vi 등의 편집기를 이용해서 이 ttyACM0 디바이스 환경설정 파일을 직접 수정해줘도 된다.
이제 hylafax가 팩스를 수신받을수 있도록 모뎀과의 교신을 관리해서 수신상태로 대기하게 한다.
설정이 완료 되었으면 다른곳에서 팩스를 부탁해 수신이 잘 되는지 확인해보자.

▲ 수신이 잘 되었다면 위 그림처럼 리시브큐 디렉토리에 Tiff 파일이 생성되어 있을것이다.
Tiff를 열어볼때 주의할 점은 Linux Mint에 설치되어 있는 기본 Viewer 로는 멀티페이지 tiff가 제대로 보이질 않았다. 여러장의 팩스를 보냈을 경우에는 화면도 찌그러지는데다 맨 앞장만 보여서 팩스가 잘못 수신 되고 있는 것으로 착각하고 하루를 더 허비했다. 윈도우즈로 옮기거나(윈도우즈는 XP에서도 기본 탐색기의 내장 뷰어로도 멀티페이지가 잘 보인다.) 멀티페이지가 지원되는 Viewer로 보면 전혀 문제 없이 작성된 것을 알수 있을 것이다.
hylafax를 다시 가동시킬때는 웹서버나 등의 명령어와 동일하게 작동한다.
이때 lsof(8) or fuser(1) 메세지가 나오면서 ttyACM0 디바이스에 대한 umount 가 제대로 되지 않을때는 다음의 두가지 명령어를 입력해서 디바이스 프로세서를 강제로 종료해준다.
이상태에서 리시브큐 디렉토리를 삼바 등으로 네트워크 공유를 해두면 로컬 네트워크 등에서는 쉽게 팩스를 확인할수 있게 된다. 하지만, 팩스의 수신날짜나 여러가지 관리가 어렵기 때문에 전용 클라이언트 프로그램을 설치해주는 것이 좋다.
http://www.hylafax.org/content/Desktop_Client_Software 이 링크로 들어가 보면 hylafax를 지원하는 수많은 소프트웨어들이 있다. 이중에서 선택해서 고르면 되는데, 우리는 이미 웹서버를 운용하고 있었고, 웹 브라우져만 실행가능하다면 어디서든지 팩스를 확인하고 송신할수 있는 avantFAX를 선택했다. 정말 많은 지원 소프트웨어들이 있는데, Mac, Debian, PC뿐 아니라 Mobile용 클라이언트도 지원한다.(iPhone)
avantFAX 설치 및 설정은 링크를 참조하기 바란다.


3. [우분투, 민트] hylafax를 위한 avantFAX 웹 클라이언트 설치로 어디서나 편하게 팩스 이용하기

fax를 웹서비스로 구현하면 인터넷이 되고 웹브라우져만 있으면 어느곳에서나 팩스를 볼수 있고 프린트 할수 있다는 장점이 있다. 게다가 팩스의 송수신 날짜, 시간, 그리고 관리가 더욱 편해진다는 장점이 있다. 불필요한 인쇄도 줄이게 되고 여러모로 장점이 많다. 실제로 avantFAX를 설치하고 사용하면서 가장 큰 장점은 다량 송신시 편리해졌다는 점이다. 예전 수동식 팩스에서는 여러곳에 일일이 전화를 걸어 팩스를 보냈던 반면 avantFAX에서는 전화번호 목록을 입력하고 송신을 걸어두면 알아서 팩스를 차례로 보내줬다.
avantFAX는 PHP로 만들어졌고, PEAR 모듈들과 smarty라는 강력한 템플릿엔진으로 구성되어 만들어졌다. 디자인이 미려하지는 않지만 꼭 필요한 기능들은 제대로 다 구현이 되어 있기 때문에 운용상의 불편함은 전혀 없다. 가장 큰 단점은 2010년 이후 업데이트가 없다는 것 정도이다. avantFAX.com 홈페이지에서는 apache를 기본으로한 웹서버에 설치하는 인스톨 과정을 설명하고 있지만, nginX로 운영하고 있는 서버에 설치했는데 아무 문제없이 잘 돌아가고 있다. 기본적으로 웹서버는 설치되어 있다고 생각하고 진행하도록 하겠다. (웹서버에 관한 설치나 설정은 인터넷에 자료가 많으니 먼저 웹서버를 설치한후에 이 자료를 읽어주시길 부탁드린다.)
앞서 선행작업을 하지 못하신 분들은 다음의 글을 참조하세요.

그럼 이제 avantFAX를 설치해보도록 하자.
내 설치환경
Linux Mint 17 Mate
hylafax-server, client
php5-fpm
nginX
우분투 14.04에서도 디렉토리 구성이 거의 동일하기 때문에 Mint 17과 똑같이 잘 작동할 것이라고 생각한다.

1. 필수패키지 설치

avantFAX는 다음의 패키지들이 꼭 필요하다. apt-get 혹은 시냅틱 패키지 관리자를 이용해서 아래의 패키지들을 설치해주면 되겠다.
imagemagick, libtiff-dev, netpbm, libnetpbm10-dev
libungif-bin -> giflib-tools (최근버전에서는 패키지명이 바뀌었다. 설치하지 않아도 무방했지만 일단 설치하도록 하자)
php-mail, php-mail-mime, php-file, php-db
psutils, wdiff, rsync
postfix (hylafax 설치시 설치되서 설치하지 않아도 무방하다)
imagemagick을 설치하지 않으면 thumnail 이미지가 제대로 보이지 않고, 이미지파일을 회전시켰을때 제대로 작동하지 않고 파일이 깨지게 된다. 물론 pdf 파일이 생성되기 때문에 imagemagick 패키지가 없더라도 정상작동하는데 큰 문제는 없다. ^-^; 몇몇 패키지들도 마찬가지였지만 혹시나 모를 상황이 될 수 있기 때문에 부속 패키지를 설치하도록 한다.

2. PEAR 설치

PHP용 라이브러리 모듈인 PEAR를 설치해야한다.

위와 같은 명령어를 입력해도 에러메세지를 출력하면서 보안문제로 설치가 안될수 있다. 우분투나 민트 공히 동일한 증상이 나타날 가능성이 높다. pear 설치 에러메세지가 다음과 같다면 아래의 방법을 적용해 보자.
에러메세지 : Download of “pear/File_Util” succeeded, but it is not a valid package archive

3. avantFAX 설치

먼저 소스포지에서 avantFAX 최신버전인 3.3.3을 받아오도록 한다.
http://sourceforge.net/projects/avantfax/?source=directory
다운 받은 avantfax-3.3.3.tgz 파일을 /opt 디렉토리에 넣어준다.

4. smarty 설정

PHP용 템플릿 엔진인 smarty의 디렉토리 권한 변경 설정을 해준다.

4-1. 그외 권한 변경


5. 환경 파일들을 설정한다.

이제 각종 설정파일들을 설정해준다.

5-1. 환경파일 생성 및 수정


파일들을 편집기로 생성하거나 파일이 이미 존재할때는 파일의 맨 끝에 추가 수정한다.

5-2. /etc/hylafax/sendfax.conf 설정


5-3. /etc/hylafax/hyla.conf 설정


6. mysql DB 설정

maria DB도 똑같이 설정된다.

7. 심볼릭링크 설정


8. 백업만들기

만약을 대비해서 hylafax의 기본 설정 파일들을 백업해둔다.

9. hylafax와 연동시키기 위한 설정들


이제 서버상에서의 설정은 모두 끝났다. 나머지는 avantFAX를 웹상에서 실행해주면 된다.
본인의 경우는 fax.도메인.co.kr 을 이용해서 가상호스트를 할당해줬기 때문에 http://fax.도메인.co.kr 로 접속했다.

▲ 위와 같은 화면이 뜬다면 일단은 성공한것이다.

10. avantFAX에서 추가설정

ID : admin
Password : password
를 입력해서 접속한다.

▲ ①번을 눌러서 패스워드를 변경할수 있다. 일단 avantFAX에서도 모뎀 설정이 필요하기 때문에 ②번을 누른다. 슈퍼맨 모양 옆의 모니터 모양 아이콘이다. 이거 찾느라 고생을 꽤 했다 T-T;











▲ 위와 같은 화면이 나오면 왼쪽의 select box를 선택해서 Modem 을 선택한다. 지금 스샷화면은 직접 한글화를 시켜놓은 화면이 한글로 나오고 실제 설치된 화면은 영문으로 나오는 것이 기본이다.

device : ttyACM0, alias : ttyACM0 를 입력하고 저장을 눌러준다. 다른 메뉴로 이동할때는 마찬가지로 왼쪽상단의 select box(– 메뉴 –)를 선택하고 Inbox 등을 선택해서 이동하면 된다.
자! 이제 드디어 모든 설정이 다 끝났다. 설정이 꽤 많아서 혼란스러울수도 있지만, 차근히 따라하면 크게 어렵지는 않다.
기존에 hylafax를 통해 들어와 recvq에 있는 팩스들은 들어오지 않는다. avantFAX가 설치된 이후에 들어오는 팩스들만 pdf로 변환되어 들어오게 된다.

11. 삭제 아이콘 사용하기

자 이쯤에서 눈썰미가 좋으신 분들은 두번째 스샷에 보면 분명히 휴지통(삭제) 아이콘이 있는데 왜 제 화면에는 보이지 않나요 ? 라는 질문을 하시는 분들이 있을것이다. 이걸 찾느라 삼일을 소비한것 같다. 아무나 삭제 하면 문제가 발생할수 있기 때문에 이 삭제아이콘은 생성되는 아이디별로 다르게 권한을 줄수가 있고, admin 아이디 조차 default가 삭제 아이콘이 뜨지 않도록 되어 있다.
권장하고 싶은 방법은 admin에는 삭제 아이콘을 활성화 시키고, 삭제 권한이 없는 다른 아이디를 하나 더 만들어서 사원들이 아이디를 공유할수 있도록 하는 것이다.
이 옵션은 DB의 UserAccount 테이블의 can_del 값을 1로 바꿔줌으로써 활성화 시킬수 있다.
PhpMyAdmin 등의 DB 관리 프로그램을 사용하면 손쉽게 바꿀수 있다.
위의 프로그램을 사용하지 않는 분들은 다음의 수작업을 통해 해결하자.

자 이제 모든 설정이 완벽히 끝났다. avantFAX에 다시 접속해보면 삭제 버튼이 활성화되어 있을 것이다.
다른 아이디를 생성하는 것은 프로그램을 설치하신 분들 각자의 몫으로 남겨두도록 하자.

PS 1. 한글화 작업에 대해서

사실 한글화 작업을 대충 해뒀고 해서 한글화 파일을 공개하려고 했으나 굳이 한글화를 할 필요가 없는 부분들이 많아서 한글화를 하는 방법만 설명하려고 한다.

① 번 버튼을 눌렀던 Setting 을 눌러서 언어를 선택해주면 완전히 설정이 완료가 된다.

PS 1. 한국형 날짜포맷 맞추기

날짜 포맷이 미국식으로 “일.월.년 시:분”으로 맞춰져 있어서 눈에 확들어 오지 않아서 상당히 불편하다. 이럴땐 PHP소스를 수정해주면 바로 적용된다.
/var/www/avantfax/includes/local_config.php 파일을 열어서 “%d.%m.%Y %H:%M” 부분을 아래와 같이 년도와 일자 위치를 바꿔서 수정해준다.

많은 시행착오를 겪으면서 알게 된 내용들을 모두 넣고 싶어서 최대한 넣으려고 했지만 전달력의 부족으로 여러분께 충분한 정보 전달이 되지 않을수도 있는점은 너그러운 양해를 부탁드린다.






3 번의 경우는 기본적으로 웹서버를 운영하고 계셔야 합니다. apache나 nginX 상관없습니다. avantFAX 홈페이지에서는 apache를 중심으로 설명되어 있었지만, 저는 nginX를 운영하고 있어서 소유권만 현재 운영체제의 nginX에 맞게 설정해주니 아무 문제 없이 진행되었습니다.

댓글 없음:

댓글 쓰기