CentOS 7.x 500 OOPS vsftpd anonymous refusing


CentOS 7 minimal 에 vsftpd 를 설치하고 anonymous 접속 설정을 하고 테스트를 해보니 아래 처럼 에러 메시지가 나면서 접속이 안되는군요~

C:\>ftp 192.168.1.26
192.168.1.26에 연결되었습니다.
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
사용자(192.168.1.26:(none)): anonymous
331 Please specify the password.
암호:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
500 OOPS: 원격 호스트에 의해 연결이 닫혔습니다.

분명히 사용하는 서버에서 vsftpd.conf 파일의 환경설정 값을 제대로 넣었는데도 그러네요~

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=0022

차이점은 root 이외 유저가 있느냐 없느냐의 차이였습니다.

useradd 명령어로 유저 하나 생성하고 접속하니 잘 됩니다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x anonymous upload 설정



anonymous_enable 옵션은 anonymous 접속이 가능하도록 하는 옵션이지만 읽기 전용입니다.


업로드도 가능하게 하려면 아래의 옵션을 더 추가해주어야 합니다.


anonymous_enable=YES


# anonymous upload

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_umask=0022


anon_other_wirte_enable=YES 는 수정 및 삭제도 할 수 있게해주는 옵션입니다.

anon_umask=0022 은 파일은 644로, 디렉토리는 755로 생성되도록 하는 옵션입니다.


그리고 퍼미션을 변경하여야 합니다.


# chmod 777 /var/ftp/pub


아니면 폴더를 더 만들어서 해도 됩니다.


# mkdir -p /var/ftp/pub/incoming

# chmod 777 /var/ftp/pub/incoming


systemctl restart vsftpd 로 재시작해서 테스트 하시면 됩니다.


'LINUX' 카테고리의 다른 글

CentOS 7.x PXE 서버 설정  (0) 2017.09.13
리눅스 letsencrypt 만료 갱신  (0) 2017.08.29
CentOS 7.x VNCSERVER 설치  (0) 2017.08.17
CentOS 7.x KVM 가상화서버 만들기  (0) 2017.08.17
CentOS 7.x GNOME GUI 설치  (0) 2017.08.17
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x vsftpd 보안설정 방법



TLS/SSL 을 설정하지 않고 사용하면 보안이 적용되지 않은 FTPS 가 아닌 FTP 접속 방식입니다.


Openssl 로 인증서를 생성해서 보안설정을 해보도록 하겠습니다.


그리고 implicit(990) 와 explicit(21) 두가지 옵션에 대해서 알아봅시다.


openssl 은 yum 으로 설치하면 됩니다.



▶ 인증서 생성 ( -keyout : rsa_private_key_file, -out : rsa_cert_file )


# openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Generating a 2048 bit RSA private key

.........................................+++

...........................+++

writing new private key to '/etc/vsftpd/vsftpd.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:KR

State or Province Name (full name) []:Seoul

Locality Name (eg, city) [Default City]:Seoul

Organization Name (eg, company) [Default Company Ltd]:myServer

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:ftp.ivps.kr

Email Address []:


인증서를 만들었습니다.



▶ TLS/SSL 활성화 ( vi /etc/vsftpd/vsftpd.conf )


pasv_enable=YES

pasv_min_port=50001

pasv_max_port=50040


ssl_enable=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

ssl_tlsv1_2=YES

ssl_sslv2=NO

ssl_sslv3=NO

require_ssl_reuse=NO

ssl_ciphers=HIGH

rsa_cert_file=/etc/vsftpd/vsftpd.pem

rsa_private_key_file=/etc/vsftpd/vsftpd.pem



▶ 방화벽 설정


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

# firewall-cmd --permanent --zone=public --add-port=50001-51000/tcp

# firewall-cmd --reload


이제 접속하면 됩니다.


CentOS 7.x vsftpd 보안설정 방법


알드라이브 접속 설정입니다.


FileZilla 를 사용하여도 됩니다.




위의 설정이 explicit 옵션입니다.


implicit 로 접속하려면 아래의 설정을 추가하여야 합니다.


implicit_ssl=YES

listen_port=990


/etc/vsftpd/vsftpd.conf 파일에 위 두 옵션을 추가합니다.


그리고 방화벽에 990 포트를 설정합니다.


# firewall-cmd --permanent --zone=public --add-port=990/tcp

# firewall-cmd --reload


implicit 옵션으로 접속해보시면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x vsftpd passive mode 설정



패시브 모드 설정 방법입니다.


vsftpd 기본 설정 방법은 https://ivps.tistory.com/51 여기를 참고하시면 됩니다.



▶ vi /etc/vsftpd/vsftpd.conf ( 아래 내용 추가 )


pasv_enable=YES

pasv_min_port=50001

pasv_max_port=50040


min 과 max 포트는 자신에 맞게 수정하시면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x vsftpd 자신의 홈디렉토리 상위폴더 접근막기



vsftpd 기본 설정에서는 자신의 홈디렉토리 이외에도 root 디렉토리까지 상위 폴더로 접근이 가능합니다.


상위 디렉토리 이동을 막는 설정 방법입니다.


/etc/vsftpd/vsftpd.conf 파일에서


chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

allow_writeable_chroot=YES

allow_writeable_chroot=YES 이 줄이 없으면 "500 OOPS: chroot" 에러가 발생합니다.


저장하고


/etc/vsftpd/chroot_list 에 ftp 접속계정 유저들을 추가


그리고 selinux 설정이 되어있다면 아래 처럼 해주세요.


[root@virtualbox ~]# getsebool -a | grep ^ftp_home_dir

ftp_home_dir --> off

[root@virtualbox ~]# setsebool -P ftp_home_dir on


이 부분은 SE LINUX 때문에 해주어야 합니다.


# systemctl restart vsftpd


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,