이번 포스팅에서는 DB와 서버를 생성해보도록 하겠습니다. 

 

제일 먼저 생성할 자원은 DB입니다 

(CDB for MySQL은 2 vCPU, 4GB RAM 사용시 160원/시간이 청구됩니다)

 

아래 사진과 같이 CDB for MySQL로 이동하여 DB생성을 눌러서 진행합니다. 

CDB for MySQL 생성

 

 

생성을 누르게 되면 아래와 같이 설정을 하는 창이 뜨는데 다음과 같이 입력해주시고 넘어가시면 되겠습니다. 

    - DB 엔진 버전 mysql(8.0.25)

    - 고가용성 지원 체크해제 

    - VPC 및 Subnet(issac-db) 선택

    - DB Server 이름 및 서비스 이름 임의로 설정

DB 생성 창 - 1

DB생성 두번째 창입니다. 이 부분은 실제로 DB접속 정보와 DB를 구성하는 정보를 입력하는 페이지 입니다 

    - User_ID는 DB에 접속할때 사용하는 ID 입니다

    - HOST(IP)는 DB에 접속허용할 IP를 정하는 옵션입니다. 여기서는 모든 IP를 허용하기 위해 '%' 를 입력하였습니다

      (좋은 방법은 아닙니다, 실제에서는 최소한의 권한을 주기위해 WAS IP대역을 주는 것을 권장합니다만,

       연습이니까 그냥 줬습니다)

    - USER 암호는 접속 암호입니다.

    - 기본 DB명은 최초에 생성할 DB명입니다, 여기서 생성할 DB를 Wordpress설치시 사용할것이기 때문에, 기억해주도록        합시다 

DB 생성 창 - 2

이렇게 하시면 DB는 생성완료입니다, 참 쉽죠? ㅋㅋㅋ

 

자 이제 서버 생성입니다 

 

서버는 총 2대(Web, WAS)를 생성할 시간입니다. 

저는 미리 서버를 생성해서 서버2대가 보이지만.. 

Server -> + 서버 생성을 클릭하여 서버 생성창으로 이동합니다.

서버 생성 버튼 클릭

 

서버 생성 첫번째 창입니다. 

저희는 CentOS 7.8버전을 사용하겠습니다

NCP는 서버 용량이 Windows는 100GB, Linux는 50GB로 고정되어 있습니다. 

서버 타입은 제일 저렴한 서버타입이 있는 High CPU를 고르시고 넘어가시면 되겠습니다

(서버는 2 vCPU, 4GB RAM 사용시 100원/시간이 청구됩니다)

서버 생성 - 1

 

서버 생성 2번째 페이지 입니다. 

    - VPC와 Subnet을 알맞게 정하고 

    - 서버 타입은 vCPU 2개 4GB RAM

    - 시간 요금제

    - 서버 이름은 web서버는 wordpress-web, WAS는 wordpress-was, 

    - Network Interface에서 IP를 입력하지 않으시고 추가를 누르시면 자동으로 IP가 할당됩니다 

    - wordpress-web 서버는 새로운 공인IP 할당을 해줍니다. 

서버 생성 - 2

 

서버 생성 세번째 페이지 입니다. 

인증키를 설정하는 페이지 입니다. 

이미 인증키아 있으신분들은 선택하시고 넘어가시고

없으신 분들은 "새로운 인증키 생성"을 통해 인증키를 생성 및 다운로드 하시고 넘어가면 되겠습니다.

(두번째 서버는 보유하고 있는 인증키 이용 하시면 됩니다)

서버 생성 - 3

 

서버 생성 네번째 페이지 입니다 

이전 포스팅에서 생성했던 ACG를 할당하는 페이지 입니다. 

wordpress-web 서버는 issac-pub-acg를 할당하고 넘어가시고

wordpress-was 서버는 issac-pub-pri를 할당하시고 넘어가시면 되겠습니다. 

서버 생성 - 4

 

이로써 서버 생성도 완료되었습니다!

안녕하세요, 이번 포스팅에서는 NCP상에서 3 Tier 구성으로 Wordpress를 구축을 해보는 과정을 보여드리려고 합니다. 

 

긴말하지 않고 보시죠 

 

일단 인터넷에서 말하는 2 Tier와 3 Tier의 차이점은 다음과 같습니다. 

    1.  2 Tier 에서는 클라이언트 서버에서 DB서버로 집적 데이터를 입력하고 불러오는 방식이다

         장점 개발이 편리하다, 개발비용이 저렴하다, 유지보수가 쉽다

         단점 보안에 취약하다, 서버에 부하가 일어나기 쉽다.

    2.  3 Tier 에서는 클라이언트 서버에서 비즈니스 로직을 담당하는 역할을 떼어내 독립된 서버로 만든 구조이다

         장점 보안이 강화된다, 서버의 부하를 줄일 수 있다.

         단점 관리 포인트가 늘어난다, 개발기간이 늘어난다

 

구성은 다음과 같이 차이가 나구요! 

2Tier vs 3Tier

진짜 기초부터 차근차근 만들어 보겠습니다. 

 

일단 NCP에 로그인을 하신뒤 아무것도 없는 가정하에 VPC부터 생성해보겠습니다. 

10.0.0.0/16 대역 VPC 생성

저는 10.0.0.0/16 대역으로 VPC를 생성하였습니다

 

 

다음은 VPC내부에 서브넷 생성입니다. 

 

Subnet 생성

서브넷은 총 3개를 생성합니다, 하나는 Web서버가 할당될 public 서브넷, WAS 전용 private 서브넷, DB전용 private 서브넷,

서브넷 정보는 다음과 같습니다. 

Subnet 이름  IP 주소  internet Gateway 전용 여부 용도
issac-db 10.0.2.0/24 N(Private) 일반
issac-pri 10.0.1.0/24 N(Private) 일반
issac-pub 10.0.0.0/24 Y(Public) 일반

 

다음은 Private Subnet에서 만들어지는 WAS서버에서 Yum으로 프로그램 설치를 위한 NAT Gateway 생성 및 Route Table 설정입니다. 

Nat Gateway 생성

 

Route table은 AWS에서와는 조금 다르게 default Private route table 에 집적 걸어줍니다!

Route Table 설정
Route Table  내용 추가

다음은 서버에 적용할 ACG를 생성해보겠습니다.

(본 포스팅에서는 NACL은 따로 적용하지 않겠습니다 따로 기회가 되면 올려보도록 할게요!ㅎㅎ)

 

Server -> ACG생성

ACG이름 적용 Network Interface
issac-pub-pri wordpress-was
issac-pub-acg wordpress-web

(*만들다 보니... 이름을 잘못지었네요..ㅠㅠ issac-pub-pri는 private Subnet의 was에 적용되는 ACG입니다)

 

룰은 다음과 같이 만들어 줍니다.

issac-pub-acg inbound
issac-pub-acg outbound
issac-pub-pri inbound
issac-pub-pri outbound

 

마지막으로 아래의 룰을 두개의 ACG의 outbound에 추가합니다. 

(추가하지 않으면 epel 로 설치하는 Package가 설치 되지 않는다.)

공통 outbound 룰

 

아래 ACG설정은 CDB for MySQL을 생성후 진행한다,(아래 CDB for MySQL 생성하는 스텝 진행 후 올라와서 진행합니다)

CDB for MySQL inbound

 

ACG 설정하시느라 고생하셨어요! 이제 사전작업은 끝났습니다!

 

이제 서버와 DB를 생성하러 가보시죠!

드디어 마지막 단계입니다!

구축한 메일서버를 이용해서 실제로 메일을 보내보도록 하겠습니다@@@

현재 메일서버는 웹 메일은 구현되어있지 않고 오직 SMTP와 IMAP&POP3 로 구성되어있어

이메일을 사용하기 위해서는 별도의 이메일 클라이언트가 필요합니다.

저는 메일 클라이언트로 썬더버드라는 메일 클라이언트를 다운로드 받았습니다

위의 링크에서 클라이언트를 받고 설치해 줍니다.

보통 처음 썬더버를 설치한 이후에는 메일 계정을 추가하는 창이 뜨지만,

혹시 창이 뜨지않거나 취소하신 분들은 위의 사진처럼 계정 설정 -> 메일 을 눌러서 메일을 추가해 줍니다

메일 구축 1단계에서 생성하였던 계정 정보를 입력하고 계속을 누르면 썬더버드가 메일 서버를 찾습니다.

계속해서 완료 버튼을 누르면 메일 계정 추가가 완료 됩니다.

짜잔~ 위 사진처럼 성공적으로 메일 계정이 추가되면 쓰기버튼을 눌러서 메일을 작성해 보겠습니다

간단하게 메일 작성후 메일을 보냅니다.

잠시후 메일이 도착함을 확인할 수 있습니다! 물론 답장을 하게되면 썬더버드를 통해서 확인 하실 수 있습니다.

이상으로 메일 구축을 완료하였습니다!

따라오시느라 고생 많으셨고 질문이나 수정할 부분있으면

linux@mast3r.com이나 pawn@teem0.com으로 메일 보내 주시면 감사하겠습니다!

감사합니다~~~~~~!!!!!

이번 포스팅에서는 Dovecot을 설치하고 설정하도록 하겠습니다.

apt install dovecot-core dovecot-imapd dovecot-pop3d

제일 먼저 apt명령어로 Dovecot과 imap, pop3 데몬을 다운받아 줍니다.

vim /etc/dovecot/conf.d/10-mast3r.conf

다운로드가 완료되었으면 위의 파일을 수정할 것입니다.

unix_listener라는 항목을 몇번 지나다 보면 /var/spool/postfix/private/auth라는 섹션이 나오는데 그곳에서

user = postfix
group = postfix

이 두 항목을 추가시켜줍니다.

vim /etc/dovecot/conf.d/10-auth.conf

다음은 10-auth.conf 파일입니다. 인증방법을 설정하는 파일입니다.

disable_plaintext_auth는 평문인증을 비활성화 하는 옵션입니다.

auth_mechanisms 옵션을 찾아 뒤에 login옵션을 추가해 줍니다. 이를 추가해줌으로써 IMAP에서 로그인을 할 수 있게 됩니다.

vim /etc/dovecot/dovecot.conf

Dovecot의 메인 설정파일입니다.

protocols = pop3 imap

위 문장을 파일 제일 아래쪽에 적어주도록 합시다.

vim /etc/dovecot/conf.d/10-mail.conf

다음은 메일을 설정하는 파일입니다.

mail_location = maildir:~/Maildir

Postfix설정에서도 설정 해 줬듯이, Dovecot에서도 mail저장에 mbox대신에 /Maildir을 사용합니다.

vim /etc/dovecot/conf.d/20-pop3.conf

다음은 pop3를 설정하는 파일입니다.

pop3_uidl_format = %08Xu%08Xv

주석처리되어있는 위 라인의 주석을 해제 시켜줍니다.

vim /etc/dovecot/conf.d/10-ssl.conf

마지막으로 SSL 설정파일입니다.

위 사진과같이 ssl옵션에 yes를 주시고, ssl_cert와ssl_key의 경로에 저번에 Letsencrypt에서 생성되었던 파일들의 경로를 지정합니다.

이렇게 지정하면 모든 설정이 완료되었습니다.!

systemctl restart dovecot

마지막으로 dovecot을 재구동 해주면 dovecot설정이 완료됩니다.

다음 마지막 포스팅에서는 실제로 썬더버드를 사용해서 메일을 주고 받아보겠습니다!

이번 포스팅에서는 리눅스 머신에 postfix설치 설정 및 letsencrypt를 사용한 SSL 설정을 하겠습니다.

postfix를 설치하고 설정까지 마치면 SMTP프로토콜(메일발송 프로토콜)을 이용할 수 있습니다.

앞으로의 작업은 모두 라즈베리파이에서 이루어 지는 작업입니다.

자 그럼 시작하도록 하겠습니다ㅋㅋ

제일 먼저 라즈베리파이에 로그인을 합니다,

apt install postfix

그 다음 위와 같은 명령어를 입력하여 postfix를 설치해 줍니다.

최초 설치시에 위와 같은 화면을 보게 되는데, System mail name:을 입력하는 곳에 메일을 보낼 도메인(저는 당연히 mast3r.com이겠죠?)를 입력해 줍니다.

dpkg-reconfigure postfix

설치가 완료된 이후에 위의 명령어로 postfix에 대한 설정을 다시 구성하도록 합시다.

dpkg-reconfigure postfix명령어를 입력 하게되면 3번째 옵션부터 설정해야합니다.

제일먼저 시스템관리자의 계정을 입력하는 옵션입니다.

저는 pi계정으로 시스템을 관리하기 때문에 pi를 입력하였습니다.

다음으로는 도착지 설정입니다. postfix가 최종 목적지로 사용할 도메인명을 적어주시면 됩니다.

저는 mast3r.com과 mail.mast3r.com을 최종 목적지로 추가 하였습니다.

나머지 위의 옵션 부분에서는 똑같이 따라하시면 됩니다.

postconf -e 'home_mailbox = Maildir/'

위의 명령어는 기본 홈 메일박스를 Maildir/로 설정하는 명령어입니다.

(기본적으로 mbox와 Maildir방식이 있는데 Maildir로 설정합니다. 간단하게 설명하면 사용자마다 다른 폴더를 생성한다)

이후 SMTP에서 SASL을 사용하기 위한 설정들입니다

(SASL은 Simple Authentication and Security Layer의 약자로 SMTP를 사용할 때 인증사용을 위한 설정이라고 간단하게 알아두면 될듯합니다.[틀리면 알려주세요!!])

다음은 master.cf에서의 주석해제입니다. 붉은 네모에 있는 줄들의 주석을 해제해줍니다.

다음은 SSL인증을 위한 Letsenctpt설치입니다! apache2와 letsencrypt를 설치합니다.

apache2는 letsencrypt에서 인증서를 발급할 때 인증을 위하여 필요하기 때문에 같이 설치 합니다.

두 패키지가 설치 된 이후에 인증을 위해서 systemctl stop apache2로 아파치를 중지시켜줘야 합니다

certbot certonly --agree-tos -email [email] -d [mail.[domail]]

위 명령어를 입력하고 나오는 옵션의 2번째 옵션을 선택하여 인증서를 발급받습니다.

성공적으로 발급받게 되면 위와같이 Congratultations!이라는 메세지가 나오게 됩니다.

다음은 인증서 자동 갱신 방법입니다.

crontab -e 

위 명령어로 root에 대한 crontab을 변경해주도록 합시다.

crontab의 맨 아래로 가서 위와같이 해당 줄을 추가해주도록 합시다.

간단하게 설명 하자면 매월 1일 01시 00분에 apache2를 종료시키고 03분에 인증서를 갱신시킨다라는 명령어 2줄입니다.

위는 생성된 인증서를 이용해서 SMTP를 설정하는 명령어들입니다.

모든 설정이 완료되었으면 systemctl restart postfix라는 명령어를 입력하여 postfix를 재시작하도록 합니다.

안녕하세요 여러분~ 이번에는 라즈베리파이와 도메인을 이용해서 나만의 메일버서를 구축해보려고 합니다.

 

구축전에 준비물은, 라즈베리파이,자신이 등록한 도메인,DDNS와 포트포워딩을 지원하는 공유기,입니다.

(저는 RPI3에 Raspbian, 도메인은 mast3r.com, 공유기는 IPtime A3004NS로 진행합니다)

생각보다 준비물이 많네요...;;;

 

포스팅은 총 4단계로 나누어서 진행하구요, 이 글애는 메일서버구축을 위한 사전준비를 포스팅 하려고 합니다.

최대한 쉽게 따라오실 수 있게 노력했으니 도움이 됐으면 좋겠습니다.!

 

자 이제, 시작해보겠습니다.

공유기에 라즈베리파이를 물리고 전원을 켜줍니다.

켜준 뒤 첫번째로 세팅할 곳은 공유기입니다.

제일 처음 공유기에 로그인을 해주시고(보통 192.168.0.1로 접속하시면 됩니다)

고급설정 -> 네트워크 관리 -> 내부 네트워크 설정에 들어갑니다.

들어가시면 현재 라즈베리파이가 잘 연결되어 있으며 할당되어 있는 IP는 192.168.0.6인걸 확인 할 수 있습니다.

 

다음으로는 포트포워딩 설정입니다.

고급 설정 -> NAT/라우터 관리 -> 포트포워드 설정에 들어갑니다.

안에 들어가시면 위 사진과같이 설정이 되어있어야 합니다.

설정 하는 방법은 간단한데 밑에 보이는 규칙이름에 임의의 이름을 넣고 내부 IP주소,

곧 아까 확인한 192.168.0.6를 입력하면 됩니다.

그리고 외부포트와 내부포트는 각각 사진의 있는 값을 따라서 적으시면 됩니다.

 

2번의 ssh2룰은 외부에서 내부로 도메인을 사용해 ssh로 접속할때 쓰기위한 룰입니다

3번룰은 2단계에서 Letsencrypt를 사용해서 인증서를 만들때 웹서버 인증이 필요하기 때문에 필요한 룰입니다.

4,5번룰은 SMTP에서 사용하는 포트를 포워딩 해주는 룰입니다.

6~9번까지의 룰은 IMAP/POP3에서 사용하는 포트들을 포워딩 해주는 룰입니다.

 

포워딩을 마친 뒤에 고급 설정 -> 특수기능 -> DDNS설정이라고 써진 메뉴를 들어갑니다.

이 페이지 붉은색으로 네모쳐진 곳에 두가지 값을 입력해야하는데, 호스트 이름은 DDNS의 이름을 입력하는 칸이고

사용자 ID는 사용하시는 이메일 주소를 넣으시면 됩니다.

호스트이름에 넣으시는 이름이 곧 외부에서 내부로 접속할때 사용되는 DDNS이름이 됩니다!

2칸을 모두 채워주시고 생성버튼을 누르면 위 사진과 같이 DDNS가 등록되게 됩니다.

이렇게 따라와 주셨으면 공유기 설정은 모두 마쳤습니다!

 


이제 도메인을 세팅할 차례입니다.

저는 hosting.kr에서 도메인을 구입했습니다. 

hosting.kr의 서브도메인 설정화면은 위 사진과 같으며, 총 3개의 서브도메인이 보이지만... 

www도메인은 제 웹서버 도메인이므로..생략해도 됩니다 ㅋㅋ

 

최상위 도메인(아무것도 없는 도메인)에는 A레코드로 아까 만든 DDNS에 대한 IP,

(cmd에서 ping [ddns 주소]하면 실제 IP를 확인할 수 있습니다.) 

mail서브도메인에서는 CNAME으로 아까 생성했던 DDNS 주소를 입력하고 적용합니다.

여기까지 오셨으면 도메인 세팅도 끝났습니다!.


이제 라즈베리파이를 세팅할 차례입니다.

저는 putty를 사용하여 제 rpi에 접속하였습니다. 접속시 실제 도메인을 사용하여 로그인하였습니다. Host Name에는 도메인이름을 Port에는 아까 공유기에서 포트포워딩해준 포트 60001번을 넣고 Open을 눌러 접속합니다.

그리고 pi/raspberry로 로그인을 합니다. (이 계정과 비번은 기본 세팅이니 꼮 변경해주시기 바랍니다!!!!변경필쑤!!)

로그인을 한 뒤 아래 명령어를 입력 해 루트계정으로 작업을 실행합니다(매번 sudo를 치기 귀찮기 때문이죠...후훗)

sudo su

참고로 현재 상태에서는 root계정에 대해 비밀번호가 걸려있지 않기 때문에 반드시 비밀번호를 설정해주시기 바랍니다!!! 제발요.. 꼭 해주세요...

root계정으로 접근한 뒤, 아래의 명령어를 입력하여 시스템을 최신버전으로 업데이트 해줍니다.

apt update; apt upgrade -y

이 단계는 옵션입니다. 저는 개인적으로 VIM을 선호하기때문에 라즈베리파이에 설치해 줍니다.

apt install vim 

 

다음으로는 host이름을 변경합니다.

vim /etc/hostname
#이 명령어로 hostname 파일을 열고

dd
#raspberrypi 를 지워줍니다

i
#입력모드로 전환합니다. 

mast3r.com
#자신의 도메인주소를 적어줍니다

esc
#esc버튼을 눌러 입력모드를 나갑니다

:wq
#위 명령을 입력하여 저장 후 닫습니다.

다음은 /etc/hosts파일을 변경해야합니다.

 

위에서 했던 것 처럼 값을 변경/입력해줍니다. 변경할 값은 127.0.1.1 을 도메인 이름으로 변경하고 새 줄에는 DDNS대한 IP주소를 삽입 후 도메인을 입력하면 됩니다! (제 IP는 가렸습니다. 소중하니까요..ㅋㅋ어차피 ping때리면 나오는데.. 왜가렸을까)

어쨋든! 이렇게 하시면 기본설정은 끝났습니다.

이제 실제 이메일에 사용될 계정을 만들어보도록 하겠습니다.

 

이렇게 간단할 수가....

useradd linux
usermod -G mail linux
usermod -s /usr/sbin/nologin linux
passwd linux

이 4문장만 입력하시면 나중에 실제로 사용될 이메일 계정이 만들어지는 겁니다.

vim /etc/passwd
vim /etc/group

계정을 만든 뒤에 위의 파일을 열어서 실제로 계정이 추가됐는지 확인할 수 있습니다.

 마지막으로

chown :mail /home
chmod 775 /home

 /home의 그룹을 mail로 변경하고 775권한을 주는 이유는 postfix에서 Maildir형식으로 메일 디렉토리를 구성할 것이기 때문입니다.(즉 이메일 계정이 생성될 때 마다 /home/[user]/Maildir이 생성됩니다)

모든 명령을 마친 이후에 

reboot

리부팅을 해주면 모든 사전준비가 끝나게 됩니다.

따라오시느라 고생하셨습니다! 두번째 글에서는 Postfix설치 및 설정, letsencrypt를 이용한 SSL/TLS 설정을 포스팅 하도록하겠습니다.

+ Recent posts