linux-防火墙

目录

一、防火墙概念

1.软件防火墙

2.iptables默认规则

3.iptables的五链

4.iptables动作

5.四表五链

6.iptables实例


一、防火墙概念

linux下防火墙一般分为软件防火墙、硬件防火墙

硬件防火墙:在硬件的级别实现防火墙过滤功能,性能高,但成本也很高

软件防火墙:在软件系统内核级别实现网络流量过滤,性能稍弱,但是成本也很低

1.软件防火墙

在linux上提供的软件防火墙,名字叫做iptables,它是一个防火墙命令行工具,iptables还是一个客户端代理

通过iptables的代理,将用户配置的安全策略,执行到对应的安全框架中netfilter

iptables只是个命令行工具,处于用户空间,离用户最近

真正实现流量过滤的软件是netfileter,处于系统内核空间,和操作系统离得是最近的

iptables+netfilter共同组成了linux的软件防火墙,一般就用来代替昂贵的硬件防火墙了

centos7系统下

firewalld软件,有替代了iptables工具

iptables是把用户配置的防火墙规则,交给内核层的netfiler工具去处理

firewalld服务把用户配置的防火墙规则交给内核层的nftables网格过滤器去处理

2.iptables默认规则

linux-防火墙_第1张图片

iptables默认会自上而下的读取防火墙规则,匹配到正确规则后,就结束匹配的工作,并且执行对应的工作。

如果读取的防火墙所有规则都没有符合,就执行默认的策略。

默认策略一般分为两种:

  • 允许
  • 拒绝

当默认规则全都是拒绝的时候,你就得设置一些允许通过的流量,否则所有的流量都禁止了

当默认的规则全部都是允许的时候,就得设置一些拒绝的匹配规则,以保证服务器的安全

防火墙的规则默认是存储在linux内核空间的信息包中,这些规则定义了源地址信息,目的地址信息,传输协议类型,服务类型

当数据包符合规则条件的时候,iptables就根据所定义的动作,来处理这些数据包,放行,拒绝,丢弃

3.iptables的五链

linux-防火墙_第2张图片

iptables把用于处理和过滤流量的策略,称之为规则,多条规则就组成了一个规则链,并且规则链,还有默认的动作,规则链根据数据包所处的不同位置进行不同的分类

linux默认的五个规则链

  • 路由选择前处理数据包,prerouting链
  • 处理流入的数据包,input链
  • 处理流出的数据包,output链
  • 处理转发的数据包,forward链
  • 进行路由选择后处理数据包,postrouting链

主要使用的都是input链

4.iptables动作

服务器流量在通过input链之后,进入到服务器内,还得遵循一些动作去处理数据包

  • accpet,允许数据包通过
  • reject,拒绝数据包通过,还会给客户端一个响应,告知对方被拒绝
  • log,在linux系统的日志目录下/var/log/message中记录防火墙日志,在进行下一个数据包处理
  • drop,直接丢弃数据包,不给予任何的回复
  • SNAT,源地址转换,解决内网用户用同一个公网的问题,用于forward链
  • DNAT,目标地址转换
  • redirect,在本机做端口映射

5.四表五链

表:

  • raw:高级功能,如:网址过滤
  • mangle:数据包修改(QOS),用于实现服务质量
  • net:地址转换,用于网关路由器
  • filter:包过滤,用于防火墙规则

链:

  • input链:处理输入数据包
  • output链:处理输出数据包
  • forward链:处理转发数据包
  • prerouting链:用于目标地址转化(DNAT)
  • postouting链:用于源地址转换(SNAT)

动作:

  • accpet,允许数据包通过
  • reject,拒绝数据包通过,还会给客户端一个响应,告知对方被拒绝
  • log,在linux系统的日志目录下/var/log/message中记录防火墙日志,在进行下一个数据包处理
  • drop,直接丢弃数据包,不给予任何的回复
  • SNAT,源地址转换,解决内网用户用同一个公网的问题,用于forward链
  • DNAT,目标地址转换
  • redirect,重定向,映射,透明代理
  • masquerade:IP伪装(NAT),用于ADSL
  • LOG:日志记录

6.iptables实例

禁止服务器被ping

# -A 指定链 -p 指定协议 --icmp-type 8 指定icmp协议的类型 -s 指定源ip端 -j 动作
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j REJECT

删除指定规则

iptables -D INPUT 1

禁止访问服务器的80端口

iptables -A INPUT -p tcp --dport 80 -j DROP

禁止服务器被ping(动作为丢弃)

# -A 指定链 -p 指定协议 --icmp-type 8 指定icmp协议的类型 -s 指定源ip端 -j 动作
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

你可能感兴趣的:(服务器运维,Linux服务器方向,网络,服务器,运维,linux,网络协议)