linux/CentOS

vsftpd 설치

IT공부 2020. 6. 16. 13:57
반응형

■ vsftpd 설치

BASH

[root@localhost ~]# yum install vsftpd / rpm -ivh 

 

.

.

============================================================================== Package Arch Version Repository Size ============================================================================== Installing: vsftpd x86_64 3.0.2-21.el7 base 169 k Transaction Summary ============================================================================== Install 1 Package Total download size: 169 k Installed size: 348 k Is this ok [y/d/N]: y

 

.

.

Running transaction Installing : vsftpd-3.0.2-21.el7.x86_64 1/1 Verifying : vsftpd-3.0.2-21.el7.x86_64 1/1 Installed: vsftpd.x86_64 0:3.0.2-21.el7 Complete!

■ vsftpd.conf (환경설정)

BASH

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

.

.

.

12 anonymous_enable=NO (YES → NO 변경)  

// 익명 유저 로그인을 차단합니다. YES 되어있을 경우 아무나 접속할 수 있으므로 보안에 취약

.

.

.

100 chroot_local_user=YES (# 주석 제거 / 또는 추가) 

// 주석을 제거하고 FTP 일반 계정으로 접속 하게 되면 계정에 대한 홈 디렉터리가 아닌 / 디렉터리로 접속 (파일질라 기준)( 다시 주석처리해주고 FTP 재시작하게 되면 정상적으로 사용자에 홈디렉터리로 접속가능)

 

(맨 아래줄에 별도 추가) 

129 pasv_enable=YES (추가)  // passive 모드 활성화 

131 pasv_min_port=50001 (추가) // 클라이언트가 21번으로 요청을 하게 되면 min, max port 사이에 포트로 연결

132 pasv_max_port=50005 (추가)

134 allow_writeable_chroot=YES (추가)

// 사용자 디렉터리에 쓰기 권한이 있을 때 이 항목을 추가 안하면 500 에러 발생 

 :wq (저장)

 

(Passive 모드의 특징)

- PC클라이언트에서 서버 쪽으로 21번 포트 통신 응답을 시도합니다.

- 서버측에서 응답을 받을 경우 서버에서 사용할 두 번째 포트(1024~65535 포트)를 알려줍니다.

- PC클라이언트는 다른 포트를 열어 서버가 알려준 두 번째 포트로 접속을 시도하고 데이터를 전송합니다.

- 하지만 서버에서 모든 두번째 포트(1024~65535 포트)를 개방하고 알려야 하는 문제가 있지만 접속 범위를 설정하여 문제를 해결할 수 있습니다.

 

■ pasv_min_port=50001 / 접속 포트 설정의 최소범위 (위 포트 범위 내에서 임의 설정 가능)

 pasv_max_port=50005 / 접속 포트 설정의 최대 범위 (위 포트 범위 내에서 임의 설정 가능)

 

 allow_writeable_chroot=YES / 상위 버전부터는 일반계정 유저에 홈 디렉터리에 쓰기 권한이 있을 경우 해당 옵션을 꼭 주어야 합니다.

안 할 경우 : 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 에러발생[스크린샷 참고]

 

 

BASH

[root@localhost ~]# systemctl enable vsftpd ( 활성화 )

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

 

[root@localhost ~]# systemctl start vsftpd ( 서비스 시작 )

 

[root@localhost ~]# ps -ef |grep vsftpd ( 구동 확인 )

root 27023 1 0 20:50? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 27025 2547 0 20:50 pts/1 00:00:00 grep --color=auto vsftpd

■ 방화벽 설정

BASH

[root@localhost ~]# vi /etc/sysconfig/iptables  <-- CentOS6에 기준 CentOS7은 firewalld가 기본

 

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED, ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT (추가)

-A INPUT -p tcp -m state --state NEW -m tcp --dport 50001:50005 -j ACCEPT (추가)

-A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

 

 

BASH

[root@localhost ~]# service iptables restart (재시작 후)

 

[root@localhost ~]# iptables -nL (적용 확인)

 

 ■ 테스트할 FTP 일반계정 생성

BASH

[root@localhost ~]# useradd test (계정 생성)

BASH

[root@localhost ~]# passwd test (패스워드 설정)

New password: 패스워드 입력 Re-enter new password: 재확인 패스워드 입력

BASH

[root@localhost ~]# vi /etc/passwd (계정 생성 확인)

.

test:x:1001:1001::/home/test:/bin/bash (생성될 시 일반적으로 순차적으로 맨 아래에 생성됩니다.)

BASH

'linux > CentOS' 카테고리의 다른 글

RHEL 7 Teaming 설정 방법  (0) 2021.01.19
[CentOS7] 리눅스 DNS 서버 구축  (0) 2021.01.05
가상호스트(virtual host)란?  (2) 2020.06.16
[CentOS7 APM 설치]  (0) 2020.06.16
CentOS 7 firewall 방화벽 설정  (0) 2020.04.01