一.网络访问控制

  1.Linux一般都是作为服务器系统使用,对外提供一些基于网络的服务

  2.通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能

  3.常见的访问控制包括:哪些IP可以访问服务器、可以使用哪些协议、哪些接口、是否需要对数据包进行修改等等。

  4.如服务器可能受到来自某IP的攻击,这时就需要禁止所有来自该IP的访问。

  5.Linux内核集成了网络访问控制功能,通过netfilter模块实现

二.IPTables

Linux内核通过netfilter模块实现网络访问控制功能,在用户层我们可以通过iptables程序对netfilter进行控制管理。

  1.netfilter可以对数据进行允许、丢弃、修改操作

  2.netfilter支持通过以下方式对数据包进行分类:

    -源IP地址
    -目标IP地址

    -使用接口

    -使用协议(TCP、UDP、ICMP等)

    -端口号

    -连接状态(new、ESTABLISHED、RELATED、INVALID)

三.Netfilter

  1.filter(chain)用以对数据进行过滤

  2.nat用以对数据包的源、目标地址进行修改

  3.mangle用以对数据包进行高级修改

四.常用功能

  1.作为服务器使用:

    过滤到本机的流量   - input链、filter表

    过滤到本机发出的流量 - output链、filter表

  2.作为路由器使用:

    过滤转发的流量 -forward链、filter表

    对转发数据的源、目标IP进行修改(NAT功能) -PREROUTING、POSTROUTING、nat表

五.规则

  1.iptables通过规则对数据进行访问控制

  2.一个规则使用一行配置

  3.规则按顺序排列

  4.当收到、发出、转发数据包时,使用规则对数据包进行匹配,按规则顺序进行逐条匹配。

  5.数据包按照第一个匹配上的规则执行相关动作:丢弃、放行、修改

  6.没有匹配规则,则使用默认动作(每个chain拥有各自的默认动作)

通过iptables命令创建一个规则,一条规则包含以下几个部分:

  iptables -t filter -A INPUT -s 192.168.1.1 -j DROP

        表          链         匹配属性           动作

    -表:规定使用的表(filter、nat、mangle,不同表有不同功能)

    -链:规定过滤点

    -匹配属性:规定匹配数据包的特征

    -匹配后的动作:放行、丢弃、记录

六.基本操作

  1.列出现有iptables规则:

    iptables -L

  2.插入一个规则:

    iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT

  3.删除一个iptables规则:

    iptables -D INPUT 3 iptables -D INPUT -s 192.168.1.2 -j DROP

  4.删除所有规则:

    iptables -F

七.匹配参数

  1.基于IP地址:

    -s 192.168.1.1

    -d 10.0.0.0/8

  2.基于接口:

    -i eth0

    -o eth1

  3.排除参数:

    -s '!' 192.168.1.0/24

  4.基于协议及端口:

    -p tcp --dport 23

    -p udp --sport 53

    -p icmp

八.INPUT、OUTPUT

  1.控制到本机的网络流量:

    iptables -A INPUT -s 192.168.1.100 -j DROP

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

    iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP

    iptables -A INPUT -i eth0 -j ACCEPT

九.FORWARD

当使用Linux作为路由(进行数据转发)设备使用的时候,可以通过定义forward规则来进行转发控制 如:

  禁止所有192.168.1.0/24到10.1.1.0/24的流量:

  iptables -A FORWARD -s 192.168.1.0/24 -d 10.1.1.0/24 -j DROP

十.NAT

  1.NAT(Network Address Translation)网络地址转换是用来对数据包的IP地址进行修改的机制,NAT分为两种:

    -SNAT 源地址转换,通常用于伪装内部地址(一般意义上的NAT)

    -DNAT 目标地址转换,通常用于跳转

  2.iptables中实现NAT功能的是NAT表

十一.常用NAT

  1.通过NAT进行跳转:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.1.10

  2.通过NAT对出向数据进行跳转:

    iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.1.100:8080

  3.通过NAT对数据流进行伪装

    (一般意义上的NAT,将内部地址全部伪装为一个外部公网IP地址)

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  4.通过NAT隐藏源IP地址

    iptables -t nat -A POSTROUTING -j SNAT --to-source 1.2.3.4

十二.配置文件

  1.通过iptables添加的规则并不会永久保存,如果需要永久保存规则,则需要将规则保存在/etc/sysconfig/iptables配置文件中

  2.可以通过以下命令将iptables规则写入配置文件:

    service iptables save

  3.CentOS/RHEL系统会带有默认iptables规则,默认保存在/etc/sysconfig/iptables中,保存自定义规则会覆盖这些默认规则

注意:

如果是远程管理一个Linux主机并修改iptables规则,则必须先允许来自客户端主机的SSH流量确保这是第一条iptables规则,否则可能会由于配置失误将自己锁在外面!

Linux防火墙iptables的基础的更多相关文章

  1. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  2. Linux防火墙(Iptables)的开启与关闭

    Linux防火墙(iptables)的开启与关闭 Linux中的防火墙主要是对iptables的设置和管理. 1. Linux防火墙(Iptables)重启系统生效 开启: chkconfig ipt ...

  3. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  4. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  5. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  6. 10.Linux防火墙iptables之SNAT与DNAT

    Linux防火墙iptables之SNAT与DNAT 目录 Linux防火墙iptables之SNAT与DNAT SNAT策略及应用 SNAT策略概述 SNAT策略典型应用环境 SNAT策略原理 SN ...

  7. linux 防火墙 iptables实例讲解

    端口为例): 显示现有规则: iptables –L -n 清空现有规则表: iptables -F 黑名单:先允许所有数据包通过,后逐条添加黑名单规则. iptables –A INPUT–p tc ...

  8. linux 防火墙 iptables 目录

    linux iptables 防火墙简介 Linux 防火墙:Netfilter iptables 自动化部署iptables防火墙脚本

  9. Linux防火墙iptables介绍

    介绍网络防火墙是通过一个或多个允许或拒绝的规则来过滤网络流量的网络设备或软件.网络防火墙还可以执行更复杂的任务,例如网络地址转换,带宽调整,提供加密隧道以及更多与网络流量相关的任务.而我们的任务就是需 ...

随机推荐

  1. C++ const用法 尽可能使用const

    C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的.如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助. 1.c ...

  2. PHP----------安装包lnmp1.3-full安装的lnmp环境,如何安装PHP扩展

    1. 如果已经安装LNMP套件,请按以下步骤处理 a. 跳转到fileinfo源代码目录` cd /root/downloads/lnmp1.2-full/src/php-7.0.7/ext/file ...

  3. 关于var、let、const的故事

    对于一门编程语言来说,变量与常量是再正常不过的两种,JavaScript是一直解释型的弱类型语言. JavaScript中变量或者常量可以用var.let.const(后两者是ES6的新特性). 1. ...

  4. php .htaccess 伪静态

    # #以下是网站伪静态正则 # RewriteEngine On RewriteRule ^index.html$ index.php RewriteRule ^about.html$ about.p ...

  5. ArrayList去重

    1.利用HashSet(不保证元素顺序一致) HashSet不会存在相同的元素,可以利用这一点去除List中的重复元素 List<String> beforeList = new Arra ...

  6. Technical poem

    Apartment Good apartment be booked the second it bring to market. low product sold to many man, and ...

  7. Windows下应用级别的IIS负载均衡方案 Application Request Route

    转载于:https://blog.csdn.net/2000killer/article/details/51228625 序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一 ...

  8. index read-only

    系统重启后,Eleastisearch6.5.0在给 Eleastisearch 更新索引的时候报了一个错误:ClusterBlockException[blocked by: [FORBIDDEN/ ...

  9. 解决多个div左浮动后不换行问题

    问题描述:我这里有多个li 让其左浮动,并且有序没有间隙的排列,就出现了中间空隙的问题: 解决办法:让每一个的第1个元素加上 clear:both属性,我这里每一行有2个,所以是: .b li:nth ...

  10. 原生JS实现简易转盘抽奖

    我爱撸码,撸码使我感到快乐. 大家好,我是Counter. 本章带大家来简单的了解下原生JS实现转盘抽奖. 因为主要涉及到JS,在这里HTML和CSS起到的功能就没有那么重要, 因此,没有过多的阐述H ...