본문 바로가기
IT/Linux

CentOS 7 FTP 구축 (Passive mode)

by JANEYDAY 2020. 3. 31.

# 패시브모드 vsftpd 구축

(개인적으로 액티브가 더 좋은 것 같다 패시브는 혼자서 오류가 잘남..)

 

구조는 다음과 같이 구성

- Admin : SSH 및 업/다운로드 가능

- User : FTP만 접근 가능 및 (업)다운로드 가능

- 이 외 사용자 SSH 및 FTP 접근 불가 

 

1. yum install vsftpd        vsftpd 설치

yum install ftp     FTP 설치

2. Firewalld 및 Selinux 설정

(다른 블로그는 기본적으로 firewalld 및 SElinux를 해제해놨다. 그게 막히는 부분이 없으니 가장 쉽다.. 쉽지만 현업에선 그렇게 쓰면 엄청난 보안적인 결함이 생기니 방화벽 및 SElinux 설정 가져갑니다.)

 

1) Firewalld 

systemctl start firewalld && systemctl enable firewalld

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp

firewall-cmd --reload     룰 추가 혹은 변경 후 필수

# 설정한 룰 확인 방법

firewall-cmd --zone=public --list-all

systemctl status firewalld    서비스 정상적으로 올라옴

 

2) Selinux

getsebool -a | grep ftp       FTP 관련 설정 확인

- 전부 off로 관련 설정 중 필수 사항을 on으로 변경합니다.

setsebool -P ftpd_full_access 1
setsebool -P ftpd_use_passive_mode 1

getsebool -a | grep ftp

 

3. vsftpd config 파일 수정

vi /etc/vsftpd/vsftpd.conf     (:setnu를 입력하여 #번째 줄로 확인합니다)

 

-----------------변경 사항------------------

12 anonymous_enable=NO             익명 사용자 접근 차단 (값 변경)  

101 chroot_local_user=YES            상위 디렉토리 접근 불가 (주석해제)

115 listen=YES                            ipv4 사용 (값 변경)

124 listen_ipv6=NO                       ipv6 사용안함 (값 변경)

129 allow_writeable_chroot=YES     chroot 사용을 위해 추가 설정 값 (아래로는 모두 새로 추가)

130 pasv_enable=YES                   패시브 모드 허용
131 pasv_min_port=10090             패시브 모드 포트 번호 지정
132 pasv_max_port=10100            패시브 모드 포트 번호 지정

133 max_clients=10                     동시 접속 사용자 수
134 max_per_ip=10                     한 개 IP에서 연결 간으 수 
135 pam_service_name=vsftpd       PAM 서비스를 위한 ftp 서비스 명명
136 userlist_enable=YES                userlist_enable에 등록된 사용자만 접속 허용

저장하고 종료

systemctl start vsftpd && systemctl enable vsftpd

    vsftpd 서비스 시작          서버 시작시 서비스 자동시작

systemctl status vsftpd

 

4. 유저 생성

useradd user        [user] 계정 추가

passwd user         [user] 비밀번호 변경

 

5. 로그인 쉘 변경

vi /etc/shells    

/bin/noshell                가짜 쉘 추가

touch /bin/noshell        가짜 쉘 생성

vi /etc/passwd

user계정의 로그인 쉘 /bin/nosehll 로 변경

 

6. 접속 테스트

ssh [계정]@[접속주소]

user 계정으로 접근시 계속 비밀번호를 입력하라고 나온다. => 접근안됌

ftp [접속주소]

계정입력

성공적으로 접속된 걸 확인할 수 있다. => FTP로만 접근 가능

댓글