程序员想法简友广场

FTP详细的搭建和配置文档

2021-01-09  本文已影响0人  微笑沉默
目录:
1. 简介
2. 原理
  2.1 主动模式  
  2.2 被动模式
3. 安装配置
  3.1 安装部署 
  3.2 服务配置  
  3.3 用户配置  
    3.3.1 配置登录用户  
4. 安全  
4.1 防火墙  
4.2 pam配置  
5. 问题处理  
  5.1 530 Login incorrect  
  5.2 530 Permission denied  

1. 简介

什么是FTP服务器呢,FTP全程为file transfer protocol,提供网络文件存储和下载等功能。是一个C/S架构。官网http://mina.apache.org/ftpserver-project/documentation.html

2. 原理

FTP默认采用TCP协议,占用两个端口,分别是20和21,20号端口是用来传输数据的为数据通道,21号端口是用来传输指令的为控制通道。

2.1 主动模式

主动模式表示FTP客户端连接到FTP服务器21号端口,发送用户名和密码,客户端随机开放一个端口,发送port命令到FTP的server端,发送的内存主要是工作模式为主动模式,并且已经开放了端口,FTP server端会通过20号端口和客户端的端口进行数据交互。

image

2.2 被动模式

被动模式是FTP客户端连接到21号端口,发送给server端用户名和密码,并且发送一个PASV的命令给FTP服务器,告诉服务端是采用被动连接模式,那么服务端在本地随机开放一个端口,然后将端口告诉客户端,客户端再连接服务器开放的端口进行数据传输。

image

3. 安装配置

3.1 安装部署

FTP的安装包名称为vsftpd,官方镜像源就可以安装


yum install vsftpd

通过rpm进行安装的,文件位置如下,删除了部分文档类文件路径输出


[root@zhserver ~]$ rpm -ql vsftpd-3.0.2-28.el7.x86_64

/etc/logrotate.d/vsftpd

/etc/pam.d/vsftpd

/etc/vsftpd

/etc/vsftpd/ftpusers

/etc/vsftpd/user_list

/etc/vsftpd/vsftpd.conf

/etc/vsftpd/vsftpd_conf_migrate.sh

/usr/lib/systemd/system-generators/vsftpd-generator

/usr/lib/systemd/system/vsftpd.service

/usr/lib/systemd/system/vsftpd.target

/usr/lib/systemd/system/vsftpd@.service

/usr/sbin/vsftpd

/var/ftp

/var/ftp/pub

3.2 服务配置

查看vsftpd.conf配置


[root@zhserver vsftpd]$ cat /etc/vsftpd/vsftpd.conf | egrep -v "^#"

anonymous_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

具体配置的含义

配置文件 含义
anonymous_enable YES/NO 表示匿名用户,默认为YES,为了安全我们是不允许配置匿名用户登录的
local_enable YES/NO vsftpd服务器所在的系统用户可以登录vsftpd
write_enable YES/NO 允许使用所有的FTP write命令
local_umask 0XX 匿名用户新增加文件的umask值,默认为022
anon_upload_enable YES/NO 匿名用户上传文件,为了安全我们设置为NO
anon_mkdir_write_enable YES/NO 匿名用户创建文件夹,为了安全设置为NO
dirmessage_enable YES/NO 远程用户在登录目录的时候,显示的信息
xferlog_enable YES/NO 在上传和下载的时候,是否产生日志,默认为YES
connect_from_port_20 YES/NO 数据通道使用的端口,默认为20
xferlog_std_format YES/NO 记录日志使用标准的格式
chown_uploads YES/NO 匿名用户可以上传文件
chown_username=whoever - 除了root
idle_session_timeout 数字 不操作的超时时间,默认为600,为60s,登录后,一分钟不操作则60s后断开连接
data_connection_timeout 数字 数据传输的超时时间,默认为120s,默认是注释的,没有超时时间
ftpd_banner 字符串 登录ftp后的显示信息,比如:welcome
userlist_enable YES/NO 允许userlist_file中文件的用户登录FTP服务器
tcp_wrappers YES/NO 支持访问控制,主要使用/etc/hosts.allow,/etc/hosts.deny
chroot_local_user YES/NO 所有的 本地用户需要执行chroot,避免单一用户可以随意浏览目录
chroot_list_enable YES/NO 设置哪些用户需要执行chroot,用户文件在/etc/vsftpd/chroot_list,如果不存在需要创建
chroot_list_file 目录路径 chroot配置的路径
userlist_deny YES/NO 控制userlist文件是白名单还是黑名单,默认设置为YES,默认为黑名单

3.3 用户配置

image
3.3.1 配置登录用户

相关的配置文件有user_listftpuser,路径在/etc/vsftpd/,采用指定用户登录的配置,需要将匿名用户的配置去掉,修改/etc/vsftpd/vsftpd.conf中的anonymous_enableNO

添加用户

useradd -d /var/ftp/pub/zhangsan -s /sbin/nologin -g ftp zhangsan

passwd zhangsan

useradd -d /var/ftp/pub/lisi -s /sbin/nologin -g ftp lisi

passwd lisi

# 设置密码

image

登录尝试

image
用户隔离

一般FTP服务作为一个通用的应用,如果多个部门使用的事情,需要将不同的部门访问的路径隔离开来,不同用户登录需要限制到对应的文件目录,不能访问其他部门的文件目录,这个可以通过chroot机制进行控制,主要配置


chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user:是否将所有的用户都限制在主目录中,这个操作影响比较大

chroot_list_enable:这个参数配合chroot_list_file使用,在chroot_list_file对应的文件中的用户才会限制在主目录中


$ cat /etc/vsftpd/chroot_list

zhangsan

lisi

4. 安全

4.1 防火墙

主动模式下,开放21和20号端口,配置完成后,重启iptables,systemctl restart iptables


-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT

4.2 pam配置

ftp在配置文件vsftp.conf中有一个pam_service_name=vsftpd,内容如下


[root@zhserver data]# cat /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    password-auth

account    include    password-auth

session    required     pam_loginuid.so

session    include    password-auth

5. 问题处理

5.1 530 Login incorrect

image

5.2 530 Permission denied

image
上一篇 下一篇

猜你喜欢

热点阅读