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 |