Linux系统中的FTP服务配置与管理

目录

一、FTP协议

1.介绍

2.用处

3.FTP原理

4.FTP工作模式

(1)主动模式

(2)被动模式

5.FTP实现

(1)wuftpd

(2)proftpd

(3)vsftpd

二、FTP服务的安装与配置

1.安装vsftpd软件包

2.安装FTP协议

3.重启FTP服务

4.防火墙规则

三、搭建匿名用户的FTP服务器

1.匿名用户

2.本地用户

3.虚拟用户模式

4.查看相关配置文件

5.和匿名用户有关的配置

6.配置实例

四、本地用户的FTP服务

1.添加账户

2.修改配置文件

(1)禁止匿名用户登录

(2)允许本地用户登录

(3)设置本地用户根目录

(4)本地用户权限是否限制

(5)激活chroot功能,锁定用户

(6)认证设置

3.重启服务

五、FTP服务器搭建实训

1.实训目的

2.项目背景

3.操作

 (1)设置匿名帐号具有上传、创建目录权限

(2)设置禁止本地user1用户登录ftp服务器。

 (3)设置本地用户user2登录FTP服务器之后,在进入dir目录时显示提示信息“welcome to user's dir!

(4)设置将所有本地用户都锁定在家目录中

(5)设置只有指定本地用户user1和user2可以访问FTP服务器

(6)配置基于主机的访问控制

(7)使用PAM实现基于虚拟用户的FTP服务器的配置。


一、FTP协议

1.介绍

FTP(文件传输协议)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输,客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

FTP在文件传输的一个重要特定是支持断点续传

 

2.用处

进行web服务器的数据更新

经常需要共享软件或文件资料等信息

需要在不同的OS之间传输数据

文件尺寸较大,无法通过邮箱等工具传递的时候

3.FTP原理

一个完整的FTP文件传输需要要建立两种类型的连接

一种是控制连接21应用层端口识别,用于在服务器与客户端之间传输控制信息,如用户标识、口令、传输与操作,另一种是数据连接20,用于实际传输文件数据

4.FTP工作模式

主要解决防火墙对于数据阻塞的问题,在C-S,C端一般处于内网,处于防火墙隔离区域

(1)主动模式

S端主动向C端发送数据,不符合规则,可能会被拒绝,一般情况下不用。

(2)被动模式

C端主动向S端发送21邀请,S端向C端以随机端口来发送数据,是最常用的

5.FTP实现

(1)wuftpd

历史最悠久的非商业FTP服务器之一,安全性较差,但是稳定性好

(2)proftpd

易配置,速度快,源代码干净,安全性较高,但是不够稳定

(3)vsftpd

安全,告诉,稳定(集群),配置简单

二、FTP服务的安装与配置

1.安装vsftpd软件包

使用yum命令安装vsftpd

yum install -y vsftpd

在ftp-server节点虚拟机中配置本地yum仓库,yum源中使用的centos7系统镜像源

mkdir /iso

mount /dev/cdrom(sr0) /iso

vi /etc/yum.repos.d/local.repo

[local]

name = local

baseur = life:///iso

gpgcheck = 1

enable = 1

yum clean all

yum repolist

2.安装FTP协议

yum install -y ftp

3.重启FTP服务

systemctl restart vsftpd

systemctl enable vsftpd

4.防火墙规则

firewall-cmd --permanet --add-service=ftp

firewall-cmd --reload

firewall-cmd --list-add

三、搭建匿名用户的FTP服务器

权限设置问题——那些用户有访问ftp资源的权限

1.匿名用户

登录FTP服务器不需要任何口令和密码,一般只能下载资源,不能上传

FTP服务器上的资源主目录/var/ftp,匿名账账号为anonymous或FTP,密码为空或者FTP,账号和密码共用,对用户来讲不用设置

2.本地用户

需要本地的账号和密码认证,可以上传资源也可以下载资源,一旦密码被攻破,资源可以畅通无阻的使用

3.虚拟用户模式

认证用户和密码使用的专门FTP数据库映射临时性账号,可以上传可以下载,生产环境常用

4.查看相关配置文件

cd /etc/vsftpd

ls

ftpusers:用户的黑名单 把用户加入黑名单就不能够使用ftp服务

user_list 登录控制用户列表

userlist_deny=NO允许列表中的用户访问ftp服务

userlist_deny=YES(default,默认), 拒绝文件列表中的用户访问ftp服务器

vsftpd.conf ftp的主配置文件 用户登录权限控制 服务器功能 超时设置等配置

cat -n vsftpd.conf |grep -v "#"

5.和匿名用户有关的配置

anonymous_enable=YES # 开启匿名用户登录

local_enable=YES # 开启本地用户登录

write_enable=YES # 允许本地用户写入

local_umask=022 # 设置本地用户创建文件的umask值为022

dirmessage_enable=YES # 激活消息目录

xferlog_enable=YES # 是否启用日志

connect_from_port_20=YES # 主动模式端口为20

xferlog_std_format=YES # 将日志格式设置为标准格式

listen=NO # 不可同时将listen与listen_ipv6都设置为YES

listen_ipv6=YES # 允许IPv4或IPv6客户端的连接

pam_service_name=vsftpd # PAM(可插拔认证)服务的名称为vsftpd

userlist_enable=YES # 允许用户列表生效

tcp_wrappers=YES # 使用tcp_wrappers作为主机访问控制方式

anonymous_enable=YES # 开启匿名用户登录

anon_root=/var/ftp 共享目录指定

anon_upload_enable=YES 是否可以下载

anon_mkdir_write_enable=YES 是否可以创建文件目录

anon_other_write_enable=YES 是否可以删除或者重命名

6.配置实例

op1.修改主机用户名为你自己名字
[root@whp ~]# setenforce 0
[root@whp ~]# vi /etc/selinux/config
SELINUX=disabled

op2.创建共享目录与文件 /var/ftp/pub
[root@whp ~]# mkdir /var/ftp/pub
[root@whp ~]# cd /var/ftp/pub
[root@whp pub]# ls
[root@whp pub]# touch sample.tar
[root@whp pub]# echo "welcome to ftp server" > hello.txt
[root@whp pub]# ls
hello.txt  sample.tar

op3:修改配置文件 /etc/vsftpd/vsftpd.conf
不能有重复参数,有的就修改 没有就在末行添加
不要复制 手动输入
anonymous_enable=YES
anon_root=/var/ftp   
anon_upload_enable=YES  
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

op4:应用层firewall防火墙放行ftp服务
[root@whp vsftpd]# firewall-cmd --permanent --add-service=ftp
Warning: ALREADY_ENABLED: ftp
success
[root@whp vsftpd]# firewall-cmd --reload
success
[root@whp vsftpd]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client ftp
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:   
[root@whp vsftpd]# systemctl restart vsftpd

op5:修改权限
[root@whp ~]# ll -ld /var/ftp/pub
drwxr-xr-x. 2 root root 41 Oct  9 17:30 /var/ftp/pub
[root@whp ~]# chmod o+w /var/ftp/pub
[root@whp ~]# ll -ld /var/ftp/pub
drwxr-xrwx. 2 root root 41 Oct  9 17:30 /var/ftp/pub
[root@whp ~]# systemctl restart vsftpd

op6:验证
serverip 本机火狐浏览器 查看 ftp://server ip

四、本地用户的FTP服务

需求分析:禁止匿名用户登录仅允许本地用户登录,账号1和账号2锁定在目录/web/www/html

1.添加账户

useradd -s /sbin/nologin 用户名

2.修改配置文件

(1)禁止匿名用户登录

anonymous_enable=NO

(2)允许本地用户登录

local_enable=YES

(3)设置本地用户根目录

local_root=/web/www/html

(4)本地用户权限是否限制

chroot_local_user=NO

chroot_list_enable=YES

(5)激活chroot功能,锁定用户

chroot_list_file=/etc/vsftpd/chroot_listallow_writeable_chroot=YES

vi chroot_list

(6)认证设置

write_enable=YES

pam_service_name=vsftpd # PAM(可插拔认证)服务的名称为vsftpd

3.重启服务

systemctl restart vsftpd

五、FTP服务器搭建实训

1.实训目的

掌握vsftpd服务器的配置方法。 熟悉FTP客户端工具的使用。掌握常见的FTP服务器的故障排除。

2.项目背景

某企业网络拓扑图如下图所示,该企业想构建一台FTP服务器,为企业局域网中的计算机提供文件传送任务,为财务部门、销售部门和OA系统提供异地数据备份。要求能够对 FTP 服务器设置连接限制、日志记录、消息、验证客户端身份等属性,并能创建用户隔离的FTP站点。

3.操作

 (1)设置匿名帐号具有上传、创建目录权限

 

 

(2)设置禁止本地user1用户登录ftp服务器。

 

 

 (3)设置本地用户user2登录FTP服务器之后,在进入dir目录时显示提示信息“welcome to user's dir!

 

 

 

 

 

 

(4)设置将所有本地用户都锁定在家目录中

 

 

 

(5)设置只有指定本地用户user1和user2可以访问FTP服务器

 

 

 

 

 

(6)配置基于主机的访问控制

实现如下功能:

拒绝192.168.6.0/24访问。

对域jnrp.net和192.168.2.0/24内的主机不做连接数和最大传输速率限制。

对其他主机的访问限制每IP的连接数为1,最大传输速率为20KB/S

 

 

 

 

 

 

 

(7)使用PAM实现基于虚拟用户的FTP服务器的配置。

7. 1使用PAM实现基于虚拟用户的FTP服务器的配置。

 

 

 7.2生成虚拟用户所需的PAM配置文件/etc/pam.d/vsftpd。

 

 7.3修改vsftpd.conf文件。

 

 

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
配置管理FTP服务器需要以下步骤: 1. 安装FTP服务器软件 在Linux系统,可以使用vsftpd、proftpd、pure-ftpd等软件来搭建FTP服务器。以vsftpd为例,在终端运行以下命令进行安装: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2. 配置FTP服务器 打开vsftpd配置文件/etc/vsftpd.conf,在其进行以下设置: - 定义FTP服务器的监听地址和端口: ``` listen=YES listen_ipv6=NO anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to my FTP server. chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO pasv_enable=YES pasv_min_port=30000 pasv_max_port=40000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO ``` - 定义FTP服务器的用户和用户组: 可以使用系统用户和用户组来访问FTP服务器,也可以创建专门的FTP用户和用户组。在vsftpd配置文件,可以定义允许访问FTP服务器的用户和用户组: ``` userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO ``` 创建用户列表文件/etc/vsftpd.user_list,并在其添加允许访问FTP服务器的用户名,如: ``` user1 user2 ``` 3. 启动FTP服务器 完成以上配置后,使用以下命令启动FTP服务器: ``` sudo service vsftpd start ``` 4. 配置防火墙 如果FTP服务器所在的Linux系统启用了防火墙,需要配置防火墙允许FTP流量通过。可以使用以下命令配置防火墙: ``` sudo ufw allow ftp sudo ufw allow 20/tcp sudo ufw allow 21/tcp ``` 其,第一个命令允许FTP流量通过,第二、三个命令允许FTP服务器使用20和21端口。 5. 客户端连接FTP服务器 使用FTP客户端软件(如FileZilla、WinSCP等)连接FTP服务器时,需要输入FTP服务器的IP地址、端口、用户名和密码,以及FTP客户端软件的传输模式(如主动模式或被动模式)。 以上就是配置管理FTP服务器的具体步骤和详解。注意,在实际配置,还需要根据实际情况进行调整和优化,以提高FTP服务器的安全性和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值