[CentOS] 초기 설치 상태로 초기화 방법



설치 초기 상태로 돌리는 방법은 처음에 디스크 통째로 백업 받지 않았다면 완전하게 돌리는 방법은 없습니다.


그러나 설치한 패키지를 되돌리는 방법은 있습니다. ( /var/log 라던가 환경설치 파일은 남게 됩니다. )


yum history list all


yum history info 목록번호


yum history undo 목록번호


yum 으로 설치한 내역을 보고 undo 로 이전 상태로 되돌릴 수 있습니다.


yum 이 아닌 컴파일 설치라던가 이런건 직접 지워야 합니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[MySQL] DB hotcopy 백업 쉘스크립트



리플리케이션으로 데이터베이스를 동기화 하기전에 기존 데이터를 미리 백업 받아야 합니다.


mysqldump 명령어로 덤프를 하여도 되지만 innodb 가 아닌 myisam 이라면 핫카피가 됩니다.


myisam 테이블이란 가정하에 DB를 백업하는 쉘스크립트입니다.


#!/bin/sh


SERVER_HOST="root@example.com"

SERVER_PORT="22222"

SYNC_DIR_M="/var/lib/mysql/데이터베이스명/"

SYNC_DIR_S="/var/lib/mysql/데이터베이스명/"

# 1920KB/s = 15Mb/s

SYNC_SPD=1920


rsync -av --bwlimit=$SYNC_SPD -e "ssh -p$SERVER_PORT" $SERVER_HOST:$SYNC_DIR_M $SYNC_DIR_S


슬래이브 서버에서 실행하면 됩니다.


단점이 DB 운영중 rsync 시에는 실제 마스터서버의 데이터와 핫카피 한 슬래이브 서버의 데이터는 완전히 일치하지 않는다는 점입니다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[MySQL] Replication 마스터 동기화 쉘스크립트



리플리케이션 하다가 도중에 슬래이브 서버를 재시작 해야 하는 경우 마스터의 로그 파일의 포지션을 맞추는게 은근 짜증이 납니다.


DB를 멈춰 놓고 작업하면 느긋하게 해도 되지만 마스터 DB는 동작을 멈추면 안되는 경우엔 사용자가 없는 새벽시간을 이용해 작업하기도 그렇죠~


그래서 쉘스크립트로 마스터의 정보를 읽어와서 바로 CHANGE MSATER TO SQL을 실행하도록 해보았습니다.


#!/bin/sh


M_DB_HOST="MASTER서버"

M_DB_USER="리플리케이션유저아이디"

M_DB_PASS="리플리케이션유저비밀번호"

S_DB_USER="SLAVE루트아이디"

S_DB_PASS="SLAVE비밀번호"


MASTER_STATUS=(`mysql -h$M_DB_HOST -u$M_DB_USER -p$M_DB_PASS -e "SHOW MASTER STATUS" | grep -v "File"`)


SQL1="STOP SLAVE;"

SQL2="SET GLOBAL replicate_do_db = '동기화데이터베이스1,동기화데이터베이스2';"

SQL3="\

CHANGE MASTER TO \

MASTER_HOST='$M_DB_HOST', \

MASTER_USER='$M_DB_USER', \

MASTER_PASSWORD='$M_DB_PASS', \

MASTER_PORT=3306, \

MASTER_LOG_FILE='${MASTER_STATUS[0]}', \

MASTER_LOG_POS=${MASTER_STATUS[1]}; \

"

SQL4="START SLAVE;"


mysql -u$S_DB_USER -p$S_DB_PASS -e "$SQL1"

mysql -u$S_DB_USER -p$S_DB_PASS -e "$SQL2"

mysql -u$S_DB_USER -p$S_DB_PASS -e "$SQL3"

mysql -u$S_DB_USER -p$S_DB_PASS -e "$SQL4"


색깔이 있는 부분은 자신의 환경에 맞게 고쳐야 합니다.


응용하시면 됩니다.



mysql-replication.sh.txt


스크립트파일도 첨부하였습니다.


기존 데이터 백업은 https://ivps.tistory.com/607 여기를 참고하세요~




REPLICATION 유저로 SHOW MASTER STATUS 시 권한을 따로 주어야 합니다.


GRANT REPLICATION CLIENT ON *.* TO '유저아이디'@'%' IDENTIFIED BY '비밀번호';


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

VSFTPD 파일업로드 용량 제한 방법


vsftpd.conf 에서 파일 용량을 제한 거는 옵션은 없습니다.

대신에 리눅스에서 제한을 거는 방법이 있습니다.


/etc/security/limits.conf 파일에 아래 내용 추가

# 5M = 5120KB

user1           hard    fsize   5120

해당 유저로 로그인( 또는 su 유저명 )하여 ulimit -a | grep "^file size" 명령어로 확인이 가능합니다.


이제 테스트를 해봅니다.

[root@vps ~] $ su user1

[user1@vps ~] $ cd ~

[user1@vps ~]$ dd if=/dev/zero of=./100M.bin bs=1M count=100

File size limit exceeded

[user1@vps ~]$ ls -l

total 5124

-rw-rw-r-- 1 user1 user1 5242880 Oct 23 16:28 100M.bin

100메가 짜리 파일을 만들려고 했지만 사이즈 제한이 걸려서 5메가 까지만 만들어집니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] DNS MX 레코드 변경 확인 방법


라인웍스에서 다음스마트워크로 메일을 이전하려고 MX 레코드를 변경했는데 아래 처럼

"MX 설정이 확인되지 않습니다.

변경하신 MX를 확인하는 데에는 DNS 설정에 따라 최대 24시간이 소요될 수 있습니다."

라고 팝업이 뜨네요~

[리눅스] DNS MX 레코드 변경 확인 방법


그래서 리눅스에서 MX 레코드를 확인해 보았습니다.

방법은 nslookup, host, dig 명령어가 있습니다.


▶ nslookup

[root@vps ~]# nslookup

> set type=mx

> example.com

Server:         8.8.8.8

Address:        8.8.8.8#53


Non-authoritative answer:

example.com      mail exchanger = 20 ALT.ASPMX.daum.net.

example.com      mail exchanger = 10 ASPMX.daum.net.


Authoritative answers can be found from:

> exit


▶ host

[root@vps ~]# host -t mx example.com

example.com mail is handled by 20 ALT.ASPMX.daum.net.

example.com mail is handled by 10 ASPMX.daum.net.


▶ dig

[root@vps ~]# dig -t mx +short example.com

20 ALT.ASPMX.daum.net.

10 ASPMX.daum.net.


잘 변경이 되었는데 다음 내부의 dns 에서 아직 갱신이 되지 않았는가 보네요~

24시간 이내에는 확인이 될 것 같습니다.


3시간이 지나서 확인이 되네요~

참고하세요~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x Postfix + Dovecot + RoundCube 설치 방법


하나의 서버에 여러개의 도메인을 운영할 때 시스템 계정이 아닌 DB에 가상 메일계정을 이용하는 방법입니다.

검색해서 설정했더니 잘 안되어서 여러곳의 정보를 취합해서 정리하였습니다.

참조 사이트 :

 https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mariadb-on-centos-7/

 https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassassin

mariadb 및 아파치, php 는 설치되어 있다고 가정하고 진행합니다.


# yum install postfix dovecot dovecot-mysql roundcubemail

# systemctl enable postfix

# systemctl start postfix

# systemctl enable dovecot

# systemctl start dovecot

필요한 패키지를 설치합니다.


# useradd -u 5000 -d /home/vmail -s /sbin/nologin -m vmail

가상메일에서 사용될 계정을 만듭니다.


CREATE DATABASE webmail;

GRANT ALL PRIVILEGES ON webmail.* TO webmail@localhost IDENTIFIED BY '비밀번호';

가상메일에서 사용될 DB 계정을 만듭니다.


CREATE TABLE `webmail`.`virtual_domains` (

 `id` INT NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(50) NOT NULL,

 PRIMARY KEY (`id`)

 ) DEFAULT CHARSET=utf8;


CREATE TABLE `webmail`.`virtual_users` (

 `id` INT NOT NULL AUTO_INCREMENT,

 `password` VARCHAR(106) NOT NULL,

 `email` VARCHAR(80) NOT NULL,

 PRIMARY KEY (`id`),

 UNIQUE KEY `email` (`email`)

 ) DEFAULT CHARSET=utf8;


CREATE TABLE `webmail`.`virtual_aliases` (

 `id` INT NOT NULL AUTO_INCREMENT,

 `source` varchar(100) NOT NULL,

 `destination` varchar(100) NOT NULL,

 PRIMARY KEY (`id`)

 ) DEFAULT CHARSET=utf8;


INSERT INTO `webmail`.`virtual_domains` (`id` ,`name`) VALUES

 ('1', 'aaa.com'),

 ('2', 'bbb.com'),

 ('3', 'example.com');


INSERT INTO `webmail`.`virtual_users` (`id`, `password`, `email`) VALUES

 ('1', ENCRYPT('비밀번호', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user1@aaa.com'),

 ('2', ENCRYPT('비밀번호', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user2@aaa.com'),

 ('3', ENCRYPT('비밀번호', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user1@bbb.com'),

 ('4', ENCRYPT('비밀번호', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user2@bbb.com'),

 ('5', ENCRYPT('비밀번호', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user1@example.com'),

 ('6', ENCRYPT('비밀번호', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user2@example.com');


INSERT INTO `webmail`.`virtual_aliases` (`id`, `source`, `destination`) VALUES

 ('1', 'alias@aaa.com', 'user1@aaa.com'),

 ('2', 'user2@example.com', 'user1@example.com');

가상메일에서 사용될 테이블과 샘플데이터를 만듭니다.

default_pass_scheme = CRYPT 일때는 ENCRYPT('비밀번호')


# vi /etc/postfix/mysql-virtual-alias-maps.cf

hosts = 127.0.0.1

dbname = webmail

user = webmail

password = 비밀번호

query = SELECT destination FROM virtual_aliases WHERE source='%s'


# vi /etc/postfix/mysql-virtual-users.cf

hosts = 127.0.0.1

dbname = webmail

user = webmail

password = 비밀번호

query = SELECT email FROM virtual_users WHERE email='%s'


# vi /etc/postfix/mysql-virtual-mailbox-domains.cf

hosts = 127.0.0.1

dbname = webmail

user = webmail

password = 비밀번호

query = SELECT name FROM virtual_domains WHERE name='%s'


# vi /etc/postfix/mysql-virtual-mailbox-maps.cf

hosts = 127.0.0.1

dbname = webmail

user = webmail

password = 비밀번호

query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM virtual_users WHERE email='%s'


# chgrp postfix /etc/postfix/mysql-virtual-*.cf

# chmod o= /etc/postfix/mysql-virtual-*.cf

Postfix 에서 가상메일 계정의 정보를 가져올 쿼리파일을 만듭니다.


# vi /etc/postfix/main.cf

myhostname = mail.example.com

mydestination = localhost

mynetworks = 127.0.0.0/8

inet_interfaces = all

message_size_limit = 30720000

virtual_alias_domains =

virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-users.cf

virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

virtual_mailbox_base = /home/vmail

virtual_uid_maps = static:5000

virtual_gid_maps = static:5000

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

broken_sasl_auth_clients = yes

smtpd_sasl_authenticated_header = yes

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtpd_use_tls = yes

smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem

smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem

proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks

virtual_transport = dovecot

dovecot_destination_recipient_limit = 1

Postfix main.cf 파일을 설정합니다.

postconf -e 'mydestination = localhost' 형태의 명령어로도 수정이 가능합니다.

그리고 postconf -n 명령어로 환경설정을 볼 수도 있습니다.

회색 부분을 굳이 설정하지 않아도 됩니다. ( 보안 사용시 필요 )

proxy_read_maps 은 없어도 될 것 같습니다.


# vi /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe

    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}


submission inet n       -       n       -       -       smtpd

  -o syslog_name=postfix/submission

  -o smtpd_tls_security_level=encrypt

  -o smtpd_sasl_auth_enable=yes

  -o smtpd_reject_unlisted_recipient=no

  #-o smtpd_client_restrictions=$mua_client_restrictions

  #-o smtpd_helo_restrictions=$mua_helo_restrictions

  #-o smtpd_sender_restrictions=$mua_sender_restrictions

  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

  -o milter_macro_daemon_name=ORIGINATING

smtps     inet  n       -       n       -       -       smtpd

  -o syslog_name=postfix/smtps

  -o smtpd_tls_wrappermode=yes

  -o smtpd_sasl_auth_enable=yes

  -o smtpd_reject_unlisted_recipient=no

  #-o smtpd_client_restrictions=$mua_client_restrictions

  #-o smtpd_helo_restrictions=$mua_helo_restrictions

  #-o smtpd_sender_restrictions=$mua_sender_restrictions

  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

  -o milter_macro_daemon_name=ORIGINATING

Postfix master.cf 파일을 설정합니다.

회색 부분을 설정하지 않아도 됩니다. ( 보안 사용시 필요 )


# systemctl restart postfix


# postmap -q alias@aaa.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf

user1@aaa.com

# postmap -q user1@aaa.com mysql:/etc/postfix/mysql-virtual-users.cf

user1@aaa.com

# postmap -q aaa.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

aaa.com

# postmap -q user1@aaa.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

aaa.com/user1/

postfix 데몬을 재시작 하고 가상계정 정보를 잘 가져 오는지 확인합니다.


# mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.ori

# vi /etc/dovecot/dovecot.conf

protocols = imap pop3

listen = *

log_timestamp = "%Y-%m-%d %H:%M:%S "

mail_location = maildir:/home/vmail/%d/%n/Maildir


ssl_cert = </etc/pki/dovecot/certs/dovecot.pem

ssl_key = </etc/pki/dovecot/private/dovecot.pem


namespace {

    type = private

    separator = .

    prefix = INBOX.

    inbox = yes

}


service auth {

    unix_listener auth-master {

        mode = 0600

        user = vmail

    }

    unix_listener /var/spool/postfix/private/auth {

        mode = 0666

        user = postfix

        group = postfix

    }

    user = root

}


service auth-worker {

    user = root

}


protocol lda {

    log_path = /home/vmail/dovecot-deliver.log

    auth_socket_path = /var/run/dovecot/auth-master

    postmaster_address = postmaster@example.com

}


protocol pop3 {

    pop3_uidl_format = %08Xu%08Xv

}


passdb {

    driver = sql

    args = /etc/dovecot/dovecot-sql.conf.ext

}


userdb {

    driver = static

    args = uid=vmail gid=vmail home=/home/vmail/%d/%n allow_all_users=yes

}


# vi /etc/dovecot/dovecot-sql.conf.ext

driver = mysql

connect = host=127.0.0.1 dbname=webmail user=webmail password=비밀번호

default_pass_scheme = SHA512-CRYPT

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';


# chown vmail:dovecot /etc/dovecot

# chown vmail:dovecot /etc/dovecot/dovecot.conf

# chown vmail:dovecot /etc/dovecot/dovecot-sql.conf.ext

# chmod o= /etc/dovecot/dovecot-sql.conf.ext

기존 /etc/dovecot/dovecot.conf 파일을 백업해 놓고 새로운 파일로 설정을 합니다.

그리고 계정계정 로그인 정보에 사용될 /etc/dovecot/dovecot-sql.conf.ext 쿼리파일을 만듭니다.

dovecot 데몬에서 접근이 가능하도록 소유권한을 변경합니다.


# systemctl restart postfix

# systemctl restart dovecot

# tail -n15 /var/log/maillog

이제 postfix, dovecot 데몬을 재시작하고 메일이 잘 보내지고 잘 받아지는지 테스트 하면 됩니다.

telnet localhost smtp, telnet localhost pop3 명령어를 이용해서 메일 테스트를 합니다.


# mysql -u webmail -p webmail < /usr/share/roundcubemail/SQL/mysql.initial.sql


# cp -p /etc/roundcubemail/config.inc.php.sample /etc/roundcubemail/config.inc.php

# vi /etc/roundcubemail/config.inc.php

$config['db_dsnw'] = 'mysql://webmail:비밀번호@localhost/webmail';

$config['product_name'] = 'Webmail'; // HTML Title 부분에 나오는 내용, 적당한 이름으로 변경


# vi /etc/httpd/conf.d/roundcubemail.conf

<Directory /usr/share/roundcubemail/>

    <IfModule mod_authz_core.c>

        # Apache 2.4

        Require local

        Require all granted

    </IfModule>

</Directory>

<Directory /usr/share/roundcubemail/installer/>

    <IfModule mod_authz_core.c>

        # Apache 2.4

        Require local

        Require ip 허용아이피

    </IfModule>

</Directory>

# systemctl restart httpd

RoundCube 메일 환경을 설정합니다.

http://webmail.example.com/roundcubemail 페이지를 호출하여 확인합니다.

로그인시 사용자명에는 이메일 주소를 입력하여야 합니다.


위의 내용은 아래 첨부파일을 다운 받으면 됩니다.

postfix-dovecot-roundcube.txt


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[Linux] Postfix Multiple Domain Virtual Mailbox


도메인이 하나일 때와 가상 VirtualHost 를 여러 운영하는 경우에 설정 방법이 달라서 며칠 동안 고생좀 했네요~

DB 를 이용하지 않고 시스템 유저를 활용하는 방법입니다.


▶ postfix main.cf 기본 설정 하기

# vi /etc/postfix/main.cf

myhostname = mail.localhost

mydomain = localhost

myorigin = $mydomain

inet_interfaces = all

home_mailbox = Maildir/

mydomain 은 virtual domain 과 중복되면 안됩니다.

home_mailbox 값은 virtual domain 과 관계 없는 도메인으로 메일이 올 경우 저장되는 경로입니다.


▶ postfix 유저 UID, mail 그룹 GID 값 알아내기

# cat /etc/passwd | grep postfix

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

# cat /etc/passwd | grep mail

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

postfix 유저 UID : 89

mail 그룹 GID : 12

Dovecot + RoundCube 연동하려면 아래 처럼 계정을 생성하는 것이 좋습니다.

# useradd -u 5000 -s /sbin/nologin -m vmail

# cat /etc/passwd | grep vmail

vmail:x:5000:5000::/home/vmail:/sbin/nologin



# vi /etc/postfix/main.cf

virtual_mailbox_domains = /etc/postfix/vdomain

virtual_mailbox_base = /var/spool/mail/vhost

virtual_mailbox_maps = hash:/etc/postfix/vmail

virtual_minimum_uid = 89

virtual_uid_maps = static:89

virtual_gid_maps = static:12

virtual_alias_maps = hash:/etc/postfix/virtual


# vi /etc/postfix/vdomain

aaa.com

bbb.com


# vi /etc/postfix/vmail

user1@aaa.com    user1/

user2@aaa.com    user2/

user1@bbb.com    user1/

user2@bbb.com    user2/


# postmap /etc/postfix/virtual

# postmap /etc/postfix/vmail

# systemctl restart postfix

virtual_mailbox_domains 값은 도메인 갯수가 적다면 그냥 나열해도 됩니다. ( virtual_mailbox_domains = aaa.com bbb.com )

virtual_minimum_uid = 89 ( postfix 유저 UID )

virtual_uid_maps = static:89 ( postfix 유저 UID 또는 vmail UID )

virtual_gid_maps = static:12 ( mail 그룹 GID 또는 vmail GID )

vmail UID, GID 를 사용한다면 /var/spool/mail 디렉토리는 기존 root.mail 소유권에서 root.vmail 로 변경을 해주어야 합니다.

# chgrp -R vmail /var/spool/mail

( mkdir 로 /var/spool/mail/vhost, /var/spool/mail/vhost/aaa.com, /var/spool/mail/vhost/bbb.com 만들 필요가 없음 )

dovecot 사용시 퍼미션 조절필요


제대로 안된다면 systemctl status postfix 명령어로 에러 원인을 파악할 수 있습니다.

정리를 하고 나니 생각 보다 간단하네요~


가상계정 DB 를 이용하는 방법은 https://ivps.tistory.com/582 여기를 참고하세요~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x RoundCube 설치 방법


wget 으로 소스코드를 다운로드 받아서 설치할 수도 있지만 이번에는 yum install 로 설치하는 방법에 대해서 알아보겠습니다.


▶ RoundCube 설치

# yum install roundcubemail

1.1.12 가 설치 되는군요~


▶ 메일 DB 생성

# mysql -u root -p

CREATE DATABASE rcube;

GRANT ALL PRIVILEGES ON rcube.* TO rcube@localhost IDENTIFIED BY '비밀번호';

exit;

# mysql -u rcube -p rcube < /usr/share/roundcubemail/SQL/mysql.initial.sql


▶ RoundCube 설정

# cp -p /etc/roundcubemail/config.inc.php.sample /etc/roundcubemail/config.inc.php

# vi /etc/roundcubemail/config.inc.php

//$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

// 위 부분을 찾아서 아래와 같이 수정

$config['db_dsnw'] = 'mysql://rcube:비밀번호@localhost/rcube';

$config['product_name'] = 'RCube Webmail'; // HTML Title 부분에 나오는 내용, 적당한 이름으로 변경


▶ 아파치 설정

# vi /etc/httpd/conf.d/roundcubemail.conf

<Directory /usr/share/roundcubemail/>

    <IfModule mod_authz_core.c>

        # Apache 2.4

        Require local

        Require all granted

    </IfModule>

</Directory>

<Directory /usr/share/roundcubemail/installer/>

    <IfModule mod_authz_core.c>

        # Apache 2.4

        Require local

        Require ip 허용아이피

    </IfModule>

</Directory>

# systemctl restart httpd

roundcubemail 과 roundcubemail/installer 두 곳 모두 수정하여야 합니다.

혹시 아파치 2.2 버전대라면 아랫쪽을 수정하시면 됩니다.


이제 완료되었습니다.

웹브라우저에서 http://domail.com/roundcubemail 로 웹메일 접속이 가능합니다.


여기에서 언급되지 않은 부분은 https://ivps.tistory.com/577 여기를 참고해서 설정하시면 됩니다.





블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] SMTP 메일 전송 테스트


리눅스 서버에서 테스트 메일을 보내는 방법입니다.

[root@ivps ~]# telnet localhost 25

Trying ::1...

Connected to localhost.

Escape character is '^]'.

220 mail.ivps.kr ESMTP Postfix

mail from: root@localhost

250 2.1.0 Ok

rcpt to: roundcube@localhost

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

subject: test mail

from localhost

to localhost

.

250 2.0.0 Ok: queued as EF47875AE

quit

221 2.0.0 Bye

Connection closed by foreign host.

[root@ivps ~]#

굵은 글씨 부분처럼 따라 하시면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

RoundCube VirtualHost 도메인 연결


http://domain.com/roundcube 형태의 웹메일 url 이 보기 싫다면 .htaccess 파일에서 RewriteRule 을 이용한 리디렉션을 시켜도 되지만

아파치 설정의 VirtualHost 를 이용할 수도 있습니다.


▶ VirtualHost 도메인 연결

<VirtualHost *:80>

    ServerName mail.domain.com

    DocumentRoot /var/www/html/roundcube

    ErrorLog logs/mail.domain.com-error_log

    LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vcommon

    CustomLog logs/mail.domain.com-access_log vcommon

</VirtualHost>

위 같이 하고 systemctl restart httpd 로 아파치를 재시작합니다.


이제 웹메일 접속을 http://mail.domain.com/ 으로 접속하면 됩니다.


라운드큐브 웹메일 설정은 https://ivps.tistory.com/577 여기를 참고하세요~



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,