iptables 下开放ftp

这两天在给客户安装服务器时也顺便给他们使用iptables,不用不知道,一用才发现iptables还有很多东西可以学的,比如开放ftp。
iptables 的filter表的INPUT链的默认策略设为了DROP,其余的链均为ACCEPT。 该服务器即要作ftp服务器,也要连上别的ftp服务器。即是说要把源端口和目的端口都开放21才行:

iptables -A INPUT -p tcp –sport 21 -j ACCEPT
iptables -A INPUT -p tcp –dport 21 -j ACCEPT

开了21端口就行了吗?不是的。先说说ftp协议。ftp协议是一个简单、保密性差(明码)的tcp协议,它的工作原理是客户端先连服务器端 的21端口,然后经过3步的握手以后建立了一条连接。要注意的是,这条连接只可以用来传输ftp的命令,只有这条连接的话是什么都传不了的,就算是用 “ls”命令来查看文件也不行。
建立了命令的连接以后,服务器端就要建立一条数据的连接。数据的连接又分为主动模式(port)和被动模式(passive)。ftp默认是被动 模式,主动和被动之间使用”pass”命令切换。主动模式通过20端口与客户端相连,而被动模式却使用1024以后的端口与客户端相连。由于1024以后 的端口是随机分配的,所以在被动模式下我们是不知道服务端是使用什么端口与客户端连接的。也就是说,我们是不知道iptables要开放什么端口。
开始我使用的是

iptables -A input -p tcp –sport 1024: –dport 1024: -j ACCEPT

来让ftp建立被动连接的。但觉得如果这样的话,那就等于把所以p2p的连接都开放了,不安全。
于是在CU上问人,终于找到了解决的方法:
1、加载模块。

modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp

2,加上一条规则:

处于server
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

处于client

iptables -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

允许连接保持的被动访问。

其实这样在重启iptables的时候所需的模块又不见了,通过不懈的努力终于找到了最终的解决方法,编辑/etc/sysconfig/iptables-config:

IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"

把需要加载的模块加入,无论重启系统还是iptables但ftp模块始终还是加载的。

搞定就这样哈哈哈,希望能在以后帮助大家来解决ftp上的问题。

时间: 2024-12-29 23:29:21

iptables 下开放ftp的相关文章

iptables下开放ftp连接端口

iptables下开放ftp连接端口 转载 2014年04月19日 10:04:27 2275 iptables 就是linux系统的防火墙,很多人安装iptables之后重启服务器发现网站无法访问,ftp无法连接.关闭iptables之后网站和ftp服务器都能正常访问,但是为了服务器的安全,不建议关闭防火墙. 要想配置好iptables让ftp服务器正常访问,我们首先要了解一下ftp服务器的工作机制. ftp协议是一个简单.保密性差(明码)的tcp协议,它的工作原理是客户端先连服务器端的21端

Iptables开放FTP(主/被)模式端口

FTP是File Transfer Protocol(文件传输协议),它有两种工作模式,分别是主动模式(post)和被动模式(passive) PORT(主动模式) FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口:FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据. PASV(被

Iptables合理配置FTP策略

FTP简要介绍:ftp协议是一个简单.保密性差(明码)的tcp协议,它的工作原理是客户端先连服务器端的21端口,然后经过3步的握手以后建立了一条连接.要注意的是,这条连接只可以用来传输ftp的命令,只有这条连接的话是什么都传不了的,就算是用"ls"命令来查看文件也不行. 建立了命令的连接以后,服务器端就要建立一条数据的连接.数据的连接又分为主动模式(port)和被动模式(passive). PORT(主动)方式的连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受

Centos下搭建ftp服务器

一.  FTP 说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp). 我们这里也是简单的说明下vsftp的配置. vsftp提供3种远程的登录方式: (1)匿名登录方式 就是不需要用户名,密码.就能登录到服务器电脑里面 (2)本地用户方式 需要帐户名和密码才能登录.而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户. (3)虚拟用户方式 同样需要用

Linux下安装FTP服务器及配置

通常情况下,向服务器上传代码.文件,vsftp用的还是比较多的.下面是本人安装配置的过程. Linux系统:centos6.6. 安装步骤 1.通过yum来安装vsftpd [[email protected] ~]# yum -y install vsftpd 2.设置为开机启动 [[email protected] ~]# chkconfig vsftpd on 3.把下面几行注释去掉,让其配置生效: local_enable=YES write_enable=YES local_umask

linux下开启ftp的21号端口

1.先运行vsftpd服务: #service vsftpd start 2.通过iptables开放21号端口 (1) 先查看iptables设置: #iptables -nL Chain INPUT (policy ACCEPT) target     prot opt source               destination ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTA

Linux下安装FTP服务器及配置方法

通常情况下,向服务器上传代码.文件,vsftp用的还是比较多的.下面是本人安装配置的过程. 安装步骤 1.通过yum来安装vsftpd [[email protected] ~]# yum -y install vsftpd 2.设置为开机启动 [[email protected] ~]# chkconfig vsftpd on 针对centos7:  systemctl enable vsftpd 3.vsftpd服务器的基本配置 vsftpd服务器的配置文件保存在"/etc"目录和

CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性.传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点,下面开始搭建: 1.用root 进入系统 2.使用命令 rpm  -qa | grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vsftpd的版本 3.如果安装了,可

在Windows XP系统下架设FTP服务器需要5个步骤。

4步win7下简单FTP服务器搭建:http://blog.sina.com.cn/s/blog_3f7e47f20100haur.html 申请网域护照(即帐户),开通免费域名.连接到www.oray.net,在页面左边点击“注册护照”,按照提示完成注册即可.然后在左面再点“域名服务中心”,选择下拉菜单的“注册域名记录”,之后在“免费域名”框内输入你的个性域名就行了.   本机安装动态域名解析软件.即花生壳客户端.下载完成后同样按提示安装,在到如下图的步骤时,请输入我们刚才在网站上注册的帐户及