Linux下安装FTP服务器及配置方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下安装FTP服务器及配置方法相关的知识,希望对你有一定的参考价值。

通常情况下,向服务器上传代码、文件,vsftp用的还是比较多的。下面是本人安装配置的过程。 
安装步骤 
1.通过yum来安装vsftpd

[[email protected] ~]# yum -y install vsftpd

2.设置为开机启动

[[email protected] ~]# chkconfig vsftpd on

针对centos7:  systemctl enable vsftpd

3.vsftpd服务器的基本配置

vsftpd服务器的配置文件保存在“/etc”目录和它的子目录中。

(1)       vsftpd.conf文件中的配置项

vsftpd.conf文件中所有的配置记录都包括配置项和配置值两部分内容,中间用等号连接。


把下面几行注释去掉,让其配置生效:vi /etc/vsftpd/vsftpd.conf

chroot_local_user=YES      #这行可能需自己写

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
 
 
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES

4.配置保存后重启vsftpd服务:

[[email protected] ~]# service vsftpd restart

添加用户及额外配置 
1.设置vsftp的帐号。

[[email protected] ~]# useradd -d /home/htdocs -s /sbin/nologin 用户名

2.为添加的账号设置密码

[[email protected] ~]# passwd 用户名
根据提示操作123

这样的话,基本的vsftpd服务配置好了。但是这样配置完成后客户端并不能连接上,主要应该是默认防火墙设置下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。 
1.添加ip_conntrack_ftp 模块

[[email protected] ~]# vi /etc/sysconfig/iptables-config

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

2.打开21端口

[[email protected] ~]# vi /etc/sysconfig/iptables

添加

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

3.重启iptables使新的规则生效

[[email protected] ~]# service iptables restart

到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查

[[email protected] ~]#getsebool -a |grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off

这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。

[[email protected] ~]#setsebool -P ftp_home_dir 1
[[email protected] ~]#setsebool -P allow_ftpd_full_access 1


附:vsftp中文说明

anonymous_enable=YES是否允许匿名ftp,如否则选择NO
local_enable=YES是否允许本地用户登录
local_umask=022默认的umask码
anon_upload_enable=YES是否允许匿名ftp用户访问
anon_upload_enable=YES是否允许匿名上传文件
anon_mkdir_write_enable=YES是否允许匿名用户有创建目录的权利
dirmessage_enable=YES是否显示目录说明文件,默认是YES但需要收工创建.message文件
xferlog_enable=YES是否记录ftp传输过程
connect_from_port_20=YES是否确信端口传输来自20(ftp-data)
chown_upload=YES
chown_username=username
是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主
xferlog_file=/var/log/vsftpd.logftp传输日志的路径和名字默认是/var/log/vsftpd.log
xferlog_std_format=YES

是否使用标准的ftp xferlog模式

idle_session_timeout=600设置默认的断开不活跃session的时间
data_connection_timeout=120设置数据传输超时时间
nopriv_user=ftpsecure运行vsftpd需要的非特权系统用户默认是nobody
async_abor_enable=YES是否允许运行特殊的ftp命令async ABOR.
ascii_upload_enable=YES
ascii_download_enable=YES
是否使用ascii码方式上传和下载文件
ftpd_banner=Welcome to chenlf FTP service.定制欢迎信息
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
是否允许禁止匿名用户使用某些邮件地址,如果是输入禁止的邮件地址的路径和文件名
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
是否将系统用户限止在自己的home目录下,如果选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中 列出的是不chroot的用户的列表
max_clients=Number如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止
message_file设置访问一个目录时获得的目录信息文件的文件名,默认是.message


以上是关于Linux下安装FTP服务器及配置方法的主要内容,如果未能解决你的问题,请参考以下文章

Linux 安装及配置 Nginx + ftp 服务器

Linux网络——FTP原理及配置

Linux: FTP服务原理及vsfptd的安装配置

Linux下FTP服务器搭建

技术指南CentOS安装FTP及配置用户

linux下FTP服务器的安装与配置