웹 메일, DNS 서버 구축 및 실습 (팀작업)

sso·2025년 4월 17일
0

리눅스 서버

목록 보기
28/40

3~4인 1조로서 다음 작업을 수행하시오.

A, B 초기화 후 작업하시오.

각 인원은 자신의 Server B에 웹 메일 클라이언트 + 메일 서버를 구축하고 상대방과 이메일을 주고 받을 수 있도록 하시오.

서브 도메인은 다음을 준수하시오.
Server A의 웹 서버 wp.도메인.com
Server B의 메일 서버 mail.도메인.com
Server B의 웹 메일 서버 wm.도메인.com

각 인원은 자신의 Server A에 DNS 서버 + 웹 서버를 구축하고 해당 DNS를 통해 팀원 전원의 도메인 정보를 모두 등록한 후 어떤 팀원의 DNS 서버를 사용하더라도 다른 팀원의 웹 서버 접근이나 메일 전송이 모두 가능하도록 하시오.

기타 필요 사항은 임의로 구성하시오.

각 팀별 DB는 1대만 구성하여 특정 인원의 Server B에 배치하시오.

a - a 214, b 196
b - a 207, b 156
c - a 151, b 143
d - a 211, b 223

Server A DNS 세팅

dnf -y install php* httpd bind

systemctl --now enable httpd
systemctl --now enable named
firewall-cmd --add-service={http,dns}

vi /etc/named.conf

vi /etc/named.rfc1912.zones

zone "compose.com" IN {
type master;
file "compose.com";
allow-update { none; };
};

zone "pepsi.com" IN {
type master;
file "pepsi.com";
allow-update { none; };
};

zone "hero.com" IN {
type master;
file "hero.com";
allow-update { none; };
};

zone "slime.io" IN {
type master;
file "slime.io";
allow-update { none; };
};

zone "2.0.10.in-addr.arpa" IN {
type master;
file "dns.rev";
allow-update { none; };
};

cd /var/named

cp -p named.localhost compose.com
cp -p named.localhost pepsi.com
cp -p named.localhost hero.com
cp -p named.localhost slime.io
cp -p named.localhost dns.rev

vi compose.com

MX 10 mail.compose.com.
www IN A 10.0.2.151
mail IN A 10.0.2.143
wm IN A 10.0.2.143

vi pepsi.com

MX 10 mail.pepsi.com.
www IN A 10.0.2.207
mail IN A 10.0.2.156
wm IN A 10.0.2.156

vi hero.com

MX 10 mail.hero.com.
www IN A 10.0.2.211
mail IN A 10.0.2.223
wm IN A 10.0.2.223

vi slime.io

MX 10 mail.slime.io.
www IN A 10.0.2.214
mail IN A 10.0.2.196
wm IN A 10.0.2.196

vi dns.rev

151 PTR www.compose.com.
207 PTR www.pepsi.com.
211 PTR www.hero.com.
214 PTR www.slime.io.
143 PTR mail.compose.com.
156 PTR mail.pepsi.com.
223 PTR mail.hero.com.
196 PTR mail.slime.io.

systemctl restart named

vi /etc/resolv.conf

nameserver 192.168.111.100

nslookup

www.slime.io
mail.slime.io
wm.slime.io

Server B

dnf -y install mariadb-server
systemctl --now enable mariadb
firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload

mysql
CREATE DATABASE jydb;
GRANT ALL ON jydb.* TO jy@10.0.2.207 IDENTIFIED BY '1234';

GRANT ALL ON jydb.* TO jy@10.0.2.156 IDENTIFIED BY '1234';

CREATE DATABASE shdb;
GRANT ALL ON shdb.* TO sh@10.0.2.151 IDENTIFIED BY '1234';

GRANT ALL ON shdb.* TO sh@10.0.2.143 IDENTIFIED BY '1234';

CREATE DATABASE dsdb;
GRANT ALL ON dsdb.* TO ds@10.0.2.211 IDENTIFIED BY '1234';

GRANT ALL ON dsdb.* TO ds@10.0.2.223 IDENTIFIED BY '1234';

CREATE DATABASE mydb;
GRANT ALL ON mydb.* TO my@10.0.2.214 IDENTIFIED BY '1234';

GRANT ALL ON mydb.* TO my@10.0.2.196 IDENTIFIED BY '1234';

dnf -y install sendmail dovecot

vi /etc/mail/sendmail.cf

Cwlocalhost ➡ Cwslime.io
데몬 포트 옵션에서 localhost 삭제

vi /etc/mail/local-host-names

slime.io
mail.slime.io

vi /etc/mail/access
10.0.2 RELAY
slime.io RELAY
compose.com RELAY
pepsi.com RELAY
hero.com RELAY

makemap hash /etc/mail/access < /etc/mail/access

systemctl --now enable sendmail

vi /etc/dovecot/dovecot.conf

24, 30, 33행 주석 제거

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

ssl = required ➡ ssl = yes

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

25행 주석 제거
mail_access_groups = mail

systemctl --now enable dovecot

dnf -y install php* httpd
systemctl --now enable httpd
firewall-cmd --add-service=http

cd /var/www/html/

curl -O -L https://github.com/roundcube/roundcubemail/releases/download/1.6.10/roundcubemail-1.6.10-complete.tar.gz

tar -xzf roundcubemail-1.6.10-complete.tar.gz

ln -s roundcubemail-1.6.10 rc

chown -R apache.apache roundcubemail-1.6.10

dnf module list php
dnf module reset php
dnf module enable php:8.2
dnf -y remove php
dnf -y install php

dnf -y install bind-utils

nslookup mail.slime.io

vi /etc/resolv.conf

nameserver 192.168.111.100

firewall-cmd --add-service={imap,imaps,smtp,smtps,pop3,pop3s}

안돼면 방화벽 다시 껏다키기
resolv 파일 확인

profile
오늘도 하나씩 해결해 나가자!

0개의 댓글