-
ftp服务器搭建
2017-05-31 13:23:09ftp服务器搭建在搭建linux下的ftp服务器之前,大家要清楚服务器搭建流程:
- 检查并安装ftp程序
- 对配置文件进行修改,完成用户需求(尤为重要)
- 对防火墙iptable进行操作,添加模块以及21号端口,对ftp服务进行支持
- 添加系统用户,以及虚拟用户
- 登录测试,是否可以登录服务器
- 检查并安装ftp程序
vsftpd-2.2.2-24.el6.i686
如未安装此程序,则用yum语句对其进行安装:
[lingyun@localhost ~]$ yum -y install vsftpd
安装完成后并设置为开机启动项目(开始的时候是被禁止的):
[lingyun@localhost ~]$ chkconfig vsftpd on
以上为止,最基本的安装操作已经完成。
我们可以用绝对路径[root@localhost /]# cd /etc/vsftpd打开此文件夹
有三个主文件:
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/ftpusers 指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。- 对配置文件进行修改
- 匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous
- 本地用户登录:使用系统用户登录,在/etc/passwd中
- 虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器
一般情况下,会有以下项目要进行修改
anonymous_enable=YES/no 是否允许匿名用户登录
anonymous_enable=yes/no 是否允许匿名上传文件
local_enable= YES/no 是否允许本地用户登录
write_enable= YES/no 是否允许本地用户上传
local_mask=022 设置本地用户的文件生成掩码为022,默认值为077
guest_enable=yes/no 是否允许虚拟用户登录
dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容
xferlog_enable= YES 激活上传和下载日志
connect_from_port_20=YES 启用FTP数据端口连接
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下
userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器
userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器
userlist_file=/etc/vsftpd/user_list 存储用户名的文件,显式指定的用户才允许登录
listen= YES/no 是否使用独占启动方式(这一项比较重要)
tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式
chroot_local_user=YES/no 是否可以让ftp用户跳出自己的家目录,(yes是禁止跳出,no是可以)
以下是我的配置:
为了提高服务器的安全性以及减少服务器承载量,我们设置anonymous_enable=no,禁止匿名登录
在上图中以下是设置本地用户登录权限
local_enable= YES 允许本地用户登录
write_enable= YES 允许本地用户上传
local_mask=022 设置本地用户的文件生成掩码为022
dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容
其余为默认值,在不知道具体使用情况下没要修改。
虚拟用户配置:
chroot_local_user=no
chroot_list_enable=YES (对以下路径权限进行限制)
chroot_list_file=/etc/vsftpd/xunipasswd.file (限制用户目录)
#chroot_list_file=/etc/vsftpd/chroot_list (我注释掉它默认的选项,因为chroot_list 它的功能与我自己创建的xunipasswd.file文件夹功能一样:虚拟用户账号及密码列表,文件夹名字自拟,之后详解)
listlisten=YES 允许ftp运行在独立模式之下
guest_enable=YES (允许虚拟用户)
guest_username=zbq (虚拟用户映射的系统用户)
pam_service_name=vsftpd (pam证明模块)
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/xuniuser_config (虚拟用户配置文件,配置的是以上提到的xunipasswd.file文件夹中的用户)
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list (用户总表列,虚拟用户名也需要加入)
userlist_deny=NO
tcp_wrappers=YES
我们对配置做以下讲解:
chroot_local_user 是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外
chroot_list_enable 是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁
chroot_list_file=/etc/vsftpd/chroot_list (xunipasswd.file) 是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些,所以我们这里做的是局部调整,把chroot_list_file=/etc/vsftpd/xunipasswd.file 此路径中的用户做限制,禁止切换到上级目录。基于用户列表文件 /etc/vsftpd/user_list来配置 FTP 来允许/拒绝用户的访问,默认情况下,如果设置了 userlist_enable=YES ,当 userlist_deny选项设置为 YES 的时候列出的用户被拒绝登录,然而, 更改配置为 userlist_deny=NO,意味着只有在/etc/vsftpd/user_list显式指定的用户才允许登录。
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list (用户总表列,虚拟用户名也需要加入)
userlist_deny=NO
完成以上配置后重启ftp使其生效[root@localhost vsftpd]# service vsftpd restart
- 对防火墙iptable进行操作,添加模块以及21号端口,对ftp服务进行支持
添加tcp模块 IPTABLES_MODULES="ip_conntrack_ftp"
[root@localhost vsftpd]#vi /etc/sysconfig/iptables
添加端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
然后重启iptable使其生效[root@localhost vsftpd]# service iptables restart
- 添加系统用户,以及虚拟用户(这里着重讲虚拟用户)
- 添加虚拟用户口令文件vi /etc/vsftpd/xunipasswd.file
zhubaiqing #用户名
123456789 #密码- 生成虚拟用户口令认证文件
首先查看系统有没有安装生成口令认证文件所需的软件db4-utils
[root@localhost vsftpd]# rpm -q db4-utils
db4-utils-4.7.25-19.el6_6.i686
使用db_load命令生成虚拟用户口令认证文件
db_load –T –t hash –f /etc/vsftpd/xunipasswd.file /etc/vsftpd/vftpuser_passwd.db- 编辑vsftpd的PAM认证文件
vi /etc/pam.d/vsftpd
将里面其他的都注释掉,修改下面这两行(告诉系统生成的db文件的路径以及文件名):
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser 修改为auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser_passwd
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser 修改为account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser_passwd
- 建立本地映射用户并设置宿主目录权限
[root@localhost vsftpd]# #useradd –d /home/zbq –s /sbin/nologin zbq
用root账户创建的此系统用户,我们要给它相应的权限:
[root@localhost vsftpd]#chmod 700 /home/zbq
FTP 用户所映射到的系统帐户必须对 FTP 用户主目录拥有相应的读/写权限。仍然以zhubaiqing用户为例,本文中zhubaiqing虚拟用户是被映射到zbq系统帐户的,所以 zbq系统帐户必须拥有对zhubaiqing 的 FTP 主目录/data/FTP/zhubaiqing 的读/写权限
[root@localhost vsftpd]#chown -R zbq:zbq /data/FTP/zhubaiqing/
之后我们需要将我们创建的用户加入到/etc/vsftpd/user_list中,
以满足我们之前的设置
userlist_enable=YES
用以下命令对账户进行添加:
# echo "zhubaiqing" | tee -a /etc/vsftpd/user_list
# echo "zbq" | tee -a /etc/vsftpd/user_list
# cat /etc/vsftpd/user_list
- 配置xuniuser.conf(设置虚拟用户配置项)
此xuniuser_config是手动创建的文件夹,里面包含了对xunipasswd.file中账户的配置,而我们之前提到过xunipasswd.file中是虚拟用户的账户和密码信息,有它生成的db文件。现在我们理清一条线:passwd.file虚拟用户信息,xuniuser_config控制着每一个虚拟用户的权限。这两个文件在主配置文件中都必须有路径存在指导系统进行操作
/etc/vsftpd/xuniuser_config 下给每个用户创建个权限文件,这个文件要和虚拟用户名称相
例:vi/etc/vsftpd/xuniuser_config/zhubaiqing
local_root=/data/FTP/zhubaiqing 虚拟用户的登录后的目录路径(必须存在,自己创建)
local_root=/data/FTP/zhubaiqing
保存退出
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
pam_service_name=vsftpd
- 重启vsftpd服务
- 测试虚拟用户登录FTP
如果用浏览器无法登录查看
vi /etc/selinux/config
把此项修改为SELINUX=disable
命令行使用lftp命令:
lftp zhubaiqing@ip 回车
123456789
成功
-
FTP服务器搭建
2020-11-21 12:38:13FTP服务器搭建 添加角色web服务器IISà勾选FTP服务器à安装 打开IIS,右键网站属性à添加FTP站点à分配ipà勾选身份验证并授权 3.本地创建组并加入用户即可访问ftp服务器11FTP服务器搭建
- 添加角色web服务器IISà勾选FTP服务器à安装
- 打开IIS,右键网站属性à添加FTP站点à分配ipà勾选身份验证并授权
3.本地创建组并加入用户即可访问ftp服务器11
-
Ftp服务器搭建
2016-08-04 16:33:48 -
ubuntu FTP 服务器搭建
2018-05-02 11:14:14ubuntu FTP 服务器搭建 主用户+匿名用户 ubuntu FTP 服务器搭建 主用户+匿名用户 ubuntu FTP 服务器搭建 主用户+匿名用户 -
FTP 服务器搭建
2017-02-08 16:30:411、更新源 sudo apt-get update 2、 安装vsftpd ...5、FTP ...close 终止当前的ftp会话 ...open 连接远程ftp站点 ...断开与远程机的连接并退出ftp ? 显示本地帮助信息 ! 转到Shell中1、更新源
sudo apt-get update
2、安装vsftpd
sudo apt-get install vsftpd
3、修改配置文件
sudo vi /etc/vsftpd.conf
4、重启vsftpd服务
sudo service vsftpd restart
开启、停止vsftpd服务也很简单:
service vsftpd start | stop
5、FTP常用的命令
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
close 终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
断开与远程机的连接并退出ftp
? 显示本地帮助信息
! 转到Shell中 -
ftp 服务器搭建
2013-11-07 20:42:05ftp服务器构建 1.安装vsftpd服务器 sudo apt-get install vsftpd 2.配置vsftpd.conf文件 sudo vi /etc/vsftpd.conf 添加下面设置 anonymous_enable=YES anon_root=/home/akaedu/ftp no_anon_password=YES ...
-
MySQL 四类管理日志(详解及高阶配置)
-
技术干货 | 阿里云数据库PostgreSQL 13大版本揭秘
-
华为1+X——网络系统建设与运维(中级)
-
纳秒和飞秒状态下苯氧基酞菁液体的非线性吸收和光学极限:实验研究
-
2021年危险化学品经营单位安全管理人员考试APP及危险化学品经营单位安全管理人员考试技巧
-
VBox复制使用时序列号相同 解决
-
Error creating bean with name ‘org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0‘
-
MS Z270 KRAIT GAMING QL3X BIOS
-
分享几个练习 Linux 命令的网址
-
使用vue搭建微信H5公众号项目
-
连续积分圆-源码
-
C8051F9xx_中文版.rar
-
FP7102.FP7103應用說明-V02.pdf
-
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端
-
MySQL 管理利器 mysql-utilities
-
重建二叉树
-
QTcpSocket实现客户端
-
redis查看内存使用情况
-
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离