一、检查iptables服务状态
$ service iptables status
iptables: Firewall is not running.
说明iptables服务是有安装的,但是没有启动服务
如果没有安装的话可以直接yum安装
$ yum install -y iptables
#启动iptables
$ service iptables start
iptables: No config file. [WARNING]
解决:
$ iptables -P OUTPUT ACCEPT
$ service iptables save
#当前iptables的配置情况
$ iptables -L -n
二、清除默认的防火墙规则
#首先在清除前要将policy INPUT改成ACCEPT,表示接受一切请求
$ iptables -P INPUT ACCEPT
#清空默认所有规则
$ iptables -F
#清空自定义的所有规则
$ iptables -X
#清空计数
$ iptables -Z
三、配置规则
#允许来自于lo接口的数据包
#如果没有此规则,你将不能通过127.0.0.1访问本地服务,例如ping 127.0.0.1
$ iptables -A INPUT -i lo -j ACCEPT
#ssh端口22
$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$ iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT #22为你的ssh端口, -s 192.168.1.0/24表示允许这个网段的机器来连接,其它网段的ip地址是登陆不了你的机器的。 -j ACCEPT表示接受这样的请求
#FTP端口21
$ iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#web服务端口80
$ iptables -A INPUT -p tcp --dport 80 -j ACCEP
#tomcat
$ iptables -A INPUT -p tcp --dport xxxx -j ACCEP
#mysql
$ iptables -A INPUT -p tcp --dport xxxx -j ACCEP
#允许icmp包通过,也就是允许ping
$ iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#已经建立的连接得让它进来
$ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#添加内网ip信任(接受其所有TCP请求)
$ iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT
#过滤所有非以上规则的请求
$ iptables -P INPUT DROP
四、保存
首先 iptables -L -n 看一下配置是否正确,没问题后,先不要急着保存,因为没保存只是当前有效,重启后就不生效,这样万一有什么问题,可以后台强制重启服务器恢复设置
#保存
$ service iptables save
#添加到自启动chkconfig
$ chkconfig iptables on
配置白名单
iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT #允许机房内网机器可以访问
iptables -A INPUT -p all -s 192.168.140.0/24 -j ACCEPT #允许机房内网机器可以访问
iptables -A INPUT -p tcp -s 183.121.3.7 --dport 3380 -j ACCEPT #允许183.121.3.7访问本机的3380端口
iptables优化
当服务器收到一条请求时,它会把iptables从上往下,一条条匹配定制的规则,那么假如机器收到一个正常的web请求,要走80端口,它需要先去检验前面5条规则,发现都不符合,直到第六条满足条件,那么这样的话防火墙的工作效率就低了很多
优化的思路:请求最频繁的放在最上面,请求频率较小的放在最后面
通过修改以下配置文件调整顺序
$ vi /etc/sysconfig/iptables
iptables格式
通用匹配
-s 指定源地址
-d 指定目标地址
-p 指定协议
-i 指定数据报文流入接口
-o 指定数据报文流出接口
扩展匹配
指定-m选项,表示用什么模块来匹配,如:
-m state --state
NEW,ESTABLISHED,RELATED 表示用state模块来匹配当前连接状态为这三种状态的连接
-m iprange
--src-range 用iprange模块匹配来源的ip地址范围
--dst-range 用iprange模块匹配目的的ip地址范围
-m multiport
--source-ports 用multiport模块来匹配来源的端口范围
--destination-ports 用multiport模块来匹配目的的端口范围
例:
-A INPUT -p tcp -m iprange --src-range 121.21.30.36-121.21.30.100 -m multiport --destination-ports 3326,3327,3328 -m state --state NEW -j ACCEPT
这表示来自121.21.30.36-121.21.30.100这个地址范围的,请求端口为3326,3327,3328并且是新建的连接,都给予放行。
处理动作
ACCEPT:允许数据包通过
DROP:直接丢弃数据包,不给任何回应信息,过了超时时间才会有反应
REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息
SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题
MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上
DNAT:目标地址转换
REDIRECT:在本机做端口映射
LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配
相关推荐
iptables配置
下面小编就为大家带来一篇iptables配置(/etc/sysconfig/iptables)操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
linux iptables 防火墙配置文件
Linux操作系统下IPTables配置方法详解.doc
最基础的iptables配置脚本,一键加固Linux防火墙
linux下IPTABLES配置详解
Linux下使用Iptables配置NAT防火墙 分析防火墙技术原理和防火墙类别,结合校园网实际设计使用Linux下的Iptables 防火墙NAT 方案,能够实现NAT和对网络进行用户管理和信息过滤,并能防范一定的网络攻击手段和防病毒 ...
本知识点将详细介绍Linux系统下iptables配置的步骤、方法和注意事项。 ### iptables配置基础 在配置iptables之前,了解几个基本术语非常重要,它们分别是源地址(SRC)、目的地址(DST)、协议(PROTO)、源端口...
linux下iptables配置.mht说明文件
Linux下iptables配置申明.doc
iptables配置实现内外网防火墙,允许内网访问外网http,https,ftp等服务,禁止外网直接访问内网主机,honeyd在ubuntu下的使用,部署简单的蜜罐系统,实现记录攻击者扫描主机及访问web信息及时间
以下是对iptables配置实例的详细解析: 一、链的基本操作 1. 清除规则: 使用`iptables -F`清除预设表filter中所有规则链中的规则。`iptables -X`用于删除用户自定义的链,而`iptables -Z`则重置计数器。 2. ...
Linux中iptables配置,主要是以一步一个截图的方式,详细的介绍iptables的配置过程