Cent OS 6.6 에서 nmail 로 메일서버 구축하기

|


이 글에선 무료 메일 솔루션인 nmail을 통해 Cent OS를 메일서버로 활용 해보고자 한다.

nmail은 개인 및 비영리 단체에 대하여 무료로 사용할 수 있으며 영리목적으로는 30일의 테스트 용도 외엔 사용이 금지되어있다.


이 글에서는 Cent OS 6.6 minimal 버전 및 nmail-php-2.6.11_utf8 으로 진행하였다.





1. Cent OS 6.6 minimal 버전으로 설치.


각자 Real Machine 이나 Virtual Machine 에 Cent OS 6.6 을 minimal 버전으로 설치한다.

나의 경우는 Windows Server 2012 에 Hyper-V 라는 Virtual Machine 을 이용하여 설치하였다.

설치 시 사용할 언어는 English 로 설정해도 상관 없으나 키보드는 Korean 을 선택할 것을 추천한다.





2. Cent OS Nework 설정


[Tip]


vi 는 문서 편집 위한 프로그램이며, 실행 시 :se nu 를 하면 줄 번호가 생긴다.

i 를 입력하면 insert 모드, 즉 쓰기 모드가 시작되고 저장 후 종료를 원할 때엔 esc를 누른 뒤 :wq를 하면 된다.



필요 없는 내용은 지우고 메일서버에서 사용할 고정ip 등의 기본 네트워크 설정을 한다.

나의 경우는 개인적인 DNS 서버로 사용중인 DNS 서버가 있어 DNS1에 넣었다.

NETMASK 는 안적어도 ip에 따라 알아서 잡는다. 특별한 NETMASK를 사용 시 NETMASK=255.255.255.192 등과 같이 넣으면 된다.


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      1 DEVICE=eth0

      2 HWADDR=00:15:5D:64:E6:0E

      3 TYPE=Ethernet

      4 UUID=f66662d1-779f-49f7-a3d9-c3cf3daa69d0

      5 ONBOOT=yes

      6 BOOTPROTO=static

      7 IPADDR=192.168.1.10

      8 GATEWAY=192.168.1.254

      9 DNS1=192.168.1.20

     10 DNS2=168.126.63.1

     11 DOMAIN=mail.yourdomain.com


지정한 네트워크 정보 설정을 위해 네트워크 재시작

# service network restart


이 후 작업은 putty 등의 ssh 프로그램으로 원격 접속하여 사용할 것을 추천한다.

주의할 것은 설정에서 문자열  형식이 UTF-8 로 되어있지 않으면 UTF-8로 바꿔야 한다.

(그렇지 않으면 한글이 깨져 나올 수 있다.)

특히 putty를 사용하면 좋은 점은 웹 페이지에서 명령어를 복사한 뒤 putty에서 오른클릭 하면 붙여넣기가 된다는 것이다.

또한 putty 상에서 드래그를 하여 영역 선택하면 그 부분은 자동적으로 클립보드에 복사된다.





3. 필요 패키지 설치


필요 패키지 설치를 위해 yum 진행한다. 조금 시간이 걸린다.

# yum install -y httpd* php* mysql* ntp zip unzip wget


httpd* : Apache 관련 패키지

php* : php 관련 패키지

mysql* : mysql 관련 패키지

ntp : 서버 시간 동기화 패키지

zip, unzip : nmail 설치 시 필요한 패키지

wget : nmail 설치 파일 다운로드를 위한 패키지





4. Apache 설정


설정 및 관리의 편의성 때문에 메일 서버는 Virtual Machine 을 사용해서라도 단독으로 따로 돌리길 권장한다.

굳이 기존 서버에 같이 돌리겠다고 한다면 아래 Apache 설정은 달라질 것이다.

개인의 편의에 따라 아래 설정은 얼마든지 변경될 수 있다.


# vi /etc/httpd/conf/httpd.conf

     44 ServerTokens PROD

    262 ServerAdmin admin@yourdomain.com

    277 ServerName mail.yourdomain.com:80

    293 DocumentRoot "/home/nmail2/nmail"

    318 <Directory "/home/nmail2/nmail">

    760 #AddDefaultCharset UTF-8





5. php 설정


# vi /etc/php.ini

    229 short_open_tag = On





6. mysql 설정


중간에 your_password 부분에 입력하는 password 는 추 후 nmail 설치 시 입력해야 하니 기억하자.


# service mysqld restart

# mysql -u root -p mysql

Enter Password:    (초기 비밀번호는 없다. 엔터치면 진입 됨.)

mysql> update user set password=password('your_password') where user='root';

mysql> flush privileges;

mysql> exit


# vi /etc/my.cnf

      7 max_allowed_packet=64M


# service mysqld restart





7. nmail 다운로드 및 설치


# wget http://www.passkorea.net/nmailphp/nmail-php-linux-utf8.tgz

# tar xvfz nmail-php-linux-utf8.tgz

# tar xvfz nmail-php-2.6.11_utf8.tgz

# php nmail-php-2.6.11_utf8_install.php


text로 진행되는 설치 화면 중 사용자가 입력을 해야하는 부분만 발췌하였다.

이 글만 보면 뭔지 이해가 안가겠지만 위에서부터 같이 따라오는 사람은 이해할 수 있을 것이다.


- 지금 SELinux 를 비활성화(disabled)하시겠습까? [Y/n] : y


위 Nmail 라이센스 규정에 동의하십니까? [y/N] : y


  : yourdomain.com


입력하신 도메인을 사용하시겠습니까? [Y/n] : y


  [/home/nmail2] :    (엔터를 누른다)


  :     (본인이 nmail 관리 시 사용할 비밀번호 입력)

  :     (한번 더 입력)


  [localhost] :    (엔터를 누른다)


  :     (mysql 설정 시 입력했던 password 입력)


위 DNS 목록을 사용하시겠습니까? [Y/n] : y


  위 목록에서 실제 사용중인 설정파일의 번호를 입력하여 주십시오. [1-1] : 1


위 정보가 정확합니까? [Y/n] : y


 : 2047    (대용량 첨부, 웹하드 업로드시 허용할 최대 업로드 용량, 단위 : M)


# service httpd restart


# php nmail-php-2.6.11_utf8_install.php


  위 실행파일이 맞습니까? [Y/n] : y


----------------- 설치 완료 -----------------





8. 설치된 패키지 설정


필요 데몬 재시작

# service httpd restart

# service mysqld restart

# service ntpd restart


필요 데몬 시스템 재부팅 시 자동 실행되도록 설정

# chkconfig httpd on

# chkconfig mysqld on

# chkconfig ntpd on


편의성을 위해 방화벽은 끈다.

# service iptables stop

# service ip6tables stop

# chkconfig iptables off

# chkconfig ip6tables off





9. 웹 페이지 접속 및 사용자 생성하여 사용


같은 네트워크 상에 있는 pc에서 이제 메일서버의 ip주소를 웹브라우저에 입력하면 메일서버를 사용할 수 있다.

외부 망에서 접속하는 방법은 사용자의 네트워크 망 구조에 따라 다르기 때문에 생략한다.


기본 관리자 계정은 postmaster 이며 설치 중간에 입력한 password를 이용하여 접속한다.

로그인하면 후 좌측 하단에 있는 관리자메뉴를 통해 추가 회원 관리를 할 수 있다.


내부에서 외부로의 메일 송신은 바로 가능하지만 외부에서 내부로의 메일 수신은 되지 않는다.

이 것이 되기 위해선 먼저 도메인이 있어야 하며 도메인 관리 업체에 메일 관련 정보를 등록하는 등의 절차가 필요하다.



이렇게 Cent OS 에서의 nmail을 이용한 메일서버 구축에 대한 설명은 마무리 한다.

 


 

 

10. 외부 메일 수신 설정 (2015.01.12추가)

 

Windows 서버도 메일 수신이 되었으니 당연히 외부 메일 수신이 될 것이라 생각했는데 안됬다.

알아본 결과 Ceont OS 에 postfix 라는 메일 관련 데몬이 이미 돌아가고 있기 때문.

 

# chkconfig postfix off

 

이제 시스템 리부팅 한 뒤 진행하면 된다.

 

(포트 포워딩이 필요한 환경이라면 25, 110번 포트를 포트 포워딩 해주어야 한다.)


 


And