⑴ 如何使FTP服务器安全
一、操作系统的选择
FTP服务器首先是基于操作系统而运作的,因而操作系统本身的安全性就决定了FTP服务器安全性的级别。虽然Windows 98/Me一样可以架设FTP服务器,但由于其本身的安全性就不强,易受攻击,因而不要采用。Windows NT就像鸡肋,不用也罢。采用Windows 2000及以上版本,并记住及时打上补丁。至于Unix、Linux,则不在讨论之列。
二、使用防火墙
端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口,将其他不需要使用的端口屏蔽掉会比较安全。限制端口的方法比较多,可以使用第三方的个人防火墙,如天网个人防火墙等,这里只介绍Windows自带的防火墙设置方法。
1。利用TCP/IP筛选功能
在消运Windows 2000和Windows XP中,系统都带有TCP/IP筛选功能,利用它可以简单地进行端口设置。以Windows XP为例,打开“本地连接”的属性,在“常规”选项中找到“Internet协议(TCP/IP)”,双击它打开该协议的属性设置窗口。点击右下方的“高级”卜桥厅按钮,进入“高级TCP/IP设置”。在“选项”中选中“TCP/IP筛选”并双击进入其属性设置。这里我们可以设置系统只允许开放的端口,假如架设的FTP服务器端口为21,先选中“启用TCP/IP筛选(所有适配器)”,再在TCP端口选项中选择“只允许”,点“添加”,输入端口号21,确定即可。这样,系统就只允许打开21端口。要开放其他端口,继续添加即可。这可以有效防止最常见的139端口入侵。缺点是功能过于简单,只能设置允许开放的端口,不能自定义要关闭的端口。如果你有大量端口要开放,就得一个个地去手工添加,比较麻烦。
2。打开Internet连接防火墙
对于Windows XP系统,自型隐带了“Internet连接防火墙”功能,与TCP/IP筛选功能相比,设置更方便,功能更强大。除了自带防火墙端口开放规则外,还可以自行增删。在控制面板中打开“网络连接”,右击拨号连接,进入“高级”选项卡,选中“通过限制或阻止来自Internet的对此计算机的访问来保护我的计算机和网络”,启用它。系统默认状态下是关闭了FTP端口的,因而还要设置防火墙,打开所使用的FTP端口。点击右下角的“设置”按钮进入“高级设置”,选中“FTP服务器”,我它。由于FTP服务默认端口是21,因而除了IP地址一栏外,其余均不可更改。在IP地址一栏中填入服务器公网IP,确定后退出即可即时生效。如果架设的FTP服务器端口为其他端口,比如22,则可以在“服务”选项卡下方点“添加”,输入服务器名称和公网IP后,将外部端口号和内部端口号均填入22即可。
三、对IIS、Serv-U等服务器软件进行设置
除了依靠系统提供的安全措施外,就需要利用FTP服务器端软件本身的设置来提高整个服务器的安全了。
1。IIS的安全性设置
1)及时安装新补丁
对于IIS的安全性漏洞,可以说是“有口皆碑”了,平均每两三个月就要出一两个漏洞。所幸的是,微软会根据新发现的漏洞提供相应的补丁,这就需要你不断更新,安装最新补丁。
2)将安装目录设置到非系统盘,关闭不需要的服务
一些恶意用户可以通过IIS的溢出漏洞获得对系统的访问权。把IIS安放在系统分区上,会使系统文件与IIS同样面临非法访问,容易使非法用户侵入系统分区。另外,由于IIS是一个综合性服务组件,每开设一个服务都将会降低整个服务的安全性,因而,对不需要的服务尽量不要安装或启动。
3)只允许匿名连接
FTP的安全漏洞在于其默认传输密码的过程是明文传送,很容易被人嗅探到。而IIS又是基于Windows用户账户进行管理的,因而很容易泄漏系统账户名及密码,如果该账户拥有一定管理权限,则更会影响到整个系统的安全。设置为“只允许匿名连接”,可以免却传输过程中泄密的危险。进入“默认FTP站点”,在属性的“安全账户”选项卡中,将此选项选中。
4)谨慎设置主目录及其权限
IIS可以将FTP站点主目录设为局域网中另一台计算机的共享目录,但在局域网中,共享目录很容易招致其他计算机感染的病毒攻击,严重时甚至会造成整个局域网瘫痪,不到万不得已,使用本地目录并将主目录设为NTFS格式的非系统分区中。这样,在对目录的权限设置时,可以对每个目录按不同组或用户来设置相应的权限。右击要设置的目录,进入“共享和安全→安全”中设置,如非必要,不要授予“写入”权限。
5)尽量不要使用默认端口号21
启用日志记录,以备出现异常情况时查询原因。
2。Serv-U的安全性设置
与IIS的FTP服务相比,Serv-U在安全性方面做得比较好。
1)对“本地服务器”进行设置
首先,选中“拦截FTP_bounce攻击和FXP”。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个“PORT”命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。
其次,在“高级”选项卡中,检查“加密密码”和“启用安全”是否被选中,如果没有,选择它们。“加密密码”使用单向hash函数(MD5)加密用户口令,加密后的口令保存在ServUDaemon。ini或是注册表中。如果不选择此项,用户口令将以明文形式保存在文件中:“启用安全”将启动Serv-U服务器的安全成功。
2)对域中的服务器进行设置
前面说过,FTP默认为明文传送密码,
容易被人嗅探,对于只拥有一般权限的账户,危险并不大,但如果该账户拥有远程管理尤其是系统管理员权限,则整个服务器都会被别人远程控制。Serv-U对每个账户的密码都提供了以下三种安全类型:规则密码、OTP S/KEY MD4和OTP S/KEY MD5。不同的类型对传输的加密方式也不同,以规则密码安全性最低。进入拥有一定管理权限的账户的设置中,在“常规”选项卡的下方找到“密码类型”下拉列表框,选中第二或第三种类型,保存即可。注意,当用户凭此账户登录服务器时,需要FTP客户端软件支持此密码类型,如CuteFTP Pro等,输入密码时选择相应的密码类型方可通过服务器验证。
与IIS一样,还要谨慎设置主目录及其权限,凡是没必要赋予写入等能修改服务器文件或目录权限的,尽量不要赋予。最后,进入“设置”,在“日志”选项卡中将“启用记录到文件”选中,并设置好日志文件名及保存路径、记录参数等,以方便随时查询服务器异常原因。
⑵ SSH进阶(二):FTP转发
简介 FTP协议简介 转发控制连接 FTP 防火墙和被动模式 FTP和网络地址转换(Neork Address Translation) 客户端网络地址转换问题 如游 服务器端网络地址转换问题 使用默认数据传输端口 转发数据连接 结论 简介 有关SSH 一个经常被问起的问题是 我怎样才能使用端口转发加强FTP安全? 很不幸 你得到的回答一般非常简短 让你仍然无所适从 在标准FTP协议中 所有的数据都是明文传输的 因此网络上可能存在的嗅探器是一个极大的威胁 使用嗅探器 攻击者很容易获得你的帐户和密码 而在SSH的数据传输过程中 所有的数据以密文的形式传输的 所以SSH的端口转发功能能够很好地保护的帐户密码 本文详细地解释你能够使用SSH和FTP做什么 不能做什么 以及其原因 这里有FTP本身的复杂性造成的问题 除此之外 防火墙和网络地址转换(Neork Address Translation)也给我们制造了不少困难 因为现在防火墙和网络地址转换(Neork Address Translation)已经广泛存在了 因此我们将对这些情况进行详细的讨论 不过 由于网络环境千差万别 我们无法覆盖所有可能出现的问题 这就需要你自己举一反三了 FTP协议简介 为了便于后面的讨论 我们首先简要地讨论一下FTP协议(如果对FTP协议已经有了比较深入的了解 你可以略过这一节) 大多数的TCP服务是使用单个的连接 一般是客户向服务器的一个周知端口发起连接 然后使用这个连接进行通讯 但是 FTP协议却有所不同 它使用双向的多个连接 而且使用的端口很难预计 一般 FTP连接包括 一个控制连接(control connection) 这个连接用于传递客户端的命令和服务器端对命令的响应 它使用服务器的 端口 生存期是整个FTP会话时间 几个数据连接(data connection) 这些连接用于传输文件和其它数据 例如 目录列表等 这种连接在需要数据传输时建立 而一旦数据传输完毕就关闭 每次使用的端口也不一定相同 而且 数据连接既可能是客户端发起的 也可能是服务器端发起的 下面 我们通过一个FTP客户程序看一下控制连接 这里 我们需要使用debug模式(ftp d)才能显示客户发出的FTP协议命令 在客户程序的渣带销输出信息中 这些协议命令是以 >开头的 例如 > USER nixe n 在命令发出之后 服务器会发出响应 响应信息以数字开头 例如 Login incorrect 下面 我们和FTP服务器建立一个连接 使用用户名nixe n登录 在会话过程中发出两次目录切换名 一次成功一次失败 其中黑体是我们的输入 ftp d Connected to FTP server ready Name (:nixe n): nixe n > USER nixe n Password required for nixe n Password: > PASS XXXX User nixe n logged in > SYST UNIX Type: L Remote system type is UNIX Using binary mode to transfer files ftp> cd one > CWD one CWD mand successful ftp> cd tmp > CWD tmp tmp: No such file or directory ftp> bye > QUIT You have transferred bytes in files Total traffic for this session was bytes in transfers Thank you for using the FTP service on 在FTP协议中 控制连接使用周行升知端口 因此使用SSH的标准端口转发就可以这种连接进行很好的安全保护 相反 数据传输连接的目的端口通常实现无法知道 因此处理这样的端口转发非常困难 FTP协议使用一个标准的端口 作为ftp data端口 但是这个端口只用于连接的源地址是服务器端的情况 在这个端口上根本就没有监听进程 FTP的数据连接和控制连接的方向一般是相反的 也就是说 是服务器向客户端发起一个用于数据传输的连接 连接的端口是由服务器端和客户端协商确定的 FTP协议的这个特征对SSH转发以及防火墙和NAT的配置增加了很多困难 除此之外 还有另外一种FTP模式 叫做被动模式(passive mod) 在这种模式下 数据连接是由客户程序发起的 和刚才讨论过的模式(我们可以叫做主动模式)相反 是否采取被动模式取决于客户程序 在ftp命令行中使用passive命令就可以关闭/打开被动模式 在了解了使用SSH转发FTP连接的一些难点之后 我们将开始讨论如何解决这些问题 转发控制连接 FTP的控制连接的一端是一个周知端口 因此很容易通过SSH实现端口的转发 通常 需要保护的FTP服务器上需要运行SSH服务 而且你需要在服务器上有一个合法帐户以便通过SSH访问FTP服务 假设你已经登录到一台主机名为client的客户主机 然后想通过安全的连接登录到FTP服务器 要转发FTP控制连接 首先要在client上运行一个SSH端口转发命令 [nixe n@client nixe n]ssh L :: nix cn s password: 接着 就可以使用被转发的端口登录到 [nixe n@clinet nixe n]ftp localhost Connected to localhost FTP server ready Name:foo Password: User foo logged in ftp> 这里 我们需要注意两个非常重要的问题 在本地进行转发 可能出现一些错误 在确定转发的目标时 建议不要使用localhost作为目标 因为有时使用这种地址可能出现一些莫名其妙的问题 假如在你的主机(client)上 有其它的网络接口(例如 eth ) 其地址为 如果你想在本机上进行SSH进行FTP端口转发 [nixe n@localhost nixe n]$ssh L :localhost: localhost nixe n@localhost s password: 然后 使用ftp命令登录到FTP服务器就可能出现一些错误 [nixe n@localhost nixe n]ftp localhost Connected to localhost localhost FTP server ready Name[localhost:nixe n]:nixe n Password required for nixe n Password: User nixe n logged in ftp>ls PORT mand successful Can t build data connection:Cannot assign requested address ftp> 出现这个问题是因为FTP服务器会试图通过回环地址(lo: )向client(eth : )发起连接造成的 本机的回环接口只能和本机的其它回环接口进行通讯 如果和其它的网络接口(例如 eth )通讯 就会返回 address not available 的错误 客户程序需要使用被动模式 被动模式对于解决NAT/防火墙造成的一些问题很有帮助 Linux系统的ftp命令在默认情况下使用这种模式 FTP 防火墙和被动模式 前面我们讲过 FTP协议的数据传输存在两种模式 主动模式和被动模式 这两种模式发起连接的方向截然相反 主动模式是从服务器端向客户端发起 被动模式是客户端向服务器端发起连接 但是如果服务器和客户之间存在防火墙 主动模式经常会引起一些麻烦 设想 客户位于防火墙之后 防火墙允许所有内部向外部的连接通过 但是对于外部向内部发起的连接却存在很多限制 在这种情况下 客户可以正常地和服务器建立控制连接 而如果使用主动模式 ls put和get等数据传输命令就很难成功运行 因为防火墙会阻塞从服务器向客户发起的数据传输连接 简单包过滤防火墙把控制连接和数据传输连接完全分离开了 因此很难通过配置防火墙允许主动模式的FTP数据传输连接通过 如果防火墙允许ICMP或者TCP RST报文通过 客户程序就会马上返回connection refused错误信息 而如果防火墙只是做简单的丢弃处理 会造成客户程序挂起一段时间 被动模式一般可以解决此类问题 因为在被动模式下 连接是由客户端发起的饿 不过 这要看FTP服务器和客户程序是否支持被动模式 命令行FTP客户程序一般使用passive命令关/开被动模式 例如 ftp>passive Passive mode off ftp>passive Passive mode on 如果客户程序不支持被动模式 它就会返回?Invaild mand 如果客户程序支持被动模式 而服务器不支持 就会返回 PASV:mand not understood PASV是一个FTP协议命令 使服务器进入到被动模式 FTP和网络地址转换(Neork Address Translation) 除了简单包过滤防火墙之外 被动模式也可以解决使用网络地址转换(NAT)给FTP造成的一些问题 在转发报文之前 进行网络地址转换的网关首先会改变报文的源地址和目的地址 网络地址转换能够提高网络的安全性 有助于解决IP地址资源不足问题 客户端网络地址转换问题 假设你的FTP客户主机位于局域网内 通过一个网络地址转换(NAT)网关连入互联网 在这种情况下 客户程序可以毫无困难地和外部的FTP服务器建立控制连接 但是 如果 lishixin/Article/program/Oracle/201311/17826
⑶ FTP是什么
FTP就是用来在客户机和服务器之间实现文件传输的标准协议。它使用客户/服务器模式,客户程序把客户的请求告诉服务器,并将服务器发回的结果显示出来。而服务器端执行真正的工作,比如存储、发送文件等。\x0d\x0a如果用户要将一个文件从自己的计算机上发送到另一台计算机上,称为是FTP的上载,而更多的情况是用户从服务器上把文件或资源传送到客户机上,称之为FTP的下载。在Internet上有一些计算机称为FTP服务器,它存储了许多允许存取的文件,如:文本文件、图像文件、程序文件、声音文件、电影文件等。\x0d\x0aFTP系统是一个通过Internet传送文件的系统。FTP客户程序必须与远程的FTP服务器建立连接并登录后,才能进行文件的传输。通常,一个用户必须在FTP服务器进行注册,即建立用户帐号,拥有合法的登录用户名和密码后,才有可能进行有效的FTP连接和登录。\x0d\x0a大多数站点提供匿名FTP服务,即这些站点允许任何一个用户免费登录到它们的机器上,并从其上复制文件。这类服务器的目的就是想社会公众提供免费的文件拷贝服务,因此,它不要求用户事先在该服务器进行注册。与这类“匿名”FTP服务器建立连接时,用户名一般是anonymous,而口令可以使用任意字符串,一种比较常用的是使用你的电子邮件地址作为口令。但这个口令既不进行校验,也不是强制的。\x0d\x0aFTP是基于客户机/服务器模式的服务系统,它油客户软件、服务器软件和FTP通信协议三部分组成。FTP客户软件作为一种应用程序,运行在客户计算机上。用户使用FTP命令与FTP服务器建设连接或传送文件,一般操作系统内置标准FTP命令,标准浏览器也支持FTP协议,当然也可以使用一些专用的FTP软件。FTP服务器软件运行在远程主机上,并设置一个名叫anonymous的公共用户帐号,向用户开放。
⑷ 跪求指教!登录FTP,出现不支持,如果继续文件和密码会明文传输。
ftp是明文传输的,会泄露密码
你把下面的选项勾选,以后就不提示了
服务器启动FTPs服务,再访问就加密了
⑸ nfs ,ftp 和samba都有什么区别
1、三种协议虽然都可以支持文件共享,但是其功能点和侧重点上面各有所不同,协议格式不同Authentication(鉴定)也就是你说的登陆方式也会随着协议的内容也有所不同。
2、标准的FTP协议的登陆密码是用明文传输的,没有加密,这会有很大的安全隐患,目前有FTPs(FTPonSSL/TLS)和sFTP(SSHFTP)等基于通信层进行加密的FTP协议,这样会有更好的安全性。
3、NFS:NetworkFileSystem是已故的Sun公司制定的用于分布式访问的文件系统,它的本质是文件系统。主要在Unix系列操作系统上使用,基于TCP/IP协议层,可以将远程的计算机磁盘挂载到本地,像本地磁盘一样操作。
4、samba是Unix系统下实现的Windows文件共享协议-CIFS,由于Windows共享是基于NetBios协议,是基于Ethernet的广播协议,在没有透明网桥的情况下(如VPN)是不能跨网段使用的。它主要用于unix和windows系统进行文件和打印机共享,也可以通过samba套件中的程序挂载到本地使用。
5、FTP的目的是在Internet上共享文件而发明的一种协议,基于TCP/IP。世界上绝大多数系统都会有支持FTP的工具存在,通用性很强。目前少有人把VPS修改成支持FTP组件的形式,主要是因为FTP一开始就不是为了文件系统而设计的。