搭建centos7文件上传服务器完美运行
搭建vsftpd文件上传服务器,Vsftp 是一个专门为unix类型系统设计一个ftp服务器。
FTP(File transfer Protocl),文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,属于网络传输协议的应用层。
FTP服务运行在TCP/21和20端口,通常来说21端口是连接端口,20端口是数据端口(备注:可以在配置那里更改这个端口,为安全考虑,建议更改)
FTP有两种工作模式,主动模式和被动模式:
1、主动模式:由服务器创建连接,建立的过程描述如下:
客户端发起请求:
Client:50000(大于1023的端口号) –> Server: 21
服务端建立数据传输:
Server: 20/tcp –> Client: 50000+1(客户端请求端口号+1)
2、被动模式:由客户端创建连接,建立的过程描述如下:
客户端发起请求:
Client:50000(大于1023的端口号) –> Server: 21
客户端建立数据传输:
Client:50000+1(客户端请求端口号+1) –> Server: 随机端口
现在开始安装Vsftp服务器#yum -y install vsftpd
vsftpd的程序主要配置文件有: 主程序:/usr/sbin/vsftpd 主配置文件:/etc/vsftpd/vsftpd.conf 数据根目录:/var/ftp 禁止登陆用户列表:/etc/vsftpd/ftpusers 用户列表:/etc/vsftpd/user_list
其中主配置文件 /etc/vsftpd/vsftpd.conf 的默认配置: anonymous_enable=YES #是否允许匿名用户访问 local_enable=YES #是否允许本地用户登录FPT write_enable=YES #是否允许写入权限 local_umask=022 #本地用户上传文件的umask值 dirmessage_enable=YES #是否在用户进入某个目录时显示该目录的注意信息 xferlog_enable=YES #是否让FTP服务器记录上传下载的情况 connect_from_port_20=YES #是否使用20端口进行数据传输 xferlog_std_format=YES #是否将记录的上传下载情况写在xferlog_file所指定的文件中 listen=NO #是否以独立运行的方式监听服务 listen_ipv6=YES #是否支持ipv6 pam_service_name=vsftpd #列出与vsftpd相关的pam文件 userlist_enable=YES #是否启用禁止登录用户名单 tcp_wrappers=YES #是否支持tcp_wrappers
除以上默认使用的参数外,主配置文件还可以设置以下参数: 定义匿名用户的ftp共享权限: anon_world_readable_only =YES #是否全局可读 anon_upload_enable=NO #是否允许上传文件 anon_mkdir_write_enable=NO #是否允许创建目录 anon_other_write_enable=NO #是否删除文件、删除目录 anon_umask=077 #匿名用户的umask 定义系统用户的ftp权限: local_enable=YES #允许本地用户访问(/etc/passwd中的用户) write_enable=YES #允许写入权限,包括修改,删除 local_umask=022 #定义本地用户上传的文件的umask chroot_local_user=YES #是否禁锢所有本地用户于其家目录 chroot_list_enable=YES #是否启用chroot_list_file的名单 chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单
注意:当chroot_local_user=YES和chroot_list_enable=YES时,chroot_list中的用户都是不受限制的用户;当chroot_local_user=NO和 chroot_list_enable=YES时,chroot_list中的用户都是受限制的用户。 控制可登陆vsftpd服务的用户列表: userlist_enable=YES #启用/etc/vsftpd/user_list文件来控制可登陆用户; userlist_deny=NO #NO意味着/etc/vsftpd/user_list为白名单,YES为黑名单 上传下载速率: anon_max_rate=0 #匿名用户的最大上传下载速率,0表示无限制 local_max_rate=0 #本地用户的最大上传下载速率,0表示无限制 并发连接数限制: max_clients=2000 #standalone下最大的并发连接数 max_per_ip=50 #设置单个IP的最大连接数
注意:通过 man vsftpd.conf 可以获取更多参数信息。
vsftp的3种认证方式
vsftp服务为ftp提供了3种认证方式,分别是:匿名用户认证、本地用户认证和虚拟用户认证。匿名用户认证是指任何人无需认证即可访问到FTP服务器;本地用户认证在Linux系统中是指/etc/passwd中的用户;虚拟用户认证是指使用vsftp服务独立维护的FTP账号密码进行登录访问。从安全性来说虚拟用户是最安全的,因为就算FTP的账号密码泄露了,也不会泄露本地的用户账号密码,建议使用虚拟用认证方式。
1. 匿名用户认证登陆方式
ftp服务默认就开启了匿名用户登录,此处修改配置文件/etc/vsftpd/vsftpd.conf:# cp /etc/vsftpd/vsftpd.conf{,.bak} //备份# vim /etc/vsftpd/vsftpd.conf
修改vsftpd.conf配置如下: anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_umask=022
启动vsftpd服务就可以使用了# setenforce 0 # systemctl stop vsftpd.service # systemctl start vsftpd
如果创建test目录失败。匿名用户的默认路径即为ftp用户的家目录/var/ftp,虽然我们已经配置了anon_mkdir_write_enable=YES,但ftp用户的真正权限是vsftpd.conf定义的共享权限与访问的目录的权限的交集,因此我们需要去修改/var/ftp/pub目录的文件权限:# chown ftp:ftp /var/ftp/pub/
2. 本地用户认证登陆方式 # vim /etc/vsftpd/vsftpd.conf
修改vsftpd.conf配置如下:anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 userlist_enable=YES userlist_deny=NO
注意:当userlist_enable=YES而userlist_deny=NO时,/etc/vsftpd/user_list为白名单;当userlist_enable=YES和userlist_deny=YES时,/etc/vsftpd/user_list为黑名单# vim /etc/vsftpd/user_list
# useradd testftp # echo 123456 | passwd --stdin testftp # systemctl restart vsftpd
##本地用户能切换到/etc目录能够下载passwd文件,存在极大风险,因此我们需要把本地用户的访问路径限制在其对应的家目录下:# vim /etc/vsftpd/vsftpd.conf
修改vsftpd.conf配置如下:chroot_local_user=YES allow_writeable_chroot=YES
通过文件指定禁锢的用户#chroot_list_file=/etc/vsftpd/chroot_list
注意:从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,客户端执行写操作时会出现提示:500 OOPS: vsftpd: refusing to run with writable root inside chroot()。
此时如果还想能在对主目录拥有写权限,可以使用allow_writeable_chroot=YES。
3. 虚拟用户认证登陆方式
虚拟用户认证所使用的账号和密码都不是服务器中真实存在的,其安全性比本地用户更好,即使被抓包获取到账号密码都无法直接登录到服务器。配置虚拟用户的流程如下:
1)建立虚拟用户数据库文件
2)创建根目录及虚拟用户映射的系统用户
3)建立支持虚拟用户的PAM认证文件
4)在vsftpd.conf中添加支持配置
5)为虚拟用户设置不同的权限
1)建立虚拟用户数据库文件#vim /etc/vsftpd/vuser
#格式:一行账号名,一行密码test1 123456 test2 12345678
使用db_load命令生成数据库文件# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db # chmod 600 /etc/vsftpd/vuser.db # rm /etc/vsftpd/vuser
2)创建根目录及虚拟用户映射的系统用户# useradd -d /var/vftp -s /sbin/nologin vftp #mkdir /var/vftphome -p # chmod -R 755 /var/vftphome
3)建立支持虚拟用户的PAM认证文件# vim /etc/pam.d/vsftpd.virtual
编辑vsftpd.virtual如下auth required pam_userdb.so db=/etc/vsftpd/vuser #检查账号及密码,数据库不需要写后缀.db account required pam_userdb.so db=/etc/vsftpd/vuser #检查用户是否在有效期内
4)在vsftpd.conf中添加支持配置# vim /etc/vsftpd/vsftpd.conf
修改vsftpd.conf配置文件如下anonymous_enable=NO #禁止匿名登录 local_enable=YES #允许本地用户模式,由于映射的系统用户为本地用户,因此此项必须开启 guest_enable=YES #开启虚拟用户模式 guest_username=vftp #指定虚拟用户账号映射到本地账号vftp pam_service_name=vsftpd.virtual #指定pam文件 chroot_local_user=YES #禁锢用户在其家目录 allow_writeable_chroot=YES #允许禁锢的FTP根目录可写 user_config_dir=/etc/vsftpd/vuser_profile #指定虚拟用户的权限配置目录 userlist_enable=YES userlist_deny=YES allow_writeable_chroot=YES #500 OOPS: vsftpd: refusing to run with writable root inside chroot ()"错误
-----------------------------------------------
5)为虚拟用户设置不同的权限# mkdir /etc/vsftpd/vuser_profile# vim /etc/vsftpd/vuser_profile/test1
修改如下:anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022
# vim /etc/vsftpd/vuser_profile/test2
修改配置如下:local_root=/vftp/test2 //##错误提示服务器发回了不可路由的地址。不使用默认的文件目录,自己指定目录 anon_umask=022 anon_mkdir_write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES
# mkdir -p /vftp/test2 # chown -R vftp:vftp /vftp/test2 # systemctl restart vsftpd
6)配置安全规则#vi /etc/vsftpd/vsftpd.conf
修改如下: write_enable=YES # 可写权限 pasv_enable=YES # 启用pasv模式 pasv_min_port=30000 # 设置pasv模式中的可用端口范围(开始) pasv_max_port=30100 # 设置pasv模式中的可用端口范围(结束) pasv_address=47.99.56.154 # 设置pasv模式中的外网IP seccomp_sandbox=NO # 关闭 seccomp 功能 pasv_promiscuous=YES ##(可选)这个不打开, 在连接时可能会出现bad ip ....可能是网络不稳定..也或者是ip在传输时有改变.....
最后重启下vsftp服务 #systemctl restart vsftpd
##在ECS实例安全组中,分别增加两条规则,允许相应的tcp端口访问(tcp 21端口,和 tcp 3000到30100端口)
##客户端测试:
#用户test1# lftp 192.168.4.119 -u test1
##vsftp修改端口
1、编辑/etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=811
2、编辑/etc/services 文件,将其中的
ftp 21/tcp 改为 ftp 811/tcp ,
ftp 21/udp 改为 ftp 811/udp
3、执行systemctl restart vsftpd 重新启动vsftpd 服务。启动完成后可以使用
netstat -tnulp | grep vsftpd
你就可以查看到现在系统现监听的vsftpd 的端口为811
都是因为懒,一位资深理工男与洗碗机的爱恨情仇我原是一只自由自在,放荡不羁的单身狗,穿行在这座钢铁丛林城市之中,饿了邀约三两只狗一起下馆子,或者点外卖,一狗吃饱,每日撒欢。后来一招不慎,沦为家庭煮夫,好在厨艺尚可,尚能吃。然而
滴滴的大数据真的是归滴滴所有么?滴滴公司低调海外上市,引发全社会关注,其核心关注点之一便是滴滴是否将大数据出卖给了海外。众所周知,一个东西要拿去卖,首先你要拥有这个东西的所有权,这是根本的前提。因此,本文要讨论的
手撕枕边人比起郎咸平,吴亦凡只能算个小弟弟都是手撕枕边人,郎咸平只是要钱,吴亦凡要的却是人无千日好,花无百日红。本以为只是成年人之间你情我愿的欢娱,当激情褪去,剩下的只是赤裸裸的利益。顶流明星和年轻女网红,经济学家和貌美空
从扶贫攻坚到乡村振兴,千千万万雷金玉们的辛酸责任与荣耀落岭过少上岭多,担柴挟竹腰背驼,忖要发财投无路,歌是眼泪泪是歌一曲古老的山歌唱出了老区山民的苦日子,也唱出了老区人对富裕生活的向往。山连着山,环山而行,一个村和另一个村间隔着几座大
东方大秦对战西方罗马,孰强孰弱岂曰无衣?与子同袍。王于兴师,修我戈矛一首秦风无衣唱出了秦帝国军人风貌。永恒罗马,我永远的家,无论敌船多强,我们从不害怕一曲军歌唱出了古罗马军人的勇气。当东方大秦对战西方罗马,孰强
如何实现作为一名专业交易员的职业目标?要创建一条成功的交易之路,需要一个清晰的交易思路,一个合理可实现的交易目标。因为以目标为导向的思维方式才能逐渐提高交易的专注力,建立内在动力和交易纪律,同时能增加成功的动力。在活跃
商品大王罗杰斯一生最惨熊市快要到来,美国金融将遭重创罗杰斯美国著名投资人素有商品大王之称的罗杰斯(JimRogers)曾多次警告美国是世界上最大的债务国,债务无处不在,迟早将为此付出代价,近期更大胆预测,全世界将经历一场大规模的经济
神预言40年后,比特币价格将突破600万美元正值中国全面封杀虚拟货币交易之际,比特币基金组织主科学家安加文德烈森(GavinAndresen)刚作出了一个超级超级大胆的预测。他认为比特币的价格可能有朝一日突破600万美元,他
意大利传奇门将世界冠军詹路易吉布冯正式签约成为TMGM品牌大使摘要2021年9月21日全球领先的差价合约经纪商TMGM正式揭晓其品牌大使,携手EntourageSportsandEntertainment签约意大利传奇门将世界冠军詹路易吉布冯
这是一个胜率接近80的交易系统!请免费领取试用交易中,你是否也碰过这样的瓶颈,明明学习与运用技术分析交易多年,但却总是不赚钱甚至亏钱,这其实不能怪罪于工具,问题很可能是出在你忘了对交易工具进行优化升级。工欲善其事,必先利其器。
学前班第27课外币与股票交易的不同之处在纽约证券交易所大约有2800多只上市股票。另外3300多只在纳斯达克上市。你打算交易哪一只股票呢?现货外汇交易的货币有几十种,但多数的市场参与者主要关注并交易七种主要货币对。相比