본 내용은 대학 강의시간에 배운 내용을 따로 정리하는 글로, 독자를 구체적으로 정하지 않고 썼습니다.
따라서 읽기에 많은 불편함이 있습니다.
다른 글을 읽으시는 것을 적극 권장드립니다.
메일서버 구현을 위한 네임서버 구현
4개의 가상머신을 모두 초기화하고 실행
먼저 Server부터.
dnf -y install sendmail
센드메일 패키지를 설치한다.
gedit /etc/hostname
이 파일을 열면 빈 파일이 나온다.
맨 위에,
mail.naver.com 을 적어준다.
gedit /etc/hosts
192.168.111.100 mail.naver.com
hosts 파일에 위 텍스트를 입력하고 저장한다.
gedit /etc/mail/local-host-names
mail.naver.com
똑같이 내용을 추가하고 저장.
gedit /etc/sysconfig/network
HOSTNAME=mail.naver.com
위 내용을 추가하고 저장.
총 4개의 파일 수정 후, reboot 하기
컴퓨터 이름이 mail.naver.com으로 바뀌면서,
터미널 이름에서 맨 앞의 ‘mail’로 컴퓨터 이름이 보인다.
이제 Server(b)로 간다.
dnf -y install sendmail
똑같이 sendmail 패키지를 설치한다.
그리고 Server랑 동일하게 4개의 파일을 수정한다.
(gedit x, nano o)
ip주소는 192.168.111.200
주소는 mail.daum.net으로
이후 reboot를 한다.
Server와 동일하게 컴퓨터 이름이 mail로 뜬다
이제 두 개의 메일서버가 완성됐으니, Server 가상머신에 추가로 ‘네임서버’를 만들 차례이다.
Server가상머신으로 이동한다.
dnf -y install bind bind-chroot
위 두 패키지를 설치한다.
gedit /etc/named.conf
11행 - 127.0.0.1 → any
12행 - ::1 → none
19행 - localhost: → any
33행 - yes → no
맨 밑에,
zone "naver.com" IN {
type master;
file "naver.com.db"
allow-update { none;};
}
zone "daum.net" IN {
type master;
file "daum.net.db"
allow-update { none;};
}
위 내용 추가.
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-validation no;
managed-keys-directory "/var/named/dynamic";
geoip-directory "/usr/share/GeoIP";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
zone "naver.com" IN {
type master;
file "naver.com.db";
allow-update { none;};
};
zone "daum.net" IN {
type master;
file "daum.net.db";
allow-update { none;};
};
수정된 파일의 모습.
cd /var/named/
touch naver.com.db daum.net.db
도메인 db파일 생성
각 db 파일에
$TTL 3H
@ SOA @ ROOT. ( 2 1D 1H 1W 1H )
IN NS @
IN A 192.168.111.100
IN MX 10 mail.naver.com.
mail IN A 192.168.111.100
naver.com.db
$TTL 3H
@ SOA @ ROOT. ( 2 1D 1H 1W 1H )
IN NS @
IN A 192.168.111.200
IN MX 10 mail.daum.net.
mail IN A 192.168.111.200
daum.net.db
이렇게 내용을 추가한다.
named-checkconf
named-checkzone naver.com naver.com.db
named-checkzone daum.net daum.net.db
문제가 있는지 체크하는데, named.conf에 문제 발생
빼먹은 ; 재입력.
이제 잘 작동함
systemctl restart named
systemctl enable named
이제 네임서버를 재실행, 재부팅시 부팅 지정
systemctl stop firewalld
systemctl disable firewalld
실습을 위해 방화벽 끄기
nslookup으로 네임서버랑 메일서버 작동확인
이제 4개의 가상머신이 네임서버를 Server의 네임서버를 따르게 만들어야 한다.
[server]
gedit /etc/NetworkManager/system-connections/ens160.nmconnection
dns주소를 192.168.111.100으로 변경
reboot
재부팅하기
[client]
su -c 'gedit /etc/resolv.conf'
nameserver주소 변경하기.
(재부팅하면 다시 위 과정을 거쳐야 함.)
잘 작동
[serverb]
client와 동일하게 진행 (gedit 대신 nano
reboot
재실행하기.
[WinClient]
powershell을 킨다.
netsh interface ip set dns "Ethernet0" static 192.168.111.100
위 코드 입력
꼭 파워셀을 관리자 권한으로 실행하기
잘 설정됨.
메일서버 구현하기
Server로 이동
dnf -y install sendmail-cf dovecot
두 패키지를 설치
gedit /etc/mail/sendmail.cf
85행 - Cwlocalhost → Cwnaver.com
268행 - O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA → O DaemonPortOptions=Port=smtp, Name=MTA
gedit /etc/mail/access
위 파일의 하단에
naver.com RELAY
daum.net RELAY
192.168.111 RELAY
추가
makemap hash /etc/mail/access < /etc/mail/access
지금까지 작업한 내용 적용하기
이제 dovecot을 설정할 차례
gedit /etc/dovecot/dovecot.conf
24행의 주석 풀기
30행의 주석 풀기
33행의 주석 풀기
gedit /etc/dovecot/conf.d/10-ssl.conf
8행의 require → yes
gedit /etc/dovecot/conf.d/10-mail.conf
25행 주석 지우기
121행 주석 지우고, = 뒤에 ‘mail’ 넣기
166행 주석 지우기
lee라는 유저를 만든 후,
systemctl restart sendmail
systemctl enable sendmail
systemctl restart dovecot
systemctl enable devecot
재시작
이제 client 가상머신으로 이동.
메일앱인 에볼루션
환영합니다, 백업에서 복구는 그냥 ‘다음’누르고 넘기기
신상정보에 아까 생성한 사용자 이름 넣기
서버종류를 POP으로 변경하고
서버는 네이버 메일, 사용자이름은 lee로 변경
포트는 995
암호화 방식은 TLS
받기 옵션은 넘기고, 메일 보내기 옵션
SMTP - mail.naver.com - 포트 25 - 암호화없음
계정요약 마무리 확인
보내기받기 클릭, 경고문은 무시하고 계속 허용
아까 생성한 유저의 이름과 비밀번호 입력
키모음에추가 체크는 해제하기.
자신에게 테스트메일 보내기
잘 받아지면 끝.
[server b]
server 가상머신과 동일하게 진행하는데, gedit 대신 nano를 사용한다. 그런데 nano의 행번호는 기본적으로 출력이 안 되는데 ‘nano -c’를 이용해서 행번호를 확인하면서 진행하면 된다.
[WinClient]
https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/52.8.0/win32/ko/
썬더버드 설치하기
건너뛰고 기존 메일 사용하기
아까 생성한 계정을 입력한다.
POP3로 지정하고 완료
주소는 기본값으로 둔 채, 보안 예외 확인하기 클릭
계정이름 우클릭 하고 ‘설정’
보내는 서버 - 이메일 편집
포트 25 - 없음 - 인증 없음
전송을 한 후,
Client 가상머신으로 가면, 아까 윈도우에서 보낸 메일을 확인할 수 있다. (보내기/받기)누르기
라운드큐브 메일서버
웹메일서버 구축을 위한 파일을 다운 받기 위해, 잠시 네임서버를 외부인터넷으로 변경하기
nano /etc/resolv.conf
https://cafe.naver.com/thisislinux/7527
위 링크에서 php, 라운드큐브 파일 다운
다시 네임서버를 내부로
cd 다운로드/
tar xfz php74.tgz
cd php74/
dnf -y install *.rpm
압축 해제 후, 내부의 rpm 파일 전체를 설치한다.
systemctl restart httpd
systemctl enable httpd
systemctl restart mariadb
systemctl enable mariadb
http서버와 db를 재실행, 재부팅시 자동 작동 활성화
tar xfz roundcubemail-1.3.10-complete.tar.gz
이제 라운드큐브 파일을 압축해제
mv roundcubemail-1.3.10 /var/www/html/roundcube
chmod 777 /var/www/html/roundcube/temp/
chmod 777 /var/www/html/roundcube/logs/
위 파일을 ‘/var/www/html/roundcube’ 위치로 이동
그리고 내부 파일에 권한을 수정
그리고 db를 수정한다.
mysql
> CREATE DATABASE emailDB;
> GRANT ALL ON emailDB.* TO 'emailAdmin'@'localhost' IDENTIFIED BY '1234';
# 사용자 이름 emailAdmin, 비밀번호 1234
> FLUSH PRIVILEGES;
# 변경사항 적용
> EXIT
; 꼭 넣기
emailAdmin과 localhost에 ‘’ 꼭 넣기
이제 파이어폭스를 켜서
mail.naver.com/roundcube/installer/
주소를 들어간다.
그러면 인스톨러 페이지가 뜬다.
이부분이 ok가 나오면 된다.
페이지 맨 아래의 next 누르기
원하는 이름으로 지정해주고,
Database Setup 부분으로 간다.
아까 db에 지정했던 계정을 넣어줌
그리고 맨 밑의 create config 버튼 누르기
노란 안내문구의 ‘download’를 클릭
파일을 저장한 후,
mv /root/다운로드/config.inc.php /var/www/html/roundcube/config/
chmod 707 /var/www/html/roundcube/config/config.inc.php
config파일을 roundcube 페이지로 옮기고, 권한을 수정한다.
continue를 누르고 나온 페이지에서, initialize database 클릭
그러면 자동으로 확인이 됨.
SMTP 테스트
lee 계정입력
그리고 check login
로그인 테스트 완료
이제 client 가상머신으로 이동
client 가상머신에서 firefox 들어간 후,
http://mail.naver.com/roundcube/
위 사이트로 이동
lee로 로그인
메일 작성해보기
스스로에게 보낸 메일이 잘 받아지는 것을 확인
에볼루션의 메일앱에서도 똑같이 잘 받아진다.
2mb를 넘어가면 전송이 안 되는 문제가 있다.
이건 php서버를 수정해야 한다.
다시 server가상머신으로 이동한다.
gedit /etc/php.ini
388행에서 30(초)을 300으로
694행에서 8M을 500M으로
846행에서 2M을 500M으로
이처럼 설정하면 최대 500메가까지 업로드가 가능하다.
잘 적용되게 시스템 REBOOT하기.
이제 500MB 다운이 가능
'Linux > Rocky Linux' 카테고리의 다른 글
[Rocky Linux] 12. 웹 서버 설치 및 운영하기 (0) | 2024.12.11 |
---|---|
[Rocky Linux] 11. 데이터베이스 서버 구축 및 운영 (0) | 2024.12.11 |
[Rocky Linux] 9. 네임서버 관리하기 (0) | 2024.12.11 |
[Rocky Linux] 8. 원격지 시스템 관리하기 (0) | 2024.12.11 |
[Rocky Linux] 7. RAID6와 RAID 1+0 / LVM 구성하기 / 쿼터 구현하기 (0) | 2024.11.21 |