系统运维
官方语言介绍下ftp,文件传输协议(file transfer protocol,ftp)是用于在网络上进行文件传输的一套标准协议,ftp 的目标是提高文件的共享性。今天从ftp的两种模式,ftp用户管理主要的两方面实践使用下。
1.ftp 两种模式
简明直接:
主动ftp:
命令连接:客户端 >1024端口 —> 服务器 21端口
数据连接:客户端 >1024端口 <— 服务器 20端口
被动ftp:
命令连接:客户端 >1024端口 —> 服务器 21端口
数据连接:客户端 >1024端口 —> 服务器 >1024端口
具体说明:
如图对于两种传输模式来说,控制连接的建立过程都是一样,均为服务器监听21号端口,客户端向服务器的该端口发起tcp连接。主动模式服务器通过控制连接知道客户端监听的端口后,使用自己的20号端口作为源端口,“主动”发起tcp数据连接。而被动模式服务器监听1024-65535的一个随机端口,并通过控制连接将该端口告诉客户端,客户端向服务器的该端口发起tcp数据连接。
两种模式该选择哪个了?选择被动模式。
如果ftp客户端在私网,ftp服务器在公网(云主机的应用场景)应该使用被动模式,因为这种应用场景ftp服务器访问不到在私网的ftp客户端,而ftp客户端可以访问到ftp服务器。
那ftp服务器放开大于1024端口,不安全,如何做了?
服务端配置高点端口,然后防火墙中限制这个端口段可以被客户端连接过来。
再者就是限制客户端的ip,指定特定的客户端地址。(谁用谁连)
被动模式配置connect_from_port_20=nopasv_enable=yes 开启被动模式pasv_min_port=%number% %u88ab动模式最低端口pasv_max_port=%number% %u88ab动模式最高端口2.ftp 创建虚拟用户(加强访问安全的措施)
简明直接:
我们登录ftp有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录ftp时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是ftp专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
ftp虚拟用户是ftp服务器的专有用户,使用虚拟用户登录ftp,只能访问ftp服务器提供的资源,大大增强了系统的安全。
具体实施:
2.1 搭建
yum -y install vsftpd
添加虚拟用户文件,添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
vim /etc/vsftpd/vuser.txt
name #用户
passwd #密码
生成虚拟用户认证文件
db_load -t -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
编辑vsftpd的pam认证文件/etc/pam.d/vsftpd
vsftpd的其他行可注释掉。
添加以下:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
建立本地映射用户并设置宿主目录权限
useradd -d /data -s /sbin/nologin vsftpd
chmod a-w /data
chown -r vsftpd:vsftpd /data
2.2 配置文件vsftpd.conf
#连接相关ftpd_banner=welcome to ftp service#空闲超时时间,用户超过这段时间不动作被服务器提出。idle_session_timeout=300#数据连接超时时间data_connection_timeout=60connect_timeout=60max_clients=100#允许每个客户端连接3个max_per_ip=3listen_address=192.168.100.100listen_port=21#权限相关#不允许匿名用户登录anonymous_enable=no#允许本地用户登录(这里指创建系统用户vsftpd)local_enable=yes#允许ascii模式的上传(可以防止上传脚本等恶意文件),而不会遭受拒绝服务的危险。ascii_upload_enable=yesguest_enable=yesguest_username=vsftpd#允许匿名用户上传(这里指系统用户下的虚拟用户)anon_upload_enable=yes#允许匿名用户创建和写入anon_mkdir_write_enable=yes#开启全局权限write_enable=yes#设置这个之后客户端上传目录权限就改为755,文件权限就为644anon_umask=022#以下为系统默认设置#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。dirmessage_enable=yes#xferlog_enable=yes,启用记录上传/下载活动日志功能。xferlog_enable=yes#connect_from_port_20=yes启用ftp数据端口的连接请求connect_from_port_20=noxferlog_std_format=yes#在vsftpd中使用tcp_wrappers远程访问控制机制,默认值为yestcp_wrappers=yes特别强调的配置:
#开启虚拟用户;虚拟用户对应的系统用户;pam认证文件。guest_enable=yesguest_username=vsftpdpam_service_name=vsftpd#这种完成后只能上传文件,及下载文件。但是不能修改ftp 服务端的文件。如何才能修改及删除呢?anon_other_write_enable=yes #允许虚拟用户写入权限(即修改删除操作)2.3 启动vsftpd
systemctl start vsftpd
域名申请信息有什么重要性?域名注册注意什么?自学编程从哪学起CC攻击和ddos的区别云主机如何开机水果店如何玩转微分销商城?TM标、R标到底是什么意思?R字标和TM标的区别对比云服务器 ecs 云空间深圳商标注册在哪里