■ FTP 서버 모드
Positive Mode
21 : ftp클라이언트에서 ftp서버 포트로 접속한다. ( 명령 전송 포트 )
20 : ftp서버에서 ftp클라이언트 포트로 접속한다. ( 데이터 전송 포트 )
그림 1.
먼저 클라이언트에서 서버의 21번 포트로 접속 후 클라이언트가 사용할 두 번째 포트를 서버에게 알려준다.
서버는 이에 대한 ack 로 응답하고(여기까지 일반적인 TCP/IP 작동방식임)
서버의 20번 포트는 클라이언트가 알려준 두 번째 포트로 접속을 시도한다.
마지막으로 클라이언트가 ack로 응답한다.
Passive Mode
21 : ftp클라이언트에서 ftp서버 포트로 접속한다. ( 명령 전송 포트 )
1024 포트 이상사용 : ftp서버에서 ftp클라이언트 포트로 접속한다. ( 데이터 전송 포트 )
# 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
그림 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의 파일은 지워지는 것을 확인할 수 있습니다.
'Server > Linux Server' 카테고리의 다른 글
[Linux Server] 서비스 유형 - standalone 방식, xinet 방식(telnet서버) (0) | 2023.04.06 |
---|---|
[Linux Server ] Samba 윈도우(클라이언트) -> 리눅스(서버) (0) | 2023.03.24 |
[Linux Server] NFS 서버 실습 (0) | 2023.03.23 |
댓글