Iptables介绍

一、防火墙分类

二、Linux防火墙(Iptables)

netfilter:又称“内核空间”

iptables:又称“用户空间”

1、Iptables默认的四张表

1)filter:     用于防火墙,默认有INPUT/OUTPUT/FORWARD三条链

2)nat:       网络地址转换,默认有PREROUTING/POSTROUTING/OUTPUT三条链

3)mangle:     流量整形,默认有五条链(对数据进行标记)

4)raw:       用于状态跟踪,默认有两条链


iptables -t nat -L       //查看iptables里的nat表规则

iptables -t filter -L       //查看iptables里的filter表规则

iptables -t mangle -L       //查看iptables里的mangle表规则

iptables -t raw -L         //查看iptables里的raw表规则

说明:-t 指定表

2、Iptabels默认的五条规则链

1)INPUT:       如果一个数据包的目的地址是LINUX本身,则进入INPUT链

2)OUTPUT:      源地址是LINUX本身

3)FORWARD:     数据包从一块网卡接收,从另一块网卡发出,经过LINUX的包,进入这条链的

4)PREROUTING:   路由前

5)POSTROUTING:   路由后

iptables -N yy   //-N 自定义规则链,自己在表里创建一个规则链,名字自己随便写

iptables -X yy   //删除自定义规则链

表对应的链如下图:表里面存链,链里又存规则

3、Iptables端口号范围

知名端口号:          <254的端口号                                    保留给UNIX服务端口号:   254~1024之间端口号

自定义端口号:        >1024的端口号

三定位:

IP地址 + 协议(TCP/UDP)+ 端口号

如:客户端A用SSH访问服务器B

A在用ssh访问B时,B是用22端口响应,而A的端口是>1024随机生成

发起者的端口号是>1024随机的,接受者是固定的

4、编写规则

规则选项 

基本匹配条件


最基本的目标操作

*ACCEPT : 允许通过/旅行

*DROP  : 直接丢弃,不给出任何回应

*REJECP : 拒绝通过,必要时会给出提示

*LOG   :记录日志,然后传给下一条规则(匹配即停止,规律的唯一例外)

iptables -F             //清空全部的路由规则

iptables -F INPUT         //只清空INPUT的规则

iptables -P INPUT DROP      //更改默认规则为拒绝((这默认规则不能设置成REJECT)

iptables -nL            //列出所有规则

iptables -nL --line-numbers  //查看防火墙规则,每个规则注明序号

iptables -t nat -nvl       //查看指定表

iptables -A INPUT -p icmp -j DROP   //拒绝ping防火墙本身

iptables -I INPUT 1 -s 192.168.194.1 -p icmp -j ACCEPT //允许指定IP地址ping防火墙

iptables -D INPUT 2       //删除防火墙的INPUT链中第二条规则

允许特定IP地址访问LINUX的telnet服务

1.iptables -P INPUT DROP

2.iptables -A INPUT -s 192.168.194.1 -p tcp --dport 23 -j ACCEPT

向INPUT链插入规则,作为第一条;从eth0网卡收到的、访问telnet服务的数据包,拒绝

iptables -I INPUT -i eth0 -p tcp --dport 23 -j REJECT

三、FORWARD链的使用

echo-request    准许发送

echo-reply     准许回应

要使用FORWARD链,首先要打开linux路由转发功能

临时打开路由功能:

# echo 1 > /proc/sys/net/ipv4/ip_forward

# cat /proc/sys/net/ipv4/ip_forward

永久打开转发功能:

# echo ‘echo 1 > /proc/sys/net/ipv4/ip_forward‘ >> /etc/rc.local

或者

# vi /etc/sysctl.conf

net.ipv4.ip_forward= 1

# sysctl -p

假设内网段:192.168.194.0/24

假设外网段:192.168.195.0/24

1、拒绝192.168.195.0/24网段访问192.168.194.0/24网段的telnet服务

iptables -A FORWARD -s192.168.195.0/24 -d 192.168.194.0/24 -p tcp --dport 23 -i eth1 -o  eth0 -j  REJECT

2、拒绝SSH协议通过防火墙

iptables -A FORWARD -p tcp --dport 22 -j REJECT

3、不是192.168.195.0/24网段的主机访问SSH服务,可通过

iptables -I FORWARD ! -s 192.168.195.0/24 -p tcp --dport 22 -j ACCEPT

4、防火墙拒绝icmp的请求

iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT

5、允许192.168.195.0/24网段进行PING

iptables -I INPUT -s 192.168.195.0/24 -p icmp --icmp-type echo-request -j ACCEPT

6、防火墙拒绝发送echo-reply

iptables -A OUTPUT -p icmp --icmp-type echo-reply -j REJECT

7、允许防火墙回应192.168.195.0/24网段的ping

iptables -I OUTPUT -s 192.168.195.0/24 -p icmp --icmp-type echo-reply -j ACCEPT

8、防火墙拒绝192.168.195.0/24对其进行TCP连接

检查SYN/ACK/RST/FIN四个位置,其中SYN被置位

iptables -I INPUT -s 192.168.195.0/24 -p tcp --tcp-flags SYN,ACK,RST,FIN SYN -j REJECT

四、扩展匹配

1、拒绝指定MAC地址的主机对防火墙本身的访问

iptables -A INPUT -m mac --mac-source 00:0C:29:43:CA:BA -j REJECT

2、在防火墙上通过一条命令打开多个端口

iptables -A INPUT -p tcp -m multiport --dport 20:22,25,80,110,143,16501:16800 -j ACCEPT

3、SSH登录的IP范围控制

允许从 192.168.4.10-192.168.4.20登录

禁止从 192.168.4.0/24网段其他的IP登录

# iptables -A INPUT -p tcp --dport 22 -m iprange --src-range

192.168.4.10-192.168.4.20 -j ACCEPT

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

4、192.168.194.0/24作为内网,192.168.195.0/24作为外网。从内到外的访问不受限制,从外到内的主   动连接全部拒绝

# iptables -A FORWARD -s 192.168.194.0/24 -j ACCEPT

# iptables -A FORWARD -d 192.168.194.0/24 -j REJECT

# iptables -I FORWARD 2 -d 192.168.194.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT

说明:

网络连接的五种状态

  • NEW:     请求建立连接的包、完全陌生的包
  • ESTABLISHED:将要或已经建立连接的包
  • RELATED:   与已知某个连接相关联的包
  • INVALID:   无对应连接,以及连接无效的包
  • UNTRACKED: 未跟踪状态的包

5、减轻DOS(拒绝服务)攻击

比如反射/反弹式攻击

iptables -A INPUT -m state --state NEW -p tcp ! --syn -j DROP

iptables -A FORWARD -m state --state NWE -p tcp ! --syn -j DROP

6、免状态跟踪

比如访问量较大的web服务

iptables -t raw -A PREROUTING -d 192.168.4.100 -p tcp --dport 80 -j NOTRACK

iptables -t raw -A PREROUTING -s 192.168.4.100 -p tcp --sport 80 -j NOTRACK

iptables -t raw -A FORWARD -m state --state UNTRACKED -j ACCEPT

五、NAT表-Iptables

1、SNAT  把源地址转换,所以称作Source NAT

实现: 注意把ip_forward打开;

写入iptables规则;

#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 201.1.1.1

#iptables -t nat -nvL  //查看

说明:内网IP 192.168.1.0/24

公网IP 201.1.1.1

连接到外网的网卡 eth1

2、SNAT  ip伪装

作用:当连接外网时,使用的IP地址不是固定的(如ADSL拨号连接),可以利用IP伪装来简化配置

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

注意:如果使用ADSL拨号,将会出现一个PPP0网络,iptables的规则,

出口设备应该使用ppp0( -o ppp0 )

ADSL拨号连接

(1)安装软件

#yum install -y rp-pppoe

(2)设置ADSL连接

#pppoe-setup   //根据向导回答问题

3、DNAT  将内网服务器发布至公网

例一:局网域有一台WEB服务器,IP地址是192.168.194.10。防火墙连接公网的端口是eth1,当访问eth1     的IP地址(192.168.195.40)80端口时,就把这个请求发给内网的WEB服务器。

# iptables -t nat -A PREROUTING -i eth1 -d 192.168.195.40 -p tcp --dport 80 \

-j DNAT --to-destination 192.168.194.10

例二:与例一类似,只是内网服务器提供ssh访问。当访问防火墙公网地址的2222端口时,将请求发送到     内网服务器的22端口。

# iptables -t nat -A PREROUTING -i eth1 -d 192.168.195.40 -p tcp --dport 2222 \

-j DNAT --to-destination 192.168.194.10:22

客户端连接: # ssh 192.168.195.40 -p 2222

例三:如果发布FTP服务器,命令配置与发布WEB服务器类似,只是端口号不一样。但是应该加载两个相     关的模块。

# vim /etc/sysconfig/iptables-config

IPTABLES_MODULES="nf_nat_ftp  nf_conntrack_ftp"

# service iptables restart

六、防火墙规则的备份和还原

# service iptables save                   //正常保存

iptables-save  >  ~/iptables-20131210      //将当前配置保存到一个指定文件

iptables-restore  < ~/iptables-20131210     //根据备份的文件进入恢复防火墙配置

七、调整内核参数

# vi /etc/sysctl.conf

net.ipv4.ip_default_ttl=128            ->设置IP包默认的TTL值从多少开始

net.ipv4.icmp_echo_ignore_all=1          ->设置主机忽略icmp消息

net.ipv4.icmp_echo_ignore_broadcasts = 1   ->设置主机响应icmp广播消息

时间: 2024-12-06 07:36:57

Iptables介绍的相关文章

firewalld、netfilter、 netfilter5表5链、iptables介绍

Linux网络相关 #ifconfig        查看网卡ip(如果没有这个命令请使用yum install net-tools安装) #ifdown ens33 关闭网卡ens33(在使用远程终端连接时不可使用这条命令,否则会断掉网络) #ifup ens33      打开网卡ens33,用这种方式可以单独重启指定的网卡(有几张网卡的情况下),而不是重启整个网络服务. 设定虚拟网卡ens33:1 #ifdown ens33 && ifup ens33     在远程终端可以把两条命

Linux下iptables介绍

ptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,output和forward: nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output: mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING: input

iptables 介绍

规则链 规则链的作用:对数据包进行过滤或处理 链的作用:容纳各种防火墙规则 链的分类依据:处理数据包的不同时机 默认包括5种规则链 INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING:在进行路由选择后处理数据包 PREROUTING:在进行路由选择前处理数据包 规则表 表的作用:容纳各种规则链 表的划分依据:防火墙规则的作用相似 默认包括4个规则表 raw表:确定是否对该数据包进行状态跟踪 mangle表:为数据包设置标记 nat表:

iptables防火墙火墙服务

一.iptables介绍 二.安装服务并开启服务 yum install iptables-services.x86_64 systemctl stop firewalld systemctl disable firewalld systemctl mask firewalld systemctl start iptables.service systemctl enable iptables.service systemctl status iptables.service 三.参数的相关解释

Linux 防火墙工具--iptables

iptables介绍 iptables是基于内核的防火墙,功能非常强大,iptables内置了"三表五链" 三张表 1.filter     定义允许或者不允许的 2.nat       定义地址转换的 3.mangle     修改报文原数据 五个规则链 1.PREROUTING (路由前) 2.INPUT (数据包流入口) 3.FORWARD (转发管卡) 4.OUTPUT(数据包出口) 5.POSTROUTING(路由后) 对于filter来讲只能做在3个链上:INPUT ,FO

Linux防火墙iptables/netfilter(三)

我们前面两篇已经把iptables介绍的比较充分了,今天来说一个iptables对layer 7的实践.我们说过iptables/netfilter工作在内核空间是不支持应用层协议的,但是诸如QQ.MSN.迅雷等应用我们是无法在传输层或者网络层完全封闭它们的,因为它们非常狡猾发现自己的端口被封掉之后会用其它打开的端口进行传输数据,所以只有在7层中封闭它们才行.所以有人就针对这种情况对iptables/netfilter进行了二次开发,写了一些补丁,我们打上这些补丁可以使iptables支持7层协

Linux 之 iptables基础(一)

 iptables基础(一) =========================================================================== 概述: iptables介绍 1)Firewall ★Firewall:防火墙系统 是一种隔离工具,Packets Filter Firewall (包过滤型防火墙): 定义:工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件: 硬件

Linux iptables 防火墙详解

0x00 iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成. netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集. iptables 组件是一种工具,也称为用户空间,它使插入.修改和除去信息包过滤表中的规则变得容易. 0x01 iptables的结构 iptables的结构: iptables -> Tables -> Chains ->

iptables之语法

一iptables概念 防火墙分类 分为硬件防火墙和软件防火墙 硬件防火墙一般放在外网的最前面,公司的拓扑的最外面 iptables虽然称为防火墙,但是不能当做整个公司的出口防火墙,和动戈几千万,几百万的硬件防火墙还是不能相比的一般用来在公司的局域网做防护,还可以在服务器上做一些端口,流量,安全防护. 但是真的有人盯上了,当大流量打过来的时候,没有硬件高防设备来保护,还是会瘫痪的 iptables介绍 全称:netfilter/iptables:Ip信息包过滤系统,实际上由netfilter和i