iptables详解以及企业常用案例<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    iptables采用netfilter网络架构实现包过滤防火墙,可以实现硬件防火墙的常用功能,亦可以在应用方案中作为硬件防火墙的替代品.在本文档里我们将详细介绍iptables的功能,以及剖析企业常用案例

一、iptables的工作原理

1iptables3个表

    iptables共三个表,分别是filter,nat,mangle。我们通过编辑这三个表可以实现不同的功能。其中fileter主要是为了控制外部PC对本服务器的访问,比如在服务器上作了web服务,想只允许某网段才能访问就是利用了fileter进行访问控制。Nat表主要用在网关服务器上,可以实现nat,路由等功能。Mangle不常用,此教程不做介绍。

2、每个表的规则链

iptables默认的表:

filter(包含INPUTFORWARDOUTPUT

Nat(包含PREROUTINGPOSTROUTINGOUTPUT

Mangle (包含INPUTFORWARDOUTPUTPREROUTING POSTROUTING

其中更详细如下图所示:

iptables详解以及企业常用案例

    注:filterOUTPUT规则链和natOUTPUT没有联系,即不同表的规则链即使名字相同也毫无关系。

我们通过添加删除修改规则来改变规则链,具体如何修改我们将在下文进行详细介绍。

二、iptables配置

1iptables的常用命令

安装服务所需要的rpmiptables-*-i386.rpm

安装服务rpm –ivh iptables*

启动iptables服务service iptables start

关闭iptables服务service iptables stop

查看iptables服务状态service iptables status

或者通过脚本来进行启动|关闭|查看:/etc/init.d/iptables {start|stop|status}

保存当前设置到/etc/sysconfig/iptablesservice iptables save

查看当前表中规则iptables [-t 表名]–L      //如果不指定表名将以filter查看,下同

清空表中规则iptables [-t 表名] –F

删除自定义规则链iptables [-t 表名] X
计数器归零iptables Z
2iptables默认规则链的默认设置
iptables [-t 表名] P 规则链 处理方式           
(注:处理方式常用有3种,丢弃,拒绝,接受允许,分别是DROP,REJECT,ACCEPT)
例:我们需要将filterINPUT规则链的默认设置为丢弃,则
iptables t filter P INPUT DROP
3、添加iptables规则
iptables [-t 表名] A 规则链 s 源地址 d 目的地址 dport 目的端口 j 处理方式
例:我们接受外界PING
iptables t filter A INPUT p icmp j ACCEPT
附:iptables添加规则时所涉及的命令选项以及处理方式
添加规则的命令选项;-i  指定入口网卡,-o  指定输出网卡,-p  指定数据包协议,如TCPUDP,-s  指定源地址,-sport  指定源端口,-d  指定目的地址,-dport  指定目的端口,-j  处理方式
其中处理方式有一下几种,ACCEPT  接受数据包,DROP  丢弃数据包,REJECT  拒绝,SNAT源地址转换,DNAT  目的地址转换,MASQUERADE  IP伪装,LOG  日志功能。
三、企业常用案例
    前言:企业上一般使用脚本来配置iptables,这样方便以后修改。
1、  一台web服务器对外提供httphtp服务,禁止外来的其他访问。
脚本如下
#!/bin/bash
iptables F
iptables X
iptables Z
iptables t nat F
iptables t nat X
iptables t nat Z
iptables P INPUT DROP
iptables P OUTPUT ACCEPT
iptables P FORWARD ACCEPT
iptables t nat P PREROUTING ACCEPT
iptables t nat P POSTROUTING ACCEPT
iptables
t nat P OUTPUT ACCEPT
iptables A INPUT p tcp -dport 80 j ACCEPT
iptables A INPUT p tcp -dport 21 j ACCEPT
service iptables save
执行脚本,完成
2、  企业有一台linux网管,需要做NAT服务,将192.168.1.0网段的IP修改成网卡ech0IP
脚本如下
#!/bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

modprobe ip_tables

modprobe ip_nat_ftp

modprobe ip_nat_irc

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_conntrack_irc

iptables -F

iptables -X

iptables -Z

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
service iptables save
执行脚本,完成
四、后言
    此教程由KingCC编辑整理,参考北大青鸟部分内容,如果转载请注明作者KingCC,谢谢
 
本文出自 “你的支持,我的动力” 博客,请务必保留此出处http://coolcup.blog.51cto.com/484305/226684
本文出自 51CTO.COM技术博客
本文出自 51CTO.COM技术博客

转载于:https://blog.51cto.com/517055/308173

相关文章:

  • 2021-11-23
  • 2021-05-23
  • 2021-10-13
  • 2022-12-23
  • 2021-12-05
  • 2021-08-21
  • 2021-12-25
  • 2021-12-07
猜你喜欢
  • 2021-08-06
  • 2021-10-01
  • 2022-12-23
  • 2021-08-18
  • 2021-11-17
  • 2022-01-08
  • 2021-12-09
相关资源
相似解决方案