Iptables防火墙

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

 Iptables防火墙

防火墙的实现既有基于硬件的又有基于软件的

硬件 CISCO的     PIX    ASA

     Juniper    netscreen  ssg

     神州数码的    DCFW

     H3C 的       secpath

     天融信

软件     windows 下的  IAS  Internet Security Acceleration

         Linux下的     netfilter架构/iptables

Iptables是网络层防火墙

如果想精确控制 iptables+L7+squid 建构

Iptables的链(规则的集合)

INPUT   OUTPUT  FORWARD  PREROUTING POSTROUTING  

Iptables的表

Nat 表 包含以下几个链

PREROUTING   (路由判断之前主要用于DNAT

POSTROUTING   (路由判断之后 主要用于SNAT

INPUT           (一般不用)

Filter表 包含以下几个链 

INPUT  (主要用于对防火墙本身的访问)

OUTPUT  (用于从防火墙本身出发的控制)

FORWARD (对经过防火墙的规则控制)

Mangle 表  (主要用于qos的设置)

Iptables   -t filter  -L   -v  -n    

-t  表示后接那个表 (如果没有-t 表名 默认是filter表)

-L    list  列出所用

-v    详细信息

-n    数字显示

iptables  -P  INPUT  DROP

INPUT链的默认规则设为禁止

Service  iptables  stop start restart  save

停止、开启、重启、保存iptables

Iptables的语法

iptables  -t  表名 指令 链名称  选项  参数

指令  

 -A   --apennd   是添加一条规则

-D   --delete   链名称   规则编号

-I    --insert   链名称   规则编号   (在编号之前插入一条规则)

-R   --replace  链名称   规则编号    (替换该规则)

-N   --new    自定义链名称    (自定义的链必须被引用才能起作用)

-X   删除空的自定义链

-F  --flash   清空链

-P   --policy  设置默认规则

选项

来源

-s   地址/子网/网络

-i   网卡接口名称   【-i eth0】  (表示从eth0网卡进入的)

目标

-d  地址/子网/网络

-o   网卡接口名称   【-o eth1】  (表示从eth1网卡进入的)

协议

网络层协议  ip  icmp

传输层协议   tcp  udp  --sport   --dport

状态

NEW   (三次握手的SYN 建立连接状态) 

ESTABLISHED  (含ACK的确认状态)

RELATED  (含二次连接的 多端口的服务状态 像FTP 的主被动模式)

动作

-j   --jump (跳转)  ACCEPT

                     REJECT

                     DROP

                     SNAT 或(MESQUERADE 它支持通过动态获取的ip snat

                     DNAT 

                     REDIRECT  (重定向)

模块

-m  (time  state  string  iprange  Layer7)

例如INPUT 和 OUTING链默认规则设为DROP 并能通过ssh连接到linux,进行远程管理 及能ping linux服务器

Iptables  -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

Iptables  -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT

Iptables  -t filter -A INPUT -p icmp --icmp-type  echo-request -j ACCEPT

Iptables  -t filter -A OUTPUT -p icmp --icmp-type  echo-reply -j ACCEPT

Iptables  -P INPUT  DROP

Iptables  -P OUTPUT  DROP

2

通过状态控制,是我的client 192.168.2.1 能连上linux server 

Iptables -t filter -A INPUT -s 192.168.2.1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

Iptables -t filter -A OUTPUT -d 192.168.2.1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

3

对内外做SNAT转换 并且内网里有一台 服务器(192.168.2.100)可以远程管理

打开linux的数据包转发功能

Iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to 192.168.101.10

这样内网就基本上可以访问外网了

访问外网的FTP 在执行如下命令

Modprobe   ip_nat_ftp   加载一下ftp转换模块

如果外网卡的接口是通过拨号获取的动态ip的话可以这样做

iptables -t nat -R POSTROUTING-s 192.168.2.0/24 -o eth1 -j MESQUERADE 

iptables -t nat -A PREROUTING -d 192.168.101.2 -p tcp --dport 3389 -i eth1 -j DNAT --to 192.168.2.100

Iptables  -P INPUT  DROP

Iptables  -P OUTPUT  DROP    --设置默认策略拒绝

iptables模块介绍

1、string(字符串匹配,可以用做内容过滤

iptables -I FORWARD -m string --string "腾讯" -j DROP 

iptables -I FORWARD -s 192.168.2.100 -m string --string "qq.com" -j DROP 

iptables -I FORWARD -s 192.168.2.0/24 -m string --string "宽频影院" -j DROP 

iptables -I FORWARD -s 192.168.2.0/24 -m string --string "色情" -j DROP 

iptables -I FORWARD -s 192.168.2.0/24 -p tcp --sport 80 -m string --string "广告" -j DROP 2. 

2comment (备注匹配,可以支持最多256个字符

Supported options: 

--comment COMMENT 

翻译:这个选项增加CONFIG_IP_NF_MATCH_COMMENT,补充一个注释匹配模块.这个匹允许你增加一个备注都任何规则,这个备注最多支持256个字符,例如 

(例子:) 

-A INPUT -s 192.168.0.0/16 -m comment --comment "A privatized IP block" 

译者:我是这样测试使用这个comment 

iptables -I FORWARD -s 192.168.2.100 -p tcp --dport 80 -j DROP -m comment --comment "the bad guy can not online" 

iptables -I FORWARD -s 192.168.2.100 -m string --string "qq.com" -j DROP -m comment --comment "denny go to qq.com" 

这样在iptables -L,就看到每条规则后面出现备注的内容.可以提高可读和理解该条规则的作用

3. connlimit(同时连接个数限制匹配

:这个增加一个iptables匹配允许你限制每个客户ip地址的并发tcp连接,即同时连接到一个服务器个数

例子

 (允许每个客户机同时两个telnet连接

iptables -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT 

(你也可以匹配其他的方法:) 

iptables -p tcp --syn --dport 23 -m connlimit ! --connlimit-above 2 -j ACCEPT 

(限制80端口最多同时16个连接请求

iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT 

模块 connlimit 作用:连接限制 

--connlimit-above n 限制为多少个 

--connlimit-mask n 这组主机的掩码,默认是connlimit-mask 32 ,即每ip. 

这个主要可以限制内网用户的网络使用,对服务器而言则可以限制每个ip发起的连接数...比较实用 

例如:只允许每个ip同时580端口转发,超过的丢弃

iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j DROP 

例如:只允许每组Cip同时1080端口转发

iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 

例如:为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃

/sbin/iptables -A INPUT -s 192.186.1.0/24 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP 

/sbin/iptables -A INPUT -s 192.186.1.0/24 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 

4. time(时间匹配,iptables默认么加载

Match only if today is one of the given days. (format: Mon,Tue,Wed,Thu,Fri,Sat,Sun ; default everyday) 

(只是匹配已经给出的天,格式Mon,Tue,Wed,Thu,Fri,Sat,Sun ;默认每天

(开始日期 日期

Match only if it is after `date' (Inclusive, format: YYYY]]]] h,m,s start from 0 ; default to 1970) 

(只是匹配这个开始日期值之后的(包括,格式: YYYY]]]] h,m,s start from 0 ; 默认是1970): 

Match only if it is before `date' (Inclusive, format: YYYY]]]] h,m,s start from 0 ; default to 2037) 

(只是匹配这个开始日期值之前的(包括,格式: YYYY]]]] h,m,s start from 0 ; 默认是2037): 

(例子:) 

-A INPUT -m time --timestart 8:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri 

will match packets that have an arrival timestamp in the range 8:00->18:00 from Monday to Friday. 

(上面将匹配从到达日期是星期一至星期五时间从8:0018:00的包

-A OUTPUT -m time --timestart 8:00 --timestop 18:00 --Days Mon --date-stop 2010 

will match the packets (locally generated) that have a departure timestamp in the range 8:00->18:00 on Monday only, until 2010 

(上面将匹配本地产生的时间范围直到2010年为止的每个星期一8:0018:00的包

NOTE: the time match does not track changes in daylight savings time 

5. iprange (ip范围匹配,iptables默认没有加载该模块)   

这个补丁名令匹配源/目标 IP地址可以倚着给出的地址范围进行匹配 

(例子) 

iptables -A FORWARD -m iprange --src-range 192.168.1.5-192.168.1.124 -j ACCEPT 

这个例子是允许源ip地址范围192.168.1.5-192.168.1.124的包通过 

iptables -A FORWARD -m iprange --dst-range 10.0.0.0-10.255.255.255 -j ACCEPT 

这个例子是允许目标ip地址范围10.0.0.0-10.255.255.255的包通过 

等等 iptables支持多达上百个模块(在/lib/iptables/),功能很丰富。关于iptables就介绍到这吧!!!!!!。

   



本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1097173

相关文章
|
6月前
|
安全 Linux 网络安全
百度搜索:蓝易云【linux iptables安全技术与防火墙】
请注意,iptables的具体使用方法和配置选项可能会有所不同,取决于Linux发行版和版本。管理员应该参考相关文档和资源,以了解适用于其特定环境的最佳实践和配置方法。
467 0
百度搜索:蓝易云【linux iptables安全技术与防火墙】
|
7月前
|
安全 Linux 网络安全
在Linux中,如何列出和删除 Iptables 防火墙规则?
在Linux中,如何列出和删除 Iptables 防火墙规则?
433 0
|
6月前
|
网络协议 Linux 网络安全
小白也能看懂的 iptables 防火墙
iptables是Linux中功能最为强大的防火墙软件之一 是一个在 Linux 系统上常用的防火墙工具,用于配置和管理网络数据包过滤规则。它可以通过定义规则集来控制进出系统的网络流量,实现网络安全策略
250 5
|
8月前
|
SQL 网络协议 Oracle
Linux iptables 防火墙软件命令详解
Linux iptables 防火墙软件命令详解
253 0
|
8月前
|
网络协议 Linux 网络安全
Linux系列——关于防火墙iptables的常用命令
Linux系列——关于防火墙iptables的常用命令
|
7月前
|
安全 Linux 网络安全
百度搜索:蓝易云【服务器安全设置Centos7 防火墙firewall与iptables】
CentOS 7使用的默认防火墙是firewall,它是一种基于Netfilter的用户空间工具,用于管理Linux内核中的iptables规则。为了加强服务器的安全性,可以通过配置CentOS 7防火墙和iptables规则来保护服务器。
108 0
|
4月前
|
网络协议 Linux 网络安全
Centos7中如何打开和关闭防火墙??CentOS 7以上默认使用firewall作为防火墙改为iptables
Centos7中如何打开和关闭防火墙??CentOS 7以上默认使用firewall作为防火墙改为iptables
|
4月前
|
存储 网络协议 Linux
Linux加强篇008-使用Iptables与Firewalld防火墙
山重水复疑无路,柳暗花明又一村
311 0
Linux加强篇008-使用Iptables与Firewalld防火墙
|
4月前
|
Linux 网络安全
CentOS7下操作iptables防火墙和firewalld防火墙
CentOS7下操作iptables防火墙和firewalld防火墙
93 3
|
5月前
|
网络协议 网络安全 开发工具
iptables和防火墙1
iptables和防火墙1
27 0