5、防火墙介绍和使用

一.默认的四张表

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

2.nat:网络地址转换,PREROUTING/POSTROUTING/OUTPUT 三条链

3.mangle:流量整形,五条链

4.raw:确定是否对数据包进行状态跟踪

二.默认的五条规则链

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

2.OUTPUT:源地址是LINUX本身

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

4..PREROUTING路由前

5.POSTROUTING路由后

三.编写规则

类别           选项                                          用途

添加规则       -A                               在链的末尾追加一条规则

-I                                 在链的开头(或指定序号)插入一条规则

查看规则       -L                                列出所有的规则条目

-n                                以数字形式显示地址,端口等信息

--line-numbers                     查看规则时,显示规则的序号

删除规则       -D                               删除链内指定序号(或内容)的一条规则

-F                                清空所有规则

默认策略       -P                                为指定的链设置默认规则

ACCEPT:允许通行/放行

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

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

LOG:记录日志,然后传给下一条规则

工具程序位置

-         /sbin/iptables

指令组成

- [ -t 表名 ] 选项 [ 链名 ] [ 链名 ] [ 条件 ] [  -j 目标操作 ]

Iptables –nL //查看规则,以数字形式显示

Iptables –t filter –L  //可直接写iptalbes –L  查filter表

Iptables –F   //清除规则

Iptables –L

Iptables –P INPUT DROP  //DROP 丢弃,不允许访问

Iptables –A INPUT –p tcp –dport 80 –jACCEPT   //追加tcp 80 端口 ACCEPT允许 –J跳转

Iptables –A INPUT –p tcp –dport 443 –jACCEPT

Iptables –A INPUT –s 192.168.10.3 –p tcp –-dport80 –j ACCEPT   //-s源

Iptables –I INPUT 3 –S 192.168.1.1 –p –tcp  --doport 80 –j ACCERT 在第三行插入

Iptables –nL --line-numbers    //显示规则的序列号

Iptables –D INPUT 3 //删除第3排的规则

# watch –n 1 iptables –nvL //每隔一少钟刷新后面的命令

1.拒绝ping防火墙本身

# iptables -F

# iptables –A INPUT –p icmp –j DROP

2.ping linux 的IP地址

3.把防火墙规则再清空,把拒绝ICMP的目标规则改为REJECT,再次ping测试,看结果,

4.查看防火墙规则

#iptables –nvl

5.允许指定ip地址的主机ping防火墙

# iptables –I INPUT 1 –s 192.168.1.1 –picmp –j ACCEPT

6.查看防火墙规则,每个规则注说序号

# iptables –nL –-line-numbers

7.删除防火墙的INPUT链中第二条规则

# iptables –D INPUT 2

8.把OUTPUT的默认规则改为DROP

# iptables –P OUTPUT DROP

9.清空OUTPUT这条规刚

# iptables –F OUTPUT

10.iptables –nvL  //匹配的条数

四,规则的基本匹配条件

类别                     选项                                   用法

协义匹配                            -P协义名

通用匹配        地址匹配                            -s     源地址  -d  目标地址

接口匹配                            -i   收数据的网卡  -o  发数据的网卡

端口匹配                            --sport源端口  --dport 目标端口

隐含匹配              ICMP类型匹配                   --icmp-type    ICMP类型

TCP标记匹配                     --tcp-flags检查哪些位 哪些位被设置

1.      允许特定ip地址访问LINUX 的telnet服务

(1)# yum –y install telnet-server

#service xinetd start

#chkconfig telnet on

(2) # iptables –P INPUT DROP

(3) #iptables –A INPUT –s 192.168.1.1 –p tcp –-dport 23 –j ACCEPT

2.继续第一步,向INPUT链插入规则,第一条,从eth0网卡收到的、访问telnet服务的数据包,拒绝

# iptables –I INPUT –i eth0 p tcp –dport 23–j REJECT

五.打开LINUX的路由功能(转发功能)

IS:中间系统路由器

ES:终端系统,主机系统

1.      临时打开路由功能

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

# cat /proc/sys/net/ipv4/ip_ forward

2.      永久打开转发功能

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

# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

:wq

Sysctl –q //马上生效

六.使用FORWARD链

主机1                                 主机2                                 主机3

Eth0:192.1681.1                                                     eth0:192.168.2.1

Eth0:192.168.1.2

Eth0:192.168.2.2

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

4.      # iptables –A FORWARD –s192.168.195.0/24 –d 192.168.2.0/24 –p tcp –doprt 23 –i eth1 -0 eth0 –j REJECT

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

3.      iptables –A FORWARD –p tcp –dport22 –j REJECT

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

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

5.      防火墙拒绝icmp的请求

# iptables –A INPUT –p icmp –-icmp-typeecho-request –j REJECT .

6.      允许192.168.195.0/24网段进行PING

# iptables –I INPUT –s 192.168.195.0/24 –picpm –-icmp-type echo-request –j ACCEPT

7.      防火墙拒绝发送echo-reply

# iptables –A OUTPUT –p icmp –-icmp-typeecho-reply –j REJECT

8.      允许防火墙回应192.168.195.0/24网段的ping

# iptables –I OUTPUT –s 192.168.195.0/24 –picmp –icmp-type echo-reply –j ACCEPT

9.防火墙拒绝192.168.195.0/24对其进行TCP连接

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

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

# iptables –A INPUT –i eth1 –p tcp ! –-syn –jACCEPT

5.      主机1拼通主机3 主机3拼通主机1   主机2设置

# iptables –I FORWARD –s 192.168.2.0/24 –d192.168.1.0/24 –p icmp –j ACCEPT

# iptables –I FORWARD 2 –s 192.168.1.0/24 –d192.168.2.0/24 –p icmp –j ACCEPT

# iptables –I FORWARD –s 192.168.2.0/24 –d192.168.1.0/24 –i eth1 –o eth0 –p tcp –dport 22 –j ACCEPT

# iptables –I FORWARD –s 192.168.1.0/24 –d192.168.2.0/24 –i eth0 –o eth1 –p tcp –dport 22 –j ACCEPT

主机2设置 执行单向拼通主机1拼主机3

#iptables –I FORWARD –s 192.168.1.0/24 –d 192.168.2.0/24 –p icmp –-icmp-typeecho-request –j ACCEPT

主机2设置

# iptables –I FORWARD –s 192.168.2..0/24 –d192..168.1.0./24 –p icmp  icmp-typeecho-reply –j ACCEPT

七.扩展匹配

类别                     选项                                          用法

状态匹配                            -mstate   --state 状态值

MAC地址匹配                    -mmac –-mac-source MAC地址

显示匹配              多端口匹配                         -mmultiport –-sports 源端口列表

-mmultiport –-dports 目标端口列表

IP范围匹配                        -miprange –-src-range IP1-IP2

-miprange –-dst-range IP1-IP2

根据MAC地址封锁主机

适用于交换网络,针对源MAC地址

-         不管其IP地址变成多少

-         # iptables –A INPUT –m mac –-mac–source 00:0C:29:34:45:25–j DROP

-         1、阻止MAC地址为XX:XX:XX:XX:XX:XX主机的所有通信:

-         iptables -AINPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

-

-         2、允许MAC地址为XX:XX:XX:XX:XX:XX主机访问22端口:

-         iptables -AINPUT -p tcp --destination-port 22 -m mac --mac-source XX:XX:XX:XX:XX:XX -jACCEPT

-         3、允许IP地址为192.168.1.21,MAC地址为XX:XX:XX:XX:XX:XX的主机通信,拒绝多有其他主机:

-         iptables -AINPUT -s 192.168.1.21 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

-         iptables -PINPUT DROP

-         4、可以写脚本限制MAC:

-         iptables -PFORWARD DROP

-         for mac in$(cat ipaddressfile); do

-         iptables -AFORWARD -m mac --mac-source $mac -j ACCEPT

-         done

-

简化服务开启规则

条规则开放多个端口

比如Web FTP MailSSH等等

# iptables –A –INPUT –s 192.168.20.0/24 –p tcp –mmultiport --dport 20:22,25,80,110,143,16501:16800 –j ACCEPT

//20到23的端口都需要拒统

# iptables –A INPUT –p tcp –dport 20:23 –j REJECT

根据IP范围封锁主机

SSH登陆的IP范围控制

-允许从192.168.4.10-192.168.4.20登陆

-禁止从192.168.4.0、24网段其他的主机登陆

# iptables A INPUT –p tcp –dport 22 –m iprange –src-range192.168.4.10-192.168.4.20 –j ACCEPT

# iptables –A INPUT –p tcp –dport 22 –s 192.168.4.0/24 –jDROP

1.      网络连接的五种状态

NEW,请求建立连接的包,完全陌生的包

ESTABLISHED,将要或已经建立连接的包

RELATED,与已知某个连接相关联的包

INVALID 无对应连接,以通讯连接无效的包

UNTRACKED,未跟踪状态的包

# iptables –P FORWARD DROP

# iptables –A FORWARD –s 192.168.10.0/24 –jACCEPT

# iptables –A FORWARD –d 192.168.10.0/24 –m state –-stateESTABLSHED,RELATED –j ACCEPT

不做重点

DOS: Denial OF Service 拒绝服务功击

# iptables –A INPUT –m state –state NEW –ptcp –syn –j DROP

# iptables –A FORWARD –m state –state NEW –ptcp ! –syn DROP

识别FTP数据链接

针对FTP被动模式,数据端口未知

# iptables –A FORWARD –d 192.168.4.100 –ptcp –dport 20:21 –j –ACCEPT

# iptables –A FORWARD –s 192.168.4.100 –ptcp –sport 20:21 –j ACCEPT

# iptables -A FORWARD –d 192.168.4.100 –m state –stateESTABLISHED,RELATED –j  ACCEPT

# iptables -A FORWARD –s 192.168.4.100 –m state –stateESTABLISHED,RELATED –j ACCEPT

禁止从内网访问外网的服务

# iptables –A FORWARD –s 192.168.4.0/24 –oeth0 –j ACCEPT

# iptables –A FORWARD –d 192.168.4..0/24 –i eth0 –mstate –state ESTABLISHED,RELATED –j DROP

# iptables –A FORWARD –d 192.168.4.0/24 –ieth0 –m state –state NEW –j DROP

比如,访问量较大的Web服务

# iptables –t raw –A PREROUTING –d192.168.4.100 –p tcp –dport 80 –j NOTRACK

# iptables –t raw –A PREROUTING –s192.168.4.100 –P tcp –sport 80 –j NOTRACK

# iptables –A FORWARD –m state –stateUNTRACKED –j ACCEPT

时间: 2024-10-27 19:17:54

5、防火墙介绍和使用的相关文章

iptables防火墙介绍+实战

第1章 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制.特别是它可以在一台非常低的硬件配置下跑的非常好.iptables+zebra+squid Iptables是linux2.4及2.6内核中集成的服务.其功能与安全性比其老一辈ipfwadm,ipchains强大的多,Iptables主要

6.路由器与防火墙介绍

路由器工作在网络层三层,是连接网络中各局域网.广域网的设备,用于不同网段之间信号转发. 路由器工作原理:基于源不学习,基于路由表转发,无表就丢弃. 路由器不同接口分配不同网段,路由器分割网络,分割广播域. 路由器的接口默认是关闭的,需要手动打开. 路由器管理与配置: v Console接口:管理员可以通过Console口管理配置路由器,Console为串口,如果想要连接PC需要串口转USB口线连接,PC可以通过SecureCRT工具连接Console进行管理,串口的波特率为9600. v Tel

Red Hat Enterprise Linux7防火墙配置详细说明

Red Hat Enterprise Linux7 防火墙配置详细说明 目录 一. 防火墙介绍 ............................................................................................................. 3 1. RHEL7默认防火墙 ............................................................................

防火墙之 iptables详解

 一.防火墙介绍 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的

Linux -- 系统安全之Iptables防火墙(1)

Linux iptables防火墙介绍: 一.防火墙的概述 (一).防火墙的简介 防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性.它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务.它可以根据网络传输的类型决定IP包是否可以传进或传出内部网. 防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序进行一一比较,直到满足其中的一条规则为止,然后依据控制机制做出相应的动作.如果都不满足,则将数据

Linux -- 系统安全之Iptables防火墙(2)

一.iptables防水墙的实现方式及iptables命令的格式 iptables防火墙介绍 netfilter/iptables是Linux系统提供的一个非常优秀的防火墙工具,它完全免费.功能强大.使用灵活.占用系统资源少,可以对经过的数据进行非常细致的控制.本节首先介绍有关iptables防火墙的基本知识,包括netfilter框架.iptables防火墙结构与原理.iptables命令格式等内容. netfilter框架 Linux内核包含了一个强大的网络子系统,名为netfilter,它

Centos 的防火墙(firewalld,iptables)和开启启动

Centos系统防火墙介绍 Centos7以前的系统默认使用iptables服务来管理防火墙,Centos7系统及以后使用firewalld服务替代了iptables服务,但是依然可以使用iptables来管理内核的netfilter.其实iptables服务和firewalld服务都不是真正的防火墙,只是用来定义防火墙规则功能的管理工具,将定义好的规则交由内核中的netfilter(网络过滤器来读取)从而实现真正的防火墙功能. FireWalld服务 介绍: 工具名称:firewalld fi

Linux系统安全之CentOS 7 firewalld防火墙入门详解

在Internet中,企业通过架设各种应用系统来为用户提供各种网络服务,比如Web网站.电子邮件.FTP服务器等.而且大部分都是使用Linux服务器进行搭建的.那么,想要保护这些服务器,过滤非授权的访问,甚至恶意进入内部网络 .就需要使用到--防火墙. 防火墙除了硬件防火墙之外,Linux系统的防火墙也十分强大,今天主要认识CentOS 7系统的防火墙--firewalld. 一.Linux防火墙基础 不管是Linux系统.Windows系统的防火墙或者是硬件防火墙都是设置不同网络与网络安全之间

帝国CMS 6.5功能解密:网站安全防火墙使用说明

有关帝国CMS新版防火墙介绍可以查看:http://bbs.phome.net/showthread-13-136169-0.html 本文为大家讲解如何使用网站防火墙:一.配置“网站防火墙”有下面两种方法:1.后台>“系统设置”>“网站防火墙”.2.修改e/class/config.php文件配置. 二.下面讲解一下相关设置的作用和使用: 1.防火墙加密密钥:此项必须设置,填写10~50个任意字符,最好多种字符组合.并且建议每星期或每个月变更一次. 2.允许后台登陆的域名:设置只允许访问后台