c 实现linux防火墙,Linux-C-高级-第6章-IPTable防火墙基础

目录(持续更新)

第6章 IPTable防火墙基础

第一节

网络访问控制

Linux作为服务器,对外提供一些基于网络服务

通常需要网络访问控制,类似防火墙

厂家爱你访问控制包括:哪些IP可访问的服务器,协议,接口,数据包修改

如可能受到某个IP攻击,这时就禁止所有来自IP的访问

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

IPTables

用户层我们可以哦那个过iptables程序对netfilter进行控制管理

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

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

源IP地址

目标IP地址

使用接口

使用协议 ( TCP UDP ICMP )

端口号

连接状态 ( new ESTABLISHED RELATED INVALID)

过滤点

INPUT 出流量

FORWARD 转发数据

OUTPUT 入流量

PREROUTING 路由前

POSTROUTING 路由后

过滤表

三种表:

filter (chain)用于对数据进行过滤 只用在 INPUT FORWARD OUTPUT 过滤点

nat用以多数据包的源,目标IP地址进行修改 只用在 OUTPUT PREROUTING POSTROUTING过滤点

mangle用以对数据包进行高级修改 用于所有过滤点

常用功能

作为服务器

过滤本地流量

过滤本地发出流量

作为路由

过滤转发流量

修改转发数据

规则

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

一个规则使用一行配置

规则按顺序排列

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

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

没有匹配规则,则使用默认动作(每个检查点都有默认动作)

通过命令 iptables -t filter -A INPUT -s 192.168.1.1 -j DROP

表 链 匹配属性 动作

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

链:规定过滤点 INPUT FORWARD OUTPUT PREROUTING POSTROUTING

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

匹配后的动作:放行 丢弃 记录 ACCEPT DROP REJECT

第二节

基础配置

表:规定使用的表

filter

nat

mangle

链:规定过滤点

INPUT

FORWARD

OUTPUT

PREROUTING

POSTROUTING

匹配属性:

规定匹配数据包的特征

源,目标地址 ,协议(TCP UDP ICMP )

端口号

接口

TCP状态

匹配后的动作:

放行 ACCEPT

丢弃 DROP

记录 REJECT (返回信息)

命令操作(临时生效)

iptables status 查看默认状态

列出现有所有规则

iptables -L

插入一个规则

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

插入到规则第3条 所有端口22的TCP数据全部允许进入

删除一个iptables规则

iptables -D INPUT 3

iptables -D INPUT -s 192.168.1.2 -j DROP

删除所有规则

iptables -F

参数匹配

基于IP地址

-s 192.168.1.1 源地址

-d 10.0.0.0/8 目标地址

基于接口

-i eth0 接收流量

-o eth1 发出流量

排除参数

-s '!' 192.168.1.0/24 !为取反操作

基于协议及端口

-p tcp --dport 23

-p udp --sport 23

-l icmp

例:

检测到来自192.168.1.100攻击 屏蔽所有这个IP的流量

iptables -A INPUT -s 192.168.1.100 -j DROP

屏蔽所有访问80网页服务的流量

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

屏蔽所有192.168.1.0到服务器的22端口ssh流量

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

iptables -A INPUT -i eth0 -j ACCEPT

FORWARD 路由设备使用

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

NAT 网络地址转换是用来对数据包的IP地址进行修改的机制,NAT分为两种

SNAT 源地址转换 常用伪装内部地址

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

iptables 中实现的 NAT 功能是NAT 表

常用NAT

通过NAT 进行跳转 转发到192.168.1.10

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

DNAT 只能用在PREROUTING上

通过NAT 进行出向数据跳转

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

通过NAT对数据伪装 一般意义的NAT 将内部地址全部伪装为一个外部公网IP

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

所有内网地址伪装成eth0个公网IP地址

通过NAT隐藏IP

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

保存配置文件

通过iptables修改需要写入/etc/sysconfig/iptables配置文件

可以通过命令将iptables规则写入配置文件 保存后会覆盖

service iptables save

注意

远程管理 修改iptables

需要允许来自客户端主机的SSH流量确保是第一条iptable规则

以免失误将自己锁在外面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Xfilter 源代码完整的文件列表 ------------------------------------------------------ .\Common .\Lib .\Property .\Release .\TcpIpDog .\Xfilter.dsw .\readme.txt .\filelist.txt .\Common\XLogFile.h .\Common\XLogFile.cpp .\Common\XInstall.cpp .\Common\XFile.h .\Common\XInstall.h .\Common\XFile.cpp .\Common\Debug.h .\Common\XFileRes.h .\Lib\htmlhelp.h .\Lib\htmlhelp.lib .\Property\Property.opt .\Property\Property.aps .\Property\Property.dsp .\Property\Property.rc .\Property\Property.clw .\Property\ReadMe.txt .\Property\resource.h .\Property\NetIPAria.h .\Property\GuiRes.h .\Property\AclSet.cpp .\Property\SetTime.h .\Property\Acl.cpp .\Property\SetNet.h .\Property\MainSheet.h .\Property\AclSet.h .\Property\Register.h .\Property\SystemSet.cpp .\Property\Splash.h .\Property\Property.dsw .\Property\Acl.h .\Property\Property.ncb .\Property\Splash.cpp .\Property\Property.h .\Property\LogQuery.h .\Property\SetTime.cpp .\Property\MainSheet.cpp .\Property\SetNet.cpp .\Property\NetIPAria.cpp .\Property\About.cpp .\Property\StdAfx.h .\Property\StdAfx.cpp .\Property\SystemSet.h .\Property\Register.cpp .\Property\About.h .\Property\LogQuery.cpp .\Property\Property.cpp .\Property\NetTimeSheet.h .\Property\PacketMonitor.h .\Property\Property.plg .\Property\NetTimeSheet.cpp .\Property\PacketMonitor.cpp .\Property\Internet .\Property\MainFrame .\Property\SystemTray .\Property\res .\Property\HyperLink .\Property\Internet\Internet.cpp .\Property\Internet\Internet.h .\Property\MainFrame\MainFrame.cpp .\Property\MainFrame\mainframe.h .\Property\SystemTray\SystemTray.cpp .\Property\SystemTray\SystemTray.h .\Property\res\Property.rc2 .\Property\res\NULL.ico .\Property\res\Property.ico .\Property\res\about.bmp .\Property\res\Alert.ico .\Property\res\DenyEx1.ico .\Property\res\PassEx1.ico .\Property\res\QueryEx1.ico .\Property\res\splash.bmp .\Property\res\MEMO.ICO .\Property\res\ALERTSET.ICO .\Property\res\APPSET.ICO .\Property\res\BASESET.ICO .\Property\res\COMMONSET.ICO .\Property\res\Monitor.ico .\Property\res\NETSET.ICO .\Property\res\SUPERSET.ICO .\Property\res\TIMESET.ICO .\Property\res\Xfilter.ico .\Property\res\IPSET.ICO .\Property\res\Email.ico .\Property\res\QueryResult.ico .\Property\res\QuerySet.ICO .\Property\res\UserInfo.ico .\Property\res\ACLSET.ICO .\Property\res\Message.ico .\Property\HyperLink\HyperLink.cpp .\Property\HyperLink\HyperLink.h .\Release\xacl.cfg .\Release\Xfilter.chm .\Release\Xfilter.exe .\Release\Xfilter.dll .\Release\xlog.dat .\TcpIpDog\StdAfx.cpp .\TcpIpDog\TcpIpDog.dsp .\TcpIpDog\LspServ.def .\TcpIpDog\ReadMe.txt .\TcpIpDog\CheckAcl.cpp .\TcpIpDog\TcpIpdog.cpp .\TcpIpDog\Codes.h .\TcpIpDog\TcpIpDog.h .\TcpIpDog\ProtocolInfo.h .\TcpIpDog\CheckAcl.h .\TcpIpDog\StdAfx.h .\TcpIpDog\ProtocolInfo.cpp .\TcpIpDog\TcpIpDog.plg

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值