VSFTPD简单的用法

在公司的业务中,有一些常用的软件是公开使用的,比如XSHELL这一些常用的,用的时候总不能在去下载吧!!!
所以公司中就会搭建一些共享服务器等,本次介绍的就是VSFTPD的用法

(本次要求,将vsftpd做出来,实现匿名用户可以上传)

客户机可以从服务器上上传下载
     192.168.1.100     ----------》     192.168.1.1
    pc客户机----------------------------ftp服务器

第一步,安装软件包
本次采用yum的方式安装,也可以用rpm或者源码包安装,顺带关闭掉防火墙

[[email protected] 桌面]# yum -y install vsftpd
 
第二步,然后等待安装完毕,安装完毕之后,就要修改主配置文件来让它实现匿名用户可以访问
主配置文件的路径在/etc/vsftpd/vsftpd.conf
[[email protected] 桌面]# vim /etc/vsftpd/vsftpd
vsftpd.conf             vsftpd_conf_migrate.sh  
[[email protected] 桌面]# vim /etc/vsftpd/vsftpd.conf
...
 27 anon_upload_enable=YES      #是否允许匿名用户上传,默认是NO
...
 31 anon_mkdir_write_enable=YES   #是否允许匿名用户创建目录,默认是NO    #这里为了简单,就直接用set nu 来显示行号进行配置的修改了
 32 anon_other_write_enable=YES   #是否允许匿名用户进行其他所有的写入操作
...
第三步,修改完毕后,保存退出,接下来设置acl权限
[[email protected] ~]# setfacl -m u:ftp:rwx /var/ftp/pub/
[[email protected] ~]# getfacl /var/ftp/pub/
getfacl: Removing leading ‘/‘ from absolute path names
# file: var/ftp/pub
# owner: root
# group: root
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x
第四步,接下来就启动服务,并将服务设置为开机自动启动,用客户端来进行访问
[[email protected] ~]# service vsftpd restart
[[email protected] ~]# chkconfig vsftpd on
接着就用匿名用户上传下载来试试吧

实现结果是成功的,但是随着使用,问题也出现了,因为匿名用户可以上传下载,传上去的东西还是可以删除的
所以安全这一块不太好,细心的还能发现能进入到服务器的根目录,这样子简直太不安全了
接下来要对安全这一方面改进一下,开启防火墙,禁止匿名用户访问,将访问用户囚禁在家目录
接着上个实现做的使用
[[email protected] 桌面]# vim /etc/vsftpd/vsftpd.conf
 12 anonymous_enable=NO     #拒绝匿名用户登录
 97 chroot_local_user=YES   #将访问用户囚禁在家目录
然后重启服务,开启防火墙
[[email protected] ftp]# service vsftpd restart
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                                    [确定]
[[email protected] ftp]# service iptables start
iptables:应用防火墙规则:                                 [确定]
首先清空防火墙规则,
[[email protected] ftp]# iptables -F
[[email protected] ftp]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
然后来对防火墙规则进行写入
[[email protected] ftp]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT     #允许通过21号端口
[[email protected] ftp]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定]
将防火墙规则保存起来
下面还有一个有趣的验证,叫vsftpd黑白名单
创建几个用户
[[email protected] ~]# useradd lily
[[email protected] ~]# useradd mike
[[email protected] ~]# useradd kaka
[[email protected] ~]# echo "123456" | passwd --stdin lily
Changing password for user lily.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# echo "123456" | passwd --stdin mike
Changing password for user mike.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# echo "123456" | passwd --stdin kaka
Changing password for user kaka.
passwd: all authentication tokens updated successfully.
这里为了简单,就将密码设置为123456了
然后分别写入/etc/vsftpd/ftpusers黑名单  /etc/vsftpd/user_list 白名单,默认为黑名单
[[email protected] ~]# grep lily /etc/vsftpd/ftpusers   #测试黑名单
lily
[[email protected] ~]# grep mike /etc/vsftpd/user_list  #测试白名单
mike

然后重启服务进行验证,发现只有kaka用户能访问进去,但是很多然不明白了,为什么白名单内的访问不进去呢,看下面
[[email protected] ~]# grep userlist_deny /etc/vsftpd/vsftpd.conf
userlist_deny=NO                         #只允许user_list里面的用户访问FTP
因为白名单是默认没有开启的,所以作用同等于黑名单,下面将白名单开启
[[email protected] ftp]# vim /etc/vsftpd/vsftpd.conf
119 userlist_enable=YES     #是否启用user_list名单
120 userlist_deny=NO        #是否允许user_list名单中的进行访问还是拒绝
然后重启服务,进行验证

时间: 2024-11-05 12:14:59

VSFTPD简单的用法的相关文章

模拟java.util.Collection一些简单的用法

/* 需求:模拟java.util.Collection一些简单的用法! 注意:java虚拟机中并没有泛型类型的对象.泛型是通过编译器执行一个被称为类型擦除的前段转换来实现的. 1)用泛型的原生类型替代泛型. 原生类型是泛型中去掉尖括号及其中的类型参数的类或接口.泛型中所有对类型变量的引用都替换为类型变量的最近上限类型, 如对于Cage<T extends Animal>, T的引用将用Animal替换,而对于Cage<T>, T 的引用将用Object替换. 2) */ inte

Tinyxml简单使用法

1.概要介绍一下: 尝试了tinyxml,rapidxml,libxml2等3中第3方库,前两者相对较为轻量级,libxml2非常完善,强大. 这是网上总结出来的优缺点: 1.tinyxml当节点内容的空而使用GetText()方法时候会出错 2.rapidxml编码问题不是特别好 3.libxml2对内存释放要求较高,否则时常遇到core dump. TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译.这个解析库的模型通过解析XML文件,然后在

UITextField简单的用法

UItextField通常用于外部数据输入,以实现人机交互. 我做了一个简单地例子来做演示: #import "ViewController.h" @interface ViewController ()<UITextFieldDelegate> {//设置全局变量 UITextField *field; UITextField *field1; } @end @implementation ViewController - (void)viewDidLoad { [sup

vsftpd简单安装与配置

安装(自己到网上搜这个包) rpm -ivh vsftpd-2.2.2-21.el6.x86_64.rpm 配置文件 vim /etc/vsftpd/vsftpd.conf 最后一行加入 userlist_deny=NO 加入允许FTP登录的用户 vim /etc/vsftpd/user_list 加入不允许登录FTP的用户,允许则注释或去掉 vim /etc/vsftpd/ftpusers 启动或重启 /etc/init.d/vsftpd start

uiTextView简单的用法

UITextView和UITextField常见的方法差不多. 如下的一个简单例子: #import "ViewController.h" @interface ViewController ()<UITextViewDelegate> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading

dom4j 最常用最简单的用法(转)

要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/ 目前最新dom4j包下载地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar. 以下是相关操作: 一.Document对象相关 1

C# DateTime简单的用法

DateTime是C#中的时间类,有公共函数Now()可以获取当前时间. 如果制作简单定时器的话,可以这样: 初始化:DateTime lasttime=DateTime.Now(); TimeSpan timeinterval=new TimeSpan(1000); bool CheckTimer() { if(DateTime.Now().Substract(lasttime)>timeinterval) return true; return false; } TimeSpan是时间间隔类

WebSocket 最简单的用法

1 package com.uptop.websocket; 2 3 import javax.websocket.*; 4 import javax.websocket.server.ServerEndpoint; 5 6 import java.io.IOException; 7 import java.util.concurrent.CopyOnWriteArraySet; 8 9 10 /** 11 * @ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义

vsftpd 简单部署与应用

centos7 vsftpd安装        FTP:文件传输协议(File Transfer Protocol),基于客户端/服务器模式,默认使用20.21端口号,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数. FTP协议两种工作模式(1)PORT(主动)模式        所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命