네트워크 - 전자우편&FTP

2020. 2. 6. 15:05Security/네트워크

* 전자우편

구성 요소

-사용자 agent

- mail server

- SMTP(simple mail TP)

 

user agent(=mail reader)

- mail message를 읽고 쓰고 전달, 저장 구성하는 등의 역할

- server에 message를 전달하거나 server로부터 수신하는 역할

- ex) Outlook, elm, Eudora,,,

* mail server

mailbox

- 사용자에게 온 message를 저장.

- 초창기 메일 서버는 보낸 사람을 추적할 수 없어서 보안상 문제가 발생했는데 mailbox가 있는 사람만 메일을 보낼 수 있게 설정해서 해결.

 

message queue

- 다른 메일 서버로 전송될 message를 임시로 저장하는 queue.

- user가 보내려는 메일을 server의 queue까지 올리면 mail server가 다른 사람의 mailbox까지 보내 줌.

 

* SMTP

- mail server간에 mail message를 송수신하는 protocol.

- mail을 보낼땐 전부다 smtp를 사용하고 mail box에 있는 메일을 agent로 받아갈땐 post office protocol 사용

- client server간의 mail message는 TCP의 신뢰적인 데이터전송 서비스를 이용한다. (25번 port)

- client는 mail을 보내는 서버, server는 mail을 받는 서버

- 송수신하는 mail server간에는 중간에 어떤 서버를 이용하지 않고 반드시 직접 연결

- <handshaking - message - TCP 연결 종료> 과정으로 전송이며 지속 연결(persistent connection)이다.

 

메일 전송 과정

1) Alice는 UA를 이용 message을 작성하고 제공한 메일 주소로  bob에게 전송 
2) UA는 mail server로 message를 전송. message는 서버의 message queue에 위치.
3) client측 SMTP는 message queue를 확인하고 TCP connection으로 Bob의 mailserver와 연결.
4) TCP connection을 이용해 message를 전송.
5) Bob 측의 mail 서버는 message를 bob의 메일 박스에 저장.
6) Bob는 UA를 이용 message를 가져와서 확인.

 

SMTP와 HTTP와 비교
- HTTP는 pull 방식, SMTP는 push(server간) 방식

- HTTP는 response의 각 object를 각각 캡슐화, SMTP는 여러 object를 하나의 message로 생성

 

mail access protocol

- user agent로 메일을 가지고 올때 사용하는 protocol

- POP, IMAP, HTTP등이 있음. 

 

* FTP(File Transfer Protocol)

- local system에 있는 파일을 원격 host로 송, 수신 할 수 있는 protocol

- cilent-server 모델이며 21번 포트를 사용.

- 일반인이 사용하기엔 어려우며 리소스를 많이 점유

- FTP client는 21번 port를 통해 서버와 control connection을 설정. get명령을 해야 20번 port를 이용

- 접속을 위한 연결과 파일을 받기 위한 연결이 다른 out of band 방식. 

- 이 제어연결을 통해 사용자 계정과 비밀번호를 전송.
- Client는 제어연결을 통해 원격지의 디렉토리 변경과 같은 명령을 전송.
- 서버측은 제어연결을 통해 파일 전송을 위한 명령을 받으면 TCP data connection을 초기화.
- 하나의 파일 전송이 끝나면 data연결은 close하고, 다음 파일 전송을 위해서는 새로운 TCP connection을 생성.

- FTP 서버는 사용자의 status(현재 디렉토리, 인증정보)를 유지한다. 이로인해 서버가 유지 할 수 있는 전체 세션의 수를 상당히 제한.

 

active 모드

- client가 데이터를 수신 받을 임의의 포트를 열고 서버에 알려주면 서버는 20번 port로 client에게 data 전송

- server -> client로 data connection을 시작.

 

passive 모드

- server가 데이터를 송신할 임의의 port를 열고 client에게 알려줘서 client가 임의의 port로 server에 접속

- client -> server로 data connection을 시작.

'Security > 네트워크' 카테고리의 다른 글

패킷의 이해  (0) 2020.02.11
wireshark 기본 사용법  (0) 2020.02.11
네트워크 - application layer(2)  (0) 2020.02.05
네트워크 - application layer(1)  (1) 2020.02.04
네트워크 - 컴퓨터 네트워크와 인터넷  (0) 2020.02.03