`
gaojingsong
  • 浏览: 1210875 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Linux 之Iptables 必学必会】

阅读更多

iptables 介绍

-t 指定规则表NAT,mangle,默认filter,

filter 数据包过滤

NAT 地址转换

mangle策略路由,给数据包后面盖戳,进行路由

iptables具有Filter, NAT, Mangle, Raw四种内建表:

1. Filter表

Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:

INPUT链 – 处理来自外部的数据。

OUTPUT链 – 处理向外发送的数据。

FORWARD链 – 将数据转发到本机的其他网卡设备上。

2. NAT表

NAT表有三种内建链:

PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。

POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

OUTPUT链 – 处理本机产生的数据包。

3. Mangle表

Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:

PREROUTING

OUTPUT

FORWARD

INPUT

POSTROUTING

4. Raw表

Raw表用于处理异常,它具有2个内建链:

PREROUTING chain

OUTPUT chain

 

 

 

 

-A  追加

-I 插入

-D -delete,删除,从所选链中删除一条或更多规则

-F FLASH,清除,清空规则链的(注意每个链的管理权限)

-L -list显示,显示所选链的所有规则

-R -replace从选中的链中取代一条规则

-P -policy

设置链的目标规则。

-E -rename-chain

根据用户给出的名字对指定链进行重命名,这仅仅是修饰,对整个表的结构没有影响

 

 

 

-j ACTION

-j --jump target

-j 目标跳转

指定规则的目标;也就是说,如果包匹配应当做什么。

常用的ACTION:

DROP:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表

REJECT:明示拒绝

ACCEPT:接受

custom_chain:转向一个自定义的链

DNAT

SNAT  SNAT这个目标只适用于nat表的POSTROUTING链

MASQUERADE:源地址伪装,MASQUERADE只用于nat表的POSTROUTING链。

REDIRECT:重定向:主要用于实现端口重定向,只适用于nat表的PREROUTING和OUTPUT链,和只调用它们的用户自定义链

MARK:打防火墙标记的,MARK用来设置包的netfilter标记值。只适用于mangle表。

RETURN:返回,在自定义链执行完毕后使用返回,来返回原规则链。

LOG为匹配的包开启内核记录

 

 

 

通用匹配:源地址目标地址的匹配

-s:指定作为源地址匹配,这里不能指定主机名称,必须是IP,而且地址可以取反,加一个“!”表示除了哪个IP之外

-d:表示匹配目标地址

-p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)

-i eth0:从这块网卡流入的数据,流入一般用在INPUT和PREROUTING上

-o eth0:从这块网卡流出的数据,流出一般在OUTPUT和POSTROUTING上

 

 

 

防火墙的策略

防火墙策略一般分为两种,一种叫“通”策略,一种叫“堵”策略,通策略,默认门是关着的,必须要定义谁能进。堵策略则是,大门是洞开的,但是你必须有身份认证,否则不能进。所以我们要定义,让进来的进来,让出去的出去,所以通,是要全通,而堵,则是要选择。当我们定义的策略的时候,要分别定义多条功能,其中:定义数据包中允许或者不允许的策略,filter过滤的功能,而定义地址转换的功能的则是nat选项。为了让这些功能交替工作,我们制定出了“表”这个定义,来定义、区分各种不同的工作功能和处理方式。

我们现在用的比较多个功能有3个:

1.filter 定义允许或者不允许的

2.nat 定义地址转换的 

3.mangle功能:修改报文原数据

 

我们修改报文原数据就是来修改TTL的。能够实现将数据包的元数据拆开,在里面做标记/修改内容的。而防火墙标记,其实就是靠mangle来实现的。

小扩展:

对于filter来讲一般只能做在3个链上:INPUT ,FORWARD ,OUTPUT

对于nat来讲一般也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING

而mangle则是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

 

 

 

 

五个规则链。

1.PREROUTING (路由前)

2.INPUT (数据包流入口)

3.FORWARD (转发管卡)

4.OUTPUT(数据包出口)

5.POSTROUTING(路由后)

 

InPUT 和FORWARD互斥生效,即任选其一生效,一个生效,另一个失效

 

 

下面是适合Web服务器的iptables规则:

IPT="/sbin/iptables"

$IPT --delete-chain

$IPT --flush

$IPT -P INPUT DROP #1

$IPT -P FORWARD DROP#1

$IPT -P OUTPUT DROP #1

$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #2

$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT #3

$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT #3

$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT#3

$IPT -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT #3

$IPT -A INPUT -i lo -j ACCEPT #4

$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#5

$IPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #5

$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #6

$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT #7

$IPT -A OUTPUT -o lo -j ACCEPT #4

$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT #8

$IPT -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT #9

$IPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#10

$IPT -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #10

service iptables save

service iptables restart

存为脚本iptables. sh,执行sh iptables. sh自动配置防火墙。

解释:

#1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。

#2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。

#3、设置外部客户端连接服务器端口80,22,21,873。

#4、允许内部数据循回。

#5、允许外部ping服务器。

#6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。

#7、允许服务器使用外部dns解析域名。

#8、设置服务器连接外部服务器端口80。

#9、允许服务器发送邮件。

#10、允许从服务器ping外部。

iptables保存:iptables-save

iptables还原:iptables-restore

  • 大小: 38.8 KB
0
0
分享到:
评论

相关推荐

    linux必学的60个命令

    最后,“Linux必学的60个命令(六)——其它命令”可能会涵盖一些实用但不那么常见的命令,如`history`查看命令历史,`alias`创建别名,`script`记录终端会话,`sed`和`awk`进行文本流处理,以及`tar`进行文件归档和...

    韩老师Linux2021系列教程

    命令行是Linux的核心部分,教程会详细讲解各种常用命令,如ls、cd、mkdir、rm、cp、mv等,这些命令是日常操作Linux系统的基础。此外,还将涉及文件权限和所有权的概念,如chmod和chown命令,以及如何使用find、grep...

    linux学习必备

    Linux操作系统是全球最广泛使用的开源操作系统之一,尤其在服务器领域占据主导地位。"Linux学习必备"这个主题针对的是想要入门Linux的初学者,涵盖了Linux的安装以及基础学习内容。在这个过程中,你将了解到Linux的...

    Linux私房菜_基础学习篇(中文资料)

    同时,也会讲解Linux的安全管理,如防火墙iptables、 SELinux安全策略等,确保系统的稳定和安全。 通过阅读《[大家网]鸟哥的Linux私房菜 基础学习篇(第三版)[www.TopSage.com].pdf》,读者可以逐步掌握Linux的基本...

    初学linux必看

    Linux是世界上最广泛使用的开源操作系统之一,对于初学者来说,它可能显得有些陌生,但深入了解后,你会发现它的强大和灵活性。本篇文章将针对“初学Linux必看”这一主题,结合提供的资源《LINUX应用技术精华{面向...

    linux实验与学习

    网络方面,学习如何配置网络接口,使用`ifconfig`、`route`和`netstat`命令,以及理解防火墙规则(如`iptables`)是必备技能。对于服务器运维,还需要了解如何管理服务(如使用`systemd`或`init`),日志查看(如`...

    linux自学必备.rar

    这个压缩包包含4本相关的电子书,这些书籍通常会涵盖Linux的基本概念、常用命令、系统管理以及高级主题。 1. **Linux基础知识**:Linux是一种开源的操作系统,基于Unix,由林纳斯·托瓦兹创建。它的核心是内核,...

    linux完全学习手册

    学习Linux首先会接触到安装过程,包括选择发行版(如Ubuntu、CentOS、Fedora等)、分区管理、设置引导加载器等。了解系统的启动流程,包括BIOS、MBR、GRUB、内核加载以及初始化进程,对理解系统运行机制至关重要。 ...

    Linux自学书籍

    10. **系统安全与防火墙**:Linux中的安全措施包括权限设置、防火墙(如iptables、firewalld)以及 SELinux等,书会讲解如何保护系统免受攻击。 11. **软件测试与调试**:对于标签"软件测试",书中可能包含一些基础...

    Linux实用培训学习教程1.0

    Linux是世界上最广泛使用的开源操作系统之一,它为个人用户、企业乃至超级计算机提供了强大的计算平台。"Linux实用培训学习教程1.0"是一个针对初学者设计的教程,旨在帮助你掌握Linux的基础知识,使你能够更好地理解...

    Linux实用教程PPT课件

    教程会讲解用户和组的管理,以及如何设置防火墙规则(如iptables)以保护系统安全。 最后,教程可能包含一些高级话题,如shell脚本编写、系统监控工具(如top、htop、iotop)、性能分析和故障排查技巧。 通过这个...

    linux最新视频资源

    Linux是世界上最广泛使用的开源操作系统之一,它为个人用户、企业乃至超级计算机提供了强大的计算平台。这份"linux最新视频资源"涵盖了Linux系统的核心概念、管理和运维技术,旨在帮助学习者深入理解这一开放源代码...

    兄弟连Linux.zip

    《兄弟连Linux》是一套专为初学者设计的Linux教学资源,总计16个章节,包含丰富的课件和视频教程,总大小约为6.7GB。...在学习过程中,配合课件和视频,理论与实践相结合,相信你的Linux之路会更加顺畅。

    Linux命令大全+Linux高手修炼手册

    这个手册可能还会涵盖Linux内核、编译定制系统、容器技术如Docker、虚拟化如KVM等内容,这些都是高级Linux使用者必备的知识。 总的来说,"Linux命令大全+Linux高手修炼手册"是一套全面的学习资料,涵盖了从初级到...

    清华大学linux课件

    课程会介绍基本的安全实践,如用户权限管理、防火墙配置(iptables)以及如何防止恶意攻击。 **13. 实战演练** 最后一章通常是实战练习,通过模拟场景让你巩固所学知识,提高实际操作技能。 这份清华大学的Linux...

    第二章《循序渐进linux》很不错高清的pdf电子书

    安全方面,会讲解Linux防火墙iptables、用户和组管理、访问控制列表(ACL)以及加密技术。 最后,为了适应不断发展的Linux世界,书中可能会介绍一些现代Linux发行版的特色,如Ubuntu、CentOS、Debian等,并涵盖虚拟...

    linux菜鸟入门,快学易用

    Linux是世界上最广泛使用的开源操作系统之一,对于初学者来说,它提供了丰富的学习资源和强大的功能。本文将基于"linux菜鸟入门,快学易用"的主题,深入浅出地讲解Linux的基础知识,包括常用的命令、开发环境的搭建...

    LINUX 使 用 指 南

    Linux 的命令行界面(CLI)是其强大的工具之一。基本命令如`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm`(删除文件/目录)是日常操作中不可或缺的。学习使用`man`命令查看命令手册,能帮你...

    linux 课件

    Linux操作系统是全球最广泛使用的开源操作系统之一,以其稳定、安全和可定制性著称。这份“Linux课件”旨在帮助初学者对Linux有一个全面而基础的认识,并能够进行基本的操作和使用。以下是一些核心的Linux知识点,...

    Linux实用大全(第二版)

    8. **系统安全与防火墙**:Linux的安全性是其一大特点,包括用户权限设定、SELinux、防火墙(iptables、firewalld)等内容,书中会有详细阐述,帮助读者构建安全的系统环境。 9. **故障排查**:书中还会涵盖日志...

Global site tag (gtag.js) - Google Analytics