2017.11.29 七周第三次课

10.13 netfilter5表5链介绍

netfilter有下面5个表:

filter表:主要用于过滤包,是系统预设的表

nat表:主要用于网络地址转换,它有三个链

mangle表:主要用于给数据包做标记,然后根据标记去操作相应的包

raw表:可以实现不追踪某些数据包,默认系统的数据包都会被追踪

security表:用于强制访问控制的网络规则

5个链:

PREROUTING:数据包进入表之前

INPUT:通过路由表后目的地为本机

FORWARD:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外转发

POSTROUTING:发送到网卡接口之间

各个表和链之间的关系表,没画好 待补充

10.14 iptables语法

iptables 并不是防火墙,真正的防火墙叫做 netfilter,iptables只是一个实现工具。iptables是网络管理员的必备工具,作为系统管理员,要了解基本的操作。

iptables 基本语法

1.1、查看规则以及清除规则

查看规则

-t table 跟表的名字,不加-t默认是 filter

-nvL 查看

-n 不针对 IP 反解析主机名

-L 列出

-v 列出详细信息

#iptables -t nat -nvL

#iptables -nvL

1.2清除规则

-t 跟表名,不加默认filter

-F 把所有规则删除

-Z ZERO 表示把包及流量计数器 置零

#iptables -F 所有新增的规则都删除

#iptables -Z 所有规则的前两列抓包的数量和大小都会清零

Chain INPUT (policy ACCEPT 3 packets, 763 bytes)

pkts bytes target prot opt in out source destination

582 50129 ACCEPT all -- * * 192.168.247.1 0.0.0.0/0

-Z 只会清除582 50129 这一行,Chain INPUT 上面的数据不会清零。

2、增加删除一条规则

#iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP

-t 表名,不加默认filter

-A 增加一条规则 后跟链tab表里面的链如 INPUT OUTPUT FORWORD

-I 插入一条规则 也可以是其他表的链

-D 删除一条规则

-s 跟源地址IP 可以是IP段 192.168.0.101/122

-d 目的IP(主要针对内网或者外网) 可以使IP段

-p 跟协议 tcp udp icmp(内网通信协议,TCP的子协议,在网络层),就是ping包

--sport 源端口 source

--dport 目标端口 destination

-j 后跟动作 DROP 丢包;REJECT 拒绝;ACCEPT 允许

#iptables -I INPUT -s 1.1.1.1 -j DROP 【插入一条规则,来自1.1.1.1的包丢掉】

#iptables -D INPUT -s 1.1.1.1 -j DROP 【删除规则。删除的时候,必须和增加的一模一样】

#iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP

【把来自2.2.2.2并且是tcp协议到本机80端口的数据丢掉丢掉。说明:--dport 和 --sport 必须和 -p 一起使用。可以只指定 -p,而不指定dport或者sport,如果指定port必须和 -p 一起用】

#iptables -I OUTPUT -p tcp --dport 22 -d 10.0.1.14 -j DROP 【插入,tcp协议到10.0.1.14的22端口的数据包丢掉】

#iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT 【来自192.168.1.0-24 IP段并且作用在 eth0上的包放行。】

iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP 【针对一个网段】-m iprange --src-range 这个参数针对一个网段的 -m指定调用的模块

-I和-A都是增加一条规则,-I直接插在最前面,优先级高于A,-A放在最后面。

删除一条规则,删除规则

因为删除的时候,必须和当时建立的规则一模一样,但是很容易忘记,有方便的方法如下。

iptables -nvL --line-numbers 查看iptables

#iptables -D INPUT 1 【1指的是上面的第一行】

把规则保存

#iptables -F 把当前规则清除,暂时性的,重启系统或者重启iptables会加载之前的规则

iptables -I INPUT -s 192.168.247.1 -j ACCEPT

#service iptables save

#cat /etc/sysconfig/iptables 【查看iptables配置文件】

cat /etc/sysconfig/iptables

Generated by iptables-save v1.4.7 on Thu Feb 23 17:27:36 2017

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [104:9904]

-A INPUT -s 192.168.247.1/32 -j ACCEPT

COMMIT

Completed on Thu Feb 23 17:27:36 2017

除了可以保存到自定义的文件中,还可以保存到指定的文件里面。

#iptables-save > 1.ipt 【重定向到1.cpt】

#cat 1.ipt 【查看内容,发现和iptables保存内容一致】

#iptables -F 【规则清空】

#iptables-restore < 1.ipt 【反向重定向】

补充说明

-P 预设策略

iptables -nvL

Chain INPUT (policy ACCEPT 3 packets, 763 bytes)

pkts bytes target prot opt in out source destination

582 50129 ACCEPT all -- * * 192.168.247.1 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 75 packets, 9389 bytes)

pkts bytes target prot opt in out source destination

#iptables -P INPUT DROP

-P 跟链名称,策略内容或者为DROP 或者为 ACCEPT,默认 ACCEPT。注意:如果在连接远程服务器,不用随便用这个命令,一旦敲完就会断掉。

策略设定后,只能用 iptalbes -P INPUT ACCEPT 才能恢复成原始状态,而不能使用-F参数

需求:针对filter表,预设策略 INPUT 链 DROP,其他两个链 ACCEPT,针对192.168.137.0/24 开通22端口,对所有网段开放80端口,所有网段开放21端口。

因为多条规则,建议写脚本,因为一旦预设策略改为了DROP,其他的后续操作都不能进行下去。

#cat /usr/local/sbin/iptales.sh

#! /bin/bash

ipt='/sbin/iptables'

$ipt -F

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -s 192.168.137.0/24 -p tcp --dport 22 -j ACCEPT

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

转载于:https://my.oschina.net/u/3461300/blog/1581791

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值