防火墙实战

作者: 古巷挂青灯 | 来源:发表于2019-07-02 20:07 被阅读0次

1.课程内容

  • 常见防火墙选用
硬件
开源软件:iptables (默认规则改为 INPUT DROP)
云服务器:安全组(阿里云 白名单[默认是拒绝])
  • Iptables使用 执行过程
  • Iptables 4表5链
filter nat mangle raw
filter    : INPUT
nat       : PREROUTING POSTROUTING
             pre prefix xxx之前
             routing route
             post xxx之后
  • 准备Iptables环境

  • Iptables功能之防火墙-filter
    封IP 封端口
    准许某个ip访问 网段访问

  • 实际生产iptables配置

  • Iptables功能之内网服务器上外网(共享上网)

  • Iptables功能之端口转发

2.常见防火墙选用

1.公司网站入口使用的硬件防火墙、三层路由带有防火墙功能
2.Iptables访问量小 C5 C6 默认,CentOS 7 Firewalld(关闭 安装iptables)
3.SELinux

3. 名词(关系)与单词

名词                          含义                         对比
容器                    存放内容/存放东西
Netfilter/iptables      Netfilter/iptables是表的容器        国家
表 (table)             表是用来存放链的容器                  省
链 (chain)              链存放 规则容器                      市
规则 ( policy )         准许/拒绝访问                      区县具体地点

4.防火墙执行过程

1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2. 如果匹配上规则,即明确表示是阻止(DROP)还是通过(ACCEPT)数据包就不再向下匹配新的规则。
3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
4. 防火墙的默认规则是所有规则执行完才执行的。

image.png

5. 四表五链

  • 5.1 整体说明 4表及作用
表                    功能
Filter                过滤,默认的表,防火墙功能
NAT                   实现NAT转化:1.共享上网 2.端口转发
mangle                熟悉名字即可
raw                   熟悉名字即可

参考查询帮助: man iptables

  • 5.2 4表中的5链


    image.png
image.png
  • 5.2.1 filter表
filter表      企业工作场景:主机防火墙
INPUT         就是过滤进入主机的数据包
FORWARD       负责转发流经主机的数据包。
OUTPUT        就是处理从主机发出去的数据包
  • 5.2.2 nat表
PREROUTING          处理用户请求中的目的地址 目的端口 端口转发 ip映射
POSTROUTING         处理离开服务器的请求 源端口 源ip :共享上网
OUTPUT              和主机放出去的数据包有关,改变主机发出数据包的目的地址。
  • 5.2.3 Mangle表
主要负责修改数据包中特殊的路由标记,如TTL,TOS,MARK等,这个表定义了5个链
(chains):

6. 防火墙之filter表

  • 6.1 环境准备
    m01 iptables
    db01
yum install iptables iptables-services
[root@m01 ~]# rpm -qa iptables-services
iptables-services-1.4.21-28.el7.x86_64
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #iptables 配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #iptables服务管理配置

启动防火墙:

1 systemctl start iptables.service
2 systemctl enable iptables.service

检查防火墙内核模块是否加载成功:

[root@m01 ~]# lsmod |egrep 'nat|ipt|filter'
ipt_REJECT 12541 2
nf_reject_ipv4 13373 1 ipt_REJECT
iptable_filter 12810 1
xt_nat 12681 1
iptable_nat 12875 1
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26787 2 nf_nat_ipv4,xt_nat
nf_conntrack 133095 4
nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_ipv4
ip_tables 27126 2 iptable_filter,iptable_nat
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack

手动加载内核模块:

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
  • 6.2 配置规则-禁止访问22端口
[root@m01 ~]# iptables -F
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@m01 ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

配置防火墙规则注意事项:
1. 去机房重启系统或者登陆服务器删除刚才的禁止规则。
2. 让机房人员重启服务器或者让机房人员拿用户密码登录进去
3. 通过服务器的远程管理卡管理(推荐)
4. 先写一个定时任务,每5分钟就停止防火墙
5. 测试环境测试好,写成脚本,批量执行

  • 6.3 iptables 命令及参数
iptables
-t                  指定表 filter(默认) nat
-A                  append 把规则追加到末尾
-I (大写字母I)       insert 把规则插入到规则的第1条 (添加拒绝类规则的时候)
-p                  protocal 指定协议:tcp /udp/icmp
--dport             destination port 目标端口
--sport             source port 源端口
-d                  dest ip address 目标ip地址
-s                  source ip address 源ip地址
-i                  input数据进来的时候通过的网卡

-j                  jump 方法 DROP(拒绝) ACCEPT(准许) REJECT(拒绝)的
iptables查看 删除
-F                            清除链中所有的规则
-X                            清空自定义链的规则
-Z                            清空计数器
-n                            不要把端口解析服务名字
-L                            显示表中的规则
--line-number                 给每个链中的规则加上行号
-D                            删除规则 根据规则的号码进行删除 -D INPUT 2
image.png
  • 6.4 filter表其他规则配置
    6.4.1 只让10.0.0.0/24网段进行访问
    只要是10.0.0.0/24 局域网的用户 访问m01 都ACCEPT
    此例子主要限制:网段或ip地址
[root@m01 ~]# iptables -I INPUT -p tcp ! -s 10.0.0.0/24 -j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
  • 6.4.2 准许或禁止端口
    多个端口:表示范围 1-1024范围
[root@m01 ~]# iptables -I INPUT -p tcp ! --dport 1:1024 -j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp
dpts:!1:1024
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)

nc用法:
nc -l 指定监听端口
nc/telnet 连接
nc 服务端:

[root@m01 ~]# nc -l 99 >/tmp/new.txt
[root@m01 ~]# cat /tmp/new.txt
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01

nc客户端

[root@m01 ~]# cat /etc/hostname |nc 10.0.0.61 99

多个端口 不连续 80,433,52113,22
-m multiport 指定多个端口

[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -
j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 multiport
dports !80,443,22
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

相关文章

  • 防火墙实战

    1.课程内容 常见防火墙选用 Iptables使用 执行过程 Iptables 4表5链 准备Iptables环境...

  • 防火墙【实战呦】

    也许是因为DDOS攻击的威胁吧。。。所以选择使用防火墙。隔开内部与外部。 内部之间假设都是好人 他们可以随便发信息...

  • waf的使用必看

    什么是waf? 如何打造一款可靠的WAF(Web应用防火墙)? WAF攻防实战 如何正确的使用阿里云盾网站安全防御...

  • centos7防火墙基本命令

    防火墙的基本使用命令 启动防火墙 停止防火墙 开机启动防火墙 开机禁止防火墙 查看防火墙状态 查看防火墙是否开机启...

  • LINUX防火墙

    一、iptables防火墙 -1、基本操作 查看防火墙状态 停止防火墙 启动防火墙 重启防火墙 永久关闭防火墙 永...

  • Linux 防火墙firewall设置

    Linux 防火墙设置说明:使用的是FIREWALL防火墙 安装防火墙 开启防火墙 排除端口 命令含义: 防火墙重...

  • Linux 防火墙设置

    Linux 防火墙设置 说明:使用的是FIREWALL防火墙 安装防火墙 开启防火墙 排除端口 防火墙重启 关闭端...

  • Centos6.5 关闭系统防火墙及内核防火墙

    清空系统防火墙 保存防火墙配置 临时关闭内核防火墙 永久关闭内核防火墙

  • firewall防火墙相关操作

    firewall 查看防火墙状态 开启防火墙 设置防火墙开机自启 查看防火墙设置开机自启是否成功 重启防火墙 查看...

  • Linux基本命令介绍

    本文命令都是基于CentOS7系统 一、防火墙相关命令 临时关闭防火墙 禁止防火墙开机启动 开启防火墙 查看防火墙...

网友评论

    本文标题:防火墙实战

    本文链接:https://www.haomeiwen.com/subject/rbnthctx.html