개발공부/컴퓨터시스템관리

[컴퓨터시스템관리] 12주차 실습일지

sohee! 2021. 5. 24. 22:43

● 실습 과제 결과

< Server(b) 에 메일 서버를 추가로 구축하여, 이메일을 주고 받아 보자. >

• 호스트 이름 / 메일 서버 주소 : mail.it.ac.kr

• 사용자 계정 : soo

 

 peng@cs.ac.kr -> soo@it.ac.kr

 

 

  soo@it.ac.kr -> peng@cs.ac.kr

 

 

● 새로 배운 내용

0. 원격접속 구축하기 - openssh

▶ 원격접속 사용자 계정 생성

server에는 linux 계정, server(b)에는 linux-b 계정 추가 (adduser 계정이름)

 

▶ openssh 설치 및 설정

ifconfig 

-> server(b) IP 주소 : 192.168.234.129

-> server IP 주소 : 192.168.234.128

 

Microsoft Store 에서 Windows Terminal 설치

 

1. Mail Server

 Email 의 송수신에서 사용되는 프로토콜

- Email : 인터넷을 통해 사용자 A의 컴퓨터에서 사용자 B의 컴퓨터로 전송 

  naver, daum, gmail 등 여러 메일 서비스 존재

  내부에서 몇 가지 서버이자 프로토콜 존재

  ① 네임 서버 : 어떤 웹사이트에 접속, 웹서비스를 사용할 때 반드시 한 번은 사용해야 함. IP 주소를 알아야 하기 때문

  ② SMTP : 텍스트 정보를 보내는 서버 (메일을 보는 서버)

  ③ POP3 : 메일을 받는 서버 

 

• SMTP, Simple Mail Transfer Protocol

      클라이언트가 메일을 보내거나, 메일 서버끼리 메일을 주고 받을 때

• POP3, Post Office Protocol

     메일 서버에 도착되어 있는 메일을 클라이언트로 가져올 때 (서버에서 로컬 장치로 다운로드)

• IMAP, Internet Mail Access Protocol

     POP3 와 유사, 중앙 서버에서 동기화

     모든 장치에서 동일한 이메일 확인 가능

 

-> POP3는 주기적인 간격마다 메일을 받아옴 (실시간으로 X), 요청을 해야 메일을 받을 수 있음.

               메일 서버의 메일 내용은 삭제됨. (모든 장치에서 이메일을 확인하기 어려움)

    IMAP는 실시간으로 동기화되어서 메일 서버에 메일이 도착하면 바로 Client에 다운로드 됨.

               메일을 복사해옴. 메일 서버에 메일 내용이 남아있음. 

               ㄴ> 첨부파일의 용량이 크다면 메일 서버 입장에서 좋은 방법 아님 (저장공간 부담)

 

보내는사람 (kim@daum.net), 받는사람 (lee@naver.com), 제목, 내용, 첨부파일의 내용을 Client에서 작성해서 메일을 보내려고 함. -> 메일 서버 1으로, 메일 서버에서는 받는 사람을 찾고 naver.com의 메일 서버를 알기 위해 네임 서버에게 IP주소를 물어봄. -> 그 주소로 인터넷을 통해 메일 서버2로 도달, 이 상태에서는 PC2의 사용자가 메일이 왔는지 모름 -> 메일 서버에 있는 메일 내용을 내 컴퓨터로 가져오는 것이 POP3 

 

Sendmail : SMTP 프로토콜을 사용하는 가장 대표적인 패키지 

• 인터넷에서 메일을 전송하기 위해 사용되는 패키지

• MTA, Mail Transfer Agent 

• SMTP, Simple Mail Transport Protocol (25번 포트 사용)

메일 클라이언트1(MUA : Mail User Agent)에서 메일을 보냄 

센드메일(MTA)로 메일이 전송 -> 메일 큐에 메일 정보 저장 -> MDA(Mail Delivery Agent)를 통해서 인터넷에 보냄. -> 메일 서버 2에 센드 메일(MTP)로 전송 -> 받은 메일은 MDA를 통해 메일박스에 저장. -> 저장하고 있는 것을 클라이언트 2에 보낼 때 MRA(Mail Retrival Agent)를 통해 보냄. (보내는 방식 두 가지 : POP3와 IMAP)

 

server(b)를 DNA로, server를 Mail server로 server에 Client / Client에 evolution이라는 메일 프로그램을 이용해서 메일을 주고받는 실습 진행 

cs.ac.kr -> mail.cs.ac.kr (메일 주소)

 

1. Mail Server 구축하기 실습

(1) server(b)를 DNS Server로 구축하기 

 

apt install bind9 bind9utils

 vi /etc/bind/named.conf.options
vi /etc/bind/named.conf.local
vi /etc/bind/cs.ac.kr.db

named-checkconf

named-checkzone cs.ac.kr /etc/bind/cs.ac.kr.db

를 통해 문법 체크

 

vi /etc/resolv.conf
nslookup을 통해 확인 

 

(2) server를 Mail Server로 구축하기

apt install sendmail

 

<서버 이름 변경> 

vi /etc/hostname -> server 지우고 mail.cs.ac.kr 입력

vi /etc/hosts

 

vi /etc/mail/local-host-names

vi /etc/resolv.conf -> nameserver 192.168.234.129 입력

이름 변경 완료 
vi /etc/mail/sendmail.cf 에서 set number 후 98행, 269, 270행 수정 

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

systemctl restart sendmail

systemctl enable sendmail

 

apt install dovecot-pop3d

vi /etc/dovecot/dovecot.conf -> 30행, 33행, 34행 수정
vi /etc/dovecot/conf.d/10-mail.conf -> 121행, 166행 수정

 

(3) Server - sendmail 테스트

peng 계정 생성

자기자신 한테 메일 보내기, 내용 없이 제목만 보냄.

peng이라는 계정이 메일을 받았는지 확인

메일 저장소에 저장이 됨. 
vi mail.txt
메일이 보내짐.

 

(3) Client - Evolution 테스트

▶ Evolution 설치

 

▶ DNS 서버 변경 

네트워크 > 설정

▶ Evolution 설정

New 버튼을 통해 메일 보내기 가능 

오류가 뜬다면, 

Edit - account - peng@cs.ac.kr

 

Receiving Email/Sending Email에서 No encryption으로 변경 

 

 

Send/Receive를 누르면 메일을 받을 수 있음. 

 

● 문제 발생 및 해결 과정

오류 1)

server(b)를 초기화 한 후 실행했는데 다음과 같은 오류창이 떠서 'Take Ownership'을 눌렀더니,

가상머신을 여는데 오류가 발생했다는 메시지가 뜨면서 실행되지 않았다. 내 호스트 컴퓨터에서 가상머신이 사용되고 있는 것 같았다. 

 

 

Linux-server(b)

검색을 통해 알아보니 가상 머신 서비스가 비정상적으로 종료되었을 때 나타나는 오류 메시지라고 한다. 아래 링크에서 제시해준 방법으로  .Ick 라는 폴더들을 삭제해주니 문제가 해결된다. 이 .Ick 폴더들은 현재 서비스되고 있는 가상머신과 관련된 임시 파일이라고 한다. 

 

오류 2)

apt install net-tools를 입력했는데 다음과 같이 Waiting for cache lock: Could not get /var/lib/dpkg/lock-frontend. 라는 오류가 무한 반복되어 설치되지 않았다. 잠시 기다려보았는데도 계속 반복되길래 Ctrl+c를 통해 종료한 후 오류에 관해 알아보았다. 검색해보니 파일에 lock이 걸려 잠긴 해당 캐시 파일을 삭제하면 해결된다고 한다. 

rm /var/lib/apt/lists/lock 
root@server:~# rm /var/cache/apt/archives/lock 
root@server:~# rm /var/lib/dpkg/lock* 

 

해결 완료

오류 3)

systemctl status bind9 실행 시 오류 발생 

 

mail.it.ac.kr 에서 뒤에 .을 붙이지 않아 발생했던 오류

 

오류 4)

peng과 soo 모두 자신에게 보내는 메일은 정상적으로 전송되었는데, peng -> soo로 보내는 것은오류 메일이 반환되었으며 soo -> peng은 아예 메일이 도착하지 않음.

/etc/mail/access 에서  cs.ac.kr <tab> RELAY 를 추가 + vi /etc/resolv.conf 에서 DNS 서버 주소가 자꾸 바뀌어서 다시 설정해주었더니 해결

 

 참고할 만한 내용

오류 해결에 참고한 링크

 

<오류1>

https://jootc.com/p/20180411807

 

VMware This virtual machine appears to be in use 에러 해결 - JooTC

This virtual machine appears to be in use 문제 VM 이미지 파일이 있는 위치(기본 경로는 대부분 문서에 있습니다)에 .lck 폴더가 있습니다. 현재 서비스되고 있는 가상머신과 관련된 임시 파일이므로 이를

jootc.com

 

<오류2>

https://writingdeveloper.blog/323

 

우분투 Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend 오류

오류 내용 : 콘솔에서 APT 업데이트 시도 시 'Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend' 문구가 무한 반복되며 업데이트가 되지 않음 사용 명령어 : apt update && apt upgrade..

writingdeveloper.blog

 

● 회고

좋았던 점(+) 

직접 메일 서버를 구축하고 메일을 주고 받는 것을 확인할 수 있었다. 눈으로 결과가 딱 보이는 실습이어서 확 와닿았고 메일을 주고받고 하는 과정이 신기했다. 실습을 할 때 실습 영상에서의 IP 주소와 내 IP 주소가 다르다보니 자꾸 기억이 안나서 어디서 무슨 IP 주소를 입력해야하는지 헷갈렸는데, 실습 과제를 수행하면서 더 확실히 알 수 있어서 좋았다.

 

아쉬웠던 점(-) 

이번 과제에서 오류를 해결하느라 처음부터 다시 초기화만 2번 하고, 계속 어디서 오류가 났을까 고민하고 비교해보느라 시간이 정말 오래걸렸다. 거의 3일동안 이 과제만 붙잡고 있었던 것 같다. 결국 교수님께 질문해서 해결했는데, 생각보다 너무 간단한 부분에서 실수했던 거라 너무 아쉽고 크게 어려운 내용도 아닌데도 불구하고 시간을 너무 날린 것 같아서 슬펐다. 그래도 최종적으로는 과제에 성공해서 뿌듯했다. 그래도 여러 번 반복해서 그런지 메일 서버에 관한 내용은 확실히 공부하게 된 것 같아서 좋다.

 

새로 알게된 점(!)

Email을 주고 받는데 관련한 서버, 프로토콜 등에 관해 자세히 배올 수 있는 시간이었다. 실습 과정에서 어려움이 있기는 했지만 학교 메일인 @sungshin.ac.kr 처럼 메일 주소를 내가 변경할 수 있다는 점을 새로 알게되었고, 실습할 수 있어서 재미있었던 수업이었다. 

+ 처음에 실습 영상을 볼 때는 peng이 뭔가 하고 의아했는데 실습 과제물까지 하고 보니 peng soo가 되어서 펭수라는 의미를 알고 소소하게 재미있는 요소라고 생각이 들었다.