vsftpd设置被动模式_Vsftp安装及配置主动模式/被动模式

第一章、前言

FTP的主动模式(active mode)和被动模式(passive mode)

大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。

但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:

一个控制连接 (control connection)

这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。

几个数据连接 (data connection)

这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。

而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。

在FTP协议中,控制连接使用周知端口21 ,因此使用ISA的IP PACKET FILTER就可以这种连接进行很好的安全保护。

相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。

FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。

FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。

连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA 转发以及防火墙和NAT的配置增加了很多困难。

除此之外,还有另外一种FTP模式,叫做被动模式 (passive mod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式 )相反。

是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。

第二章、安装vsftp

1.关闭防火墙

[root@mail ~]# iptables -L -n #查看当前防火墙状态,及启用规则,当前机器防火墙规则为iptables默认规则

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT all-- 0.0.0.0/0 0.0.0.0/0state RELATED,ESTABLISHED

ACCEPT icmp-- 0.0.0.0/0 0.0.0.0/0ACCEPT all-- 0.0.0.0/0 0.0.0.0/0ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)

target prot opt source destination

REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@mail~]# service iptables save #如果当前机器有其他iptables规则建议先保留

iptables:将防火墙规则保存到/etc/sysconfig/iptables: [确定] #规则保留至/etc/sysconfig/iptables文件中

[root@mail~]# service iptables stop #关闭防火墙

iptables:将链设置为政策 ACCEPT:filter [确定]

iptables:清除防火墙规则: [确定]

iptables:正在卸载模块: [确定]

[root@mail~]# iptables -L -n #确认当前防火墙规则

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是将这些命令转换为Python代码的示例: ```python import subprocess vsftpd_conf_file = '/etc/vsftpd/vsftpd.conf' # Update chroot_list_enable in vsftpd.conf file if subprocess.call('grep -q "chroot_list_enable" /etc/vsftpd/vsftpd.conf', shell=True) == 0: subprocess.call("sed -i '/chroot_list_enable=NO/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("sed -i '/chroot_list_enable=YES/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("echo 'chroot_list_enable=YES' >> /etc/vsftpd/vsftpd.conf", shell=True) else: subprocess.call("echo 'chroot_list_enable=YES' >> /etc/vsftpd/vsftpd.conf", shell=True) # Update chroot_list_file in vsftpd.conf file if subprocess.call('grep -q "chroot_list_file=/etc/vsftpd/chroot_list" /etc/vsftpd/vsftpd.conf', shell=True) == 0: subprocess.call("sed -i '/chroot_list_file=/etc/vsftpd/chroot_list/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("echo 'chroot_list_file=/etc/vsftpd/chroot_list' >> /etc/vsftpd/vsftpd.conf", shell=True) else: subprocess.call("echo 'chroot_list_file=/etc/vsftpd/chroot_list' >> /etc/vsftpd/vsftpd.conf", shell=True) # Update anonymous_enable in vsftpd.conf file if subprocess.call('grep -q "anonymous_enable" /etc/vsftpd/vsftpd.conf', shell=True) == 0: subprocess.call("sed -i '/anonymous_enable=YES/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("sed -i '/anonymous_enable=NO/s/^/#/' /etc/vsftpd/vsftpd.conf", shell=True) subprocess.call("echo 'anonymous_enable=NO' >> /etc/vsftpd/vsftpd.conf", shell=True) else: subprocess.call("echo 'anonymous_enable=NO' >> /etc/vsftpd/vsftpd.conf", shell=True) ``` 上述代码首先检查是否存在`/etc/vsftpd/vsftpd.conf`文件中的`chroot_list_enable`行,如果存在,则将其注释去除,并将其值设置为`YES`。接着,检查是否存在`chroot_list_file=/etc/vsftpd/chroot_list`行,如果存在,则将其注释去除。然后,检查是否存在`anonymous_enable`行,如果存在,则将其注释去除,并将其值设置为`NO`。 请确保你具有足够的权限来执行这些操作,并将需要修改的文件路径正确添加到`vsftpd_conf_file`变量中。运行代码后,命令将被执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值