liunx-防火墙技术基础配置讲解


防火墙(firewall)技术
   什么是防火墙呢?就是工作在网络边缘,按照管理员定义的规则,对于进出的报文进行规制匹配动作检测这一的组件。
   防火墙分为硬件与软件防火墙,防火墙工作在网络的边缘,防火墙自身是不会发生作用的,它只是一个组件。
防火墙策略
rules (规则) policy
防火墙的类型
市面主要有二种 工作的三四层的网络层防火墙  工作在七层的 代理网关
   工作在三层的: 工作在网络层 所有进出ip首部 进行规检测
   工作在七层的:防火墙比较安全,但是效率比较低   只要发现目标 传输报文规则 就做出处理的匹配处理
三层的防火墙只拆开三层发现没有问题后封装后发送。 七层的拆开所有的数据包再封装发送。
 
inux系统上自带的防火墙
iptables  前身ipfwiptables ->写成规则放在内核中才能生效
tcp/IP stack协议栈放在内核中, 在 kernel(rules)中 才生效
能给内核打交道的文件  /proc   /sys 防火墙想要生效 必须放在内核空间中
iptables/netfilter 网络过滤器  五个关卡 过滤数据    数据包的走向
   
                        ---ssh---
                         //                        \\                    
外网 《---             服务器             《--- 内网
   
地址转换 必须在路由之前转换
不同的功能,需要在不同的位置实现 不同的位置还有使用不同的规则链和处理机制
NETFILET 有五个位置实现过滤 
hook functions 钩子函数
五个内置的量 chains五个关卡 
数据包 就要就如我们网卡的那一刻的也就是路由器的叫做
         PREROUTING 路由器
到本机内部 INPUT 流入接口
转发关卡   FORWARD
流出的端口 output
          POSTROUTING
 内置的5个规则链
 
防火墙策略
“通”  默认门是光着的  谁都不让进 要明确谁能进
“堵”  默认门是开着的
1,允许/不允许         filter
2,地址转换                nat

过滤与转发是分开的 为了避免交叉我们专一定义一个表的东西来实现定义区分同一个链上的不同功能的规则。

3,修改报文源数据    mangle

(这个表格主要是与特殊数据包的路由标记有关)
回顾ip首部格式思考一下?
=三表五链=
filter表 只能做到三个链上 input forward    output(大写)
nat表        prerouting output postrouting 大写
mangle表    prerouting input forward    OUTPUT POSTROUTING

数据包是自上而下检测的 一旦匹配到了就不在检测了 要把严格的放在上面,
处理机制 自己定义的链必须要与基准链串联起来才能工作
可以删除自己定义的链 不能删除内部的链
怎么写防火墙规则
 

iptables 语法规则
   iptables的命令会对网络数据包进行过滤及阻止。所以不要在远程主机上进行防火墙的练习
i  ptables 至少有3个默认的table(filter nat mangle) 比较常用的是filter 它是默认的表格,另一个则是net表格较常用,mangle比较少用.................
鸟哥上面的资料
1.规则的清除与观察
#iptables [-t tables][-L][-nv]
-t:后面接table 例如nat或filter 若省略次项目,则使用默认的filter
-L:列出目前的table的规则
-n:不进行ip与HOSTNAME的反查 显示信息的速度会快的很多
-v:列出更多信息,包括通过规则的数据包总个数、相关的网络接口等
=====
#iptables [-t tables] [-FXZ]
参数
-F :清除所有的已定规则
-X:除掉所有用的“自定义”的链(应该说的tables)
-Z;将所有的chain的计数与流量通过都归零。
...................
 
2.定义默认策略   
#iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
-P 定义策略(Policy) 注意 这个p位大写
     ACCEPT :该数据包可接受
     DROP :    该数据包直接丢弃 不让client端知道为何丢弃。
范例 将本机的input设为DROP 请他的设置为ACCEPT
         # iptables -p    INPUT DROP
         # iptables -p    OUTPUT ACCEPT
         # iptables -p    FORWARD ACCEPT
 
 

iptables [-t table] COMMAND chain CRETIRIA -j actton
列 iptables -t filter -A INPUT -s 1
查看定义的规则iptables -L S

 chain指定在那个链操作  CRETIRIA匹配规则标准  -j 指定如何处理  对于规则是必须的
 COMMAND:
链管理命令 :
-
p 设定默认策略是关的还是开的    # iptables -P    INPUT(DROP|ACCEPT) 立即生 效的       
            列    #iptables -P INPUT DROP    把默认规则删除
                    #iptables -p INPUT ACCEPT 开启        
-F flash     清空所有已定的规则   
        #iptable -t net -F PREROUTING 清空net表链
-N 新建用户自定义规则链
        #iptables -N inbound_tcp_web
-X 删除用户自定义的空规则链
-E 重定义用户的规则链
-Z 清空链默认规则及链规则中的接受器的
规则管理命令:
-A    追加的
-I    把规则插入到第几条
-R    修改规则    NUM
-D 删除第几条规则
查看命令
-L 查看
     -n 数据的方式
     -v 详细信息 -vv    -vvv 越多越详细
     -x    精确值 不进行单位换算
     --line-numbers 显示行号 列 iptables -L -n --line-number
   
 
匹配标准:
 通用匹配
通用匹配
-s,--src 指定做源地址匹配
    IP ,NETWORK/NETMASK, 0.0.0.0/0.0.0.0
-d 匹配目标地址
-p 匹配协议的 通常这三种协议(tcp|udp|icmp)
-i 数据的流入接口 etho
-o 流出接口

 
  隐含扩展
tcp utp的规则比对
   某种特定协议的扩展
 -p tcp
         --dport 端口范围 限制来源端口号码,端口号码可以是连续的 列入1024:65535
         --sport    端口范围 限制目的地的端口号码。
         --tcp-flags     参数 检查的标准位    必须为1的标准位                                        六个标志位 SYN,ACK,FIN,PAH,RST,URG
            :--tcp-flage syn,ack,fin,rst,syn 三次握手的第一次匹配 = --syn
    -p udp
         --dport
         --sport
    -p    icmp
         --icmp-types 8    后面需要接ICMP的数据包类型 也可以使用代号
                    列如8代表echo request 的意思
         例如ICMP type为 0,3,4,11,12,14,16,18的数据包可以进入本机
                     --icmp-type 0,3,4,11,12,14,16,18
         echo-request    8 请求回显
         echo-reply 0    
 
  显示扩展
 状态模块 MAC与RELATED
   -m  表示显示扩展 
   -p tcp -m multiport --dports 21,23,80
-m  start 状态检测
-j ACTION
DROP  悄悄拒绝
REJECT 明确拒绝
ACCRPT 接受
custom_chain
DNAT    SNAT
MASQUERADE 源地址伪装
REDIRECT   端口重定向
MAPK
RETUPN 返回
ipables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -dport

RELATED
状态检测
NEW  新发布的链接 
ESTABLISHED 以建立的链接
ERLATED   具有关联关系的链接
INVALID   无法识别的链接

iptables -L -n
iptables -L -n --line-number
iptables -R 
       
保存
service iptables save
在这个文件下面
/etc/sysconfig/iptables
iptable-sabe > /etc/syscnnfig/iptables.2
iptables-restore < /etc/sysconfig/iptables.2   
 
 
 
--
NAT
代理服务器
地址转换
iptables -t nat POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1
MASQUERADE地址伪装
本文出自 “博客世界” 博客

相关内容

    暂无相关文章