Linux下的FTP相关设置

本文详细介绍了在Linux系统中设置FTP服务的过程,包括安装vsftpd、启动与配置服务,以及设置防火墙规则。内容涵盖匿名用户与本地用户权限设定、限制用户浏览目录、用户登陆限制、虚拟用户配置及其独立家目录设定等,旨在提供全面的FTP服务器管理指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1、连接
服务器端
(1)vim /etc/sysconfig/selinux

 

(2)reboot

 

(3)yum install vsftpd
(4)systemctl start vsftpd
(5)systemctl enable vsftpd

 

(6)netstat -antlupe|grep vsftpd #查看端口是否成功开启

 

(7)firewall-cmd --list-all
(8)firewall-cmd --permanent --add-service=ftp #添加ftp服务
(9)firewall-cmd --reload #更新防火墙规则

 

(10)firewall-cmd --list-all

 

测试
lftp 172.25.254.68(服务端ip)
ls

 

lftp命令不能执行时,安装lftp软件

2、ftp服务基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件:ls/etc/vsftpd/vsftpd.conf
报错id的解析:500 #文件系统权限过大
530 #用户认证失败
550 #服务本身功能未开放

553 #本地文件系统权限过小

3、ftp服务设置

修改配置文件后,一定要systemctl restart vsftpd重启服务!

man 5 vsftpd.conf 可以查看相关设置

##本地用户可写(上传、删除)

 

write_enable=YES
##本地用户登陆
local_enable=YES
##匿名用户登陆

 

anonymous_enable=YES

测试过程:

##匿名用户建立目录

anon_mkdir_write_enable=YES

 

chgrp ftp /var/ftp/pub #更改所属组

 

chmod 775 /var/ftp/pub #更改pub权限

原本匿名用户不能创建目录,设置后匿名用户可以在pub下创建目录:

##匿名用户上传(前提是本地用户可写)

anon_upload_enable=YES

测试过程:

##匿名用户下载
匿名用户默认不能下载自己不能读的文件

anon_world_readable_only=NO

测试过程:

##匿名用户删除

anon_other_write_enable=YES

测试过程:

##匿名最大传输速率

anon_max_rate=102400

未设置前:

设置后:

##匿名用户家目录修改

anon_root=/direcotry

测试过程:

##用户权限
local_umask=077 修改umask022为077后,本地用户权限由644变为600

anon_umask=022 添加umask为022后,匿名用户权限由600变为644

其中内核预留了100的权限

##限制本地用户浏览/目录(匿名用户不能浏览/目录

 

chroot_local_user=YES #所有本地用户被锁定到自己的家目录

 

chmod u-w /home/* #减小用户权限

修改后测试:

 

(1)用户白名单建立
chroot_local_user=YES #所有本地用户被锁定到自己家目录
chroot_list_enable=YES

 

chroot_list_file=/etc/vsftpd/chroot_list #此时/etc/vsftpd/chroot_lis为用户白名单

执行vim /etc/vsftpd/chroot_list,将yee用户写入名单,该名单内容自动加载

(2)用户黑名单建立

 

chroot_local_user=NO #所有本地用户可浏览/目录
chroot_list_enable=YES

 

chroot_list_file=/etc/vsftpd/chroot_list#此时/etc/vsftpd/chroot_lis为用户黑名单

执行vim /etc/vsftpd/chroot_list,将haha用户写入名单

##用户登陆限制
(1)cd /etc/vsftpd/
(2)ls
chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh

ftpusers永久黑名单 ;user_list临时黑名单

永久黑名单不受其他配置的影响,临时黑名单受userlist_enable和userlist_deny两项配置的影响

(3)vim vsftpd.conf

userlist_enable=YES

此时,将student写入ftpusers、user_list结果一致,student登陆被限制:

 

(3)vim vsftpd.conf
userlist_enable=YES
#当且仅当YES时,userlist_deny的设置才生效
userlist_deny=NO #将user_list名单改为白名单

 

将haha写入user_list时,haha为白名单用户可以正常登陆,但是!将其再加入ftpusers后,haha即为黑名单用户,这是因为:永久黑名单优先级别高,当黑白名单中都有某用户时,该用户为黑名单用户

使用白名单后,匿名用户无法登陆!除非在user_list白名单中加入anonymous

##虚拟用户设定
(1)yum whatprovides */pam_userdb.so #查找软件
(2)yum install pam-1.1.8-9.el7.x86_64 #下载
(3)vim /etc/vsftpd/yeefile #写入虚拟用户身份及密码,如:
user1
123
user2
123
user3
123

(4)db_load -T -t hash -f etc/vsftpd/yeefile /etc/vsftpd/yeefile.db #将yee文件哈希加密为yee.db

 

(5)vim /etc/pam.d yee #制定策略文件,写入:
account  required  pam_userdb.so   db=/etc/vsftpd/yeefile #用户
auth       required  pam_userdb.so   db=/etc/vsftpd/yeefile #密码
 
required表示必须要通过模块认证 ; pam_userdb.so 模块 ;db=/etc/vsftpd/yeefile名单

 

(6)vim /etc/vsftpd/vsftpd.conf #修改配置文件

 

pam_service_name=yee #策略文件
userlist_enable=YES
guest_enable=YES

 

guest_username=ftp #ftp是存在的用户,虚拟帐号身份指定

测试:

##虚拟帐号家目录独立设定
mkdir /ftpusers
mkdir /ftpusers/user{1..3}
touch /ftpusers/user1/test1
touch /ftpusers/user2/test2
touch /ftpusers/user3/test3 #给虚拟用户独立家目录里建立文件,方便区分
vim /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd

测试:

##虚拟帐号配置独立
(1)mkdir /ftpusers/user{1..3}/pub
(2)mkdir /etc/vsftpd/user.conf -p
(3)vim /etc/vsftpd/vsftpd.conf #写入图示内容,同时注释掉上传文件的功能

(4)chgrp ftp /ftpusers/user{1..3}/pub #改变组为配置文件里面的已经存在的组
(5)chmod 775 /ftpusers/user{1..3}/pub #改权限

(6)systemctl restart vsftpd

(7)vim /etc/vsftpd/user.conf/user1 #编辑user1的配置文件,此文件中设定的所有参数只对user1可用,此文件的优先级高
anon_upload_enable=YES #上传命令

测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值