linux防火墙

防火墙

从逻辑上分类:主机防火墙 网络防火墙

从物理上分类:硬件防火墙 软件防火墙

IPTABLES:一个客户端代理,将用户的安全设定执行到对应的“安全框架——netfilter”中。 netfilter才是防火墙真正的安全框架(framework),位于内核空间

其实Iptables服务不是真正的防火墙,只是用来定义防火墙规则功能的"防火墙管理工具",将定义好的规 则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能。

五链

  • PREROUTING
    • 在进行路由判断之前所要进行的规则(DNAT/REDIRECT
  • INPUT
    • 处理入站的数据包
  • OUTPUT
    • 处理出站的数据包
  • FORWORD
    • 处理转发的数据包
  • POSTROUTING
    • 在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)

常用应用场景,报文流向:

到本地某个进程的报文:PREROUTING‐‐> INPUT‐‐>OUTPUT ‐‐>POSTROUTING

由本机转发的报文:PREROUTING ‐‐> FORWARD ‐‐> POSTROUTING

由本机的某个进程发出报文(通常为响应报文): OUTPUT ‐‐> POSTROUTING

四表

  • raw表

    • 关闭nat上启用的连接追踪机制
  • mangle表

    • 拆解报文、修改报文、重新封装报文
  • nat表

    • 网络地址转换
  • filter表

    • 负责过滤功能,防火墙

    规则表的先后顺序:raw→mangle→nat→filter

相同规则的集合叫做表,多张表的集合叫做链 不是每条链上都有四张表

PREROUTING:raw/mangle/nat

INPUT:mangle/filter/nat

OUTPUT:raw/mangle/nat/filter

POSTROUTING:mangle/nat

FORWARD:mangle/filter

实际上在操作过程中,是通过表作为入口进行操作,通过表查询定义的规则,操作规则

规则概念

accept:接受

drop:丢弃

reject:拒绝

snat:源地址转换,解决内网用户同一个公网地址上上网的问题

masquerade:是snat的一种特殊形式,使用动态的、临时会变的ip上

dnat:目标地址转换

redirect:在本机作端口映射

log:记录日志,/var/log/messages文件记录日志信息,然后将数据包传递给下一条规则

iptables

iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
iptables –[A|I 链] [-i|o 网络接口] [-p 协议] [-s 来源ip/网域] [-d 目标ip/网域] –
j[ACCEPT|DROP]

-t table 指定表

raw mangle nat filter 默认

subcommand子命令

-N:new, 自定义一条新的规则链

-E:重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除

-X:delete,删除自定义的空的规则链

-P:Policy,设置默认策略;对filter表中的链而言,其默认策略有:ACCEPT:接受, DROP:丢弃 案例

基本匹配条件

-s:指定源ip地址

-d:指定目的ip地址

-p:指定协议类型

-i:指定网卡流入,PREROUTING/INPUT/FORWARD

-o:指定网卡流出,OUTPUT/POSTROUTING

扩展条件 -m 扩展模块

tcp/udp

​ --dport:指定目的端口

​ --sport:指定源端口

state模块:

​ 用于针对tcp连接进行限制

​ --state NEW:连接中的第一个包的状态是NEW

​ ESTABLISHED:NEW状态后面的包是ESTABLISHED

​ RELATED:与命令连接中的报文有关系,比如ftp服务有连个进程,一个是命令进程一个是数据

丢弃来自IP地址x.x.x.x的包

BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP

允许所有来自外部的SSH连接请求,即只允许进入eth0接口,并且目标端口为22的数据包

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED
-j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j
ACCEPT

firewalld

firewall-cmd命令中使用的参数以及作用

区域默认规则
internal等同于home区域
public拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相 关,则允许流量
external拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量

--get-default-zone 查询默认的区域名称

--set-default-zone=<区域名称> 设置默认的区域,使其永久生效

--list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息

--add-port=<端口号/协议> 设置默认区域允许该端口的流量

--reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则

SElinux

SELinux服务有三种配置模式,具体如下。

enforcing:强制启用安全策略模式,将拦截服务的不合法请求。

permissive:遇到服务越权访问时,只发出警告而不强制拦截。

disabled:对于越权的行为不警告也不拦截。

[root@localhost ~]# vim /etc/selinux/config
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值