ContOS6.5 搭建FTP服务器
- 安装包下载地址
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd
本文以vsftpd-2.2.2-24.el6.x86_64.rpm为例
1.查看系统是否安装了ftp
rpm -qa|grep vsftpd
如果安装则卸载,没有则跳过改步骤
rpm -e vsftpd
参数说明:
-e(erase):卸载
--nodeps:不检查依赖性
2.安装步骤
进入/usr/local
cd /usr/local
创建ftp目录
mkdir ftp
上传vsftpd-2.2.2-24.el6.x86_64.rpm到ftp目录下
安装
rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm
参数说明:
-i(install):安装
-v(verbose):显示详细信息
-h(hash):显示进度
--nodeps:不检测依赖性
3.设置开机启动
chkconfig vsftpd on
4.vsftpd 基本操作
启动vsftpd: service vsftpd start
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
5.配置防火墙
安装完vsftpd后,默认情况下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。
编辑iptables文件
vi /etc/sysconfig/iptables
添加-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT 配置
重启防火墙
service iptables restart
6.配置vsftpd
默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。
vi /etc/vsftpd/vsftpd.conf
# 禁用匿名用户
anonymous_enable=NO
# 禁止切换根目录
chroot_local_user=YES
编辑完成后,保存配置,重新启动 FTP 服务
service vsftpd restart
[root@localhost ~]# service vsftpd restart
Restarting vsftpd (via systemctl): [ OK ]
7.创建一个ftp用户
此处用ftpuser为用户名
useradd ftpuser
设置密码
passwd ftpuser
输入两次密码即可
[root@localhost ~]# useradd ftpuser
[root@localhost ~]# passwd ftpuser
Changing password for user ftpuser.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
8.为用户分配主目录
为用户 ftpuser 创建并约定:
/data/ftp 为主目录, 该目录不可上传文件
/data/ftp/pub 文件只能上传到该目录下
mkdir -p /data/ftp/pub
创建登录欢迎文件 :
echo "Welcome to use FTP service." > /data/ftp/welcome.txt
设置访问权限:
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
设置为用户的主目录:
usermod -d /data/ftp ftpuser
登录FTP服务器报如下错误:
修改selinux,外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。
修改selinux:
执行以下命令查看状态
[root@bogon ~]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
[root@bogon ~]#
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on
至此结束!