2023. 10. 10. 07:07ㆍ리눅스/CentOS
FTP
- File Transfer Protocol; 파일 전송 프로토콜
- 기본적인 FTP의 동작
client가 server에 접속하여 자신의 파일을 server에 저장(upload)하거나
server에 있는 파일을 내 컴퓨터로 전송(download)
- FTP를 사용할 수 있는 여러가지 프로그램이 존재
> 수업에서는 vsftpd 사용
- FTP server는 두 가지로 분류
로컬 FTP server : FTP server로 동작하는 장치에 존재하는 사용자 계정들을 위한 FTP
익명 FTP server : 누구나 접근 가능한 FTP
- 정보
패키지 : vsftpd-*
데몬 : vsftpd
방화벽 : service=ftp, port=20/tcp, 21/tcp, random/tcp
설정파일 : /etc/vsftpd/vsftpd.conf
- FTP 사용 환경은 active mode와 passive mode가 있다
1. active mode
기본 사용 환경
접속 및 명령어 전송 ; client가 자신의 random1 port를 사용하여 server의 21번 port로 접속하여 진행
파일 전송 ; client가 자신의 random2 port를 server에게 알려주고
server가 자신의 20번 port를 사용하여 client의 random2 port로 접속 후 진행
결과적으로 일반적인 server-client 관계처럼 client만 server에 접속하는 것이 아니라
server도 client에 접속을 하게 되면서 client의 방화벽 설정이 필요
2. passive mode
active mode의 단점을 보완
접속 및 명령어 전송 ; client가 자신의 random1 port를 사용하여 server의 21번 port로 접속 후 진행
파일 전송 ; client가 파일 전송을 위해 server의 data port로 사용되는 random port를 알아오고
자신의 random2 port를 사용하여 server의 random port로 접속 후 진행
결과적으로 모든 접속이 client가 server로 연결하게 되면서 client에서 별도의 작업 X
현재 windows 10 기준으로는 windows 기본 FTP 프로그램은 passive mode는 지원하지 않는다
* ftp 연결 시 모두 client가 먼저 요청한다
파일 전송 시 active mode는 server가 먼저 요청하고,
passive mode에서는 client가 먼저 요청한다
- FTP는 최초 접속 위치에서 벗어나지 못하게 만드는 사용자 격리 설정이 가능
일반 사용자는 기본적으로 격리 설정 X, FTP 설정을 이용하여 격리가 가능
익명 사용자는 기본적으로 격리 상태
리눅스에서 패키지 설치 및 방화벽 설정
windows에서 방화벽 설정
익명 사용자 실습
설정 파일 설명
- NO (기본값) : 이 옵션이 NO로 설정되어 있으면 vsftpd는 로그 파일을 표준 로그 포맷이 아닌 특정 형식으로 기록한다. 이 형식은 로그 파일에 기록되는 데이터를 지정한 형식에 맞게 조정하는 데 사용된다.
- YES : xferlog_std_format을 YES로 설정하면 vsftpd는 로그 파일을 표준 로그 포맷에 맞게 기록한다. 표준 로그 포맷은 FTP 서버 활동에 대한 자세한 정보를 포함하며, 다른 FTP 로그 분석 도구와의 호환성을 제공한다.
로그 파일 형식을 선택할 때 주의해야 한다. xferlog_std_format을 YES로 설정하면 로그 파일은 표준 형식으로 기록되지만, 로그 파일이 더 많은 공간을 차지하고 읽기 어렵게 될 수 있다. 반면에 NO로 설정하면 로그 파일은 더 간소하게 유지되지만, 분석 및 모니터링 도구와의 호환성이 떨어질 수 있다.
사용자 격리 실습