0416预习笔记和课堂笔记--netfilter

Linux防火墙-netfilter

预习内容

10.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法
10.15 iptables filter表案例
10.16/10.17/10.18 iptables nat表应用
扩展(selinux了解即可)
selinux教程 http://os.51cto.com/art/201209/355490.htm
selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK
iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html
sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html
iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.html http://jamyy.us.to/blog/2006/03/206.html

selinux临时关闭 setenforce 0
查看selinux状态getenforce
selinux永久关闭 vi /etc/selinux/config selinux修改为disabled
在这里插入图片描述
在这里插入图片描述
enforcing 开启状态
permissive 开启状态,但不生效,只记录日志。
disabled 关闭状态

防火墙:netfilter和firewalld

centos 7之前使用netfilter,之后使用firewalld。
防火墙名称netfilter和firewalld,iptables是防火墙当中工具

关闭firewalld

systemctl disable firewalld 开机不启动firewalld
systemctl stop firewalld 关闭firewalld服务
在这里插入图片描述

安装netfilter

yum install -y iptables-services 安装netfilter
systemctl enable iptables 开机启动服务
systemctl start iptables 开启服务
iptables -nvL 查看默认规则
在这里插入图片描述

**netfilter **

五表
filter表 用于过滤包,最常用的表,有input、forward、output三个链
nat表用于网络地址转换,有prerouting、output、postrouting三个链
managle表 用于给数据包做标记,几乎用不到
raw表 可以实现不追踪某些数据包
security表 在centos6没有,用于强制访问控制(MAC)的网络规则
http://www.cnblogs.com/metoy/p/4320813.html

五链
1.INPUT——进来的数据包应用此规则链中的策略
2.OUTPUT——外出的数据包应用此规则链中的策略
3.FORWARD——转发数据包时应用此规则链中的策略
4.PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
5.POSTROUTING——对数据包作路由选择后应用此链中的规则
(所有的数据包出来的时侯都先由这个链处理)
在这里插入图片描述

iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
说明:表名、链名用于指定 iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样 条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。
-A 在指定链的末尾添加(append)一条新的规则
-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L 列出(list)指定链中所有的规则进行查看
-E 重命名用户定义的链,不改变链本身
-F 清空(flush)
-N 新建(new-chain)一条用户自己定义的规则链
-X 删除指定表中用户自定义的规则链(delete-chain)
-P 设置指定链的默认策略(policy)
-Z 将所有表的所有链的字节和数据包计数器清零
-n 使用数字形式(numeric)显示输出结果
-v 查看规则表详细信息(verbose)的信息
-V 查看版本(version)
-h 获取帮助(help)

防火墙处理数据包的四种方式

ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

iptables用法

cat /etc/sysconfig/iptables 规则配置文件
在这里插入图片描述
iptables -F 清空规则
service iptables restart 重启规则
service iptables save 保存规则(把当前规则保存至配置文件)
iptables -t 表名 指定表,如果不指定默认为filter表
在这里插入图片描述
iptables -Z 计数清零

增加一条规则
iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
sport源端口、dport目标端口
在这里插入图片描述
iptables -I INPUT -p tcp --dport 80 -j DROP
-A表示是增加规则,放到规则的最后面。-I(大写的i)是插入规则,插入到规则的行首。防火墙优先过滤前面的规则。
iptables -nvL --line-number 显示规则编号
iptables -D INPUT 编号 根据编号删除规则
在这里插入图片描述
iptables -D INPUT -p tcp --dport 80 -j DROP
iptables -P OUTPUT DROP 修改output默认规则

小案例

放行21、22、80这三个端口的数据包,且22端口只能192.168.133.0/24这个网段能够访问
#!/bin/bash
ipt="/usr/sbin/iptables" \定义变量为iptables的绝对路径
$ipt -F \清空防火墙规则
$ipt -P INPUT DROP \默认INPUT链丢弃所有包
$ipt -P OUTPUT ACCEPT \默认OUTPUT链放行所有包
$ipt -P FORWARD ACCEPT \默认FORWARD链放行所有包
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT \允许状态为RELATED,ESTABLISHED的数据包通过
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT \允许192.168.133.0/24网段可以访问22端口
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT \允许数据包通过80端口
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT \允许数据包通过21端口

禁ping
iptables -F;iptables -P INPUT ACCEPT 清空之前规则,并把INPUT默认设为允许通过
iptables -I input -p imcp --icmp-type 8 -j DROP 设置之后无法被ping通

nat表应用

应用一,使内网机器可以上网

先清空之前的防火墙配置
把B、C两台设备都增加一张网卡
B有两张网卡ens33(192.168.196.101),ens37(192.168.100.1)
C有一张网卡ens37(192.168.100.100)
在这里插入图片描述
网络连B、C的新增网卡网络连接选为LAN区段
在这里插入图片描述
B设备
ens37配置ip
echo ‘1’ >/proc/sys/net/ipv4/ip_forward
ip转发配置文件 /proc/sys/net/ipv4/ip_forward,默认为0,设置为1打开端口转发
上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值,要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修 改下面一行的值: net.ipv4.ip_forward = 1 修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效: sysctl -p /etc/sysctl.conf 进行了上面的配置后,IP转发功能就永久使能了。
增加规则,iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
在这里插入图片描述
C设备
ens37配置ip
设置网关 route add default gw 192.168.100.1
在这里插入图片描述
route -n 查看网管
设置dns
vi /etc/resolv.conf --> nameserver 119.29.29.29
在这里插入图片描述

应用2,端口映射
需求:A机器是windows,B和C机器是centos7;A机器和B机器可以通信,B机器和C机器可以通信,A通过B的1122端口访问到C机器。

清空之前的防火墙配置 iptables -F
打开B设备IP转发,echo ‘1’ >/proc/sys/net/ipv4/ip_forward
在B设备上增加规则:
iptables -t nat -A PREROUTING -d 192.168.196.101 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.196.101
设置C设备网关route add default gw 192.168.100.1
在这里插入图片描述
在这里插入图片描述
通过B机器1122端口连接C机器
在这里插入图片描述

课堂笔记

在这里插入图片描述
在这里插入图片描述

1 针对网段
iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP
192.168.1.0/24
iptables -I INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT
-m 后面跟模块名字,iprange是一个模块名字,用来支持一个网段
–src-range 指定来源的ip范围
–dst-range 指定目标ip范围

  1. sant dnat masquerade http://ask.apelearn.com/question/7255

3 在iptables上一共有四种状态,分别被称为NEW、ESTABLISHED、INVALID、RELATED
NEW:NEW说明这个包是我们看到的第一个包。意思就是,这是conntrack模块看到的某个连接的第一个包,它即将被匹配了。比如,我们看到一个SYN 包,是我们所留意的连接的第一个包,就要匹配它。
ESTABLISHED: ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包。处于ESTABLISHED状态的连接是非常容易理解的。只要发送并接到应答,连接就是ESTABLISHED的了。一个连接要从NEW变为ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防火墙转发的。ICMP的错误和重定向等信息包也被看作是ESTABLISHED,只要它们是我们所发出的信息的应答。
RELATED: RELATED是个比较麻烦的状态。当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就被认为是RELATED的了。换句话说,一个连接要想是RELATED的,首先要有一个ESTABLISHED的连接。这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是 RELATED的了,当然前提是conntrack模块要能理解RELATED。ftp是个很好的例子,FTP-data 连接就是和FTP-control有关联的,如果没有在iptables的策略中配置RELATED状态,FTP-data的连接是无法正确建立的,还有其他的例子,比如,通过IRC的DCC连接。有了这个状态,ICMP应答、FTP传输、DCC等才能穿过防火墙正常工作。注意,大部分还有一些UDP协议都依赖这个机制。这些协议是很复杂的,它们把连接信息放在数据包里,并且要求这些信息能被正确理解。
INVALID:INVALID说明数据包不能被识别属于哪个连接或没有任何状态。有几个原因可以产生这种情况,比如,内存溢出,收到不知属于哪个连接的ICMP错误信息。一般地,我们DROP这个状态的任何东西,因为防火墙认为这是不安全的东西。

4 限速
http://ask.apelearn.com/question/985
http://jamyy.us.to/blog/2006/03/206.html
iptables -N syn-flood
iptables -A syn-flood -m limit --limit 5/s --limit-burst 500 -j RETURN
iptables -A syn-flood -j DROP
iptables -I INPUT -j syn-flood

猜你喜欢

转载自blog.csdn.net/weixin_43945846/article/details/89338329