linux   防火墙

Iptables 防火墙 (一)

1,Linux防火墙基础

Linux的防火墙主要工作在网络层,针对tcp/ip数据包实施过滤和限制,属于典型的包过滤防火墙(网络层防火墙)。

Netfilter:指的是Linux内核实现包过滤防火墙的内部结构,属于“内核态”

Iptables:指的是用来管理Linux防火墙的命令程序,位于/sbin/iptables目录下,属于“用户态”的管理体系。

2,表链结构

(1)规则表

A.filter表:用来对数据包进行过滤,包括三个链:INPUT(入站),OUTPUT(出站)

FORWARD(转发)。

B.nat表(网络地址转换):用来修改数据包的ip地址,端口号等。包括三个链:

PREROUTING(路由选择之前),POSTROUTING(路由选择之后),OUTPUT(出站)。

C.mangle表:修改数据包的标记。包含五个链:PREROUTING,    POSTROUTING,  INPUT,           OUTPUT,               FORWARD

D.raw表:对数据包进行状态跟踪。包括两个链:OUTPUT(出站),PREROUTING(路由选择之前)。

3,规则表之间的顺序

Raw----mangle----nat----filter

4,规则链之间的顺序

5,防火墙规则之间的顺序

链内的过滤遵循“匹配即停止”的原则,(LOG日志操作的规则除外)

6,编写防火墙规则

(1),命令格式:iptables -t 表名 管理选项  链名   匹配条件   -j   控制类型

ACCEPT:允许数据包通过。

DROP:直接丢弃数据包,不给任何回应

REJECT:拒绝数据包,会给数据发送端一个响应信息。

LOG:在/var/log/messages中记录日志信息,然后将数据包              传递给下一条规则.

@.

@.

-D:删除规则

-I:插入规则

-R:修改规则

-L:列出指定链的所有规则

-F:清空链中的所以规则

-P:指定链的默认策略

7,查看规则链表

Iptables  -L  INPUT   --line-numbers(显示规则序号)

Iptables   -nL      INPUT(以数字地址查看filter表INPUT链中的所以规则)

8,以下操作可以将filter表中FORWARD链的默认策略为丢弃,OUTPUT链的默认策略为允许。

Iptables  -t  filter   -p    FOREARD    DROP

Iptables    -p    OUTPUT    ACCEPT

9.,(协议匹配  “-p 协议名”)丢弃通过icmp协议访问防火墙本机的数据包,允许转发经过防火墙的除icmp协议外的数据包

Iptables    -I   INPUT  -P   icmp  -j DROP

Iptables     -A  INPUT   !  -P  icmp   -j  ACCEPT

10,(地址匹配 “-s 源地址或-d 目标地址”)拒绝转发源地址为192.168.1.11的数据,允许转发源地址位于192.168.7.0/24网段的数据。

Iptables   -A  FOREARD  -s  192.168.1.11   -j   REJECT

Iptables   -A   FOREARD   -s    192.168.7.0/24   -j  ACCEPT

11,(网络接口匹配  “-i 接口名入站或-o 接口名出站”),丢弃从外网接口(eth1)访问防火墙本机且源地址为私有地址的数据包

Iptables    -A    INPUT   -i   eth1   -s  10.0.0.0/8  -j   DROP

Iptables    -A  INPUT  -i   eth1   -s  172.16.0.0/12  -j   DROP

Iptables    -A   INPUT   -i   eth1  -s  192.168.0.0/16  -j DROP

12,端口匹配( “--sport  源端口或 --dport 目标端口”)

允许网段192.168.4.0/24转发DNS查询数据包

Iptables   -A  FORWARD   -s  192.168.4.0/24   -p  udp  --dport  53   -j   ACCEPT

Iptables    -A   FORWARD   -d  192.168.4.0/24   -p  udp  --sport   53    -j   ACCEPT

13,ICMP类型匹配(”--icmp-type  icmp类型“ 【icmp类型使用字符串或数字代码表示,如”echo-request(8)“ “echo-reply(0)” “destinetion-unreachable(3)” ,分别对应ICMP协议的请求,回显,目标不可达】)

禁止从其他主机ping本机,但是允许本机ping其他主机

Iptables    -A  INPUT  -p  icmp  --icmp-type  8  -j  DROP

Iptables  -A  INPUT  -p  icmp  --icmp-type   0  -j  ACCEPT

Iptables  -A  INPUT  -p  icmp  --icmp-type   3  -j  ACCEPT

Iptables  -A  INPUT  -p  icmp  -j   DROP

14,多端口匹配(”-m multiport  --dports 端口列表 或 “-m multiport  --sports 端口列表”)

允许本机开发25.80.110.143端口,

Iptables  -A  INPUT   -p  tcp  -m multiport  --dport  25.80.110.143  -j  ACCEPT

15.IP范围匹配(“-m iprange --src-range ip范围”或“-m iprange --dst-range  IP范围”)

禁止转发源IP地址位于192.168.4.21与192.168.4.28之间的TCP数据包

Iptables   -A  FORWARD  -p   tcp   -m  iprange  --src-range  192.168.4.21-192.168.4.28   -j  REGECT

16.MAC地址匹配(“-m  mac   --mac-source  MAC地址”)

根据MAC地址封锁主机,禁止访问本机的任何应用

Iptables  -A  INPUT  -m  mac  --mac-source  00:0c:29:55:3f  -j  DROP

17.状态匹配(“-m state  --state  连接状态”)

禁止转发与正常TCP连接无关的非syn请求数据包

Iptables  -A  FORWARD  -m  state  --state  NEW  -p  tcp  !  --syn  -j  DROP

时间: 2024-08-28 10:26:04

linux   防火墙的相关文章

linux防火墙--iptables(二)

五.filter过滤和转发 a.打开内核的IP转发 # sysctl -w net.ipv4.ip_forward=1 或 # echo 1 > /proc/sys/net/ipv4/ip_forward b.基本匹配条件 ·通用匹配 → 可直接使用,不依赖于其他条件或扩展 → 包括网络协议.IP地址.网络接口等条件 ·隐含匹配 → 要求以特定的协议匹配作为前提 → 包括端口.TCP标记.ICMP类型等条件 类别 选项 用法 通用匹配 协议匹配 -p 协议名 地址匹配 -s 源地址      

linux防火墙之表、链

后续要整理常用的,所以复制过来了,我的上一篇是:linux防火墙 以下内容采自于:http://my.oschina.net/HankCN/blog/117796 Filter表:过滤数据包,默认表. (1)INPUT   链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤) (2)OUTPUT 链:过滤所有本机产生的数据包(对源地址得数据包的过滤) (3)FORWARD链:过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包. NAT表:网络地址转换(Network Addre

linux防火墙开放端口时报ptables-restore: line 13 failed [失败]

linux开放8080端口 在/etc/sysconfig/iptables中添加一行[-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT] 然后service iptables restart,报下面问题 解决方法: 问题原因:对linux防火墙相关配置不熟悉: 参考链接:http://www.mamicode.com/info-detail-1179017.html

Linux防火墙:iptables禁IP与解封IP常用命令

在Linux下,使用ipteables来维护IP规则表.要封停或者是解封IP,其实就是在IP规则表中对入站部分的规则进行添加操作. 要封停一个IP,使用下面这条命令: iptables -I INPUT -s ***.***.***.*** -j DROP 要解封一个IP,使用下面这条命令: iptables -D INPUT -s ***.***.***.*** -j DROP 参数-I是表示Insert(添加),-D表示Delete(删除).后面跟的是规则,INPUT表示入站,***.***

Linux防火墙iptables简明教程

前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下 Linux防火墙iptables简明教程 1.安装iptables 2.查看现有的iptables规则 3.删除某iptables规则 4.清除现有iptables规则 5.创建规则 6.设置开机启动 7.保存i

linux 防火墙详细介绍

1.其实匹配扩展中,还有需要加-m引用模块的显示扩展,默认是隐含扩展,不要使用 -m状态检测的包过滤-m state       --state {NEW,ESTATBLISHED,INVALID,RELATED}  指定检测那种状态-m multiport 指定多端口号      --sport      --dport      --ports-m iprange 指定IP段      --src-range ip-ip      --dst-range ip-ip-m connlimit

笔记8(日常运维w、vmstat、top、sar、nload、free、ps、netstat、tcptump、Linux防火墙)

w查看系统负载 date 查看当前系统的时间 w出来的,第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载.第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等.其实,在这些信息当中,我们最应该关注的应该是第一行中的 'load average:' 后面的三个数值. 第一个数值表示1分钟内系统的平均负载值:第二个数值表示5分钟内系统的平均负载值:第三个数值表示15分钟系统的平均负载值.这个值的意义是,单位时间段内CPU活动进程数

Linux防火墙和开放端口

一.Linux下开启/关闭防火墙命令 A: 永久性生效,重启后不会复原 开启:chkconfig iptables on 关闭:chkconfig iptables off B: 即时生效,重启后复原 开启:service iptables start 关闭:service iptables stop 在当开启了防火墙时,如需开放端口,可以使用以下两种方法: 1:使用命令1).可以先查看哪些端口被打开 netstat -anp2).关闭端口号:    iptables -A INPUT -p t

要想重启后也生效LINUX防火墙配置

新配置的一台服务器,安装的是CentOS6.3系统,在安装完LNMP之后,发现nginx进程存在,且php解析正常,但是用分配的独立IP去访问的时候发现无法访问. 查了下网上的资料,发现可能是Linux防火墙iptables导致nginx不能访问.我们访问一个网站,一般用的是80端口,那么这个问题的原因可能就是80端口的访问被拦截了.查看/etc/sysconfig/iptables文件,发现里面没有80端口的配置规则,需要修改下iptables. 在root权限下执行: iptables -A