본문 바로가기
Server/Linux Server

[Linux Server] FTP server

by JINJINC 2023. 4. 6.
728x90
반응형

■ FTP 서버 모드

 

 

Positive Mode

ftp positive mode
그림 1. ftp positve mode

21 : ftp클라이언트에서 ftp서버 포트로 접속한다. ( 명령 전송 포트 )
20 : ftp서버에서 ftp클라이언트 포트로 접속한다. ( 데이터 전송 포트 )

그림 1.

먼저 클라이언트에서 서버의 21번 포트로 접속 후 클라이언트가 사용할 두 번째 포트를 서버에게 알려준다.

서버는 이에 대한 ack 로 응답하고(여기까지 일반적인 TCP/IP 작동방식임)

서버의 20번 포트는 클라이언트가 알려준 두 번째 포트로 접속을 시도한다.

마지막으로 클라이언트가 ack로 응답한다.

 

Passive Mode

21 : ftp클라이언트에서 ftp서버 포트로 접속한다. ( 명령 전송 포트 )
1024 포트 이상사용 : ftp서버에서 ftp클라이언트 포트로 접속한다. ( 데이터 전송 포트 )

ftp passive mode
ftp passive mode

더보기

# vi /etc/vsftpd.conf

pasv_enable=YES <= 추가

pasv_min_port=54040 <= 추가

pasv_max_port=54050 <= 추가

=> passive 모드를 설정해 줄 수 있습니다. port 번호는 1024 이상의 포트를 지정할 수 있습니다. 

 

 

VSFTP (Very Secure FTP Deamon)

vsftp 는 보안 부분을 특히 강조한 데몬으로 Redhat, Suse, Open-BSD 에서 기본 FTP 로 채택하고 있으며, 보안, 빠른 퍼모먼스, 안정성을 주요 특징으로 소개하고 있고 그 성 능도 여느 ftp 서버 보다 탁월하다.

1. vsftp 설치하기(FTP server)

mount /dev/hdc /chrom (or /mnt)

yum -y install vsftpd
service vsftpd restart 

useradd user1
passwd user1

 

[ ftp client ]  에서 

ftp 192.168.10.2 

> userid : user1

> passwd : 비밀번호 입력

ftp > pwd  로 현재 위치 확인해보기

ftp > ls -l 

 

2. 유저 고립화 시키기 

고립화 시키는 이유는 최상위 폴더를 해당 user의 홈디렉터리로 한정하면 그 이외의 폴더에 접근권한을 제한하여 유저가 아무 폴더나 접근할 수 없도록 합니다. 

 

# useradd user2
# passwd user2
# cd /etc/vsftpd
# vi vsftpd.conf
chroot_list_enable=YES 96행
chroot_list_file=/etc/vsftpd/chroot_list 98행
# cd /etc/vsftpd
# touch chroot_list
# vi chroot_list
user2

/etc/vsftpd/vsftpd.conf
그림2.vsftpd.conf

그림 2와 같이 주석 처리 되어있는 부분을 주석을 제거하고 아래의 명령어가 적용될 수 있도록 수정하고 저장해 줍니다.

 

3. 유저 FTP 접근 제한 시키기 

# useradd user3
# passwd user3
# cd /etc/vsftpd
# vi ftpusers
user3
# vi user_list
user3

설정할 유저를 정하면 파일에 접근을 거절하게됩니다. 

 

4. anonymous 구성하기

# cd /etc/vsftpd
# vi vsftpd.conf
anonymous_enable=YES 12행
write_enable=YES 18행
anon_upload_enable=YES 27행
anon_mkdir_write_enable=YES 31행
# chmod 755 /var/ftp

 

<문제>

user4, user5 계정의 홈디렉터리를 dir1 로 구성하자!
user4, user5 의 홈디렉터리를 고립화 시키자!
( user4 업로드한 파일은 user4만이 삭제할수 있다.
user5 업로드한 파일은 user5만이 삭제할수 있다.
다른 사용자가 업로드한 파일은 다운로드 할수 있다.)

[ ftp server]

#mkdir /dir1

#chmod 1777 /dir1  => sticky directory 만들어 줍니다.

#Sticky bit 폴더를 만들려면 1 을 붙여주면 됩니다. 

 

#useradd -d /dir1 user4    => home directory를 /dir1으로 만들기 
#passwd user4

#useradd -d /dir1 user5 

#passwd user5

 

#vi /etc/vsftpd/vsftpd.conf

# vi vsftpd.conf
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list
# cd /etc/vsftpd
# touch chroot_list
# vi chroot_list
 user1
 user2
# vi /etc/passwd
 user1 /dir1
 user2 /dir1
# service vsftpd restart

 

 

결과 확인

[ftp server] 

user4 로 접속하여 /dir1 폴더안에 파일을 만들고

user5 로 접속하여 /dir2 폴더 안에  다른 파일을 만듭니다.

클라이언트에서 user5로 접속하여 두 파일을 삭제시도 해보았을때, user4로 만든파일은 지워지지 않고 , user5의 파일은 지워지는 것을 확인할 수 있습니다. 

 

 

 

 

728x90
반응형

댓글