CentOS下IPTables FTP规则配置详解

在设置ftp通过iptables规则前,需要先了解下ftp工作的两种模式,他们分别是主动模式和被动模式。如果对ftp原理不是很清楚,可以先参考下下面几篇文章。

FTP简介

1、FTP主动模式和被动模式的区别

2、Active FTP vs. Passive FTP, a Definitive Explanation

简单的说,主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间 随机。

了解ftp原理后,接下来就去设置iptables规则。我自己服务器上默认INPUT规则是DROP,OUTPUT是ACCEPT。

命令

1、开放21、20端口

# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

如果OUTPUT默认也是DROP,那么还需要添加一下规则。

# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

2、接受所有状态为ESTABLISHED、RELATED的连接

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

有关related状态的说明:

RELATED状态在有双通道的服务中会出现的。比如ftp服务的控制通道和数据通道。client发送syn请求到server的21端口,中间的linux系统变为NEW状态。server回复syn+ack应答包给client,中间的linux变为ESTABLISHED状态。当ftp的控制通道建立完后,会建立数据通道,而数据通道的第一个包就是RELATED状态,以后的包又变成ESTABLISHED状态。

3、配置iptables

# vi /etc/sysconfig/iptables-config

找到IPTABLES_MODULES,取消注释,添加ip_conntrack_ftp模块,保存。ip_conntrack_ftp模块可以让iptables支持被动模式的ftp连接。

IPTABLES_MODULES="ip_conntrack_ftp"

4、保存iptables规则、重启。

[root@iZ94myad6wkZ ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
[root@iZ94myad6wkZ ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter nat [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
iptables: Loading additional modules: ip_conntrack_ftp [ OK ]

重启iptables是多了个加载模块的地址,ok正常。

时间: 2024-11-01 12:14:17

CentOS下IPTables FTP规则配置详解的相关文章

centos下fail2ban安装与配置详解_Linux

一.fail2ban简介 fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员,是不是很好.很实用.很强大! 二.简单来介绍一下fail2ban的功能和特性 1.支持大量服务.如sshd,apache,qmail,proftpd,sasl等等2.支持多种动作.如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通

Centos下编译安装Nginx教程详解_nginx

一.安装nginx时必须先安装相应的编译工具 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 建立nginx 组 groupadd -r nginx useradd -s /sbin/nologin -g nginx -r nginx id nginx zlib:nginx提供gzip模块,需要zlib库支持 openssl:n

CentOS中vsftp安装与配置详解_Linux

一般我们在安装完系统后都会自动安装了vsftp服务了,但是有时候还是得需要自己动手的,比如这两天就在给我朋友配置了一下,顺手把过程记录下来,以便需要的时候查阅或者给需要的朋友提供方便:) 1. 安装 使用chkconfig --list来查看是否装有vsftpd服务: 使用yum命令直接安装: yum -y install vsftpd 然后为它创建日志文件: touch /var/log/vsftpd.log 这样简单的两个命令就完成了vsftp的安装,但是如果你现在想这样ftp://your

Linux服务器下nginx的安全配置详解_nginx

Nginx是一个轻量级,高性能的Web服务器/反向代理和电子邮件 代理(IMAP/POP3),它可以运行在UNIX,GNU/Linux,BSD变种,MAC OS X,Solaris和Microsoft Windows上.根据Netcraft的调查数据显示,互联网上6%的域名都使用了Nginx Web服务器.Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱 动(异步)架构.Nginx在很多高流量网站上得到了应用,如W

CentOS6.3下nginx性能优化配置详解(1/2)

一.NGINX优化配置 1.主配置文件优化: # vi /usr/local/nginx/conf/nginx.conf ----------------------------------------- user nginx nginx; worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000; error_log  /usr/local/ngi

centos系统Lvs负载均衡配置详解

实验用三台Vmware下虚拟的centos5.5服务器,一台作为负载调度器(Lvs-server),两台真实web服务器(web1,web2). 一.Lvs-nat实验: 配置IP: 1.window7下与虚拟机相连的网卡配置成8.8.8.1,不虚配置网关. 2.Lvs-server需要配置两块网卡,一块(eth0)模拟与外网连接(本实验下与Windows相连),一块(eth1)与内部真实服务器通信.eth0:8.8.8.8,eth1:192.168.10.1 3.web1:eth0:192.1

Linux系统下Kafka单机安装配置详解

说明:   操作系统:CentOS 6.x 64位   Kafka版本:kafka_2.11-0.8.2.1   实现目的:   单机安装配置kafka   具体操作:   一.关闭SELINUX.开启防火墙9092端口   1.关闭SELINUX   vi /etc/selinux/config   #SELINUX=enforcing #注释掉   #SELINUXTYPE=targeted #注释掉   SELINUX=disabled #增加   :wq! #保存退出   setenfo

入门:Windows环境下PHP动态网页配置详解

入门:详解Windows下PHP5+APACHE+MYSQ完整配置 经过一段时间狂热的PHP编程,对WINDOWS平台下PHP的配置可算是深有感触,一开始我用的是一键安装的傻瓜包,但是考虑傻瓜包的安装版本已经落后,在真正手动配置PHP环境时遇到许多问题,在查阅了许多资料和尝试后,终于配置成功.现在,我将我的配置经验和大家分享一下,相信可以解决大家配置PHP环境的迷惑. 首先说一下我用的软件版本. PHP 5.1.6APACHE 2.0.59(注意:APACHE 2.2.X版本以上要增加插件才支持

linux中vsftpd下虚拟用户+被动模式配置详解

下面说说在linux下部署vsftp的过程吧,小小笔记. 一.安装 这里我说下最简单的rpm包安装,因为光盘中有,何必编译呢? yum install db4* vsftpd -y 二.配置 1.新建系统用户 useradd vsftpd -s /sbin/nologin 限制vsftpd用户登录,此用户将最为vsftpd服务的宿主用户 useradd ftp -s /sbin/nologin 这里是Vsftpd虚拟宿主用户,默认情况下这个用户应该有. 当然这些用户你可以用另外的名字. 2.修改