Linux安全基础——day3——抓包、防火墙

TcpDump抓包
   使用的软件包是: tcpdump
   使用命令: tcpdump  选项  过滤条件

-i指定监控的网络接口
-A方便阅读
-c设定抓取几个包的时候停止
-w将抓取的数据包信息存储到指定文件中,一般文件后缀名为 .cap
-r从指定文件中读取数据包信息
过滤条件
host主机
net网段
port端口 必须跟协议一起连用
portrange指定一段范围的端口信息
src指定源地址
dst指定目标地址
and前后两个条件同时匹配才抓包
or几个条件中某个符合就匹配
not条件结果取反

举例:

tcpdump -i eth0 -A tcp port 21 and src 192.168.4.50 -w /mnt/s50_ftp.cap
# 抓取eth0网卡中关于FTP服务(tcp协议的21端口)的来自192.168.4.50的数据包,并把数据记录到s50_ftp.cap文件中

WirShark协议分析器
    装包: yum install -y wireshark wireshark-gnome
    使用图形界面进行操作,点击File菜单,打开用tcpdump命令抓取的包,进行分析


    分析过后回有三个板块信息:
      第一个板块的内容是,抓取的每个包的信息,一行信息就是一个包
      第二个板块是一个包的四层协议的信息,分别是物理层、数据链路层、网络层、传输层
      第三个板块是具体的数据信息


防火墙

   在RHEL6默认使用iptables作为防火墙
   在RHEL7使用的是firewalld服务,不过向下兼容,也可以用iptables,而且firewall的底层还是使用的iptables,只不过如果想用iptables服务,我们需要安装iptables的服务的包,就下载一个软件包iptables-services,进行防火墙控制

RHEL6的控制命令(RHEL7也可以用,具体效果等效)
service iptables status查看防火墙
service iptables stop关闭防火墙
service iptables start开启防火墙
chkconfig iptables on开机自启防火墙

网络类型:

     1. 网络型防火墙    专门的一个服务器做为防火墙服务器,隔离过滤后再把数据发给服务器集群
                                      配置的时候,配置FORWARD链的策略
     2. 主机型防火墙    在服务器集群的服务器上搭建防火墙进行隔离
                                      配置的时候,配置INPUT链的策略

四张表 (功能项)解释作用可操作的数据链结构
raw状态跟踪表数据包到达防火墙后跟踪这个包的状态(连接状态、断开状态、新生成准备连接状态)PREROUTING、OUTPUT
mangle包标记表给包打上标签,如果标签打上ok就可以过,如果是false就不给过防火墙INPUT、INPUT、FOWARD、POSTROUTING、PREROUTING
主要是给+需要特殊标示某些服务或者端口或者IP地址的一些访问进行特殊处理
nat地址转换表将要发送数据到公网的私有地址转换为公有地址,同样也可以把公有地址转换为私有地址INPUT、OUTPUT、POSTROUTING、PREROUTING
filter过滤表(默认)不想让什么包不能进来,运行什么包进来,是用这个表来限制实现的INPUT、OUTPUT、FOWARD
五个链 (匹配数据包传输的方向 )
INPUT匹配进入防火墙的包
OUTPUT匹配从防火墙出去的包
FOWARD匹配经过防火墙主机的包,源地址和目标地址都不是防火墙主机的情况
POSTROUTING已经完成路由处理后进行操作
不能用-i指定进入的网卡接口,只能用-o指定发出的网卡接口
PREROUTING到达防火墙后,进行路由处理前进行操作,不管目标地址是什么,进行操作,由防火墙指定目标地址
不能用-o指定发出的网卡接口,只能用-i指定进入的网卡接口

匹配规则
    匹配到达防火墙的数据包,然后进行相关操作;这规则是存放在链里进行匹配
    匹配顺序:
        从设定的从上至下依次执行,匹配后执行对应的动作,然后停止匹配(LOG动作除外)
        如果都不匹配,采用默认策略进行处理
    匹配条件:

通用匹配协议匹配-p  协议 
协议有三个: tcp(大部分服务)、udp(DNS等服务)、icmp(控制ping操作)
地址匹配-s  源IP地址
-d  目标IP地址
接口匹配-i  收数据的网卡即口
-o  发数据的网卡即口
隐含匹配端口匹配--sport 源端口
--dport 目标端口
ICMP类型匹配--icmp-type ICMP类型
ICMP类型: echo-request(指Ping发送的包)    echo-reply(指Ping回应的包)
注意必须是当-p后面协议是icmp的时候才能用
匹配取反在条件前面加个 ! 即可


处理动作:
    1. 放行  ACCEPT

    2. 丢弃  DROP    (直接丢弃数据包,不做其他操作)

    3. 拒绝  REJECT  (会返回信息告知客户端,连接被拒绝了)

    4. 记录日志  LOG  (记录日志后,继续匹配下面的操作,这是特例)

    5. 指定转换源IP地址是使用SNAT (这个动作只有NAT表可以实现,--to-source用来指定转换原IP变成什么IP地址)
        一般用于将内网数据包修改源IP,实现发往外网,进行数据通信,语法格式是

iptables -t nat -A POSTROUTING 匹配规则 -j SNAT --to-source 转换成的IP地址(公网的接口IP)

        如果防火墙本机的网络的IP地址不稳定,就用MASQUERADE自动获取当前IP作为值,进行IP的修正

iptables -t nat -A POSTROUTING 匹配规则 -j MASQUERADE

    6. 指定转换目标IP地址是使用DNAT,其语法和SNAT一样,不过其作用在PREROUTING链上,用的也比较少

iptables -t nat -A PREROUTING 匹配规则 -j DNAT --to-source 转换成的IP地址

iptables指令
    命令: iptables -t 表  管理选项  链  匹配条件 扩展模块  -j 动作
    没写匹配条件的部分默认是全部匹配
    操作后要保存防火墙配置: service iptables save

    管理选项

添加规则-A在链的末尾追加一个规则
-I在链的指定位置前插入一条规则,如果每指定,默认是在开头添加规则
-I 链 编号   -->  指在该链的指定编号前添加
查看规则-L列出所有规则

如果没有指定表就是filter表中的规则、如果没有指定链,就是指定表中的所有链的规则

默认是对地址端口进行解析,易读,但是耗时较长
-n以数字形式是显示地址、端口
一般不单独用,都是和L选项连用
一般而言-nL是连用的选项,这样策略显示速度比较快
--line-numbers查看规则的时候显示序号,一般和L连用
注意: 这个选项最好写在命令的最后一行,或者-L前面,该选项后面不能有参数,不然报错
删除规则-D删除指定序号的规则
-F删除所有规则,只是删除写的策略规则,不会修改默认策略
如果指定了表和链拿就是删除指定的位置的所有规则,都不指就是删除所有规则
默认策略-P为指定的链设置默认规则
只能指定动作为ACCEPT和DROP
iptables -t 表 -P 链 动作     (这里没有-j)

拓展模块

mac地址匹配-m mac --mac-source 策略指定机器的mac地址
多端口匹配-m multiport --sports 源端口列表
-m multiport --dports 目标端口列表
端口列表: 端口1:端口2 指代连续的端口    端口1,端口2 指代多个不连续的端口
  举例: 10:1000,3306,27017 这指的是10到1000的所有端口和3306和27017端口的数据
多IP范围匹配-m iprange --src-range 源IP地址范围
-m iprange --dst-range 目标IP地址范围
IP地址范围: IP1-IP2
  举例: 172.25.10.110-172.25.20.255 指172.25.10.110到172.25.10.255以及172.25.11.0到172.25.20.255所有的IP的数据

常用命令总结:

查看防火墙策略iptables -t 表 -nL --line-number
iptables -t filter -nL --line-number
插入一行策略到最后iptables -t 表 -A 链 -p 协议 -s 源地址 -d 目标地址 --sport 源端口 --dport 目标端口 -j 动作
iptables -t filter -A INPUT -p tcp -s 172.25.10.110 -d 172.25.10.111 --dport 80 -j ACCEPT指定允许110主机访问111主机的网站服务
iptables -t filter -A INPUT -s 172.25.10.110 -j DROP指定丢弃所有110主机发来的所有包
插入策略到某行前的iptables -t 表 -I 链 编号 -p -s 源地址 -d 目标地址 --sport 源端口 --dport 目标端口 -j 动作
修改某链的默认策略iptables -t 表 -P 链 动作
允许本机ping其他机器iptables -t filter -I INPUT -p icmp --icmp-type echo-reply -j ACCEPT
不允许其他机器本机ping本机iptables -t filter -I INPUT -p icmp --icmp-type echo-request -j REJECT
只不允许某个机器和本机互pingiptables -t filter -I INPUT -p icmp -s 另一个机器的IP -j REJECT
只允许X主机ping通Y主机,Y主机不能ping通X主机

默认策略为拒绝所有

iptables -A FORWARD -s X主机IP -d Y主机IP -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -s Y主机IP -d X主机IP -p icmp --icmp-type echo-reply -j ACCEPT

注意点:
    1. 选项用-L查看信息,它的第一行提示当前链是什么,默认的规则是什么,第二行是下面数据的提示,这一行不是数据,如果没有第三行,那么就是该链中没有任何数据,其基本格式是:

Chain OUTPUT (policy ACCEPT)
target  prot opt  source     destination  
ACCEPT  all  --   0.0.0.0/0   0.0.0.0/0      state RELATED,ESTABLISHED

    2. 必须注意,因为防火墙匹配是自上至下进行匹配,所以有一些通配很多IP的策略要写在后面,一些指定一些具体IP的策略要写在前面

    3. 删除的时候,删一个策略,后面的策略会位置前移动,也就是说,每删除一个非最后一个策略,所有策略的编号就会变

    4. 当不知道某个位置该写什么的时候,可以在那里写一个--help查看帮助,例如当icmp协议后不知道写什么的时候:

iptables -t filter -A INPUT -p icmp --help

    5. 不要随便清除策略,可能一些允许的策略被删除了,导致远程断开连接

    6. 补充一个知识,如果别人ping过自己,即可查出对方的MAC地址,使用命令

arp -n

    7. 如果真的想让一个机器不能通过防火墙,禁用IP并不能解决问题,最好用扩展中的mac地址匹配限制,这样其修改IP后也不能访问

iptables -t filter -A INPUT -m mac --mac-source 52:54:00:1d:17:b8 -j DROP

    8. 不管是什么端口,包括拓展中的源端口限制和目标端口的限制,只要想指定一定的端口信息,必须指定协议,不然会报错!

    9. 配置防火墙允许通信操作的时候要注意可能有来有往,所以不单单要允许访问请求通过防火墙,还要允许访问返回通过防火墙,尤其是配置FORWARD链的时候,必须要允许往返的所有数据包,才能通信。
       不过,如果是配置不允许通信,只需要禁止访问请求的包通过即可。


附:
    1. 设置主机IP地址,修改配置文件的方法
       这配置文件是 /etc/sysconfig/network-scripts/ifcfg-设备名 ,在里面写下面这些数据即可

TYPE=Ethernet
BOOTPROTO=none
IPADDR=设置IP地址
NAME=设备名
DEVICE=设备名
ONBOOT=yes


    2. 配置服务器,开启路由功能

echo 'net.ipv4.ip_forward = 1' > /etc/sysctl.conf
sysctl -p

    3. 配置服务器的默认网关地址

systemctl stop NetworkManager
route add default gw 网关IP
# 删除网关: route del default gw 网关IP

        查看网关信息

route -n

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值