Linux网络安全技术与实现

栏目: 编程工具 · 发布时间: 6年前

内容简介:内核指的是操作系统的内核。内核对于操作系统来说是极为重要的部分,其主要用来执行系统资源的分配及调度。例如,当一个应用程序运行时所使用内存区段的起始和终止位置,或者现在这个时刻哪个应用程序可以访问硬盘灯,都由内核来负责分配;而一个操作系统稳定与否,内核的优劣是关键指标。规则条件:例如列出filter表的所有内容

本文记录 Linux 网络技术与实现读书笔记,这是一本已经停产了的书,在 豆瓣 上评分颇高,此书为第二版,第一版书名为-更安全的Linux网络

。笔记记录的形式不会采取面面俱到的方式,精选一些比较重要的内容,如果你没有接触过这方面的内容,阅读本文可能会有强烈的不适感。

TCP UDP及Socket的关系

端口的分类

公认的端口:0-1023

注册的端口:1024-49151

动态端口:49152-65535

端口的作用

假设我们在服务器端主机运行了Web SSH及DNS三项服务。在TCP/IP的网络规范中,当一个网络应用运行起来时,都会占用一个端口,如服务器端的Web服务器启动时,即会占用Socket中的端口80,我们简称为TCP port 80,而SSH服务是TCP Port22,DNS服务则是UDP Port 53.

在客户端启动浏览器、SSH客户端及DNS客户端这三个网络应用程序后也会占用某一个端口。可以通过tcpdump wireshark等抓包 工具 抓包,可以看到客户端发送到服务器的保重包含Source port及Destination port,服务器端会将应答数据包发送给Source port。

何谓内核

内核指的是操作系统的内核。内核对于操作系统来说是极为重要的部分,其主要用来执行系统资源的分配及调度。例如,当一个应用程序运行时所使用内存区段的起始和终止位置,或者现在这个时刻哪个应用程序可以访问硬盘灯,都由内核来负责分配;而一个操作系统稳定与否,内核的优劣是关键指标。

Netfilter命令结构

Netfilter存在四部分:filter nat mangle raw

filter:filter是Netfilter中最重要的机制,其任务是执行数据包的过滤操作,也就是起到防火墙的作用。存在三条链:INPUT FORWARD OUTPUT

nat:nat(Network Address Translation,NAT)是防火墙上一个不可或缺的重要机制,其功能是IP分享器。

存在三条链:PREROUTING POSTROUTING OUTPUT

mangle:mangle是一个很特殊的机制,我们可以通过mangle机制来修改经过防火墙内的数据包的内容,存在五条链:PREROUTING POSTROUTING OUTPUT INPUT FORWARD

raw:负责加快数据包穿过防火墙机制的速度,由此提高防火墙的性能。存在PREROUTING OUTPUT两条链。

规则的匹配

采用first match原则即优先匹配,以filter表INPUT链为例,当我们添加规则时,这些规则时按照先后顺序一条一条被加入到INPUT链中,因此第一条被加进来的规则就是rule 1,最后被加进来的规则就是INPUT链中的最后一条规则。当一个数据包进入INPUT链之后,filter机制就会根据该数据包的特征,从INPUT链中的第一条规则逐一向下匹配,一旦匹配成功,则不管后面的规则内容是什么,这就是所说的优先匹配。

如果从INPUT链第一条到最后一条都没有匹配成功时使用每个链的最底端的默认策略。不管链中有多少规则,默认策略永远在每个链的最底端,而且每个链的默认策略各自独立。

iptables命令参数

iptables -t Table -操作方式 规则条件

-t Table目前的Netfilter版本内置filter nat mangle及row四个表。即Netfilter的四大功能。-t参数的含义是选择我们所要操作的功能,如果这个字段没有输入,默认则时filter表。

-操作方式

-L:将所选择的表内容列出

-A:在指定的链中添加新规则

-F:将所选择的表内容清除

-P:设置某个链的默认策略

规则条件:

-p tcp -j ACCEPT
-p udp -j ACCEPT
-p icmp -j ACCEPT

例如列出filter表的所有内容

iptables -t filter -L

列出filter表中INPUT链的内容

iptables -t filter -L INPUT

清除filter表中的所有内容

iptables -t filter -F

清除filter表中INPUT链的内容

iptables -t filter -F INPUT

将规则添加到filter表的INPUT链中

iptables -t filter -A INPUT -p icmp -j ACCEPT

-t是指定添加到filter表,-A INPUT将规则加入到INPUT链中 -p icmp -j ACCEPT则时具体的规则

将FORWARD链的默认策略设置为DROP

iptables -t filter -P FOREARD DROP

-P FORWARD 本次所要设置的是FORWARD链的策略

DROP 将FORWARD链的默认策略设置为DROP

iptables的-F参数不会影响到默认策略的状态,要改变默认策略的状态,一定要使用-P的参数来设置。

在INPUT链中插入新规则

iptables -t filter -I INPUT  2  -p  tcp  -j  ACCEPT

-t filter 本次要使用的功能是filter

-I INPUT 在INPUT链中插入新的规则

2 插入到第二条规则的位置

规则:-p tcp -j ACCEPT是本次要插入的规则内容。

Linux网络安全技术与实现 我们也可以使用如下命令清晰看到INPUT链第二条规则已经变为我们刚刚插入的规则
iptables -t filter -L INPUT --line-number

取代INPUT链内已存在的规则

iptables -t filter -R INPUT 2 -p tcp -j ACCEPT

删除INPUT链中已经存在的规则

iptables -t filter -D INPUT 2

以上七个参数总结如下:

-L :列出表的内容

-F:清除表的内容

-A:加入新规则

-P:设置默认策略

-I:插入新规则

-R:取代规则

-D:删除规则

我们上面的例子针对的是filter表,同样该参数适用于nat mangle raw表。

iptables规则语法


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pragmatic Thinking and Learning

Pragmatic Thinking and Learning

Andy Hunt / The Pragmatic Bookshelf / 2008 / USD 34.95

In this title: together we'll journey together through bits of cognitive and neuroscience, learning and behavioral theory; you'll discover some surprising aspects of how our brains work; and, see how ......一起来看看 《Pragmatic Thinking and Learning》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具