首页 > 系统相关 >Centos7.4搭建FTP服务器

Centos7.4搭建FTP服务器

时间:2023-02-24 11:23:16浏览次数:44  
标签:FTP enable etc root 用户 vsftpd 服务器 YES Centos7.4

【Centos7.4搭建FTP服务器】

搭建环境:Centos7.4版本、生产服务器、计划默认端口5000、被动模式端口5001-5005

 

一、关闭防火墙

1 systemctl status firewalld.service #查看防火墙状态
2 systemctl stop firewalld.service #停止防火墙服务
3 systemctl disable firewalld.service #关闭防火墙开启自启动
4 vi /etc/selinux/config #把文件中的SELINUX=enforcing 改为SELINUX=disabled

二、安装vsftpd

1 [root@vms100 ~]# yum install -y vsftpd

已安装:
vsftpd.x86_64 0:3.0.2-29.el7_9

启动服务,并加入开机自动启动:
[root@vms100 ~]# systemctl enable vsftpd.service --now

三、编辑配置

[root@vms100 ~]# vim /etc/vsftpd/vsftpd.conf
 1 anonymous_enable=NO       #是否开启匿名用户,匿名都不安全,不要开
 2 local_enable=YES          #允许本机账号登录FTP
 3 write_enable=YES          #允许账号都有写操作
 4 local_umask=022           #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
 5 dirmessage_enable=YES     #进入某个目录的时候,是否在客户端提示一下
 6 xferlog_enable=YES        #日志记录
 7 connect_from_port_20=YES  #开放port模式的20端口的连接
 8 xferlog_std_format=YES    #日志成为std格式
 9 chroot_local_user=YES     #限制用户只能在自己的目录活动
10 chroot_list_file=/etc/vsftpd/chroot_list
11 ls_recurse_enable=NO      #是否允许使用ls -R等命令
12 listen=YES                #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
13 pam_service_name=vsftpd   #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
14 userlist_enable=YES       #使用允许登录的名单
15 userlist_deny=NO          #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
16 allow_writeable_chroot=YES #允许限制在自己的目录活动的用户 拥有写权限
17 tcp_wrappers=YES #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
18 pasv_min_port=6001         #被动模式起始端口,0为随机分配
19 pasv_max_port=6005         #被动模式结束端口,0为随机分配
20 user_config_dir=/etc/vsftpd/userconfig #主目录配置,修改后到这个目录中在修改用户配置
 1 干净的配置文件:
 2 anonymous_enable=NO
 3 local_enable=YES
 4 write_enable=YES
 5 local_umask=022
 6 dirmessage_enable=YES
 7 xferlog_enable=YES
 8 connect_from_port_20=YES
 9 xferlog_std_format=YES
10 chroot_local_user=YES
11 chroot_list_file=/etc/vsftpd/chroot_list
12 ls_recurse_enable=NO
13 listen=YES
14 pam_service_name=vsftpd
15 userlist_enable=YES
16 userlist_deny=NO
17 allow_writeable_chroot=YES
18 tcp_wrappers=YES
19 pasv_min_port=6001
20 pasv_max_port=6005
21 user_config_dir=/etc/vsftpd/userconfig

修改完之后需要重启FTP服务刷新配置:

1 [root@vms100 vsftpd]# systemctl start vsftpd.service

四、新建用户并设置密码

1、新建用户:yuanftp

为ftp用户统一创建一个不能登录系统的shell,这一行的命令只运行一次即可,后面新建用户就不需要执行了;

1 [root@vms100 ~]# echo /usr/bin/nologin>>/etc/shells

[root@vms100 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/nologin

创建用户:

1 [root@vms100 ~]# useradd -d /home/ftp_data/y1ftp -m -s /usr/bin/nologin y1ftp     #y1ftp 是用户名及文件

  • 指定用户主目录/home/ftp_data/y1ftp -m
  • 指定用户的shell: -s /usr/bin/nologin

2、设置用户y1ftp的密码

1 [root@vms100 ~]# passwd y1ftp

五、允许新建用户登录FTP


[root@vms100 ~]# vim /etc/vsftpd/user_list


root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
y1ftp

六、自定义用户主目录

如果你在上面没有指定用户的目录,建议继续往下看。

在这里我们准备把用户主目集中放到/home/data/ftp下集中管理。之前我们在/etc/vsftpd/vsftpd.conf配置文件中写了这么一行:user_config_dir=/etc/vsftpd/userconfig ,那么这一行的作用是什么呢?就是定义用户的主目录。userconfig默认是没有的,必须新建。然后我们可以把,给每个用户定义的主目录配置文件放到这个目录里面下。就可以实现自定义主目录
1、新建主目录配置

[root@vms100 ~]# cd /etc/vsftpd
[root@vms100 vsftpd]# mkdir userconfig
[root@vms100 vsftpd]# vim /etc/vsftpd/userconfig/y1ftp  
#写一个配置文件:名称为fpt用户名称一致,在文件中写入下面:

local_root=/home/ftp_data/y1ftp

 2、给用户新建主目录并授权

1 [root@vms100 ~]# mkdir -p /home/ftp_data/y1ftp
2 [root@vms100 ~]# chmod -R 777 /home/ftp_data/y1ftp

七、防火墙配置

1 firewall-cmd --version   #查看防火墙版本3 firewall-cmd --zone=public --add-port=5000-5005/tcp --permanent  #开启6000-6005 tcp端口5 firewall-cmd --reload  #刷新,重新载入7 firewall-cmd --zone=public --query-port=5000-5005/tcp  #检测端口是否开启

 

vsftpd.conf配置文件的详细解析:

 1 anonymous_enable=NO            #是否开启匿名用户,匿名都不安全,不要开
 2 local_enable=YES               #允许本机账号登录FTP
 3 write_enable=YES               #允许账号都有写操作
 4 local_umask=022                #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
 5 #anon_upload_enable=YES        #匿名用户是否有上传文件的功能,不要开
 6 #anon_mkdir_write_enable=YES   #匿名用户是否有创建文件夹的功能,不要开
 7 dirmessage_enable=YES          #进入某个目录的时候,是否在客户端提示一下
 8 xferlog_enable=YES             #日志记录
 9 connect_from_port_20=YES       #开放port模式的20端口的连接
10 #chown_uploads=YES             #允许没人认领的文件上传的时候,更改掉所属用chown_uploads=YES的前提下,所属的用户
11 #xferlog_file=/var/log/xferlog #日志存放的地方
12 xferlog_std_format=YES         #日志成为std格式
13 #idle_session_timeout=600      #用户无操作服务器会主动断开连接,单位秒
14 #data_connection_timeout=120   #数据连接超时
15 #nopriv_user=ftpsecure         #以 ftpsecure 作为此一服务执行者的权限。因为ftpsecure 的权限相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限喔!
16 #async_abor_enable=YES         #异步停用,由客户发起
17 #ascii_upload_enable=YES       #使用ascii格式上传文件
18 #ascii_download_enable=YES     #使用ascii格式下载文件
19 #ftpd_banner=Welcome to blah FTP service  #欢迎词
20 #deny_email_enable=YES         #以anonymous用户登录时候,是否禁止掉名单中的emaill密码。
21 #banned_email_file=/etc/vsftpd/banned_emails  #以anonymous用户登录时候,所禁止emaill密码名单。
22 chroot_local_user=YES          #限制用户只能在自己的目录活动
23 #chroot_list_enable=YES        #例外名单,如果是YES的话,这个有点怪,不懂别乱开,上面的选项会跟这个名单反调(会被上面的选项影响)。
24 #chroot_list_file=/etc/vsftpd/chroot_list
25 ls_recurse_enable=NO           #是否允许使用ls -R等命令
26 listen=YES                     #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务。
27 #listen_ipv6=YES               #监听ipv6端口,还没普及呢!
28 pam_service_name=vsftpd        #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
29 userlist_enable=YES            #使用允许登录的名单
30 userlist_deny=NO               #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
31 allow_writeable_chroot=YES     #允许限制在自己的目录活动的用户 拥有写权限
32 tcp_wrappers=YES               #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
33 user_config_dir=/etc/vsftpd/userconfig  #主目录配置,修改后到这个目录中在修改用户配置
34  
35 pasv_min_port=6000 (0为随机分配)
36 pasv_max_port=6010(这两项定义了可以同时执行下载链接的数量。)
37 #被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的。

 

创建FTP用户脚本:

 1 #bin/bash
 2 
 3 read -p 请输入要新建的用户名: xinuser
 4 
 5 #判断是否为空或名称重复
 6 
 7 id $xinuser &>/dev/null
 8 if [ $? -ne 0 ]
 9     then
10         useradd -d /home/ftp_data/$xinuser -m -s /usr/bin/nologin $xinuser
11         echo $xinsuer >>  /etc/vsftpd/user_list
12         echo "用户$xinuser成功创建"
13         passwd $xinuser
14     else
15         echo "用户$xinuser已存在或者输入用户名错误,程序已终止"
16         exit
17 fi    

文章知识点:来源于兔子王cool

 

标签:FTP,enable,etc,root,用户,vsftpd,服务器,YES,Centos7.4
From: https://www.cnblogs.com/yyuuee/p/17150638.html

相关文章