ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

防火墙基础笔记

2021-08-01 20:33:12  阅读:153  来源: 互联网

标签:iptables 10.0 -- 基础 防火墙 笔记 syn INPUT


防火墙基础概念

       Netfilter/iptables 是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具

       iptables防火墙功能十分强大,使用非常灵活.可以对流入和流出服务的数据包进行很精细的控制

       主要工作在OSI7层模型二,三 ,四层.可以对防火墙服务内核进行重新编译,可以支持7层防护(squid+iptables=waf)

防火墙表

      防火墙进行防护的策略维度  4个维度

      filter表

          防火墙使用的默认表。可以实现对数据包过滤处理

          表下面含有的链:

              INPUT:对访问进入防火墙服务的流量进行管理控制 外面人 -INPUT-> 房子(防火墙)

              FORWARD:对访问经过防火墙流量进行管理控制 外面人 - 房子(FORWARD) - 后花园(架构中内部主机) nat配合

              OUTPUT:对内部访问外部流量进行管理控制 房子(人) -OUTPUT-> 外面世界

      nat表

            可以将访问目标或源信息进行转换(映射)

            PREROUTING:在进行数据包路由转发之前,对数据包里面目标地址(IP)或者目标端口进行转换

            POSTROUTING:在进行数据包路由转发之后,对数据包里面源地址(IP)或者源端口进行转换    

      mangle表

            可以专门用于改写数据包信息(此表用处较少,可以忽略不计)

      raw表

           可以去除一定的信息(此表用处较少,可以忽略不计)

   防火墙配置命令

        iptables  -t 表信息  -p 链信息  具体规则信息

    

需求01:禁止某个服务不要被外网访问

```
iptables -t filter -A INPUT -p tcp --dport 80 -j DROP
```



需求02:禁止指定地址可以访问,其余地址不能访问

```
iptables -t filter -I INPUT -s 10.0.0.1 -p tcp --dport 80 -j DROP


需求03:如何对网段信息进行配置?

```
iptables -t filter -I INPUT -s 10.0.0.0/24 -p tcp --dport 80 -j DROP
```



需求04:只允许指定网段可连入;只允许10.0.0.0/24网段里面的主机可以访问

```
iptables -t filter -A INPUT ! -s 10.0.0.0/24 -p tcp --dport 23 -j DROP
```



需求05:多端口访问策略配置

- **连续多端口配置 22-80**

```
iptables -A INPUT -s 10.0.0.10 -p tcp --dport 22:80 -j ACCEPT
```



- **间隔多端口配置 22 24 26 80**

```
iptables -A INPUT -m multiport -s 10.0.0.10 -p tcp --dport 22,24,26,80 -j ACCEPT
```



需求06:实现访问测试禁ping功能

```
# 方式一: 对ICMP请求的流量进行阻止 实现禁ping
iptables -A INPUT -p icmp --icmp-type 8 -j DROP

# 方式二: 对ICMP响应的流量进行阻止 实现禁ping
iptables -A OUTPUT -p icmp --icmp-type 0 -j DROP

# 简单配置方法:
iptables -A INPUT -p icmp --icmp-type any -j DROP
```



需求07:设置网络限制策略(限制数据传输频率)

-m limit 

--limit n/(second/minute/hour) : 指定单位时间内可以接收或输出多少个数据包

--limit-burst n : 指定达到策略限制标准

```
iptables -I INPUT -s 10.0.0.7 -p icmp --icmp-type 8 -m limit --limit 6/min  --limit-burst 5 -j ACCEPT
iptables -I INPUT 2 -s 10.0.0.7 -p icmp --icmp-type 8  -j DROP
命令示例
第一个步骤:对内网主机设置内网网关

```
# tail -2 /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.61
DNS1=223.5.5.5

ifdown eth1 && ifup eth1
```



第二个步骤:在防火墙服务器上开启路由转发功能

```
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
```



第三个步骤:配置NAT地址映射功能

```shell
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61


需求09:如何实现外网主机访问端口映射 

A主机  ---  (10.0.0.61)防火墙(172.16.1.61) ----  内部服务器(172.16.1.8:22)

   D:10.0.0.61:9000 --> 172.16.1.8:22

第一个步骤:在防火墙服务器上开启路由转发功能

```shell
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
```



第二个步骤:在防火墙服务器上设置端口或地址映射功能

```
iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.8:22
示例2

防火墙自定义链

     iptables -N syn-flood
      # 创建一个syn-flood自定义链
     iptables -A INPUT -i eth0 -syn -j syn-flood
     # 将INPUT链中抓取的syn数据流量都放入到syn-flood自定义链中
    iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN
     # 一旦获取到流量大于每秒5000,并发大于200时,就执行下一条规则
    iptables -A syn-flood -j DROP
     # 丢弃syn-flood链上的数据
    说明:自定义链避免syn的泛洪攻击

    什么是自定义链:
     iptables -N port-info
     iptables -A port-info -p tcp --dport 8080 -j ACCEPT
     iptables -A INPUT -s 10.0.0.0/24 -j port-info
     iptables -R INPUT -s 11.0.0.0/8 -j port-info
     iptables -A INPUT -s 192.168.1.0/24 -j port-info

 

标签:iptables,10.0,--,基础,防火墙,笔记,syn,INPUT
来源: https://www.cnblogs.com/yxh168/p/15087571.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有