首页 > 系统相关 >linux安全技术与iptables防火墙

linux安全技术与iptables防火墙

时间:2024-05-29 12:33:31浏览次数:38  
标签:iptables -- linux 防火墙 规则 INPUT 数据包

一、安全技术

入侵检测系统:特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署方式。

入侵防御系统:以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)。

防火墙:隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中。

防水墙:
广泛意义上的防水墙:防水墙,与防火墙相对,是一种防止内部信息泄漏的安全产品。   网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径,在事前、事  中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系。

二、防火墙

2.1防火墙概念

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 

2.2防火墙分类

按保护范围分:

主机防火墙:服务范围为当前一台主机

网络防火墙:服务范围为防火墙一侧的局域网

按实现方式分:

硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint,NetScreen

软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront

按网络协议划分:

网络层p墙:OSI模型下四层

应用层防火墙:proxy 代理网关,OSI模型七层

应用层防火墙:

将所有跨越防火墙的网络通信链路分为两段

内外网用户的访问都是通过代理服务器上的“链接”来实现优点:在应用层对数据进行检查,比较安全

缺点:增加防火墙的负载

提示:现实生产环境中所使用的防火墙一般都是二者结合体,即先检查网络数据,通过之后再送到应用 层去检查

三、Linux防火墙基本认知

3.1Netfilter

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中

Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作

3.2防火墙工具介绍

iptables:

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

firewalld:

从CentOS 7 版开始引入了新的前端管理工具

软件包:

firewalld

firewalld-config

管理工具:

firewall-cmd 命令行工具

firewall-config 图形工作

netfilter/iptables关系:

netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。 

表中所有规则配置后,立即生效,不需要重启服务。

3.3iptables防火墙默认规则表、链结构

iptables由五个表table和五个链chain以及一些规则组成:

数据包到达防火墙时,规则表之间的优先顺序:  raw > mangle > nat > filter

四、四表五链

4.1四表

raw表∶ 确定是否对该数据包进行状态跟踪

mangle表∶为数据包设置标记

nat表∶ 负责网络地址转换,用来修改数据包中的源、目标IP地址或端口

filter表 :负责过滤数据包, 确定是否放行该数据包(过滤

4.2五链

INPUT∶ 处理入站数据包,匹配目标IP为本机的数据包。

OUTPUT∶处理出站数据包,一般不在此锌上,做配置。

FORWARD∶ 处理转发数据包,匹配流经本机的数据包。

PREROUTING链∶ 在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的工P和端口映射到路由器的外网IP和端口上。

POSTROUTING链∶ 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网工P地址上网。

4.3四表五链总结:

规则表的作用∶容纳各种规则链

规则链的作用∶容纳各种防火墙规则

表里有链,链里有规则

4.3.1规则链之间的匹配顺序:

  • 入站数据(来自外界的数据包,且目标地址是防火墙本机)∶ PREROUTING --> INPUT --> 本机的应用程序
  • 出站数据(从防火墙本机向外部地址发送的数据包)∶ 本机的应用程序 --> OUTPUT --> POSTROUTING网络型防火墙∶
  • 转发数据(需要经过防火墙转发的数据包)∶ PREROUTING --> FORWARD --> POSTROUTING

4.3.2规则链内的匹配顺序:

  • 自上向下按顺序依次进行检查,找到相匹配的规则即停 止 (LoG策略例外, 表示记录相关日志)
  • 若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

4.4内核数据包的传输过程

1.当一个数据包进入网卡时,数据包首先进入 PREROUTING 链,内核根据数据包目的IP判断是否需要转送出去
2.如果数据包是进入本机的,数据包就会沿着图向下移动,到达 INPUT 链。数据包到达 INPUT 链后, 任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT 链,然后到达
3.如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过 FORWARD 链,然后到达 POSTROUTING 链输出

4.5三种报文流向:

流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)

流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过我)

转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)

五、iptables的配置

5.1iptables的安装

Centos 7默认使用firewalld防火墙,没有安装iptables, 若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables。

5.2iptables防火墙配置方法:

5.2.1使用图形化来管理 system-config-firewall(centos 6)

5.2.2使用iptables命令行管理:

命令格式:
iptables  [-t 表名]  管理选项  [链名] [匹配条件] [-j 控制类型]

注意事项:

不指定表名时,默认指filter表

不指定链名时,默认指表内的所有链

除非设置链的默认策略,否则必须指定匹配条件

选项、链名、控制类型使用大写字母,其余均为小写

语法总结:

常见的管理选项:

管理选项用法示例
-A在指定链末尾追加一条 iptables -A INPUT (操作)
-l在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作)
-P指定默认规则 iptables -P OUTPUT ACCEPT (操作)
-D删除 iptables -t nat -D INPUT 2 (操作)
-p服务名称 icmp tcp
-R修改、替换某一条规则 iptables -t nat -R INPUT (操作)
-L查看 iptables -t nat -L (查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名) iptables -L -n,iptables -nL,iptables -vnL (查看)
-v查看时显示更详细信息,常跟-L一起使用 (查看)
--line-number规则带编号 iptables -t nat -L -n --line-number /iptables -t nat -L --line-number
-F清除链中所有规则 iptables -F (操作)
-N新加自定义链
-X清空自定义链的规则,不影响其他链 iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S看链的所有规则或者某个链的规则/某个具体规则后面跟编号

常用控制类型:

控制类型作用
ACCEPT允许数据包通过(默认)
DROP直接丢弃数据包,不给出任何回应信息
REJECT拒绝数据包通过,会给数据发送端一个响应信息
SNAT修改数据包的源地址
DNAT修改数据包的目的地址
MASQUERADE伪装成一个非固定公网IP地址
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。LOG只是一种辅助动作,并没有真正处理数据包

通用匹配:

匹配的条件作用
-p指定要匹配的数据包的协议类型
-s指定要匹配的数据包的源IP地址
-d指定要匹配的数据包的目的IP地址
-i指定数据包进入本机的网络接口(入站网卡)
-o指定数据包离开本机做使用的网络接口(出站网卡)
--sport指定源端口号
--dport指定目的端口号

六、iptables操作

6.1查看iptabes的规则

6.2指定表查看

iptables -t filter -vnL

iptables -t filter -vnL INPUT (在最后面加入链的名称,可以只显示该表
该链的规则)

6.3删除规则

删除指定链

全部删除

6.4添加新规则

标签:iptables,--,linux,防火墙,规则,INPUT,数据包
From: https://blog.csdn.net/dinzhen_zhenzhu/article/details/139118020

相关文章

  • 在Linux中,如何进行邮件服务器配置?
    在Linux中配置邮件服务器是一个涉及多个组件的过程,包括邮件传输代理(MTA)、邮件投递代理(MDA)和可选的邮件用户代理(MUA)。以下是使用Postfix作为MTA、Dovecot作为IMAP/POP3服务的通用步骤:1.安装邮件服务器组件1.1Postfix(MTA)sudoaptupdatesudoaptinstallpostfix在安装过......
  • 在Linux中,如何进行FTP服务器配置?
    在Linux中配置FTP服务器通常涉及安装FTP服务器软件、配置FTP服务、设置用户权限和安全性。以下是使用vsftpd(一个安全且高效的FTP服务器软件)进行配置的步骤:1.安装FTP服务器对于基于Debian的系统(如Ubuntu):sudoaptupdatesudoaptinstallvsftpd对于基于RedHat的系统(如CentO......
  • 在Linux桌面上安装Moonlight并提示找不到硬件加速
    在Linux桌面上安装Moonlight并提示找不到硬件加速时,可能是因为缺少必要的依赖或配置错误。以下是一些可能的解决方案:安装必要的驱动程序:确保已安装最新的NVIDIA驱动程序。可以使用命令sudoapt-getinstallnvidia-driver进行安装。安装NVIDIA的硬件解码库:安装libnvid......
  • Linux 编译安装 Python
    解压:tar-zxfPythonXX.tgz安装依赖:yuminstalllibffi-develconfiguremkdirbuildcdbuild../configure--enable-optimizations--prefix=`pwd`/install--with-openssl=$OPEN_SSL_INSTALL_DIRBuild:make-j48makeinstall然后可以把install打包.注意,instal......
  • 【网络技术】【Kali Linux】Wireshark嗅探(十六)BT-DHT(比特流分布式哈希表协议)报文捕获
    往期KaliLinux上的Wireshark嗅探实验见博客:【网络技术】【KaliLinux】Wireshark嗅探(一)ping和ICMP【网络技术】【KaliLinux】Wireshark嗅探(二)TCP协议【网络技术】【KaliLinux】Wireshark嗅探(三)用户数据报(UDP)协议【网络技术】【KaliLinux】Wireshark嗅探(四)域......
  • linux 修改服务器时间
    修正时区rm-rf/etc/localtime#删除当前默认时区www.kwx.gdln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtime#复制替换默认时区为上海手动修正时间date-s'09:16:002013-01-21'自动同步时间yuminstall-yntp#安装时间同步服务(组件)ntp......
  • 安装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动解决
    一、安装centos开机出现Kernelpanic-notsyncing:Attemptedtokillinit无法启动的解决方法  装系统总会遇到各种新鲜问题,不过不要紧,只问题才能提升解决问题的能力,今天重新装了个CENTOS6.5的64位版,可能是进行了分区(boot单独挂载到了一个分区),开机时centos报错:Kernelp......
  • bet8链接:浅谈LKL对Linux和新的成果
    由bet8链接 вт989点сс编译,LinuxKernelLibrary(LKL)设计为Linux核心的移植版本,在目录arch/lkl中,约有3500行的程式码。LKL与应用程式连结,以运作于使用者空间,依赖由主机作业系统提供的一组主机端的功能,例如semaphore,POSIXThreads,malloc、计时器(timer)......
  • [IMX6ULL驱动开发]-Linux对中断的处理(二)
    上一篇文章中,引入了Linux对于中断的一些简略流程以及中断抽象为具体实际形象。此文章主要是继续加深对Linux对中断的处理流程以及一些相应的数据结构。目录Linux对中断的扩展:硬件中断、软件中断多中断处理中断上下部处理流程发生中断A,并被中断A打断发生中断A,并被中断B打......
  • openssh9.7p1(OpenSSL 1.1.1w)适用于各Linux系统的rpm包
    本人近几日编译的openssh9.7p1包,用于解决漏洞扫描器提示openssh相关漏洞的问题处理。包含多个Linux发行版本(包含el6\el7\el8\openeuler2110\openeuler2203\BCLinux\eulerOS2.10对应版本等)。一、适用openeuler2203和openeuler2203sp*系列(含BClinux对应系列):openssh9.7P1forop......