防火墙

什么是防火墙?
一道保护性的安全屏障
对内网保护,隔离外网
软件防火墙firewalld
底层是包过滤防火墙iptables
iptables的表,链结构:四张表 五条链
表名(表是服务的功能分类)

raw状态跟踪
mangle 打标记
nat地址转换
filter过滤表

链名(匹配数据包传输的方向)

INPUT进入防火墙的数据包
OUTPUT从防火墙主机出去的数据包
FORWARD经过防火墙主机的数据包
POSTROUTING路由后处理
PREROUTING路由前处理

命令格式:
]#:iptables -t 表名 选项(增删改查) 链名 匹配条件 -j 处理动作
选项包括
-L:列出所有的管理条目
-n:以数字形式显示地址,端口等信息
-I:在链的开头(或指定序号)插入一条规则
-A:在链的末尾追加一条规则
-P:为指定的链设置默认规则
-D;删除链内指定序号(或内容)的一条规则
-F:清空所有的规则
–line-numbers:查看规则时,显示规则的序号
匹配条件(规则)的表示方式(可以取反加!)

选项用法
协议匹配-p 协议名
地址匹配-s 源地址,-d 目标地址
接口匹配-i 收数据的网卡,-o 发数据的网卡
端口匹配–sport 源端口,–dport 目标端口
ICMP类型匹配–icmp-type ICMP类型

规则的执行顺序
顺序匹配,匹配即停止(LOG除外)
若无任何匹配,则按该链的默认策略处理

处理动作包括
DROP:丢弃
REJECT:拒绝
ACCEPT:放行
LOG:记录日志
SNAT:源地址转换
DNAT:目标地址转换

网络型防护墙(控制数据包是否允许经过自己)
使用的是:filter表的FORWARD链子

[root@c ~]# iptables -t  filter -nL --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

filter表的链名和所对应的规则
链名(规则)

[root@c ~]# iptables -t raw -F
[root@c ~]# iptables -t mangle  -F
[root@c ~]# iptables -t filter  -F
[root@c ~]# iptables -t nat -F
[root@c ~]# iptables-save > /etc/sysconfig/iptables
[root@c ~]# systemctl restart iptables.service 
[root@c ~]# iptables -t  filter -L
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@c ~]# iptables -t raw -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@c ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
[root@c ~]# iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

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         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination   

清空默认规则,并永久生效,链的默认规则只能是ACCEPT或DROP

主机型防火墙(自己保护自己)
使用的是:filter表 INPUT链
不指定表的情况下默认是filer表
封锁IP地址/网段
主机防护,针对入站访问的源地址
网络防护,针对转发访问的源地址

只放行ssh,并查看设置永久生效
[root@c ~]# iptables -t filter -nL INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination    
[root@c ~]#iptables -t filter -A INPUT -p tcp --dport 22(目标端口) -j ACCEPT
[root@c ~]#iptables -t filter -P INPUT DROP
[root@c ~]#iptables -t filter -nL INPUT --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
[root@c ~]#iptables-save > /etc/sysconfig/iptables
上面是0.0.0.0全网段,所以所有网段都可以进行ssh
下面的是只让192.168.2.0网段可以通过
[root@c ~]# iptables -t filter -I INPUT 1 -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
[root@c ~]# iptables -t filter -nL INPUT --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.2.0/24       0.0.0.0/0            tcp dpt:22
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
[root@c ~]# iptables -D INPUT 2
删除之前的全网段ssh连接,造成的结果的非192.168.2.0网段的ssh连接掉线
[root@c ~]# iptables-save > /etc/sysconfig/iptables

禁Ping相关策略处理(发送出去echo-request;进入包echo reply)
允许本机ping其他主机,不允许别人ping自己

[root@c ~]# iptables -t filter -nL INPUT --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 0
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
[root@c ~]# iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

清理所有的规则

[root@c ~]# iptables -t filter -P INPUT ACCEPT
[root@c ~]# iptables -t filter -F INPUT
[root@c ~]# iptables-save > /etc/sysconfig/iptables
[root@c ~]# iptables -t filter -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         

网络型防火墙(控制数据包是否允许经过自己)filter表 FORWARD链
加网关:route add default gw 网关
查看网关:route -n

[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
[root@c ~]# iptables -t filter -A  FORWARD -p tcp --dport 22 -j ACCEPT 
[root@c ~]# iptables -t filter -A  FORWARD -p tcp --sport 22 -j ACCEPT 
[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:22
可以从外网连接到内网的服务器

常见的扩展条件类型

选项用法
MAC地址匹配-m mac --mac-source MAC地址
多端口匹配-m multiport --sports 源端口列表 --dports 目标端口列表
IP范围匹配-m iprange --src-range IP1-IP2, -m iprange --dst-range IP1-IP2

为特定的网段设置条件

[root@c ~]# iptables -t filter -A FORWARD -p icmp -j ACCEPT 
[root@c ~]# iptables -t filter -I FORWARD 5 -p icmp -m iprange --src-range 192.168.4.50-192.168.4.60 -j DROP 
[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:22
5    DROP       icmp --  0.0.0.0/0            0.0.0.0/0            source IP range 192.168.4.50-192.168.4.60
6    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           

禁掉不让通过的主机MAC地址

[root@c ~]# iptables -t filter -I FORWARD 5 -p icmp -m mac --mac-so[root@c ~]# iptables -t filter -I FORWARD 5 -p icmp -m mac --mac-source 52:54:00:44:bc:5e -j DROP 
[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:22
5    DROP       icmp --  0.0.0.0/0            0.0.0.0/0            MAC 52:54:00:44:BC:5E
6    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           

多端口一块进行限制或开放

[root@c ~]# iptables -t filter -A FORWARD -p tcp -m multiport --dports 22,80,3306 -j ACCEPT 
[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:22
5    DROP       icmp --  0.0.0.0/0            0.0.0.0/0            MAC 52:54:00:44:BC:5E
6    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 22,80,3306
[root@c ~]# iptables -t filter -D FORWARD 1
[root@c ~]# iptables -t filter -D FORWARD 1
[root@c ~]# iptables -t filter -D FORWARD 1
[root@c ~]# iptables -t filter -D FORWARD 1
[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    DROP       icmp --  0.0.0.0/0            0.0.0.0/0            MAC 52:54:00:44:BC:5E
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 22,80,3306
[root@c ~]# iptables -t filter -A FORWARD -p tcp -m multiport --sports 22,80,3306 -j ACCEPT 
[root@c ~]# iptables -t filter -nL FORWARD --line-numbers
Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    DROP       icmp --  0.0.0.0/0            0.0.0.0/0            MAC 52:54:00:44:BC:5E
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 22,80,3306
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport sports 22,80,3306
删除网关命令:route del default gw 192.168.2.45
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值