티스토리 뷰

FTP/Linux

Linux FTP

뵤루 2022. 3. 15. 09:30

FTP (File Transfer Protocol)

- 대용량 파일 전송 (Upload, Download)

 

Linux

- vsftpd or proftpd

- 인증 및 제어

  - Protocol : TCP

  - Port : 21

- data 전송

  - Active : Port 20

    Client Data 전송포트를 결정

    Client Port를 모두 Open해야함. 근데 과연 어떤 회사가 방화벽 포트를 다 열어줄까

    그래서 FTP Program만 사용 가능하도록 Port를 설정한다

  - Passive

    Server가 Data 전송포트를 결정, 대부분 이 방식을 사용

    방화벽에서 Data 전송포트만 열어주면 된다

 

Well Known Port

TCP/UDP의 포트 목록

0번 ~ 1023번 : 잘 알려진 포트 (well-known port)

1024번 ~ 49151번 : 등록된 포트 (registered port)

49152번 ~ 65535번 : 동적 포트 (dynamic port)

 

설치 및 설정

- yum install -y vsftpd

- /etc/vsftpd/vsftpd.conf

 

/etc/vsftpd/vsftpd.conf 옵션 (주석처리는 사용하지 않음)

#anonymous_enable=YES : 익명 사용자 허용 / 거부

local_enable=YES : 로컬 사용자 (/etc/passwd 에 소속) 로그온 허용 / 거부

write_enable=YES : 파일 시스템에 데이터 쓰기 허용 / 거부

local_umask=022 : 퍼미션

#anon_upload_enable=YES : 익명 사용자의 파일 생성 허용 / 거부

#anon_mkdir_write_enable=YES : 익명 사용자의 디렉터리 생성 허용 / 거부

dirmessage_enable=YES : ftp 접속자가 디렉터리 이동 시 알림메세지로 설정된 파일 내용 출력

xferlog_enable=YES : 사용자의 업로드, 다운로드 내역을 로그 파일(/var/log/xferlog)로 저장

#connect_from_port_20=YES : 데이터 전송 포트 설정

#chown_uploads=YES : 익명 사용자가 업로드한 파일의 퍼미션 자동 변경

#chown_username=whoever : chown_uploads 옵션이 활성화 되어있을 경우 변경할 사용자명

xferlog_file=/var/log/xferlog : xferlog_enable 옵션이 활성화 되어있을 경우 저장할 경로 지정

xferlog_std_format=YES : xferlog의 표준 포맷 사용

#idle_session_timeout=600 : idle 상태가 이어질 때 세션을 종료할 시간

#data_connection_timeout=120 : 파일 업로드, 다운로드 시 연결 유지 시간. 시간 초과시 업로드, 다운로드 취소. 주석처리되면 기본 300초

#nopriv_user=ftpsecure : 익명 접속시 사용할 유저명

#async_abor_enable=YES : async ABOR 사용 허용 / 거부 (일부 ftp클라이언트에서 파일 전송을 취소해도 취소되지 않을 경우 사용)

#ascii_upload_enable=YES : ASCII 파일 업로드 허용 / 거부

#ascii_download_enable=YES : ASCII 파일 다운로드 허용 / 거부

ftpd_banner=Welcome ~ : ftp 접속 성공 시 출력하는 배너 (banner_file=으로 수정해서 파일로 지정 가능)

#deny_email_enable=YES : 익명 접속 시 패스워드에 입력하는 이메일 중 특정 이메일 거부

#banned_email_file=/etc/vsftpd/banned_emails : deny_email_enable 옵션이 활성화 되었을 때 거부할 이메일 목록

#chroot_local_user=YES : 사용자 접속 시 자신의 홈 디렉터리를 / 로 인식하게 하여 하위로만 이동 가능

chroot_list_enable=YES : chroot에서 제외할 사용자 목록 여부

chroot_list_file=/etc/vsftpd/chroot_list : chroot_list_enable이 활성화 되었을 경우 해당 목록 파일 지정

#ls_recurse_enable=YES : 접속자에게 ls -R 명령어 사용 허가 / 거부 (부하가 많아짐)

listen=NO : standalone 모드는 YES, xinetd모드는 NO

listen_ipv6=YES : IPv6 응답 허용 / 거부 (listen과 함께 활성화되면 vsftpd 실행에 오류가 생긴다)

pam_service_name=vsftpd : 사용자 PAM 인증 시 사용할 설정 파일 이름 지정 (vi etc/pam.d/vsftpd)

userlist_enable=YES : /etc/vsftpd/user_list에 지정된 사용자 접속 거부

tcp_wrappers=YES : 특정 IP 또는 대역에 대한 접근 제어 사용 여부 (/etc/hosts.allow, /etc/hosts.deny 사용)

allow_writeable_chroot : chroot 적용 사용자의 쓰기 권한 허용 여부

pasv_enable=YES : 패시브 모드 사용 / 사용안함

pasv_min_port=60000 : 패시브 모드 사용 시 최소 포트 값

pasv_max_port=60100 : 패시브 모드 사용 시 최대 포트 값

 

 

ftp에 관련된 디렉터리를 따로 생성하여 관리해도 된다!

 

여기서는 배너를 /data/ftp, chroot_list를 /data/chroot, xferlog를 /data/xferlog에서 관리하기로 설정했다

 

xferlog_file=/data/xferlog

banner_file=/data/ftp

chroot_list_file=/data/chroot

 

이런 식으로 변경해주면 된다

 

 

필요에 따라 /etc/hosts.allow와 /etc/hosts.deny에서 접근을 허용하거나 제한할 IP를 설정할 수도 있다

요 차이점에 대해선 Filezilla를 설명 (맨 아래)할 때 좀더 보기 쉽게 알 수 있다!

 

 

설정이 다 되었으면 vsftpd를 켜준다

 

 

방화벽 포트도 설정해준다

일정 대역의 포트를 지정해주려면 아래처럼 [최소포트-최대포트]형식으로 적어주면 된다

 

 

permanent 명령어는 원본파일을 직접 수정해주는 명령어이므로 reload를 꼭 해주자!

 

ftp에 접속할 유저 아이디와 패스워드는 꼭 설정해주자

이렇게 하면 서버쪽의 준비는 끝난다

client를 준비하자

 

일단 윈도우 방화벽 설정부터 해주어야 한다

 

 

방화벽 고급 설정의 인바운드 규칙을 우클릭해 새 규칙을 만들어준다

 

 

규칙 종류는 프로그램으로 선택!

 

 

C:/Windows/System32 폴더에서 ftp 프로그램을 찾아 선택해준다

 

 

연결 허용으로 체크해주고 규칙 적용은 모두에게 해당되도록 해주자

 

 

이름을 정해준다

설명은 자유롭게 적어주면 된다

모두 적어주고 마침을 누르면 

 

 

이렇게 적용이 된다

이제 client에서 ftp를 이용할 수 있다!

 

 

네트워크가 연결된 cmd창을 하나 준비한다

 

 

ftp [접속할 IP]를 입력하면 준비해둔 배너가 뜨며 로그인을 할 수 있게 된다

만들어둔 계정으로 로그인하면 ftp를 이용할 수 있게 된다

 

 

윈도우에서도 리눅스와 같은 명령어를 이용해 디렉터리나 파일을 확인하고, 경로를 이동할 수도 있다

리눅스에서 윈도우로 파일을 가져오려면 get [가져올 파일] 명령어를 사용한다

이름을 수정할 수도 있다

 

 

윈도우에서 리눅스로 파일을 보낼 때는 put [보낼 파일] 명령어를 사용한다

 

 

quit를 입력하면 친절하게 인사도 해주며 내보내준다

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
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
글 보관함