# 패시브모드 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로만 접근 가능
'IT > Linux' 카테고리의 다른 글
[리눅스] Azure CentOS 7 디스크 마운트 (0) | 2020.03.30 |
---|---|
[Linux] FTP ls (0) | 2020.03.25 |
[Linux] 500 OOPS: can only support ipv4 and ipv6 currently (0) | 2020.03.25 |
[리눅스마스터1급] 2019년 09월 21일 기출문제 (0) | 2020.02.20 |
댓글