centos7基于vsftpd的ftp服务使用
admin
2023-02-26 11:01:53
0

一、简要说明
ftp:文件传输协议
vsftpd:非常安全的ftp进程
二、工作模式
ftp的命令端口为21
主动模式(不推荐):ftp数据端口为20,服务器连接客户端,因为客户端都有防火墙,所有使用不便
被动模式(推荐):服务器告诉客户端我开放的端口,客户端连接服务器
三、安装vsftpd

yum -y install vsftpd
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

安装完成后,防火墙设置开启21和配置文件中(pasv_min_port 到 pasv_max_port)的端口
配置文件:/etc/vsftpd/vsftpd.conf
主程序:/usr/sbin/vsftpd
四、被动模式配置ftp
1.通用配置

#anonymous 
anonymous_enable=NO
#local system user
local_enable=YES
allow_writeable_chroot=YES
#passive mode and port
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20999
#listen
listen=YES
listen_ipv6=NO
connect_from_port_20=YES
#log 
xferlog_enable=YES
xferlog_file=/var/log/xferlog
#welcome info
dirmessage_enable=YES
#trans limit
idle_session_timeout=120
data_connection_timeout=120
tcp_wrappers=YES
max_clients=10
max_per_ip=10
#safe
local_umask=022
chroot_local_user=YES

2.匿名用户配置(不推荐)
匿名用户anonymous,对应服务器的ftp用户,访问的文件夹为/var/ftp,除root不能有写权限
开启配置

#anonymous 
anonymous_enable=YES

3.系统用户配置(不推荐)
因为ftp是明文传输,如果被抓包了就能看到系统用户的用户名和密码,导致服务器不安全
相关配置

#local system user
local_enable=YES
write_enable=YES

五、虚拟用户配置(推荐)
可以基于数据库和文件两种模式,文件模式配置如下:
1.创建用户数据库文件
vm_user.txt格式必须是一行用户名一行密码如
tom
123456

vi /etc/vsftpd/vm_user.txt
cd /etc/vsftpd/
db_load -T -t hash -f vm_user.txt vm_user.db
chmod 600 vm_user.db

2.创建映射的用户和FTP目录

useradd -s /sbin/nologin ftpuser

3.创建pam文件

vi /etc/pam.d/vm-vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vm_user
account required pam_userdb.so db=/etc/vsftpd/vm_user

4.在vsftp.conf中进行配置

#vm_ftp
guest_enable=YES
guest_username=ftpuser
pam_service_name=vm-vsftpd
user_config_dir=/etc/vsftpd/vm_ftp.d/

5.为虚拟用户进行单独权限设置

mkdir /etc/vsftpd/vm_ftp.d/
mkdir /home/ftpuser/life
chown -R ftpuser:ftpuser /home/ftpuser/
vi /etc/vsftpd/vm_ftp.d/tom
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftpuser/life

6.完整的vsftpd.conf配置如下

#anonymous 
anonymous_enable=NO
#local system user
local_enable=YES
allow_writeable_chroot=YES
#passive mode and port
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20999
#listen
listen=YES
listen_ipv6=NO
connect_from_port_20=YES
#log 
xferlog_enable=YES
xferlog_file=/var/log/xferlog
#welcome info
dirmessage_enable=YES
#trans limit
idle_session_timeout=120
data_connection_timeout=120
tcp_wrappers=YES
max_clients=10
max_per_ip=10
#safe
local_umask=022
chroot_local_user=YES

#vm_ftp
guest_enable=YES
guest_username=ftpuser
pam_service_name=vm-vsftpd
user_config_dir=/etc/vsftpd/vm_ftp.d/

7.重启并加入开机启动项

systemctl restart vsftpd
systemctl enable vsftpd

六、基于mysql或mariadb的虚拟文件配置
基本配置同上面一样,不同之处在于修改pam模块文件和数据库建表
1.pam文件内容改为,crypt为0表示数据库明文存放,1位加密存放

auth required  /usr/lib64/security/pam_mysql.so user=ftpuser passwd=ftp123456 host=localhost db=mylab  table=ftp_user  usercolumn=name  passwdcolumn=password  crypt=0
account required /usr/lib64/security/pam_mysql.so user=ftpuser  passwd=ftp123456 host=localhost  db=mylab  table=ftp_user usercolumn=name passwdcolumn=password  crypt=0

2.安装pam所需文件

yum -y install pam-devel

安装pam_mysql-0.7RC1

tar xf  pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-mysql=/home/program/mariadb/ --with-pam-mods-dir=/lib64/security/
make & make install

pam模块文件需要用到数据库的库文件所以

vi /etc/ld.so.conf.d/mysql.conf
/home/program/mariadb/lib
ldconfig

3.数据库建立表和授权用户

create table ftp_user(id int not null auto_increment primary key,name char(20) binary not null,password char(48) binary not null);
insert into ftp_user(name,password) values('ftphome','123'),('ftpwork','456');
grant select on mylab.ftp_user to 'ftpuser'@'localhost' identified by '123456';
flush privileges;

七、配置说明

anonymous_enable=YES 是否启用匿名用户
local_enable=YES 是否启动系统用户
write_enable=YES 可以上传文件
anon_upload_enable=YES 默认匿名用户不能上传,开启上传,但是默认var/pub目录本身没有写权限,
anon_mkdir_write_enable=YES 匿名用户可以创建文件夹
anon_other_write_enable=YES 匿名用户其他写权限
dirmessage_enable=YES 是否显示欢迎信息 目录下的隐藏文件.message为内容
xferlog_enable=YES 是否启动传输日志
xferlog_file=/var/log/xferlog 指定日志文件
xferlog_std_format=YES 日志文件是否使用标准格式
chown_uploads=YES 上传后是否改变属主
chown_username=whoever 改变的属主为
idle_session_timeout=600 命令连接超时
data_connection_timeout=120 数据连接超时
ascii_upload_enable=YES 以文本模式上传
ascii_download_enable=YES 以文本模式下载
chroot_local_user=YES 全部用户锁定到家目录
chroot_list_enable=YES 需要例外
chroot_list_file=/etc/vsftpd/chroot_list 例外用户列表
allow_writeable_chroot=YES 当设置禁锢目录后,默认对根文件夹没有写权限才能登陆,该设置可以启用写入
listen=YES 是否监听
pam_service_name=vsftpd pam验证文件模块名
userlist_enable=YES  启用user_list文件
userlist_deny=NO 当为yes时,列表中的不能登录,当为no时只有列表中的用户才能登陆
tcp_wrappers=YES 可以通过host文件进行限制
nax_clients = 10 最多客户端连接数
max_per_ip = 10 每个ip可以连接几个
anon_world_readable_only=YES 是否允许下载,YES不能下载,NO可以

相关内容

热门资讯

特朗普对美伊达成协议再表乐观 ... 新华社华盛顿5月6日电 美国总统特朗普6日接受美国公共广播公司电话采访时,对美国同伊朗达成协议的前景...
美对伊战事或为白宫记协晚宴枪手... 当地时间5月6日,总台记者获悉,美国国土安全部在一份情报评估中指出,美国对伊朗发起的军事行动可能是白...
权威数读丨尽显中国活力!五一假... 全社会跨区域人员流动量超15亿人次,消费相关行业销售收入同比增长14.3%,电影票房突破7.5亿元…...
“最美婚姻登记点”长啥样 郑州市金水区民政局婚姻登记处为新人举行户外颁证仪式。 受访者供图三门峡市天鹅湖婚姻登记处设置的创意路...
消息人士称伊朗预计将于7日回应... △伊朗首都德黑兰(资料图)当地时间5月6日,据一位地区消息人士表示,伊朗预计将于5月7日向调解人提交...
大数据透视“五一”假期消费亮点 刚刚过去的“五一”假期,国内消费市场活力十足。5月1日至4日,商务部重点监测的78个步行街(商圈)客...
河南超有品 第十个“中国品牌日... 4月30日,走进位于新县的羚锐制药贴膏剂生产基地,没有印象中传统药材加工的浓郁气味,也没有传统车间的...
假日出游正当时 文旅市场活力涌 “五一”假期,全省接待国内游客6611.7万人次,实现旅游收入381.1亿元假日出游正当时 文旅市场...
坚定不移沿着习近平总书记指引的... 大风起兮风车转。支撑这个“追风巨人”不停转动的“芯”,主要产自洛阳。5月6日,在洛阳轴承集团股份有限...
燃气灶为什么换了感应针还是熄灭 问题:燃气灶为什么换了感应针还是熄灭回答:原因是电池有没有电,这是平时容易碰见的问题,发现点不着火时...