가상 호스팅 · 4 min read · Jan 02, 2026

Virtual Hosting Howto With Virtualmin On CentOS 5.1 - Page 6

Virtualmin 구성

소개

Virtualmin은 webmin과 통합된 강력하고 유연한 호스팅 제어 패널입니다. 우리는 도메인 생성, 계정 및 시스템 구성 유지와 같은 가상 호스팅 기능을 제공하기 위해 이를 사용할 것입니다.

서비스 시작

가상min을 구성하기 위해 필요한 서비스를 시작해야 합니다. 다음 서비스를 시작하십시오:

service named start  
service spamassassin start  
service spamass-milter start  
service clamav-milter start  
service postfix start  
service dovecot start  
service imapproxy start  
service httpd start

초기 설정

MySQL

Webmin은 mysql과 통신할 수 있어야 하며, mysql에 비밀번호를 설정했으므로 webmin에서 이를 설정해야 합니다. 서버로 이동하여 ? mysql로 가서 이 정보를 입력하십시오:

기능 구성

사용하고자 하는 기능과 플러그인을 활성화해야 합니다. 로그인 시 이 화면이 표시됩니다.

  • 다음 기능을 활성화하고 저장 - 홈 디렉토리
  • 관리 사용자
  • 도메인용 메일
  • BIND DNS 도메인
  • Apache 웹사이트
  • Webalizer 보고
  • 로그 파일 회전
  • Mysql 데이터베이스
  • Webmin 사용자

서버 템플릿 구성

서버 템플릿은 서비스를 사용자 정의하고 다양한 호스팅 계정 유형을 위한 패키지를 생성하는 데 사용됩니다.

Apache 템플릿

이 템플릿을 편집하여 apache 가상 호스트가 생성되는 방식을 변경할 수 있습니다. 그러나 기본값은 이 howto의 목적에 적합합니다.

도메인 소유자 템플릿

이 템플릿은 메일박스 수, 별칭, 데이터베이스, 가상 서버 및 대역폭 제한, 관리 능력과 같은 다양한 서버 한계를 구성하는 데 사용됩니다. 이 howto에서는 기본값을 사용할 것입니다.

홈 디렉토리 템플릿

이 템플릿은 새 사용자를 위한 설정을 보관할 skel 디렉토리를 설정할 수 있게 해줍니다. 이 howto에서는 기본값을 사용할 것입니다.

관리 사용자

이 템플릿은 가상 서버와 관리 사용자의 쿼터를 설정할 수 있게 해줍니다. 이 howto에서는 기본 쿼터 1GB를 사용할 것입니다.

도메인용 메일 템플릿

이 템플릿은 다양한 메일 관련 옵션을 설정합니다. 서버 생성 시 전송되는 이메일 메시지를 아래 내용으로 수정할 것입니다:

다음 가상 서버가 성공적으로 설정되었습니다 :
도메인 이름:             ${DOM}
호스팅 서버:          ${HOSTNAME}
${IF-VIRT}
가상 IP 주소:      ${IP}
${ENDIF-VIRT}
관리 로그인:    ${USER}
관리 비밀번호: ${PASS}
${IF-WEBMIN}
관리 URL:      ${WEBMIN_PROTO}://www.${DOM}:${WEBMIN_PORT}/
${ENDIF-WEBMIN}
${IF-WEB}
웹사이트:                 http://www.${DOM}/
${IF-WEBALIZER}
Webalizer 로그 보고: 활성화됨
${ELSE-WEBALIZER}
Webalizer 로그 보고: 비활성화됨
${ENDIF-WEBALIZER}
${ENDIF-WEB}
${IF-MAIL}
이메일 도메인:            ${DOM}
SMTP 서버:             mail.${DOM}
POP3 서버:             mail.${DOM}
웹메일:                 webmail.${DOM}
${ENDIF-MAIL}
${IF-DNS}
DNS 도메인:              ${DOM}
네임서버:              ${HOSTNAME}
${ENDIF-DNS}
${IF-MYSQL}
MySQL 데이터베이스:          ${DB}
MySQL 로그인:             ${MYSQL_USER}
MySQL 비밀번호:          ${PASS}
${ENDIF-MYSQL}
${IF-POSTGRES}
PostgreSQL 데이터베이스:     ${DB}
PostgreSQL 로그인:        ${USER}
PostgreSQL 비밀번호:     ${PASS}
${ENDIF-POSTGRES}

다른 옵션은 기본값으로 두겠습니다.

BIND DNS 도메인 템플릿

이 템플릿은 virtualmin에 의해 생성될 영역을 사용자 정의하는 데 사용됩니다. 변경해야 할 사항은 spf 레코드를 추가하는 것입니다. 자동 생성된 텍스트 상자에 다음 레코드를 추가하십시오 (ns1.home.topdog-software.com.을 귀하의 슬레이브 서버로 교체):

@     IN NS ns1.home.topdog-software.com. ;slave
admin IN A 192.168.1.6 ;virtualmin
webmail IN A 192.168.1.5 ;webmail

지시문 텍스트 상자에 슬레이브 서버의 IP 주소와 함께 다음을 추가하여 슬레이브가 영역 전송을 수행할 수 있도록 허용합니다.

allow-transfer { 192.168.1.2; };

MySQL 데이터베이스 템플릿

virtualmin에 의해 데이터베이스 생성에 대한 옵션을 포함하며, 이 howto에서는 기본값을 사용할 것입니다.

Webmin 로그인 템플릿

virtualmin에 의해 새 사용자 생성에 대한 옵션을 포함하며, 이 howto에서는 기본값을 사용할 것입니다.

가상 서버 생성

마지막으로 작동하는 가상 서버 시스템이 준비되었습니다. 첫 번째 가상 서버를 생성해 보겠습니다. 서버로 이동하여 ? virtualmin 가상 서버로 가서 새 가상 서버 추가를 클릭하고 새 사용자 소유로 설정합니다.

필수 필드를 입력하고 생성 버튼을 클릭하십시오.

도메인에 메일 사용자를 추가합니다. 도메인 이름을 클릭한 다음 메일 및 FTP 사용자 편집을 클릭하고 사용자를 추가하고 정보를 입력합니다.

테스트

Postfix

SMTP 테스트

telnet 192.168.1.5 25  
Connected to localhost.  
Escape character is '^]'.  
220 tds mail cluster  
helo me  
250 hosting1  
mail from:[email protected]  
250 2.1.0 Ok  
rcpt: [email protected]  
250 2.1.0 Ok  
DATA  
354 End data with .  
  
From:[email protected]  
To:[email protected]  
Subject:This is a test  
Hi  
This is a test  
.  
250 2.0.0 Ok: queued as 4ACCC7C5A6
telnet 192.168.1.5 25  
Trying 192.168.1.5...  
Connected to localhost.  
Escape character is '^]'.  
220 tds mail cluster  
ehlo me  
250-hosting1  
250-PIPELINING  
250-SIZE 10240000  
250-ETRN  
250-STARTTLS  
250-ENHANCEDSTATUSCODES  
250-8BITMIME  
250 DSN

dkim 테스트

[email protected]로 메일을 보냅니다.

domainkeys 테스트

[email protected]로 메일을 보냅니다.

Dovecot

POP3 테스트

telnet 192.168.1.5 110  
+OK Dovecot ready.  
user andrew.example  
+OK  
pass password  
+OK Logged in.  
quit  
+OK Logging out.

IMAP 테스트

telnet 192.168.1.5 143  
* OK Dovecot ready.  
01 login andrew.example password  
01 OK User logged in  
01 list "" "*"  
  
* LIST (\HasNoChildren) "." "Trash"  
* LIST (\HasNoChildren) "." "Drafts"  
* LIST (\HasNoChildren) "." "Junk"  
* LIST (\HasNoChildren) "." "Sent"  
  
* LIST (\HasNoChildren) "." "INBOX"  
01 OK List completed.  
01 logout  
* BYE LOGOUT received  
01 OK Completed

BIND

dig example.com @127.0.0.1

Clamav-milter

우리는 www.eicar.org에서 테스트 바이러스를 사용하고 있습니다.

telnet 192.168.1.5 25  
Connected to localhost.  
Escape character is '^]'.  
220 tds mail cluster  
helo me  
250 hosting1  
mail from:[email protected]  
250 2.1.0 Ok  
rcpt: [email protected]  
250 2.1.0 Ok  
DATA  
354 End data with .  
  
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*  
.  
550 5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net  
quit  
221 2.0.0 Bye

/var/log/maillog를 확인하면 다음과 같은 내용을 볼 수 있습니다:

73BC87C4E4: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]:
5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net; 
from=<[email protected]> to=<[email protected]> proto=SMTP helo=

Spamass-milter

우리는 http://spamassassin.apache.org/gtube/에서 테스트 메시지를 사용하고 있습니다.

telnet 192.168.1.5 25  
Connected to localhost.  
Escape character is '^]'.  
220 tds mail cluster  
helo me  
250 hosting1  
mail from:[email protected]  
250 2.1.0 Ok  
rcpt: [email protected]  
250 2.1.0 Ok  
DATA  
354 End data with .  
  
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X  
.  
550 5.7.1 Blocked by SpamAssassin  
quit  
221 2.0.0 Bye

로그 파일에서 다음과 같은 내용을 볼 수 있습니다:

spamd: result: Y 1002 - AWL,GTUBE,MISSING_SUBJECT,TVD_SPACE_RATIO,UNPARSEABLE_RELAY scantime=0.5,size=723,user=root,uid=99,required_score=5.0,
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.