学习如何使用iptables命令配置防火墙安全策略

学习目标:

  • 理解策略及规则链
  • 理解并记忆基本的命令参数
  • 学会根据需求编写安全策略

学习内容:

  1. 防火墙会按照从上到下的顺序来读取配置的策略规则。iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,如下:
    PREROUTING在进行路由选择前处理数据包
    INPUT处理流入的数据包
    OUTPUT处理流出的数据包
    FORWARD处理转发的数据包
    POSTROUTING在进行路由选择后处理数据包
  2. 除了需要知道以上规则外,还需要学会使用iptables服务的术语,如下表

    ACCEPT允许流量通过
    REJECT拒绝流量通过
    LOG记录日志信息
    DROP拒绝流量通过
  3. 基本的命令参数,如下表:

    参数作用
    -P设置默认策略
    -F清空规则链
    -L查看规则链
    -A在规则链的末尾加上新规则
    -I num在规则链的头部加上新规则
    -D num删除某一条规则
    -s匹配来源地址IP/MASK,加“!”表示除这个IP地址外
    -d匹配目标地址
    -i 网卡名称匹配从这块网卡流入的数据
    -o 网卡名称匹配从这块网卡流出的数据
    -p匹配协议,如TCP、ICMP等
    --dport num匹配目标端口号
    --sport num匹配源端口号


实验输出:

实验一:将INPUT规则链设置为只允许指定网段的主机(192.168.10.0/24)访问本机的22端口,拒绝来自其他所有主机的流量。

        请注意:规则链INPUT是大写,其参数-I也是大写;动作REJECT也是大写,其参数-j是小写。

[root@linuxprobe ~]# iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT  //22端口是ssh服务
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.10.0/24      anywhere             tcp dpt:ssh
REJECT     tcp  --  anywhere             anywhere             tcp dpt:ssh reject-with icmp-port-unreachable

实验二:向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则。

        请注意:这里是协议参数要写出TCP以及UDP协议。

[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 12345 -j REJECT
[root@linuxprobe ~]# iptables -A INPUT -p udp --dport 12345 -j REJECT 
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination     
REJECT     tcp  --  anywhere             anywhere             tcp dpt:italk reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere             udp dpt:italk reject-with icmp-port-unreachable

实验三:向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口的策略规则。

[root@linuxprobe ~]# iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     tcp  --  192.168.10.5         anywhere             tcp dpt:http reject-with icmp-port-unreachable

实验四: 向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则。

        请注意:如何表示1000~1024这其中的端口呢,可以这样表示---1000:1024,中间用冒号分隔。

[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT 
[root@linuxprobe ~]# iptables -A INPUT -p udp --dport 1000:1024 -j REJECT 
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
REJECT     tcp  --  anywhere             anywhere             tcp dpts:cadlock2:1024 reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere             udp dpts:cadlock2:1024 reject-with icmp-port-unreachable

实验五:从上面的四个实验,大家对iptables命令的使用肯定是有相当的理解了,但是请注意,iptables配置的命令在下一次重启时就会失效了,如果想让防火墙策略永久生效,记得执行保存命令“iptables-save”

[root@linuxprobe ~]# iptables-save
# Generated by xtables-save v1.8.2 on Sat Jan  7 00:22:54 2023
*filter

学习小结:

        我个人认为需要掌握如INPUT、OUTPUT、FORWARD这三种规则链,同时相应的处理动作ACCEPT、REJECT、DROP也需要理解清楚,记住他们在策略命令中是大写的。同时有一个很重要的就是对常用的参数一定要熟记会用!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值