linux 搭建ftp服务

一、 安装ftp

yum -y install vsftpd

二、配置

安装完之后在/etc/vsftpd/路径下会存在三个配置文件。

vsftpd.conf: 主配置文件

ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。(黑名单)

user_list(白名单): 指定的用户是否可以访问ftp服务器,通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 这三个配置允许文件中的用户访问FTP。

三、启动ftp服务

service vsftpd start

四、相关配置

修改配置,不允许匿名登入:

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
service vsftpd restart

添加用户:

useradd ftpuser

设置密码:

passwd ftpuser

创建ftp服务器存储数据的目录:

mkdir -p /data/ftp
mkdir -p /data/ftp/pub

 为所有用户设置访问权限,

chmod a-w /data/ftp  #其他用户没有写的权限
chmod 777 -R /data/ftp/pub

 这些文件所有者是root,root赋予其他用户/data/ftp不能有写的权限,/data/ftp/data为所有权限,-R表示目录和其所有的子目录。

另外,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:

allow_writeable_chroot=YES

/data/ftp设置成ftpuser的主目录。

usermod -d /data/ftp ftpuser

然后禁止用户向上切换目录:

在/etc/vsftpd/vsftpd.conf添加

chroot_local_user=YES

关闭selinux:

setenforce 0

 永久有效

修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。

开放21号端口:

#添加
firewall-cmd --zone=public --add-port=21/tcp --permanent    #(--permanent永久生效,没有此参数重启后失效)
#重新载入
firewall-cmd --reload

下载图形客户端使用:

https://winscp.net/eng/docs/lang:chs#下载

 

若登入后发现:

无法获得目录列表

出现这个问题的原因是防火墙的拦截掉请求信息,所以需要配置防火墙的规则信息

该错误是由iptables的配置引起的,临时的解决方法是执行如下命令:

[root@localhost soft]# modprobe ip_nat_ftp

这个是临时解决的,重启centos7就会失效了。

再次登陆列表正常啦!

但当你重新启动服务器则iptables规则失效,又会出现相同的情况,所以我们需要修改/etc/sysconfig/iptables-config文件

我们需要把

IPTABLES_MODULES=""

修改为:

IPTABLES_MODULES="ip_nat_ftp"

这样重启服务器之后就不必再每次都执行mobprobe。



原文地址:https://www.cnblogs.com/chenmz1995/p/10455294.html