FTP服务

1、FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式。
主动模式:FTP服务器主动向客户端发起连接请求
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)

2、vsftpd服务程序
vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上:
1>匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器;
2>本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。
3>虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。

3、FTP部署
  1>前期关闭防火墙,禁用selinux
  2>安装

yum install vsftpd -y

  3>vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)
    vsftpd服务程序常用的参数以及作用如下:

参数                                作用
anonymous_enable=[YES|NO]          是否允许匿名用户访问
anon_umask=022                     匿名用户上传文件的umask值
anon_upload_enable=[YES|NO]        是否允许匿名用户上传文件
anon_mkdir_write_enable=[YES|NO]   是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]   是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
local_enable=[YES|NO]              是否允许本地用户登录FTP
local_umask=022                    本地用户上传文件的umask值
listen=[YES|NO]                    是否以独立运行的方式监听服务
listen_address=IP地址               设置要监听的IP地址
listen_port=21                     设置FTP服务的监听端口
download_enable=[YES|NO]           是否允许下载文件
userlist_enable=[YES|NO]           设置用户列表为“允许”还是“禁止”操作
userlist_deny=[YES|NO]             设置用户列表为“允许”还是“禁止”操作
max_clients=0                      最大客户端连接数,0为不限制
max_per_ip=0                       同一IP地址的最大连接数,0为不限制
dirmessage_enable=[YES|NO]         欢迎语设置(.message)
message_file=.message              设置目录消息文件,可将要显示的信息写入该文件。默认值为.message
ascii_upload_enable=YES/NO(NO)    设置是否启用ASCII 模式上传数据,默认值为NO
ascii_download_enable=YES/NO(NO)  设置是否启用ASCII 模式下载数据,默认值为NO
tcp_wrappers=YES/NO                设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
    比如:若要仅允许192.168.0.1192.168.0.254的用户可以连接FTP服务器,则在/etc/hosts.allow文件中添加以下内容:
    vsftpd:192.168.0. :allow
    all:all :deny
accept_timeout=60                  设置建立FTP连接的超时时间,单位为秒。默认值为60。
connect_timeout=60                 PORT 方式下建立数据连接的超时时间,单位为秒。默认值为60。
data_connection_timeout=120        设置建立FTP数据连接的超时时间,单位为秒。默认值为120。
idle_session_timeout=300           设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒。默认值为300 。
xferlog_enable= YES/NO(YES)       是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。
xferlog_file=/var/log/vsftpd.log   设置日志文件名和路径,默认值为/var/log/vsftpd.log。
xferlog_std_format=YES/NO(NO)     如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。
log_ftp_protocol=YES|NO(NO)       如果启用此选项,所有的FTP请求和响应都会被记录到日志中,默认日志文件在/var/log/vsftpd.log。启用此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。
pam_service_name=vsftpd            设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
guest_enable= YES/NO(NO)          启用虚拟用户。默认值为NO。
guest_username=ftp                 这里用来映射虚拟用户。默认值为ftp。
virtual_use_local_privs=YES/NO     当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。

  4>启动vsftpd

systemctl start vsftpd
systemctl enable vsftpd

  5>可以向匿名用户开放的权限参数以及作用

参数                                   作用
anonymous_enable=YES                  允许匿名访问模式
anon_umask=022                        匿名用户上传文件的umask值
anon_upload_enable=YES                允许匿名用户上传文件
anon_mkdir_write_enable=YES           允许匿名用户创建目录
anon_other_write_enable=YES           允许匿名用户修改目录名称或删除目录

  配置匿名访问方式:

[root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_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
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@ftp-server ~]# chmod o+x /var/ftp/pub/ -R
[root@ftp-server ~]#ll -d /var/ftp/pub/
drwxr-xrwx. 2 root root 16 3月  14 19:44 /var/ftp/pub/
[root@ftp-server ~]# systemctl restart vsftpd
posted @ 2020-05-05 16:38  我听过  阅读(583)  评论(0编辑  收藏  举报