Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

파일 전송 시스템(FTP) 본문

운영체제/Linux - CentOs

파일 전송 시스템(FTP)

세레프 2023. 3. 26. 08:14

 서버 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 프로그램으로, 이러한 서비스를 제공받는 프로그램 클라이언트라고 한다. 쉽게 말하면, 서비스를 제공하는 프로그램이 설치되어 있는 운영체제 서버, 서비스를 제공받는 프로그램이 설치되어 있는 운영체제 클라이언트라고 한다.

  1. web: apache, IIS(windows에서만 사용)
  2. mail : sendmail, postfix, qmail
  3. name : BIND
  4. FTP: vsftpd, proftp, wu_ftp
  5. telnet: telnet
  6. SSH : ssh
  7. DB : MySQL, MariaDB
  8. etc : NFS, SAMBA ....

 위의 리스트는 서버 프로그램을 기능별로 구분한 것으로, 해당 프로그램을 개별적으로 운영체제에 다운로드해야 하며, 설치하면 클라이언트에게 해당 기능을 제공할 수 있다.

 

서버 관련 명령어들
yum -y install 프로그램 : 프로그램을 설치하는 명령어

systemctl [ start / stop / restart ] [데몬] : 프로그램을 실행, 정지, 재시작하는 명령어

systemctl 
[ enable / disable] [데몬] : 운영체제를 부팅할 때, 프로그램 활성화, 비활성화 하는 명령어

setenforce [ 0 / 1 ] : SELinux(linux의 자체적으로 가지고 있는 커널기반 방화벽)을 비활성화 / 활성화하는 명령어

 

 

파일 시스템 전송 서버 프로그램(FTP)

 FTP(File Transfer Protocol)서버와 클라이언트 사이에서 파일을 송수신하기 위해 사용되는 서버, 프로토콜로, 클라이언트의 데이터를 서버에 업로드, 다운로드할 수 있는 서비스이다.

 이때, nfs와 Samba와 비슷한 기능을 가지고 있는데, nfs와 Samba는 해당 디렉토리를 마운트하여 사용하는 것으로, 시스템 운용관련 명령어도 사용이 가능하지만, FTP는 시스템을 통해 디렉토리에 접근하는 것이기에, 파일 운용관련 명령어만 사용할 수 있으며, FTP는 질의형식으로 이뤄진다.

 

 FTP의 종류로는  사용자 인증을 통해 사용되는 VSFTP, 익명으로 인증해서 접근하는 Anonymous FTP, 인증하지 않고 접근할 수 있는 TFTP이 있다.

 

 FTP의 port는 2개인데, 데이터 전송을 제어하기 위한 신호를 주고 받는 21번 port와 파일/디렉토리 데이터를 전송할 떄 사용하는 20번 port를 사용한다.

 

VSFTP

 VSFTP는 사용자 인증을 해야 서비스를 사용할 수 있는 사용자 인증 FTP로 사용자 홈디렉토리에서 시작하여, 모든 디렉토리에서 파일시스템을 공유,전송이 가능하다.

 

VSFTP프로그램의 데몬, 환경설정파일

  • 데몬 : vsftpd
  • 환경설정 파일 : /etc/vsftpd/vsftpd.conf
  • VSFTP 홈디렉토리 : 사용자의 홈디렉토리

 

프로그램 설치

  • yum -y install vsftpd* : ftp 서버 설치
  • yum -y install ftp* : ftp 클라이언트 설치

 

방화벽 해제

"FTP"로 파일 시스템 공유하기 위해선 서버 운영체제의 방화벽을 해제할 필요가 있는데, 만약 설정 되어있으면, 방화벽에 FTP 포트가 설정되어 있지 않아서 해당 포트로 서버에 접근이 불가능하게 된다.

  • systemctl stop firewalld : 방화벽을 정지시키는 명령어
  • setenforce 0 : SELinux(linux의 자체적으로 가지고 있는 커널기반 방화벽)을 비활성화하는 명령어

 

VSFTP 프로그램 실행

  • systemctl restart vsftpd : vsftp 서버 프로그램을 재시작하는 명령어

 

VSFTP 서버 접근 및 사용자 인증

  • ftp [IP주소/도메인] : IP주소나 도메인의 ftp서버에 접속하는 명령어

 위의 명령어를 입력하면 사용자를 인증해야 하는데, 접근하는 서버의 계정과 동일하며, 처음의 위치는 로그인한 해당 계정의 홈디렉토리이다.

 이때, 최고관리자인 root계정은 인증에 사용할 수 없다. 이유는 "/etc/vsftpd/ftpusers" 파일과 "/etc/vsftpd/user_list" 파일에 root계정이 적혀있기 때문이다.  "/etc/vsftpd/ftpusers" 파일과 "/etc/vsftpd/user_list" 파일은 사용자 접근 차단 파일로, 해당 파일에 적혀있는 계정은 보안의 목적으로 ftp의 인증에 사용할 수 없도록 막아 둔 것이다.

ftpusers 파일
user_list 파일

ftp클라이언트 프로그램의 명령어

※cd,mkdir,ls와 같은 파일운용관련 명령어는 사용 가능하지만 rm -rf 같은 시스템 운용관련 명령어는 듣지 않는다

cd
[디렉터리명] : 현 디렉터리 위치 변경
dir : 해당 디렉토리에 있는 파일 / 디렉터리 목록 출력

put
 [파일명/디렉터리명] : 파일/디렉터리 업로드 명령어
get [파일명/디렉터리명] : 파일/디렉터리 다운로드 명령어

mput [파일명/디렉터리명1] [파일명/디렉터리명2] : 여러개의 파일/디렉토리 업로드 명령어
mget [파일명/디렉터리명1] [파일명/디렉터리명2] : 여래개의 파일/디렉토리 다운로드 명령어

ascii : 텍스트파일관련 업로드, 다운로드할 수 있는 아스키 파일 모드 전환 명령어
bin : 실행파일관련 업로드, 다운로드할 수 있는 바이너리 모드 전환 명령어

passive : 액티브모드(전송용 포트를 20번을 사용하는 모드) 패시브모드(전송용 포트를 20번이 아닌 다른 포트로 사용하는 모드) 전환 명령어

hash : #으로 진행도를 표시하는 명령어

quit : 종료

put 명령어
get 명령어

 put명령어는 클라이언트의 데이터를 서버에 저장하기에, 클라이언트의 데이터는 ftp를 통해 저장할 때의 사용자 위치에 저장되어 있는 것을 볼 수 있다.

 

VSFTP의 환경 설정 파일 내용 추가

 환경설정파일(/etc/vsftpd/vsftpd.conf)은 vsftp를 운영할 수 있게 하는 설정이 있는 파일로, 파일에 있는 설정 외에도 내용을 추가하여, 추가 설정이 가능하다. 이때, 환경 설정 파일의 내용을 수정했을 경우, "ftp"의 데몬을 재시작 해야 한다.

  • listen_port  : ftp의 컨트롤 포트(21번)를 변경하는 내용으로, 변경된 포트로 클라이언트에 접속하는 방법은 "ftp [IP주소/도메인] [변경된 포트]" 이다.
  • local_max_rate : 다운로드의 최대 속도를 제한하는 내용으로, dos공격을 막기위해서 설정한다.
  • max_clients : 접속가능 클라이언트 접속자 수 제한하는 내용
  • idle_session_timeout : 사용하지 않을 경우, 세션이 자동으로 종료 시간을 설정하는 내용

 

 

 

Anonymous FTP

 VSFTP는 사용자가 로그인을 하면 서버의 거의 파일시스템을 볼 수 있다. 이 점에서 보면 여러사람이 사용하게 되는 경우, 보안이 취약하게 된다. 그래서 우리는 익명의 사용자를 사용하는 것이다.

 Anonymous FTP 홈디렉터리만 사용할 수 있기 때문에, 수많은 사람이 사용하는 경우 VSFTP가 아닌 Anonymous FTP를 사용하게 된다.

 

 AnonymousFTP프로그램은 VSFTP서버 프로그램과 같은 프로그램을 사용하며, 인증할 경우에 사용자 계정이 서버 사용자계정이 아닌 "anonymous"이며, 비밀번호는 아무거나 작성해도 로그인이 가능하지만, 이론상 비밀번호는 e-mail이다. 

  • 데몬 : vsftpd
  • 환경설정 파일 : /etc/vsftpd/vsftpd.conf
  • FTP 공유디렉터리 : /var/ftp/pub 
  • AnonymousFTP 홈 디렉터리 : /var/ftp/pub

 이때, anonymous는 사용자 디렉토리가 없어서 "/var/ftp/pub"디렉토리에서 공유,전송이 진행된다.

 

Anonymous FTP 의 환경 설정 파일 내용 추가

 anonymous에게는 어떠한 권한이 부여되어 있지 않다. 그래서 우리는 홈 디렉터리의 권한 수정과 환경설정파일에서 내용을 수정, 추가함으로써 anonymous에게 권한을 부여할 수 있다. 이때, 환경 설정 파일중 "anon"이 붙어있는 설정은 전부 anomymous 관련 권한 설정이다.

 

  • 디렉토리 생성 권한 설정 

anon_mkdir_write_enable=YES

 

  • 파일 업로드 권한 설정

1) anonymous 홈디렉터리의 권한 설정 ex) chmod 1777 /var/ftp/pub
2) anon_upload_enable=YES

 

  • 파일 다운로드 권한 설정

   anon_world_readable_only=NO  ==> Yes일경우 다운로드 불가능하다.

  • 파일 삭제 권한 설정

   anon_other_write_enable=YES

 

 

 

TFTP

 TFTP는 VSFTP나 Anonymous FTP와 달리 인증을 하지않고 파일 시스템을 전송, 공유할 수 있는  FTP로, 신속하게 파일을 전송하기 원할 때 사용한다. 포트는 69번을 사용하며, UDP기반으로 작동된다.

 TFTP는 인증과정이 없어서 보안에 매우 취약하며, 누구나 쉽게 접근할 수 있다. 그래서 디스크가 없는 OS에서 부팅이 필요한 데이터를 가져올 때 사용한다. 

 

TFTP프로그램의 데몬, 공유디렉터리

  • 데몬 : tftp
  • 환경 설정 파일 : /etc/xinetd.d/tftp
  • TFTP 홈 디렉터리 : /var/lib/tftpboot

 

프로그램 설치

  •  yum -y install xinetd* : 슈퍼데몬 설치 명령어
  •  yum -y install tftp* : TFTP 서버와 클라이언트 프로그램 설치 명령어

 

TFTP 환경설정 파일 수정

 TFTP서버는 "/etc/xinetd.d"디렉토리에 서버의 환경설정 파일이 있다. 이는 Superdaemon에 의해 제어된다는 것을 알 수 있다.

 

  1. service 서비스명 : service 속성으로 설정하고자하는 서비스명 
  2. flags : flags 사용 여부 (REUSE : 종료 후 일정시간에 재접속시, 재사용) 
  3. socket_type : socket 타입 설정 (stream = tcp, dgram= udp)
  4. wait : 스레드 사용 종류(yes = 단일 스레드, no = 다중 스레드)
  5. user : 데몬 실행 사용자
  6. server : Super deamon에 의해 실행되는 서버프로그램
  7. server_args : 데몬이 실행될 때 참고되는 파일/ 디렉토리로 홈디렉토리에 해당
  8. log_on_failure : 접속 실패시의 기록될 값
  9. disable : 서비스 비활성화(yes)/ 활성화(no) 여부

 

SuperDaemon 실행 및 TFTP 클라이언트 진입

 TFTP서버는 Standalone형식으로 실행할 수도 있지만, Superdaemon형식으로도 실행 할 수 있다. 

  • systemctl start tftp : TFTP프로그램을 활성화하는 명령어
  • systemctl start xinetd : Superdaemon을 활성화하는 명령어
  • tftp [IP주소/도메인] : IP주소나 도메인에 활성화 중인 tftp 서버에 접속하는 명령어

 위의 사진처럼 홈디렉토리에 있는 파일과 디렉토리를 확인 할 수 없다.


알드라이브

 알드라이브란 윈도우에서 FTP를 편하게 사용하기 위해 사용하는 프로그램이다.

 

알드라이브 | 공식 다운로드

편리한 파일 전송 프로그램 알드라이브입니다. WebDAV, S3, Ucloud Biz 등 다양한 파일 전송을 지원합니다.

www.altools.co.kr

 위에 호스트 IP와 아이디 비밀번호를 작성하고 로그인하면 다음과 같이 ftp를 사용할 수 있도록 홈디렉터리 창이 나타난다.

Comments