Linux FTP服务器的搭建

Linux FTP服务器的搭建

参考

Linux中搭建一个ftp服务器详解

Linux下FTP的配置文件的参数详解

CentOS FTP基于虚拟用户的配置


ubuntu 下新建的用户无法进行FTP连接:

原因:该用户的参数不完整,在useradd创建用户时需要指定-m - d - s 参数
简单的解决办法 使用adduser来添加用户。


ftp工作是会启动两个通道:控制通道(TCP21) , 数据通道(TCP20).
在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
PORT模式:
在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。

PASV模式:
传送数据时,ftp_client–PASV命令–>ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024–5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。
安装ftp


安装FTP服务端

yum install vsftpd

修改配置文件

vi /etc/vsftpd/vsftpd.conf 

FTP服务端目录和文件详解。

/etc/logrotate.d/vsftpd.           // vsftpd的日志文件 
/etc/pam.d/vsftpd                  // PAM认证文件 
/etc/rc.d/init.d/vsftpd            //启动脚本 
/etc/vsftpd                        //vsftpd的配置文件存放的目录 
/etc/vsftpd/ftpusers               // 禁止使用vsftpd的用户列表文件 
/etc/vsftpd/user_list              // 禁止或允许使用vsftpd的用户列表文件 
/etc/vsftpd/vsftpd.conf            //主配置文件 
/etc/vsftpd/vsftpd_conf_migrate.sh //vsftpd操作的一些变量和设置 
/usr/sbin/vsftpd                   //vsftpd的主程序 
/var/ftp                           //匿名用户主目录 
/var/ftp/pub                       //匿名用户的下载目录

匿名访问的权限管理


anonymous_enable=NO      //禁用匿名访问

anon_umask=022          //匿名用户上传文件的权限!!!!!

anon_root=/var/anony    //修改匿名用户的根目录

anon_upload_enable=YES     // 上传 

anon_mkdir_write_enable=YES  //  创建 

anon_other_write_enable=YES   // 删除 

//匿名用户的登录名:anonymous  密码空
用匿名用户登录的时候默认是只有下载的权限,没有上传,创建和删除的权限:

创建一个直接登录系统用户来登录ftp:

useradd -s /sbin/nologin abc 
//使用户只能用于特殊服务,比如FTP,不能用于登录系统。
passwd abc
用户具有 上传 创建 下载 切换目录

//########################
使用useradd -d   可以实现不同用户登陆后到达不同的目录下。
//指定某个用户登录时到某个特定的目录

加强vsftp安全设置:

限制系统用户锁定在家目录:默认不锁定。

如果开启锁定,则在列表中的用户不被锁定。

vi  /etc/vsftpd/vsftpd.conf   //编辑vsftpd配置文件
chroot_local_user=YES  //开启禁锢目录功能,不能跳出家目录
!!!如果开启此功能,则在列表中的用户可以跳出家目录,其他用户不能跳出!
chroot_list_enable=YES  //启用列表文件
chroot_list_file=/etc/vsftpd/chroot_list  //指定列表文件
//把用户加入/etc/vsftpd/chroot_list中即可 
touch /etc/vsftpd/chroot_list    //创建该文件 
cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 
//将本地用户都加入到chroot_list  也可以手动在列表中添加用户名,一行一个。
chroot 参数的四种组合,导致四种不同的情况,local_user和list_enable是平级的关系,各有各的作用。
//当chroot_local_user=YES时,启用列表则是允许列表中的用户跳出
//当chroot_local_user=NO时,启用用户列表则是禁锢某些用户  

默认情况下,出于安全原因,Centos 7 中 新版 vsftpd 不允许 chroot 目录具有可写权限,拥有写权限时会被拒绝登录。然而,我们可以通过选项来取消该限制。
(Red Hat6.5中没有此限制)

 allow_writeable_chroot=YES  

限制重要系统用户不能登录ftp

在此目录中的用户不能登录FTP,即使下边的用户策略允许登录,也不能进行登录。

cat /etc/vsftpd/ftpusers  默认已经添加了系统中一些比较重要的用户 
echo "viong" >>/etc/vsftpd/ftpusers  此时viong不能登录ftp

利用ftp用户策略允许登录ftp的系统用户:

/etc/vsftpd/user_list 在这个文件中的用户不能登录系统: 
vim /etc/vsftpd/vsftpd.conf 
userlist_enable=YES //启用用户列表功能 
userlist_deny=YES   //设置拒绝列表中的用户登录
//此时 在user_list中的用户不能登录,如果为NO ,则是文件内的用户可以登录。
userlist_file=/etc/vsftpd/user_list   指定用户列表文件。
当list_enable=NO
则列表不生效,直接不进行限制用户
当list_enable=YES
则启用列表,是否允许参考deny的情况。

开启服务

service vsftpd start      //启动FTP服务端
service vsftpd restart      //重启 FTP服务端
chkconfig  vsftpd on    //设置开机自启
//启动服务错误时,可能会提示哪里出错,一定要看输出信息。

不同版本的FTP服务器配置文件不同 可能默认没有写出相应的配置条目 需要手工添加。

注意

FTP存放文件的根目录下 要有相应的文件权限才能正常使用FTP服务。

如果在FTP中可以创建文件和目录但是看不到,说明这个目录的权限设置不正确。应修改为755.

/var/ftp 这个FTP根目录权限755 内部目录的权限可以进行修改成777

附录
【虚拟用户的FTP】
anonymous_enable=NO //设定不允许匿名访问
local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES //使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加

guest_enable=YES //设定启用虚拟用户功能
guest_username=ftp //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值