Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270431
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 411
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-04 22:05
个人简介

追求永无止境

文章分类
文章存档

2016年(3)

2015年(33)

分类: LINUX

2015-07-26 11:26:06

其实防火墙对我们来说很不陌生,我们平常使用的windows操作系统中就自带有防火墙功能,不过大多数的我们忽略了它而已。如果使用过windows服务器就会发现防火墙其实挺实用的,它最大的功能就是帮助我们限制某些服务的访问来源。例如:可以限制特定IP访问文件传输服务(比如仅限局域网内使用)、可以限制整台主机仅可以接受客户端的www请求,关闭其它服务、可以限制内网用户访问外部网络等。

一、内置防火墙类别:

1、Netfilter:数据包过滤机制

分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,已决定该连接为放行或抵挡的机制。

Netfilter使用iptable这个软件来作为防火墙数据包过滤的命令。

2、TCP Wrappers:程序管理

通过服务器程序的外挂来处理的,分析谁对某程序进行访问,然后通过规则去分析该服务器程序谁能够连接、谁不能连接。该服务与启动的端口无关,只与启动的名称有关。

3、Proxy:代理服务


二、Netfilter
可以做的工作:

拒绝让internet的数据包进入主机的某些端口

拒绝让某些来源IP的数据包进入

拒绝让带有某些特殊标志的数据包进入

分析硬件地址来决定连接与否

 

TCP Wrappers能够管理的防火墙规则:

super daemonxinetd)所管理的服务

支持libwrap.so模块的服务

 

数据包过滤软件:iptables

Iptables至少就有3个表格:

Filter(过滤器):主要跟进入linux本机的数据包有关,是默认的table

INPUT:主要与想要进入linux本机的数据包有关

OUTPUT:主要与linux本机所要送出的数据包有关

PREROUTING:路由判断之前的nat,进入路由器之前修改目的主机地址

POSTROUTING:路由判断之后的nat,进入路由器后修改源主机地址

FORWARD:与linux本机没有关系,它可以传递数据包到后端的计算机中,与NATtable相关性高

 

NAT(地址转换):是Network Addresss Translation的缩写,这个表格主要用来进行来源与目的IPport的转换,与linux本机无关,主要与linux主机后的局域网内计算机相关。

PREROUTING:在进行路由判断之前所要进行的规则

POSTROUTING:在进行路由判断之后所要进行的规则

OUTPUT:与发送出去的数据包有关

 

Mangle(破坏者):这个表格主要是与特殊的数据包的路有标志有关,很少使用。

 

三、防火墙规则的查看与清楚:

Iptables –t:后边接table,如:nat filter,默认使用的是filter

-L 列出目前的table规则

-n:不进行IPHOSTNAME的反查,显示信息的速度会快很多

-v:列出更多的信息

 

Target:代表进行的操作,ACCEPT是放行,而REJECT则是拒绝,DROP是丢弃

Prot:代表使用的数据包协议,主要有TCP UDP ICMP 3中数据包格式

Opt:额外的选项说明

Source:规则是针对哪个来源IP进行限制

Destination:规则是针对哪个目标IP进行限制

 

 

Iptables-F(flush)清楚所有的已指定的规则

-R:(replace)替换指定的规则

-X:除掉所有用户自定义chain

-Z:将所有的chain的计数与流量统计都归为零

 

定义默认策略(policy):

Iptables [-t nat] –P[INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]

Eg:iptables –P INPUT DROP

   Iptables –P OUTPUT ACCEPT

   Iptables –P FORWARD ACCEPT

   Iptables-save

数据包的基础比对:IP、网络及接口设备

Iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s 来源IP/网络] [-d 目标IP/网络] –j [ACCEPT|DROP|REJECT|LOG]

-AI 链名:针对某条链进行规则的插入累加

         -A:新增加一条规则,该规则增加在原规则的最后面。

         -I:插入一条规则,如果没有指定此规则的顺序,默认插入变成第一条规则

-io 网络接口:设置数据包进出的接口规范

         -o:数据包所进入的那个网络接口

         -i:数据包所传出的那个网络接口

-p 协定:设置此规则适用于哪种数据包格式

-s 来源IP/网络:设置此规则之数据包的来源地,可指定单纯的IP或网络

         IP192.168.2.100

         网络:192.168.2.0/24

         若规范不允许则加上

-d 目标IP/网络:

-j:后面接操作,主要的操作有ACCEPT DROP REJECT

 

TCPUDP的规则比对:针对端口设置

Iptables [-AI ] [-io 网络接口] [-p tcp,udp] [-s 来源IP/网络] [--sport 端口范围] [-d 目标IP/网络] [--dport 端口范围] –j [ACCEPT|DROP|REJECT]

         --sport 端口范围:限制来源的端口号码,端口号码可以是连续的,eg1024:65535

         --dport 端口范文:限制目标的端口号码

         注意:因为仅有TCPUDP数据包具有端口,因此想要使用—dport--sport时,需要加上-p tcp-p udp的参数才会成功

Iptables外挂模块:macstate

Iptables –A INPUT [-m state] [--state 状态]

         -m:一些iptables的外挂模块,主要常见的有:

state:状态模块

mac:网卡硬件地址

         --state:一些数据包的状态

                   INVALID:无效的数据包,例如数据破损的数据包状态

                   ESTABLISHED:已经连接成功的连接状态

                   NEW:想要新建立连接的数据包状态

                   RELATED:最常用,表示这个数据包是主机发送出去的数据包有关

Egiptables –A INPUT –m mac mac –mac-source aa:bb:cc:dd:ee:ff –j ACCEPT

Eg:iptables –A INPUT –m state –state RELATED,ESTABLISHED –j ACCEPT

ICMP数据包规则的比对:针对是否相应ping来设计

Iptables –A INPUT [-p icmp] [--icmp-type 类型] –j ACCEPT

         --icmp-type:后面必须要接ICMP的数据包类型,也可以使用代号。

四、防火墙规则指定顺序:

规则归零->默认策略->信任本机->回应数据包->信任用户
eg:
#1.清除规则
iptables -F
iptables -X
iptables -Z
#2.设置策略

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P ACCEPT
#3.制定各种规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

阅读(1704) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~