FTP (File Transfer Protocol)
- FTP란, File Transfer Protocol의 약자로 파일을 전송하는 통신규약이다.
- FTP 서버에 파일들을 업로드, 다운로드 할 수 있도록 해주는 프로토콜이다.
- Client PC 와 Host PC 간 파일을 송수신 하기 위해 사용 된다.
1. Active Mode
- 서버가 클라이언트에 접속하는 방식
- 데이터 전송포트를 Client가 결정함.
- 서버가 Client로 데이터 전송 시 방화벽 문제로 인하여 데이터 전송 불가
- Client의 방화벽을 모두 Open 할 수는 없는 현실적인 문제에 직면함
- App 즉 FTP 프로그램에 대해서만 방화벽을 Open
우선 Centos7 에 vsftpd 패키지를 설치 한다.
yum install 로 설치 후 ftp 서버 관리를 위한 디렉토리를 최상위 밑에 만들어주자.
디렉토리 생성 후 list 파일과 로그인 경고 banner 파일을 생성한다.
vi를 통해 vsftpd 의 설정 파일을 수정해준다.
:set nu 으로 넘버링 후 진행 한다.
vi /etc/vsftpd/vsftpd.conf 설정 파일 수정 해야 할 내용
12 # anonymous_enable=YES
16 local_enable=YES
19 write_enable=YES
23 local_umask=022
29 # anon_upload_enable=YES
33 # anon_mkdir_write_enable=YES
40 xferlog_enable=YES --> 로그인 정보는 기록 안 됨
43 connect_from_port_20
48 chown_uploads=YES --> 주석 해제
53 xferlog_file=/ftp/xferlog --> 주석 해제
87 banner_file=/ftp/ftp --> 여기엔 경고 메시지 써야 함 필자는 파일을 생성 했기 때문에 파일 경로를 써주었음
91 #deny_email_enable=YES
101 # chroot_local_user=YES
102 chroot_list_enable=YES --> 주석 해제
104 chroot_list_file=/ftp/chroot --> 주석 해제 후 파일 생성 했으니 경로 써주기
126 --> 인증에 관한 것
128 --> 필터링 하는 것
129 allow_writeable_chroot=YES ---> chroot 지정 해 놓았으면 이걸 꼭 타이핑 해주어야 함
위 과정을 마치면 :wq 로저장 후 vi를 빠져나온 뒤 꼭 vsftpd 프로그램을 시작 해주어야 한다.
명령어 입력 후 아무런 오류가 없으면 잘 진행 된 것이다.
이제 방화벽 설정을 진행 해야 하는데, 우선 Selinux 상태를 체크 해야 한다.
Disabled 가 아니라면 강제로 SeLinux를 disabled 상태로 만들어 주어야 한다.
보안 문제 때문에 이 과정을 꼭 해주는 것이 좋다.
firewall 명령어로 방화벽 내용을 한번 확인 해보자.
ports : 21 /tcp --> 21번 포트가 열려 있는 것을 확인 할 수 있다.
우리는 20,21 번 포트를 모두 열어주어야 하기 때문에
20번 포트까지 열어주는 작업을 진행 해보자.
방화벽 설정을 한 후에는 reload 를 해주어야 한다. 그래야 설정 값이 적용 된다.
방화벽 리스트를 확인 해보니 20번 포트가 열린 것을 확인 할 수 있다.
이제 CentOS 윈도우 서버에서 cmd로 ftp를 확인 해보자
cmd로 ftp 접속이 되는 것을 확인 할 수 있다
2. Passive Mode
- Active Mode의 단점을 보완한 방식이다.
- 데이터 포트를 특별하게 지정하지 않아도 임의의 포트를 사용하여 데이터를 전송한다.
Passive Mode 설정 법을 알아보자
우선 Active Mode와 같이 /etc/vsftpd/vsftpd.conf 파일을 수정해주어야 한다.
파일 내용 수정은 Active Mode와 거의 똑같지만 마지막에 세줄 정도 추가 할 내용이 있다.
위 내용을 추가 한 뒤 :wq 로 저장 하고 빠져 나온다
CentOS Windows 서버에 Filezilla로 확인 해본다
filezilla 설정을 위와 같이 한 후 연결을 해보면 잘 되는 것을
확인 할 수 있다
메모장으로 간단한 txt 파일을 만든 후 linux 서버로 파일을 전송 해보자.
a 계정으로 접속 한 후 확인 해보니
Hello_Linux 파일이 잘 전송 된 것을 확인 할 수 있다!
'operating system > linux' 카테고리의 다른 글
RR(Round Robin) DNS 설정 (0) | 2022.10.24 |
---|---|
DNS(Domain Name Service) (0) | 2022.10.20 |
소스 패키지와 바이너리 패키지, yum&rpm (0) | 2022.09.26 |
디스크 쿼터 (0) | 2022.09.25 |
디스크 관리 LVM(Logical Volume Manager), fdisk 명령어 (1) | 2022.09.25 |