在linux中怎样搭配ftp服务器

1、FTP说明Linux系统下常用的FTP是vsftp,即VerySecurityFileTransferProtocol。
另一种是proftp(Professionftp)。
这里也简单说明一下vsftp的配置。
圣笑vsftp提供3种远程登录方式:(1)匿名登录方式,不需要用户名和密码。
你可以登录服务器计算机(2)本地用户模式需要帐户名和密码才能登录。
而且,这个帐户名和密码都是你的Linux系统中已经存在的用户。
(3)虚拟用户模式也需要用户名和密码才能登录。
但与上面不同的是,这个用户名和密码在你的Linux系统中不存在(没有这样的用户帐户)2.vsftp安装配置2.1安装vsftp安装包,在安装中可以找到。
用yum安装过程也很简单。
安装命令:yuminstallvsftpd2.2。
相关命令2.2.1启动和关闭[root@singledb~]#servicevsftpdstartStartingvsftpdforvsftpd:[OK][root@singledb~]#servicevsftpdstopShuttingdownvsftpd:[OK][root@singledb~]#servicevsftpdrestartShuttingdownvsftpd:[失败]正在启动vsftpdforvsftpd:[确定][root@singledb~]#/etc/init.d/vsftpdstartStartingvsftpdforvsftpd:[失败][root@singledb~]#/etc/init.d/vsftpdstopShuttingdownvsftpd:[确定][根@singledb~]#/etc/init.d/vsftpdrestart关闭vsftpd:[失败]正在启动vsftpdf或vsftpd:[确定][root@singledb~]#/etc/init.d/vsftpdstatusvsftpd(pid3931)正在运行...[root@singledb~]#2.2.2.其他命令--查看vsftpd启动状态[root@singledb~]#chkconfig--listvsftpdvsftpd0:off1:off2:off3:off4:off5:off6:off[root@singledb~]#chkconfigvsftpdon[root@singledb~]#chkconfig--listvsftpdvsftpd0:off1:off2:on3:on4:on5:on6:off如您所见,从2到5默认设置为打开。
2到5是多用户级别。
这对应了Linux的不同操作级别。
我们还可以添加level选项来指定:[root@singledb~]#chkconfig--level0vsftpdon[root@singledb~]#chkconfig--listvsftpdvsftpd0:on1:off2:on3:on4:on5:on6:off我们看到Yuxi0已设置为开启。
我们可以使用manchkconfig查看帮助:--levellevels指定运行级别应该属于哪个操作。
它给出的是从0到7的数字字符串。
例如,--level35指定运行级别3和5。
传统的init定义了7个运行级别(runlevels),每个级别代表系统应该补充运行的一些特定服务:(1)Level0是完全关闭系统的级别(2)Level1或S级别代表单用户模式(3)2-5级为多用户级别(4)6级为重启级别(1)检查防火墙。
我一般都会关闭系统的防火墙。
因为打开稿件会有很多限制。
[root@singledb~]#/etc/init.d/iptablesstatusTable:natChainPREROUTING(policyACCEPT)numtargetprotoptsourcedestinationChainPOSTROUTING(policyACCEPT)numtargetprotoptsourcedestination1MASQUERADEall--192.168.122.0/24!192.168.122.0/24ChainOUTPUT(policyACCEPT)numtargetprotoptsourcedestinationTable:filterChainINPUT(policyACCEPT)numtargetprotoptsourcedestination1ACCEPTudp--0.0.0。
0/00.0.0.0/0udpdpt:532ACCEPTtcp--0.0.0.0/00.0.0.0/0tcpdpt:533ACCEPTudp--0.0.0.0/00.0.0.0/0udpdpt:674ACCEPTtcp--0.0.0.0/00.0.0.0/0tcpdpt:67ChainFORWARD(policyACCEPT)numtargetprotoptsource目的地1ACCEPTall--0.0.0.0/0192.168.122.0/24stateRELATED,ESTABLISHED2ACCEPTall--192.168.122.0/240.0.0.0/03ACCEPTall--0.0.0.0/00.0.0.0/04REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-port-unreachable5REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-port-unreachableChainOUTPUT(policyACCEPT)numtargetprotoptsourcedestinationYouhavenewmailin/var/spool/mail/root--添加开放端口21:[root@singledb~]#/sbin/iptables-IINPUT-ptcp--dport21-jACCEPT[root@singledb~]#/etc/init.d/iptablesstatusTable:natChainPREROUTING(policyACCEPT)numtargetprotoptsourcedestinationChainPOSTROUTING(policyACCEPT)numtargetprotoptsourcedestination1MASQUERADEall--192.168.122.0/24!192.168.122.0/24ChainOUTPUT(policyACCEPT)numtargetprotoptsourcedestinationTable:filterChainINPUT(policyACCEPT)numtargetprotoptsourcedestination1ACCEPTtcp--0.0.0.0/00.0.0.0/0tcpdpt:212ACCEPTudp--0.0。
0.0/00.0.0.0/0udpdpt:533ACCEPTtcp--0.0.0.0/00.0.0.0/0tcpdpt:534ACCEPTudp--0.0.0.0/00.0.0.0/0udpdpt:675ACCEPTtcp--0.0.0.0/00.0.0.0/0tcpdpt:67ChainFORWARD(policyACCEPT)numtargetprotoptsourcedestination1ACCEPTall--0.0.0.0/0192.168.122.0/24stateRELATED,ESTABLISHED2ACCEPTall--192.168.122.0/240.0.0.0/03接受全部--0.0.0.0/00.0.0.0/04拒绝全部--0.0.0.0/00.0.0.0/0reject-withicmp-port-unreachable5REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-port-unreachableChainOUTPUT(policyACCEPT)numtargetprotoptsourcedestination--保存配置[root@singledb~]#/etc/rc.d/init.d/iptablessaveSavingfirewallrulesto/etc/sysconfig/iptables:[OK]--重启防火墙:[root@singledb~]#serviceiptables{start|stop|restart}(2)查看并关闭selinux[root@singledb~]#sestatusSELinuxstatus:disabled我在安装操作系统时关闭了selinux。
如果没有关闭,可以修改如下文件来关闭:[root@singledb~]#cat/etc/sysconfig/selinux#ThisfilecontrolsthestateofSELinuxonthesystem.#SELINUX=cantakeoneoftheseThreevalues:#enforcing-SELinuxsecuritypolicyisenforced.#permissive-SELinuxprintswarningsinsteadofenforcing.#disabled-SELinuxisfilleddisabled.SELINUX=disabled#SELINUXTYPE=typeofpolicyinuse.Possiblevaluesare:#targeted-Onlytargetednetworkdaemonsareprotected.#strict-FullSELinuxprotection.SELINUXTYPE=targeted[root@singledb~]#保存退出并重启系统reboot3.FTP配置文件安装FTP后,/etc/vsftpd/目录下会有以下文件:[root@singledb~]#cd/etc/vsftpd/[root@singledbvsftpd]#lsftpusersuser_listvsftpd.confvsftpd_conf_migrate.sh[root@singledbvsftpd]#vsftpd.conf:主配置文件ftpusers:指定哪些用户无法访问FTP服务器user_list:指定用户是否可以访问FTP服务器由vsftpd.conf文件中userlist_deny的值决定。
[root@singledbvsftpd]#catuser_list#vsftpduserlist#Ifuserlist_deny=NO,仅允许此文件中的用户#Ifuserlist_deny=YES(默认),决不允许此文件中的用户,并且#donotevenpromptforapassword。
#注意默认的vsftpdpamconfig还会检查/etc/vsftpd/ftpusers#对于被拒绝的用户。
我们过滤掉#注释后,检查vsftpd.conf文件:[root@singledbftp]#cat/etc/vsftpd/vsftpd.conf|grep-v'^#';anonymous_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESpam_service_name=vsftpduserlist_enable=yestcp_wrappers=YES至于这些参数的含义,注释中有详细解释。
我们可以在vsftpd.conf文件中设置以下参数:(1)ftpd_banner=welcometoftpservice:设置连接到服务器后的欢迎信息(2)idle_session_timeout=60:限制远程客户端连接之后需要多长时间已建立的控制连接无需任何操作即可中断(秒)(3)data_connection_timeout=120:设置客户端进行数据传输时空闲数据中断时间(4)accept_timeout=60设置在多长时间后自动建立连接(5)connect_timeout=60设置数据连接的最大激活时间,需要多长时间断开连接,可以被其他人使用;(6)max_clients=200表示服务器并发客户端连接总数为200(7)max_per_ip=3表示每个客户端最大连接数为3(8)local_max_rate=50000(50kbytes/sec)本地用户最大传输速率限制(9)anon_max_rate=30000匿名用户最大传输速率限制(10)pasv_min_port=端口(11)pasv-max-prot=端口号定义最大和最小端口,0表示任意港口;指定客户端连接的端口;(12)listen_address=IP地址设置ftp服务监听的地址,client可以使用哪个地址进行连接?;(13)listen_port=端口号设置FTP工作的端口号,默认为21(14)chroot_local_user=YES设置所有本地用户都可以chroot(15)chroot_local_user=NO设置指定用户可以Enoughchroot(16)chroot_list_enable=YES(17)chroot_list_file=/etc/vsftpd/chroot_list(仅指定用户)/etc/vsftpd/chroot_list来执行)(18)local_root=path无论哪个用户都可以登录,定义登录帐户的主目录。
如果不指定,每个用户都会进入个人用户主目录;(19)chroot_local_user=yes/no是否锁定本地系统帐户·用户主目录(全部);锁定后,用户只能访问用户主目录/home/user,无法使用cd命令上去;它只能下降;(20)chroot_list_enable=yes/no将用户的目录锁定在指定的文件主目录(部分),文件:/chroot_list_file=path中指定;(21)userlist_enable=YES/NO是否加载用户列表文件;(22)userlist_deny=YES表示是否允许上面加载的用户拒绝登录;(23)userlist_file=/etc/vsftpd/user_list列表文件限制IP访问FTP:#vi/etc/hosts.allowvsftpd:192。
168.5.128:DENY设置IP地址不访问ftp服务FTP访问时间限制:#cp/usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd/etc/xinetd.d/vsftpd#vi/etc/xinetd.d/vsftpd/修改disable=noaccess_time=hour:min-hour:min(添加时间限制用于配置访问(注意:对应于vsftpd.conf中的listen=NO)示例:access_time=8:30-11:3017:30-21:30仅表示这个基本上这些是可以在两个文件中访问ftp的唯一配置默认情况下,ftp根目录为/var/ftp。
如果要修改该目录位置,可以更改/etc/passwd文件:[root@singledbftp]#cat/etc/passwd|grepftpftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin创建访问FTP的用户,并指定用户的FTP目录:[root@singledbu02]#useradd-d/u02/qsftpqs[root@singledbu02]#passwdqsChangingpasswordforuserqs.NewUNIXpassword:BADPASSWORD:itisWAYtooshortRetypenewUNIXpassword:passwd:allauthenticationtokensupdatedsuccessively此处指定目录/u02/qsftp。
请注意各个目录的权限。
无法通过telnet更改用户,只能使用ftp:usermod-s/sbin/nologinusername//。
用户只能ftp,但不能telnetusermod-s/sbin/bashusername//用户恢复正常并禁止用户ssh登录useraddusername-s/bin/false更改用户主目录:usermod-d/bbbusername//设置将用户的主目录复制到/bbb然后用户qs就可以访问它。
以上只是一些简单的设置。
用户权限方面还有很多可以研究的内容。
例如,特定用户的特定权限。
安全等,以后再研究。

linuxftp服务远程匿名登录查看不了文件内容

关闭Linux防火墙或者不使用主动FTP模式,使用被动模式并再次输入被动命令:ftp>passivePassivemodeon。
FTP协议有两种数据传输模式:主动模式和被动模式。
这两种模式以完全相反的方向发起连接。
主动模式发起从服务器到客户端的连接;被动模式发起从客户端到服务器的连接。
但如果服务器和客户端之间存在防火墙,主动模式常常会导致一些问题。
想象一下客户端位于防火墙后面。
防火墙允许所有内部到外部的连接,但对从外部到内部发起的连接有很多限制。
在这种情况下,客户端可以照常与服务器建立控制连接。
但是,如果使用主动模式,ls、put、get等数据传输命令将很难成功执行,因为防火墙会阻止从中发起的连接。
服务器和客户端之间的连接。
简单的包过滤防火墙将管理连接与数据连接完全分离,因此很难配置防火墙以主动模式允许FTP数据连接通过。
如果防火墙允许ICMP或TCPRST消息通过,客户端程序将立即返回连接错误消息;如果防火墙简单地拒绝此消息,则客户端程序将挂起一段时间;