iptables下开放ftp连接端口

iptables下开放ftp连接端口

转载 2014年04月19日 10:04:27

  • 2275

iptables 就是linux系统的防火墙,很多人安装iptables之后重启服务器发现网站无法访问,ftp无法连接。关闭iptables之后网站和ftp服务器都能正常访问,但是为了服务器的安全,不建议关闭防火墙。

要想配置好iptables让ftp服务器正常访问,我们首先要了解一下ftp服务器的工作机制。

ftp协议是一个简单、保密性差(明码)的tcp协议,它的工作原理是客户端先连服务器端的21端口,然后经过3步的握手以后建立了一条连接。要注意的是,这条连接只可以用来传输ftp的命令,只有这条连接的话是什么文件都传不了的,就算是用“ls”命令来查看文件也不行。

建立了命令的连接以后,服务器端就要建立一条数据的连接。数据的连接又分为主动模式(port)和被动模式(passive)。ftp默认是被动模式,主动和被动之间使用”pass”命令切换。主动模式通过20端口与客户端相连,而被动模式却使用1024以后的端口与客户端相连。由于1024以后的端口是随机分配的,所以在被动模式下我们是不知道服务端是使用什么端口与客户端连接的。也就是说,我们是不知道iptables要开放什么端口。

了解之后我们发现,仅仅在iptables设置开放21端口是不行的。

在/etc/sysconfig/iptables-config里面添加ip_nat_ftp、ip_conntrack、ip_conntrack_ftp模块,如下:

vi /etc/sysconfig/iptables-config

IPTABLES_MODULES="ip_nat_ftp"

IPTABLES_MODULES="ip_conntrack"

IPTABLES_MODULES="ip_conntrack_ftp"

然后重启iptables或者执行如下命令:

modprobe ip_nat_ftp   (加载ftp模块)

lsmod | grepftp    (查看模块是否被加载)

之后只需要添加规则

iptables -I INPUT -s 192.168.1.1 -d 192.168.1.200 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -s 192.168.1.1 -d 192.168.1.200 -p tcp --sport 21 -j ACCEPT

注意:如果你把OUTPUT 设置成DROP的就要写上

iptables -A OUTPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

最后要记得保存和重启iptables服务

/etc/rc.d/init.d/iptablessave

service iptables restart

这样ftp命令能传输了,也可以利用ftp服务器上传下载文件了。

原文地址:https://www.cnblogs.com/liubi/p/8859081.html

时间: 2024-12-15 14:49:26

iptables下开放ftp连接端口的相关文章

iptables 下开放ftp

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

ubuntu下开放ssh连接服务的方法

在ubuntu系统下安装ssh服务的方法,ssh分客户端openssh-client和openssh-server,若要在本机开放ssh服务,则要安装openssh-server. 说明:1.客户端ssh只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client) 2.若要在本机开放ssh服务,则要安装openssh-server sudo apt-get install openssh-server 然后,确

CentOS7.3 下开放防火墙的端口

CentOS 7.3默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1:关闭firewall: systemctl stop firewalld.service systemctl disable firewalld.service systemctl mask firewalld.service 2.安装iptables防火墙 yum install iptables-services -y 3.启动设置防火墙 systemctl enable iptables sy

iptables开放FTP端口

FTP是File Transfer Protocol(文件传输协议),它有两种工作模式,分别是主动模式(post)和被动模式(passive) 主动模式:默认TCP的21端口用来建立连接(控制连接),20端口用来数据传输 被动模式:默认TCP的21端口和主动模式一样用来控制连接,而数据连接则是通过大于1023的端口进行 如果FTP工作在主动模式下只要开放20,21端口即可,但如果工作在被动模式下则不能指定数据传输的端口,则要用到iptables中stata(状态追踪) state中有四种状态:N

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

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

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是遇到的错误(425 Failed to establish connection)

linux下命令行连接FTP是遇到的错误(425 Failed to establish connection) 首先FTP的运行模式有主动模式和被动模式两种 然后笔者在工作中搭建了ftp,但是没有开启他的被动模式. 然后server端的防火墙开放了21端口. 因此客户端能连上server,但是输入命令会提示.(首先要数据passive off命令关闭客户端以被动模式连接server端) 原因是ftp在主动模式下是通过21端口进行登陆的,但是后续是通过20端口与客户端进行数据交换. 因此笔者在这

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)虚拟用户方式 同样需要用