Linux系统平台下配置Proftp服务的小技巧
来源:asp之家 时间:2009-12-07 19:16:00
1、配置Ftp允许Root登录
修改/etc/ftpusers,去掉root
2、如果希望实现Root用户Ftp后可以切换到/目录
一般用户只能切换到自己的主目录,修改/etc/proftpd.conf文件,在DefaultRoot
一行前面增加一行
DefaultRoot / root
重新启动proftpd服务即可。
改变匿名登录的不想登录到默认的 /var/ftp目录
就要把/etc/passwd文件中的
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
中的默认目录改变了即可。
3、Ftp具有写入功能请在/etc/proftpd.conf文件中的<Global>段中改为如下:
<Limit STOR>
AllowAll
</Limit>
才可以。
4、Ftp改为PASV模式
在我们红旗dc 5.0中的设置是在proftpd.conf中添加如下两条语句即可。
MasqueradeAddress ip地址
#该参数设置在client发pasv指令时,server返回给client的pasv地址串中应该包含的连接地址,
#该地址通常是防火墙的外部地址(作rdr的地址)
PassivePorts 端口号
设置好之后重启一下ftp服务。
FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是
Passive模式(PasvMode),我先说说这两种不同模式连接方式的分别。
先假设客户端为C,服务端为S.
*Port模式:*
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收
到这个Port命令后
就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
*Pasv模式:*
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服
务端S的M端口进行连接,连接成功后,数据连接也建立了。
从上面的解释中,两种模式主要的不同是数据连接建立的不同,对于Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;而Pasv模式就是服务端
S打开一个端口等待客户端C去建立一个数据连接。
关于ftp的pasv模式,有一种情况:
如果是通过iptables转发到内网的一台服务器,默认只能用port模式,此时,可以增加两个iptables模块,以实现pasv模式:
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
放入/etc/rc.local即可。(网关服务器上设置,或在配置了iptables的机器上设置)
当然,通过修改proftpd.conf,指定允许的端口也可以,但这个会有限制,就是pasv port端口是固定的,假设数量是51000-510011,则只能提供给最多11个用户,否则就没有端口可以分配了。但加载模块则没有这个问题。