linux ftp部署

一. 安装FTP软件

yum -y install vsftpd

二. 常见功能调试

在 CentOS 的默认值当中,vsftpd 是同时开放实体用户与匿名用户的,CentOS 的默认值如下:

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 1. 与匿名者有关的信息:
anonymous_enable=YES        <==支持匿名者的登入使用 FTP 功能

# 2. 与实体用户有关的设定
local_enable=YES            <==支持本地端的实体用户登入
write_enable=YES            <==允许用户上传数据 (包括档案与目录)
local_umask=022             <==建立新目录 (755) 与档案 (644) 的权限

# 3. 与服务器环境有关的设定
dirmessage_enable=YES       <==若目录下有 .message 则会显示该档案的内容
xferlog_enable=YES          <==启动登录文件记录,记录于 /var/log/xferlog
connect_from_port_20=YES    <==支持主动式联机功能
xferlog_std_format=YES      <==支持 WuFTP 的登录档格式
listen=YES                  <==使用 stand alone 方式启动 vsftpd
pam_service_name=vsftpd     <==支持 PAM 模块的管理
userlist_enable=YES         <==支持 /etc/vsftpd/user_list 档案内的账号登入管控!
tcp_wrappers=YES            <==支持 TCP Wrappers 的防火墙机制

如上默认设置FTP可以达到如下功能:

  • 你可以使用 anonymous 这个匿名账号或其他实体账号 (/etc/passwd) 登入;
  • anonymous 的家目录在 /var/ftp ,且无上传权限,亦已经被 chroot 了;
  • 实体用户的家目录参考 /etc/passwd,并没有被 chroot,可前往任何有权限可进入的目录中;
  • 任何于 /etc/vsftpd/ftpusers 内存在的账号均无法使用 vsftpd (PAM);
  • 可利用 /etc/hosts.{allow|deny} 来作为基础防火墙;
  • 当客户端有任何上传/下载信息时,该信息会被纪录到 /var/log/xferlog 中;
  • 主动式联机的埠口为 port 20;
  • 使用格林威治时间 (GMT)。

    修改时间使用本地时间

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 在这个档案当中的最后一行加入这一句即可
use_localtime=YES

三. 针对仅实体登录账号的设定

虽然在 CentOS 的默认情况当中实体用户已经可以使用 FTP 的服务了,不过我们可能还需要一些额外的功能来限制实体用户。 举例来说,限制用户无法离开家目录 (chroot)、限制下载速率、限制用户上传文件时的权限 (mask) 等等。 底下我们先列出一些希望达到的功能,然后再继续进行额外功能的处理:

  • 希望使用北京时间取代 GMT 时间;
  • 用户登入时显示一些欢迎信息;
  • 系统账号不可登入主机 (亦即 UID 小于 500 以下的账号);
  • 一般实体用户可以进行上传、下载、建立目录及修改文件等动作;
  • 用户新增的文件、目录之 umask 希望设定为 002;
  • 其他主机设定值保留默认值即可。

    主配置文件调试

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 1. 与匿名者相关的信息,在这个案例中将匿名登录取消:
anonymous_enable=NO
# 2. 与实体用户相关的信息:可写入,且 umask 为 002 !
local_enable=YES
write_enable=YES
local_umask=002
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list  <==这个文件必须存在!默认有此文件!
# 3. 与服务器环境有关的设定
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/welcome.txt <==这个文件必须存在!需手动建立!

[[email protected] ~]# /etc/init.d/vsftpd restart

欢迎信息调试

[[email protected] ~]# vim /etc/vsftpd/welcome.txt
欢迎使用本站FTP功能,这个是测试服务。

建立限制系统账号登入的文件

#针对系统账号来给予抵挡的机制,其实有两个档案,一个是 PAM 模块管的,一个是 vsftpd 主动提供的, 在预设的情况下这两个档案分别是:
/etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 这个档案的设定所影响的;
/etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所设定。
#这两个档案的内容是一样的~并且这两个档案必须要存在才行。请你参考你的 /etc/passwd 配置文件, 然后将 UID 小于 500 的账号名称给他同时写到这两个档案内!一行一个账号!
[[email protected] ~]# vim /etc/vsftpd/user_list
root
bin

对用户进行根目录锁定

# 1. 修改 vsftpd.conf 的参数值:
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 增加是否设定针对某些使用者来 chroot 的相关设定!
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 2. 建立不被 chroot 的使用者账号列表,即使没有任何账号,此档案也是要存在!
[[email protected] ~]# vim /etc/vsftpd/chroot_list
jet
#此档案中存在的用户的根目录不会被锁定
[[email protected] ~]# /etc/init.d/vsftpd restart

限制用户的带宽

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 增加底下这一个参数即可:
local_max_rate=1000000  <==记住喔,单位是 bytes/second
[[email protected] ~]# /etc/init.d/vsftpd restart

限制最大同时上线人数与同一 IP 的 FTP 联机数

[r[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 增加底下的这两个参数:
max_clients=10
max_per_ip=1
[[email protected] ~]# /etc/init.d/vsftpd restart

建立严格的可使用 FTP 的账号列表

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 这几个参数必须要修改成这样:
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
[[email protected] ~]# /etc/init.d/vsftpd restart

四. 针对仅匿名用户登录设置

底下我们将针对匿名用户来设定,且不开放实体用户。一般来说,这种设定是给类似大专院校的 FTP 服务器来使用。

使用北京时间,而非 GMT 时间;

提供欢迎信息,说明可提供下载的信息;

仅开放 anonymous 的登入,且不需要输入密码;

文件传输的速限为 1 Mbytes/second;

数据连接的过程 (不是命令通道!) 只要超过 60 秒没有响应,就强制 Client 断线!

只要 anonymous 超过十分钟没有动作,就予以断线;

最大同时上线人数限制为 50 人,且同一 IP 来源最大联机数量为 5 人;

[[email protected] ~]# mkdir /var/ftp/linux
[[email protected] ~]# mkdir /var/ftp/gnu

配置主配置文件

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 将这个档案的全部内容改成这样:
# 1. 与匿名者相关的信息:
anonymous_enable=YES
no_anon_password=YES        <==匿名登录时,系统不会检验密码 (通常是email)
anon_max_rate=1000000       <==最大带宽使用为 1MB/s 左右
data_connection_timeout=60  <==数据流联机的 timeout 为 60 秒
idle_session_timeout=600    <==若匿名者发呆超过 10 分钟就断线
max_clients=50              <==最大联机与每个 IP 的可用联机
max_per_ip=5

# 2. 与实体用户相关的信息,本案例中为关闭他的情况!
local_enable=NO

# 3. 与服务器环境有关的设定
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/anon_welcome.txt 

[[email protected] ~]# /etc/init.d/vsftpd restart

建立欢迎信息

[[email protected] ~]# vim /etc/vsftpd/anon_welcome.txt
欢迎光临本站所提供的 FTP 服务!
本站主要提供 Linux 操作系统相关档案以及 GNU 自由软件喔!
有问题请与站长联络!谢谢大家!
主要的目录为:
linux   提供 Linux 操作系统相关软件
gnu     提供 GNU 的自由软件
uploads 提供匿名的您上传数据

让匿名者可上传/下载自己的资料 (权限开放最大)

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 新增底下这几行啊!
write_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES

[[email protected] ~]# /etc/init.d/vsftpd restart
[[email protected] ~]# mkdir /var/ftp/uploads
[[email protected] ~]# chown ftp /var/ftp/uploads

让匿名者仅具有上传权限,不可下载匿名者上传的东西

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 将这几行给他改一改先!记得要拿掉 anon_other_write_enable=YES
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
chown_uploads=YES        <==新增的设定值在此!
chown_username=daemon
[[email protected] ~]# /etc/init.d/vsftpd restart

被动式联机端口的限制

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 增加底下这几行即可啊!
pasv_min_port=65400
pasv_max_port=65410

[[email protected] ~]# /etc/init.d/vsftpd restart

iptables设置建议

# 1. 加入模块:虽然 iptables.rule 已加入模块,不过系统档案还是修改一下好了:
[[email protected] ~]# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
# 加入模块即可!两个模块中间有空格键隔开!然后重新启动 iptables 服务啰!
[[email protected] ~]# /etc/init.d/iptables restart

# 2. 修改 iptables.rule 的脚本如下:
[[email protected] ~]# vim /usr/local/virus/iptables/iptables.rule
iptables -A INPUT -p TCP -i $EXTIF --dport  21  --sport 1024:65534 -j ACCEPT
# 找到上面这一行,并将前面的批注拿掉即可!并且新增底下这一行喔!
iptables -A INPUT -p TCP -i $EXTIF --dport 65400:65410 --sport 1024:65534 -j ACCEPT

[[email protected] ~]# /usr/local/virus/iptables/iptables.rule

原文地址:https://www.cnblogs.com/wangzengyi/p/12546124.html

时间: 2024-11-10 16:07:47

linux ftp部署的相关文章

Linux上FTP部署:基于mariadb管理虚拟用户

FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接. 开发任何基于 FTP 的客户端软件都必须遵循 FTP 的工作原理,FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送:另一条是控制连接,用于传送

在LINUX上部署带有JAR包的JAVA项目

         在LINUX上部署带有JAR包的JAVA项目 首先eclipse上要装上一个小插件,叫做Fat Jar 点击Fat Jar 红框里选上主类点击Next 如图把勾打上 在该路径下找到jar包 通过ftp协议把jar包放在linux服务器下 进入到jar包路径 输入指令 java -jar XXX.jar 运行成功! 注意!!!!!!!!!!!!!!!! 当你断开服务器连接时,工程会停止! 所以要用下面的指令 指令:nohup java -jar XXX.jar 通过指令ps -e

linux服务器部署tomcat和Nginx

项目需要,申请了三台测试机器,好在测试机里面光秃秃的什么都没有,我就可以好好的学习一把玩一把了!接下来以图文的形式讲一下我所碰到的坑以及小小的收获吧! 一.准备工作 首先你得有一台可以玩的linux服务器,知道用户名和密码,然后你需要在windows电脑上安装两个可以连上linux服务器的工具,Xshell 5和Xftp 5,安装教程不多说,补图说明如何连上服务器: xshell连接界面如下,输入好主机ip后点击确定,xshell会弹出窗口输入用户名和密码即可连接成功! xftp连接界面如下,填

Linux系统部署规范v1.0

Linux系统部署规范v1.0 目的: 1.尽可能减少线上操作: 2.尽可能实现自动化部署: 3.尽可能减少安装服务和启动的服务: 4.尽可能使用安全协议提供服务: 5.尽可能让业务系统单一: 6.尽可能监控可监控的一切信息: 7.尽可能控制一切可控制的安全策略: 8.尽可能定期更新补丁修补漏洞: 具体规范: A. 帐户和口令 帐户: 1.为每个系统维护人员建立一个独立的普通权限帐号,为监控机建立监控帐号,分别用于日常系统维护和系统监控: 2.FTP 服务器配置虚拟帐号: 3.禁止除root 帐

Linux下部署Java应用程序

Linux软件安装的特点: 1.Linux中没有注册表的概念,因此要想删除某个软件直接删除软件目录就可以了. 2.软件的安装有些需要Linux软件包的支持,在Linux中使用rpm命令管理软件包. 3.Linux中软件安装的过程很迅速,并且软件的运行速度也很快. 4.Linux中权限管理很严格,因此安装时需要对安装介质进行权限配置. 体验Linux下的Java开发 编译器->字节码->(虚拟机)本地机器码->执行 Linux系统与Windows系统最大的区别: Windows路径分隔是&

Linux上部署Java项目

一.在Linux上安装jdk 下载:登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 选择对应jdk版本下载.(可在Windows上下载完成后,通过ftp文件夹共享到Linux上) 登陆linux:su root 获取root用户权限,当前工作目录不变(需要root密码)或sudo -i 不需要root密码直接切换成root(需要当前用户密码) 在user目录下建立ja

Linux学习—部署yum网络仓库

yum除了可以配置本地仓库外,还可以配置服务器网络仓库,这时需要先配置服务器并上传文件 步骤如下: 1.安装 vsftpd 为了完成服务器与客户端的文件传输,需要使用FTP协议,在Linux下使用vsftpd软件(Very Secure FTP Daemon)完成部署FTP服务器 使用rpm命令安装vsftpd: ① rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm 2.启动vsftpd服务及设置重启后自动启动 使用命令netstat查看vsftpd的监听状态为关闭

在Linux上部署PXE远程安装服务

在Linux上部署PXE远程安装服务 实验介绍:在Linux虚拟机环境下,部署PXE远程安装服务,最终实现在另外一台虚拟机中远程安装Linux系统(前提是Linux虚拟机已经部署好yum仓库). 1.安装TFTP(简单文件传输协议),来提供引导镜像文件的下载.TFTP服务由tftp-server软件包提供,默认由xinetd超级服务进行管理. 2.安装完后,要修改xinetd服务的配置文件,主要将"disbabled = yes"改为"disabled = no",

在Linux下部署kettle的Job

关于如何用kettle创建job以及如何部署kettle到linux上,我就不细说了,大家应该都会,下面重点说一下,如何让job执行起来先将创建好的脚本上传到kettle指定目录下面,创建调用job执行的脚本文件, export JAVA_HOME=/usr/java/jre1.6.0_23 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar /opt