centOS7 搭建FTP服务

在开始之前先开启服务器20、21端口,关闭SELinux,然后重启服务器

# 加20、21端口
firewall-cmd  --permanent --add-port=20/tcp
firewall-cmd  --permanent --add-port=21/tcp
# 重启防火墙
firewall-cmd --reload
# 查看哪些端口开启
firewall-cmd --list-port

# 查看SELinux(重启服务器生效)
vim /etc/selinux/config
SELINUX=enforcing 改为 SELINUX=disabled

#重启服务器
shutdown -r now

1.安装vsftp

yum install -y vsftpd

2.设置 vsftpd 开机自启动

systemctl enable vsftpd

3.启动ftp

service vsftpd start

4.查询ftp是否启动

netstat -antup | grep ftp
结果展示:
tcp6       0      0 :::21                   :::*                    LISTEN      17011/vsftpd 

5.创建用户并绑定目录和登陆权限(后面要改用户默认目录记得修改权限chmod 755 文件夹名称)

useradd johnny -d /var/ftp/files -s /bin/nologin

6.设置用户密码

passwd johnny

7.备份并配置文件

cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak
vim vsftpd.conf

8.配置文件参数,如下

# Example config file /etc/vsftpd/vsftpd.conf
#监听端口号
listen_port=21

#设定端口20进行数据连接。
connect_from_port_20=YES

#不允许匿名访问
anonymous_enable=NO

#设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
local_enable=YES
#设定可以进行写操作
write_enable=YES

# 文件权限=666(系统默认文件权限,8进制)-local_umask(权限掩码)=644(rw-r--r--)
# 目录权限=777(系统默认文件权限,8进制)-local_umask=755(rwxr-xr-x)
local_umask=022

#禁止匿名用户
anon_upload_enable=NO
anon_mkdir_write_enable=NO
#用户配置文件目录
user_config_dir=/etc/vsftpd/conf

#设定开启目录标语功能
dirmessage_enable=YES

#设定开启日志记录功能
xferlog_enable=YES

#设定禁止上传文件更改宿主
chown_uploads=NO

#设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。
#xferlog_file=/opt/log/vsftpd/vsftpd.log

#设定日志使用标准的记录格式
xferlog_std_format=YES

#设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒
#idle_session_timeout=600

#数据连接超时时间
#data_connection_timeout=120

#设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
#nopriv_user=ftpsecure

#设定支持异步传输功能
async_abor_enable=YES

#设定支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES

#设定Vsftpd的登陆欢迎语
ftpd_banner=Welcome to FTP service.
#设定Vsftpd的登陆标语的文件
#Banner_file =/etc/vsftpd/banner 

#允许chroot用户写入(cent 7需要添加)
allow_writeable_chroot=YES
#chroot_list文件目录
chroot_list_file=/etc/vsftpd/chroot_list
#条件1:chroot_list用户默认登录到系统根目录
chroot_list_enable=NO
#条件2:chroot_list之外用户默认登录到用户目录
chroot_local_user=YES
#条件1和条件2有4中组合,具体的内容可以去别的地方查看,这里的设置是所有用户登录都只能在其用户目录下
#例如我们前面创建的用户默人目录在/var/ftp/files这里,登录后的默认目录就在这


#设置本地用户登录后所在的目录
#local_root=/var/ftp/files

#禁止用户登陆FTP后使用"ls -R"的命令。该命令会对服务器性能造成巨大开销。如果该项被允许,那么挡多用户同时使用该命令时将会对该服务器造成威胁。
ls_recurse_enable=NO
#当为YES时,vsftpd将以单独模式运行.这意味着vsftpd不必以某种inetd运行,而是可以直接执行.vsftpd执行后会自己侦听和操作进入的连接
listen=YES
#类似listen选项,但该选项使vsftpd侦听的地址为IPv6格式的
listen_ipv6=NO

#设定,启用pam认证,并指定认证文件名/etc/pam.d/vsftpd
pam_service_name=/etc/pam.d/vsftpd

#是否启用user_list
userlist_enable=NO
#user_list文件路径
userlist_file=/etc/vsftpd/user_list
#user_list用户是(YES)否(NO)被拒绝,YES黑名单 NO白名单
userlist_deny=NO

#设定支持TCP Wrappers
tcp_wrappers=YES

# 若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。
#deny_email_enable=NO
# 此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。
#banned_email_file=/etc/vsftpd/banned_emails

9. 因为前面创建的用户没有通过shell登录的授权,此处注释掉pam_shells.so参数

vim /etc/pam.d/vsftpd

#%PAM-1.0
session   optional    pam_keyinit.so   force revoke
auth      required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth      required    pam_shells.so
auth      include     system-auth
account   include     system-auth
session   include     system-auth
session   required    pam_loginuid.so

10. 重启ftp服务

service vsftpd restart

11. 登录ftp查看效果

(1) 命令行登录

ftp
open 你的ip地址
输入账号和密码

(2) 在我的电脑地址栏输入,根据提示输入账号密码
ftp://你的ip地址

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值