>  기사  >  운영 및 유지보수  >  CentOS에서 FTP 서버 구축

CentOS에서 FTP 서버 구축

巴扎黑
巴扎黑원래의
2017-09-04 14:26:302118검색

vsftpd는 Linux에서 잘 알려진 FTP 서버입니다. 물론 FTP 서버 구축을 위한 첫 번째 선택입니다.

이 글에서는 CentOS 6.4에서 vsftpd를 설치하고 가상 사용자가 FTP에 로그인하도록 구성하는 과정을 소개합니다.

텍스트:

하나: vsftpd 설치

vsftpd 설치 여부 확인

rpm -qa | grep vsftpd
#如果没有,就安装,并设置开机启动
yum -y install vsftpd
chkconfig vsftpd on

둘: 가상 사용자 기반 구성

소위 가상 사용자는 실제 계정을 사용하지 않고 매핑 목적으로만 사용합니다. 실제 계정 및 설정 권한. 가상 사용자는 CentOS 시스템에 로그인할 수 없습니다.

구성 파일을 수정하세요

/etc/vsftpd/vsftpd.conf를 열고 다음과 같이 구성하세요

anonymous_enable=NO #设定不允许匿名访问
local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES #使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES #设定启用虚拟用户功能
guest_username=ftp #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名
进行认证
chroot_list_file=/etc/vsftpd/vuser_passwd.txt

먼저 Berkeley DB 도구를 설치하세요. 많은 사람들이 db_load를 찾지 못하는 문제는 이 패키지가 설치되어 있지 않다는 것입니다.

yum install db4 db4-utils

그런 다음 사용자 비밀번호 텍스트 /etc/vsftpd/vuser_passwd.txt를 만듭니다. 홀수 줄은 사용자 이름이고 짝수 줄은 비밀번호입니다

test
123456

그런 다음 가상 사용자 인증을 위한 db 파일을 생성합니다

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

그런 다음 인증 파일 /etc /pam.d/vsftpd를 편집하고 원래 명령문을 모두 주석 처리한 후 다음 두 문장을 추가합니다.

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

마지막으로 가상 사용자 구성 파일을 만듭니다

mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test  #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效
内容如下
local_root=/ftp/www  #虚拟用户根目录,根据实际情况修改
write_enable=YES
anon_umask=022 #掩码
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

Set Selinux(selinux가 켜짐)

setsebool -P ftp_home_dir=1   #设置ftp可以使用home目录
sersebool -P allow_ftpd_full_access=1   #设置ftp用户可以有所有权限

FTP 루트 디렉터리 권한 설정

mkdir /ftp/www   #创建目录
chmod R 755 /ftp
chmod R 777 /ftp/www

최신 vsftpd에서는 기본 디렉터리에 대한 쓰기 권한이 필요하지 않으므로 ftp는 755이고, 그런 다음 기본 디렉터리 아래 하위 디렉터리에 777 권한을 설정합니다

Set 방화벽을 올려보세요

/etc/sysconfig/iptables를 엽니다

" -A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”에서 아래에 추가하세요:

-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT

그런 다음 저장하고 닫습니다. 파일을 다운로드한 후 터미널에서 다음 명령을 실행하여 방화벽 구성을 새로 고칩니다.

service iptables restart

OK, "service vsftpd start"를 실행하면 FTP 서버에 액세스할 수 있습니다.

PASV 모드 구성

vsftpd는 기본적으로 PASV 모드를 활성화하지 않습니다. 이제 FTP는 PORT 모드를 통해서만 연결할 수 있습니다. 기본적으로 PASV를 활성화하려면 다음 구성을 전달해야 합니다.

/etc/vsftpd/vsftpd.conf 열기 그리고 마지막에

pasv_enable=YES   #开启PASV模式
pasv_min_port=40000   #最小端口号
pasv_max_port=40080   #最大端口号
pasv_promiscuous=YES

를 추가하세요. 방화벽 구성에서 40000~40080 포트를 열어주세요

-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT

iptabls 및 vsftpd를 다시 시작

service iptables restart
service vsftpd restart

이제 PASV 모드를 사용하여 FTP 서버에 연결할 수 있습니다~

일반적인 실수:

질문 1:

그런데 구성 단계를 따랐더니 다시 시도해 보니 매번

530 로그인이 잘못되었습니다

이리저리 검색해 보니 검증을 위해 vsftpd.vu를 etc의 루트 디렉터리에 생성한 것으로 나타났습니다. /etc/pam.d/vsftpd.vu

질문 2:

위의 문제를 수정했지만 여전히 로그인할 수 없습니다. 메시지가 표시됩니다:

500 OOPS: anon_world_readable_only 구성 파일의 잘못된 bool 값

인터넷 검색을 해보니 구성 파일 끝에 공백이 있으면 안 된다고 말하는 사람이 있었습니다. 자신의 구성 파일을 열고 anon_world_readable_only 끝뿐만 아니라 전체 파일 끝에도 여러 개의 공백이 있는지 확인하세요. 선. 아쉽게도 웹페이지에서 구성을 복사하여 붙여넣을 때는 주의하세요.

질문 3:

500 OOPS: vsftpd: 'guest_username'에 지정된 사용자를 찾을 수 없습니다: aaA

이 질문은 결국 매우 이상합니다. '아아아'

위의 단계를 따르면 설치가 매우 간단하므로 주의하세요.

위 내용은 CentOS에서 FTP 서버 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.