본문 바로가기

DevOps/Linux

[Linux] Linux 파일 전송 프로토콜

ftp 파일 전송 프로토콜

# 대용량 파일을 전달할 때 쓰는 프로토콜

# 20, 21 평문전송 프로토콜


명령 채널 데이터 채널

ACTIVE

# 클라이언트 서버 21번 포트에 연결한 후 서버 쪽(20번 포트)에서 능동적으로 클라이언트의 불특정 포트에 접속 시도하는 모드

# 클라이언트가 공유기 환경인 경우 FTP 사용이 힘들다 

 

PASSIVE

# 클라이언트가 서버 쪽 21번 포트에 연결 후 패시브 모드를 사용하겠다고 알린 후 동작하는 모드, 서버는 자신의 포트 중 임의의 포트를 열고 대기하고 클라이언트가 접속한다.

 

ACTIVE

# ftp 클라이언트에서 ftp 서버로 접속함

# port5150(임의의 포트) 번을 이용하라고 21번에서 알려줌

# 이후 data 전달 때 21번은 명령채널 20번은 데이터 체널

# 20번 포트와 5151 포트와 데이터를 주고받음

# 이것이 액티브 모드

# 서버 -> 클라이언트로 데이터 전송이 이루어짐 서버는 20, 21번 포티만 이용하므로 포트 낭비가 없다.

 

PAVSSIVE

# 패시브 모드에서는 클라이언트 임의의 포트에서 서버의 임의의 포트와 연결되어서 데이터 채널을 생성하고 데이터 채널로 파일을 주고받고 한다

# 공유기 환경에서도 전송이 되는 장점이 있다.

# 단점은 접속하는 클라이언트마다 포트를 열기 때문에 (클라이언트 하나당 포트 하나) 포트 낭비가 심하다.

# 클라이언트에서 서버로 접속하기에 클라이언트 아이피가 필요 없다. 그렇기에 공유기 환경에서도 문제없이 사용을 할 수 있다.

 

FTP 계정

# 서버에 등록되어 있는 계정 (리눅스 계정) 보통 루트는 차단함.

# anonymous (익명 계정)


vsftpd 이용하기

# ftp 서비스 중 대표적인 서비스중 하나이다.

# 1번 서버에다 ftp 서버를 설치해보자

yum -y install vsftpd
cd /var/ftp
ls
pub
cd pub
echo "hello world" > 1.txt

# vsftpd를 설치하면 pub 폴더가 생성이 된다.

# 1.txt 파일을 생성을 해보자

 

systemctl restart vsftpd
systemctl enable vsftpd

 

firewall-cmd --permanent --add-serivce=ftp
firewall-cmd --reload

 

# 2번 client 서버에서

yum -y install ftp
echo "hi" > 2.txt

# 서버 2에서 이후 디렉터리 이동 없이 2.txt 파일 생성

 

ftp 192.168.56.20

# ftp 서버 아이피에 접속한다.

anonymous / 엔터

# 익명 계정으로 로그인이 된다.

# 익명 계정은 거의 권한이 없다. 그렇게 공유되는 디렉터리는 pub 디렉터리뿐이다.

 

cd pub
ls
227 Entering Passive Mode (192,168,56,20,172,95).
150 Here comes the directory listing.
-rw-r--r--    1 0        0              12 Aug 24 07:19 1.txt
226 Directory send OK.

# 1.txt가 존재하는 것을 볼 수 있다.

# 공유하고 있는 파일을 다운로드하여 보자.

get 1.txt # 다운로드
put 2.txt # 업로드

# 해당 명령어를 실행하게 되면 다운로드는 실행되지만 업로드는 Permission denied가 된다.

# 익명 계정이기에 다운로드인 get 명령어는 허용되지만 업로드인 put은 허용이 되지 않는다.

 

passive
passive mode off

# passive를 입력하게 되면 passive on off 가 이루어진다.

'DevOps > Linux' 카테고리의 다른 글

[Linux] Linux NFS  (0) 2021.08.25
[Linux] Linux ftp실습 (FileZilla, Wordpress)  (0) 2021.08.25
[Linux] XE를 이용하여 웹서버 구축하기  (0) 2021.08.25
[Linux] Linux DB서버 구축하기  (0) 2021.08.24
[Linux] SELinux  (0) 2021.08.24