개발

[Linux] CentOS 7, CentOS 8 SSH, FTP (vsftpd) 설치 및 세팅 본문

개인용 사이트 제작과정/[Linux]CentOS 7 서버세팅

[Linux] CentOS 7, CentOS 8 SSH, FTP (vsftpd) 설치 및 세팅

Study 2021. 12. 23. 14:48

 

 

제가 세팅한 순서대로 포스팅 해보겠습니다.

 

 

 

// 많은 포스팅들에서 openssh-clients도 다운받으라고 되어있지만 서버를 다운받은 후 다운받으려고 하면 이미 다운받았다는 매시지 출력됨

yum -y install openssh-server

yum -y install openssh-askpass

상기 두가지 명령어 먼저 넣어서 ssh를 설치 해 줍니다

yum -y install openssh-server
yum -y install openssh-askpass

 

vi /etc/ssh/sshd_config 명령어를 넣어서 컨픽 파일을 열어준 후 

port=22

ListenAddress 0.0.0.0

PermitRootLogon yes

상기 3줄 주석을 해제해준 후 저장하고 빠져나옵니다.

주석 해제처리

 이제 ssh 접속을 위한 포트를 방화벽에서 열어줍니다

firewall-cmd --permanent --zone=public --add-port=22/tcp

그 후 방화벽을 재시작 해줍니다

firewall-cmd --reload

firewall-cmd --permanent --zone=public --add-port=22/tcp

hostname -I (대문자 i 입니다)

명령어로 아이피를 받아옵니다. 

 

 

 

필자가 사용하는 esxi는 웹브라우저 접속이라 가독성도 좋지않고 복사 붙여넣기가 되지않으니 ssh테스트 겸 옮겨서 마저 진행합니다.

 

ssh -p 22 root@{아이피}

// 맥 터미널 기준 ssh 접속 (필자는 윈도우에선 mobaXterm 사용

// -p 뒤의 22는 포트번호 입니다 / 22번일 시 -p {포트번호} 생략 가능

 

 

 

yum -y install vsftpd

명령어로 vsftpd 설치를 진행합니다. 

yum -y install vsftpd

 

설치가 완료 되면

vi /etc/vsftpd/vsftpd.conf 명령어로 vsftpd 설정 파일로 접속합니다.

anonymous_enable=NO   // Yes에서 NO로 변경

chroot_local_user=YES   // 주석 해제
chroot_list_enable=YES   // 주석 해제 ( 허가된 유저만 접속가능 )
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list   // 주석 해제   (허가된 유저 리스트)

allow_writeable_chroot=YES   //한줄 추가

 

listen=YES    // NO에서 YES로 변경

listen_ipv6=NO    // Yes에서 NO로 변경

 

맨 아래 추가 

pasv_enable=YES  // 패시브모드 사용

pasv_min_port=50000  // 패시브모드 최소포트

pasv_max_port=50005  // 패시브모드 최대포트

저장후 나옵니다.

 

vi /etc/vsftpd/chroot_list

허가할 유저 목록을 작성 합니다. 

 

만약 저처럼 root 계정도 사용하려면 하단 두개 파일에서 root를 지워주셔야합니다

root계정은 기본적으로 외부접속을 자단하는 블랙리스트에 들어갑니다.

vi /etc/vsftpd/ftpusers

vi /etc/vsftpd/user_list

vi /etc/vsftpd/ftpusers
vi /etc/vsftpd/user_list

 

 

 

firewall-cmd --permanent --zone=public --add-port=20-21/tcp

firewall-cmd --permanent --zone=public --add-port=50000-50005/tcp

firewall-cmd --permanent --zone=public --add-service=ftp

firewall-cmd --reload

 

맨 위부터

영구적으로 퍼블릭존에 20~21번 포트를 열어줍니다 //기본적인 ftp접속 포트

영구적으로 퍼블릭존에 50000~50005번 포트를 열어줍니다 // 패시브모드오 데이터 전송시 사용될 랜덤포트범위

영구적으로 퍼블릭존에 ftp서비스를 열어줍니다 

방화벽 재시작

 

이제 ftp를 실행해줍니다

systemctl start vsftpd

 

접속해서 정상적으로 파일이 만들어 지는지, 업로드는 되는지 확인 해보시기 바랍니다.

 

만약 안될 시 SELinux 보안정책 떄문일 수 있으므로 

setsebool -P ftpd_full_access on

입력해주시면 정상적으로 됩니다.