[CentOS] FTP

soobeen-jeong·2023년 2월 20일
0

SFTP

SFTP Server 설정

/etc/ssh/sshd_config 설정

vi /etc/ssh/sshd_config

#PasswordAuthentication no -> 주석처리
PasswordAuthentication yes -> 주석제거
쉘 접근 불가능한 계정 생성
useradd -s /sbin/nologin test01

암호설정

passwd test01

Chroot 설정

vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-serve -> 주석 처리
Subsystem sftp internal-sftp
Match Group sftpuser01
ChrootDirectory /%u
ForceCommand internal-sftp

sftp /home/sftuser02/upload 해당 경로에 업/다운로드 되도록 설정

사용자 그룹이 sftpusers 인 경우 chroot 적용

vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp -f local2 -l INFO
/ 일반 유저의 sftp logging 설정. local2를 설정한 이유는 secure 파일에 저장하기 위함. /
Match Group sftpusers SFTP 사용자와 일치하는 그룹
ChrootDirectory %h ChrootDirectory 지시어는 SFTP 사용자(chroot 감옥)의 루트 디렉터리를 지정하는 데 사용
ChrootDirectory를 이용해서 쉘접속에서 접근할 수 있는 최상위 디렉토리를 제한하는 것은 불가능
ChrootDirectory 구문에서 계정의 홈디렉토리 경로는 %h로 대체

경로 지정

%h - 홈 디렉토리
%u - 인증된 사용자의 사용자 이름 지정
%% - % 기호를 이스케이프 처리

Match

User - 사용자 계정
Group - 사용자 그룹
LocalPort - 접근 포트

X11Forwarding no X11 전달이 허용되는지 여부를 지정
X11 전달이 활성화되면 sshd 프록시 디스플레이가 와일드 카드 주소를 수신하도록 구성된 경우 서버 및 클라이언트 디스플레이에 대한 추가 노출이 있을 수 있다
AllowTcpForwarding no TCP 전달이 허용되는지 여부를 지정
TCP 전달을 비활성화해도 사용자는 항상 자신의 전달자를 설치할 수 있으므로 셸 액세스가 거부되지 않는 한 보안이 향상되지 않는다

ForceCommand internal-sftp -l INFO
/ chroot에서 사용할 ForceCommand에서는 -f 옵션이 적용되지 않음. 디폴트로 secure 파일에 저장 됨. /

systemctl restart sshd

chroot를 적용하려면 chroot가 적용된 디렉터리의 소유자는 root가 되야만 하고, 가상의 root 디렉터리가 되는
/home/test/daegam 의 퍼미션은 755로만 설정이 되야한다. 그 외의 설정은 접속이 되지 않는 상황이 된다.

vsFTP

vsFTP Server 설정

vsFTP 설치

yum -y install vsftpd

vsFTP 설정

vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES # anonymous_enable=NO 로 바꿈
chroot_local_user=YES # 주석 제거
pasv_enable=YES
pasv_min_port=50001
pasv_max_port=50005
allow_writeable_chroot=YES
FTP 계정생성 및 홈디렉토리 지정하여 생성
useradd -s /sbin/nologin -d /ftp/upload -m admin01

암호설정

passwd admin01

FTP 디렉토리 소유자 변경

chown admin01:admin01 /ftp/upload

권한부여

chmod 700 /ftp/upload

nologin 유저 FTP접속을 위해 유효한 shell로 등록

echo "/sbin/nologin" >> /etc/shells

데몬시작

systemctl start vsftpd

데몬 활성화

systemctl enable vsftpd

vsFTP Client 설정

FTP 클라이언트 설치

yum install ftp -y

FTP 접속

ftp Server

파일 다운로드

get Filename

파일업로드

put Filename Filename

파일이름을 정의하지 않고 절대경로로 입력하면 오류

dir 경로로 업로드 설정

FTP 설정

vsFTP

sFTP

vsftp에서 500 OOPS: cannot change directory 오류가 나올 때

vim /etc/vsftpd/chroot_list

admin01

vsftpd 실행 오류 발생 시

service vsftpd start

0개의 댓글