본문 바로가기
카테고리 없음

[Linux] FTP 구축(vsftpd) & 윈도우 cmd로 FTP 접속 ②

by 떵해이 2020. 12. 29.
300x250

○ FTP 구축 (서버쪽)

이전 글에서 미리 언급하였듯이 서버쪽에 FTP를 구축하고 FTP를 사용하는 쪽도

FTP 접속 프로그램 설치가 필요합니다.

 

① 먼저 vsftpd 패키지 확인 & 설치

※ vsftpd (Very Secure FTP server Daemon의 약자)

 

# rpm -qa | grep vsftpd 명령으로 vsftpd 패키지 확인

 

 

# yum -y install vsftpd 명령으로 vsftpd 패키지 설치

Complete! 문구가 뜨면 패키지 설치 성공

 

 

② 방화벽 해제 & 서비스 추가

 

# firewall-cmd --permanent --add-port={20,21}/tcp 명령으로 20, 21포트 tcp로 추가

# firewall-cmd --permanent --add-service=ftp 명령으로 ftp서비스 추가

# firewall-cmd --reload 명령으로 설정 적용

 

 

③ vsftpd 서비스 가동 & 확인

 

# systemctl start vsftpd 명령으로 vsftpd 서비스 시작

# systemctl enable vsftpd.service 명령으로 vsftpd 서비스 부팅 시 자동으로 시작

# systemctl status vsftpd 명령으로 vsftpd 서비스 상태 확인

 

 

# netstat -nat 명령을 통해 FTP 전송하는데 사용되는 21번 포트가 열려있는 것을 확인

(grep 명령을 함께 사용하지 않고 전체적으로 어떤 포트가 LISTEN 상태인지 보면 좋습니다.)

 

 

# netstat -natp | grep ftp 명령으로 FTP관련 포트 21번을 확인하셔도 됩니다.

 

 

이렇게 하시면 서버쪽 FTP 서비스는 구축이 완료되었습니다.

이제 Client쪽에서 프로그램을 이용하여 접속하면 됩니다.

그전에 FTP 서버에서 여러가지 설정을 한번 해보도록 하겠습니다.

 

○ FTP 서버 설정 파일 (/etc/vsftpd/vsftpd.conf)

일단 설정 파일에 들어가서 여러가지 중요한 설정들만 알아보도록 하겠습니다.

다음 글에서 설정 파일에 대한 것과 설정 파일에 부가적 옵션들에 대해 알아보도록 하겠습니다.

 

# vi /etc/vsftpd/vsftpd.conf

 

 

# :set nu 명령으로 줄 번호 생성

설정 파일이 조금씩 번호 차이가 있을 수 있지만 대부분 근처 번호에 있습니다.

 

▷ 12번 : anonymous_ebable=YES

익명의 사용자가 접근할 수 있는지 설정 여부 (상황에 따라 다르게 사용)

예를 간단히 들어 누구나 파일을 받게 해주고 싶으면 YES (단, 이 설정시 업로드는 불가능하게 해야함)

                       아는 사람만 받아야 하면 NO

 

보안을 위해서라면 NO로 하는게 좋습니다. (공부할 때 익명으로 접속해보기 위해서 YES)

 

16번 : local_enable=YES

관리자 외 서버를 사용하는 로컬 계정들이 접근할 수 있는지 설정 여부

이 설정이 YES로 되어 있으면 서버에 만든 (/etc/passwd에 등록된) 계정이 접속할 수 있습니다.

 

▷ 19번 : write_enable=YES

Client가 우리 서버에 쓰기(수정)을 허용할 것인지 설정 여부

다운을 받기만 할 것인가? NO, 업로드도 가능하게 할 것인가? YES 이런 느낌 입니다.

 

29번 : #anon_upload_enable=YES

익명의 사용자가 업로드가 가능한 디렉토리에서 업로드를 할 수 있도록 허용할 것인지 설정 여부

보안을 위해서라도 익명 사용자가 업로드를 허용하지 않는 것이 일반적입니다.

 

33번 : # anon_mkdir_write_enable=YES

익명의 사용자가 쓰기가 가능한 디렉토리 내에서 디렉토리를 생성하는 것을 허용할 것인지 설정 여부

29번과 마찬가지로 보안을 위해서 익명 사용자에게 허용하지 않는 것이 일반적입니다.

 

자세한 설정들과 또 중요한 부가 옵션 설정들은 내용이 많기 때문에 다음 글에서 알아보도록 하겠습니다.

 

○ 윈도우 cmd -> FTP 접속

당연히 FTP서버에 접속하려면 서버에서 FTP 서비스를 구동 중이여야 합니다.

# systemctl start vsftpd 명령을 통해 서비스 시작

# systemctl enable vsftpd 명령을 통해 서비스 상태 확인

 

그런 다음 FTP 서버의 IP를 알아야 합니다.

# ifconfig

# ip a

# hostname -I 이 3가지 명령 중 원하시는 명령을 사용하여 IP를 확인

제가 사용하는 FTP 서버(리눅스) IP는 10.10.10.136

 

 

이제 윈도우에서 1. cmd를 통한 접속  2. 파일 탐색기를 통한 접속

2가지 방법을 시도해보도록 하겠습니다.

윈도우에서 프로그램을 사용하여 접속하는 방법은 목차④를 참조하시면 됩니다.

 

FTP 서버 설정파일은 제일 기본 설정 그대로 두고 해보도록 하겠습니다.

다음 글에서 설정 파일에 대해 알아본 뒤에 설정하도록 하겠습니다.

 

접속 후 테스트를 하기 위해 로컬 계정을 FTP서버에 만들어 놓고 그 홈 디렉토리에 파일을 하나 만들어보겠습니다.

# useradd mong 계정 생성

# passwd mong 비밀번호 2번 입력

# cd /home/mong mong계정의 홈 디렉토리로 이동

 

 

파일 이동 후 # vi ftptest 명령으로 ftptest를 만들어보도록 하겠습니다.

 

파일 안에 # ftp success 라는 문구를 적고 # :wq 저장하고 나옵니다.

 

● cmd를 통한 접속

 

# 윈도우 키 + R 눌러 실행창에서 # cmd 를 입력하고 실행

 

 

② cmd창에서 # ftp를 입력

# open [FTP서버 IP] [포트 번호] 를 입력

# open 10.10.10.136 21 나중에 보안을 위해 포트 번호를 바꾸면 다른 포트 번호 입력하면 됨

포트 번호 미 입력 시 default(기본)포트 Command 포트 21로 접속됨

# ftpuser 아까 만든 계정으로 접속

비밀번호도 입력

 

 

# dir 명령으로 현재 디렉토리의 내용을 볼 수 있습니다.

지금 ftpuser 계정으로 들어왔기 때문에 이 디렉토리는 ftpuser의 홈 디렉토리 입니다.

# pwd 명령으로 현재 디렉토리 확인 하실 수 있습니다.

 

위에서 ftptest를 만들어 놓은 것을 확인하고 접속이 잘 된것을 확인 할 수 있습니다.

 

 

● cmd에서 ftp접속시 사용하는 기본 명령어들

 

dir ftp 현재 디렉토리 내용 보기
!dir 로컬 컴퓨터(윈도우)에 디렉토리 내용 보기
lcd 로컬 컴퓨터(윈도우)에서 디렉토리 이동
cd FTP 서버상에서 디렉토리 이동
pwd 현재 디렉토리 확인
put 파일 업로드할 때 사용    # put [업로드 할 로컬 파일명] [업로드 시킬 때 저장 파일명]
mput 파일 여러개 업로드할 때 사용
get 파일 다운로드할 때 사용    # get [다운로드 할 파일명] [다운로드 시 저장할 파일명]
mget 파일 여러개 다운할 때 사용
open FTP 서버 IP를 통해 FTP 접속
close ftp 접속중인 서버 연결을 끊고 ftp 명령어 모드로 돌아감
quit(bye) ftp 접속 종료
mkdir ftp 서버 해당 위치에 디렉토리 생성    # mkdir [폴더명]
!mkdir 로컬 컴퓨터(윈도우)에 폴더 생성
rmdir ftp 서버 해당 위치에 디렉토리 삭제    # rmdir [폴더명]
rename ftp 서버 파일 이름 변경
delete ftp 서버 파일 삭제
mdelete ftp 서버 복수개의 파일 삭제
help 명령어 전체 보기
? # ? [명령어] 입력하면 그 해당 명령어의 대해 도움말을 볼 수 있다.
status 현 설정 상태를 볼 수 있음
hash 파일 전송 상태를 # 문자를 통해서 볼 수 있다.
bi 바이너리 전송 모드
as 아스키 전송 모드

 

※ 파일을 전송 할 때 전송 모드를 변경해야 합니다.

전송 모드는 일반 txt파일을 전송할 때 : ascii모드로 전송

   실행 파일 또는 압축 파일 전송할 때 : binary모드로 전송

 

# bi 또는 # binary 명령을 입력하여 binary모드로 변경 가능

# as 또는 # ascii 명령을 입력하여 ascii모드로 변경 가능

 

 

이 바로 다음 글에서 cmd로 파일 업로드/다운 해보고 탐색기로도 접속을 해보도록 하겠습니다.

반응형

댓글