千家信息网

centos7基于vsftpd的ftp服务使用

发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,一、简要说明ftp:文件传输协议vsftpd:非常安全的ftp进程二、工作模式ftp的命令端口为21主动模式(不推荐):ftp数据端口为20,服务器连接客户端,因为客户端都有防火墙,所有使用不便被动模
千家信息网最后更新 2024年12月03日centos7基于vsftpd的ftp服务使用

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

yum -y install vsftpdsetenforce 0sed -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 userlocal_enable=YESallow_writeable_chroot=YES#passive mode and portpasv_enable=YESpasv_min_port=20000pasv_max_port=20999#listenlisten=YESlisten_ipv6=NOconnect_from_port_20=YES#log xferlog_enable=YESxferlog_file=/var/log/xferlog#welcome infodirmessage_enable=YES#trans limitidle_session_timeout=120data_connection_timeout=120tcp_wrappers=YESmax_clients=10max_per_ip=10#safelocal_umask=022chroot_local_user=YES

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

#anonymous anonymous_enable=YES

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

#local system userlocal_enable=YESwrite_enable=YES

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

vi /etc/vsftpd/vm_user.txtcd /etc/vsftpd/db_load -T -t hash -f vm_user.txt vm_user.dbchmod 600 vm_user.db

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

useradd -s /sbin/nologin ftpuser

3.创建pam文件

vi /etc/pam.d/vm-vsftpdauth required pam_userdb.so db=/etc/vsftpd/vm_useraccount required pam_userdb.so db=/etc/vsftpd/vm_user

4.在vsftp.conf中进行配置

#vm_ftpguest_enable=YESguest_username=ftpuserpam_service_name=vm-vsftpduser_config_dir=/etc/vsftpd/vm_ftp.d/

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

mkdir /etc/vsftpd/vm_ftp.d/mkdir /home/ftpuser/lifechown -R ftpuser:ftpuser /home/ftpuser/vi /etc/vsftpd/vm_ftp.d/tomwrite_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/home/ftpuser/life

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

#anonymous anonymous_enable=NO#local system userlocal_enable=YESallow_writeable_chroot=YES#passive mode and portpasv_enable=YESpasv_min_port=20000pasv_max_port=20999#listenlisten=YESlisten_ipv6=NOconnect_from_port_20=YES#log xferlog_enable=YESxferlog_file=/var/log/xferlog#welcome infodirmessage_enable=YES#trans limitidle_session_timeout=120data_connection_timeout=120tcp_wrappers=YESmax_clients=10max_per_ip=10#safelocal_umask=022chroot_local_user=YES#vm_ftpguest_enable=YESguest_username=ftpuserpam_service_name=vm-vsftpduser_config_dir=/etc/vsftpd/vm_ftp.d/

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

systemctl restart vsftpdsystemctl 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=0account 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.gzcd 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/libldconfig

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可以
文件 用户 配置 数据 模式 数据库 服务 客户 客户端 服务器 权限 目录 推荐 端口 文件夹 日志 模块 系统 传输 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国网络技术有限公司沈婷婷 黎明杀机服务器更换 松江区软件开发服务资质三级认证 网络安全证书叫什么意思 山西太原触摸互动软件开发公司 ck 数据库下载 腾讯云计算服务器在哪 网络安全新特点 河南雅梓互联网科技 es做数据库会有什么问题 手机玩韩服需要服务器吗 搞软件开发公司多吗 黔东南曙光服务器cpu 运行本地局域网数据库 网络安全法相关法律汇总 网络安全知识教育视频 数据库怎么写用户名和密码 奉贤区什么是软件开发费用是多少 南宁搞软件开发待遇 四川联想服务器虚拟化多少钱 数据库原理与应用技术下载 监控室里的服务器旧的值多少钱 读秀数据库的全文阅读格式有哪些 医院网络技术人员做什么 数据库基本界面 第五届中国网络安全大 个人简历能力软件开发 洛阳迅享网络技术有限公司 黔东南曙光服务器cpu 深圳小护互联网科技有限公司
0