有哪些网站做国外生意的,wordpress设计网页,乐山网站seo,做家教需要什么哪个网站的会员iptables-netfilter基础
课堂笔记
iptables Firewall#xff1a;防火墙 隔离工具。区别于建筑防火墙。工作于主机或网络边缘#xff0c;对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测#xff0c;对于能够被规则匹配到的报文作出相应处理的组件#xff…iptables-netfilter基础
课堂笔记
iptables Firewall防火墙 隔离工具。区别于建筑防火墙。工作于主机或网络边缘对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测对于能够被规则匹配到的报文作出相应处理的组件网络攻击无非就是特殊改造的报文对主机发起攻击防火墙区别于杀毒软件。 主机防火墙网络防火墙
建筑设计专业术语指防止火灾蔓延至相邻区域且耐火极限不低于3小时的不燃性墙体。用于划分防火分区或防止建筑间火灾蔓延的重要分隔构件能在火灾初期和灭火过程中将火灾有效限制在一定空间内阻断火灾在防火墙的一侧蔓延到另一侧对于减少火灾损失具有重要作用。防火墙就类似于古代画像抓人如果匹配就抓。虽然画的不像所以很多冤案。* 防火墙都有哪些机制* 内核态流量出入口钩子函数相当于检票机挡住流量然后匹配规则符合规则执行规则动作否则默认动作* 选定卡点关键点进行hook做检查* 防火墙只能最内部和外部的流量进行检测但是如果内部出现了内奸防火墙没用了**家贼难防*** 互联网70%的攻击都是内鬼所为。* 防火墙未必能防火* 类似于贿赂赛一把钞票就放行* 伪装特定报文就无法检测出来类似于隧道机制。并且涉及到防火墙检测规则项目相关。
* NAT网络地址转换* 雁过拔毛式。若要过此路留下买路财。* NAT是网络地址转换比方说有一万用户一千个IP每个用户一个IP肯定不够但同时上线的用户可能只有500于是分给用户私网IP等他上线时NAT设备进行私网IP和公网IP的映射转化。
* PAT端口地址转换* PAT是端口地址转换比方说有一万个用户而只有一百个IP同时上线的用户也许好几百个这样NAT的方法也就满足不了了于是只好把用户的私网IP端口映射到一个公网IP端口上当然其他的用户也可以映射到相同的IP上最后通过端口号来区分。* NAT好歹还能保证一个用户有自己专用的IP而PAT就只能保证一个用户只有自己专用的端口了PAT叫端口地址转换NAT是网络地址转换由RFC 1631定义。* 网络攻击和杀毒软件的区别* 攻击归攻击杀毒归杀毒。杀毒针对的是任何形式的可执行程序攻击针对的是流量* 入侵检测系统IDS* 能够根据主机所受到的外部条件的影响作出相应的控制操作* 如果检测到流量攻击防火墙新增规律阻断流量* 如果检测到某应用程序的异常流量通信杀毒软件扼制程序运行* 入侵检测能够发现攻击行为并且告知防火墙让防火墙将攻击报文拒之门外。两者联动* IDS不一定跟防火墙联动有一定滞后性比如发现流量异常给管理员发送警告或者仅仅弹窗提醒。* HIDS 主机入侵检测系统* NIDS 网络入侵检测系统* 蜜罐honeypot* 伪装* 入侵防御系统(*IPS*: Intrusion Prevention System)* 入侵防御系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的[计算机网络安全](https://baike.baidu.com/item/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/6357)设备能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。* iptables* iptables是内核中的防火墙么不是但防火墙一般是内核中实现的功能那iptables到底什么实现原理* iptables全称其实叫iptables/netfilter* framworknetfilter-内核态hook钩子在网络流经关键位置。有钩子能够把报文捕获但是没有规则规则在哪里但是规则必须符合规则并且放到恰当hook钩子的位置才能正常工作。* netfilter是内核中本身实现的框架。也就hook默认就是存在的但是没有启用规则默认都是放行。* 只要os在运行内核就必然运行一旦把规则设定那么hook必然开始匹配也就是说匹配规则需要从用户态流经内核态。但是内核一般是动态运行也就是说在内存中它的规则也必然出于内核态的内存的某个角落所以一旦重启系统规则就没了但是如果设定了脚本那么开机启动时候通过脚本* 那么iptables的五个关键位置具体在哪里你大致猜一下会在哪里规则即使要把钩子放到五个函数的哪个地方。* 限制本机访问别人* 限制别人访问本机* 限制发给第三者的包我要不要帮忙传递* 这五个钩子在iptables成为链chain * iptables功能-四个表的作用每一个功能都要通过5个钩子发挥作用。* filter过滤防火墙* nat网络地址转换network address translation。* mangle除了地址可以转换之外其他部分都可以转换。它的作用就是拆分报文作出修改然后再次包装发送。* raw属于nat的补充作用在于关闭nat表上启用的链接追踪机制。一般NAT都要启用链接追踪不然会产生问题。raw用的比较少。链接追踪其实是个非常有用的功能。* **链接追踪的作用**能够识别先前的访问者如果想要追踪每一个链接怎么办你就需要建立一个非常庞大的追踪表才可以* 典型的例子就是老顾客你怎么识别老顾客 **老顾客与狗不得入内*** 要想追踪链接你就需要记下来记下来肯定需要消耗内存空间。因为数据量庞大会造成内存溢出。对于非常繁忙的服务器链接追踪是万万不能开启。不得不启用则必须提供足够大的内存才行。* 五条链的作用。链内置* PREROUTING路由之前* INPUT本机接收到的* FORWARD本机转发* OUTPUT本机发出的* POSTROUTING第二次路由决策作出处理* REROUTING和POSTROUGING跟网卡没有关系他们只是TCP/IP协议栈上的功能可以是任意网卡* 四个功能五个表每一个链会构成一个规则。* 流入PREROUTING -- INPUT* 流出OUTPUT ---POSTROUTING* 转发PREROUTING -- FORWARD -- POSTROUTING* 各功能的分别实现。**你要用的时候首先应该详情用在哪个表以及对应表的所在链上*** filterINPUT、FORWARD、OUTPUT* natPREROUTING(DNAT)、OUTPUT、POSTROUGING(SNAT)* manglePREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING* rawPREROUTING 、OUTPUT* 路由发生的时刻* 报文进入本机后* 判断目标主机* 报文发出之前* 判断经由哪个接口送往下一跳* iptables* 四表五链* raw、mangle、nat、filter* REROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD* 添加规则时考量点* 要实现那种功能判断添加到哪张表* 报文流经的路径判断添加到哪个链上* 链上规则的次序即为检查的次序因此隐含一定的法则1. 同类规则访问同一种应用匹配范围小的放上面。越优先匹配的越前不至于到最后才匹配2. 不同类规则访问不同应用访问频率大的匹配到报文频率较大的放上面3. 设置默认策略* 白名单 - 建议* 黑名单4. 可有一条规则描述的多条规则合并为一个规则5. 如果用不到应该关闭链接追踪功能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cn8SsTwX-1690331400391)(assets/1548066786404.png)]* 数据包过滤匹配流程* 过滤优先级是既定的* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wy30COc1-1690331400391)(assets/1548066888866.png)]* 既定优先级raw,mangle,nat,filter* 规则,真正发挥作用的地方* 组成部分* 报文的匹配条件* 匹配条件?根据协议报文特征指定* 基本匹配条件* 源IP/目的IP* 源端口/目标端口* 扩展匹配条件* 匹配到之后的处理动作* 处理动作?* 内建处理机制* DROP* ACCEPT* REJECT* 自定义处理机制* 注意报文不会经过自定义链只能在内置链上通过规则进行引用后生效
iptables 包过滤型的防火墙
Firewall防火墙隔离工具工作于主机或网络边缘对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测对于能够被规则匹配到的报文作出相应处理的组件主机防火墙网络防火墙软件防火墙软件逻辑硬件防火墙硬件和软件逻辑ipfw (firewall framework)
ipchains (firewall framework)iptables(netfilter)netfilterkerneliptablesrules untilhook functioninputoutputforwardpreroutingpostrouting链内置PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING功能filter过滤防火墙natnetwork address translation用于修改源IP或目标IP也可以改端口mangle拆解报文做出修改并重新封装起来raw关闭nat表上启用的连接追踪机制功能--链rawPREROUTING OUTPUTmanglePREROUTINGINPUTFORWARDOUTPUTPOSTROUTINGnatPREROUTING[INPUT]OUTPUTPOSTROUTINGfilterINPUTFORWARDOUTPUT报文流向流入本机PREROUTING -- INPUT由本机流出OUTPUT -- POSTROUTING转发PREROUTING -- FORWARD -- POSTROUTING路由功能发生的时刻报文进入本机后判断目标主机是报文离开本机之前判断经由哪个接口送往下一站
iptables/netfilter规则组成部分根据规则匹配条件来尝试匹配报文一旦匹配成功就由规则定义的处理动作作出处理匹配条件基本匹配条件扩展匹配条件处理动作基本处理动作扩展处理动作自定义处理机制iptables的链内置链和自定义链内置链对应于hook function自定义链接用于内置链的扩展和补充可实现更灵活的规则管理机制添加规则时的考量点(1) 要实现哪种功能判断添加到哪个表上(2) 报文流经的路径判断添加到哪个链上链链上的规则次序即为检查的次序因此隐含一定的应用法则(1) 同类规则访问同一应用匹配范围小的放上面(2) 不同类的规则访问不同应用匹配到报文频率较大的放在上面(3) 将那些可由一条规则描述的多个规则合并起来(4) 设置默认策略iptables命令iptables [-t table] {-A|-C|-D} chain rule-specificationiptables [-t table] -I chain [rulenum] rule-specificationiptables [-t table] -R chain rulenum rule-specificationiptables [-t table] -D chain rulenumiptables [-t table] -S [chain [rulenum]]iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]iptables [-t table] -N chainiptables [-t table] -X [chain]iptables [-t table] -P chain targetiptables [-t table] -E old-chain-name new-chain-namerule-specification [matches...] [target]match -m matchname [per-match-options]target -j targetname [per-target-options]规则格式iptables [-t table] COMMAND chain [-m matchname [per-match-options]] -j targetname [per-target-options]-t tableraw, mangle, nat, [filter]COMMAND链管理-Nnew, 自定义一条新的规则链-X delete删除自定义的规则链-PPolicy设置默认策略对filter表中的链而言其默认策略有ACCEPT接受DROP丢弃REJECT拒绝-E重命名自定义链引用计数不为0的自定义链不能够被重命名也不能被删除规则管理-Aappend追加-Iinsert, 插入要指明位置省略时表示第一条-Ddelete删除(1) 指明规则序号(2) 指明规则本身-Rreplace替换指定链上的指定规则-Fflush清空指定的规则链-Zzero置零iptables的每条规则都有两个计数器(1) 匹配到的报文的个数(2) 匹配到的所有报文的大小之和 查看-Llist, 列出指定鏈上的所有规则-nnumberic以数字格式显示地址和端口号-vverbose详细信息-vv, -vvv-xexactly显示计数器结果的精确值--line-numbers显示规则的序号chainPREROUTINGINPUTFORWARDOUTPUTPOSTROUTING匹配条件基本匹配条件无需加载任何模块由iptables/netfilter自行提供[!] -s, --source address[/mask][,...]检查报文中的源IP地址是否符合此处指定的地址或范围[!] -d, --destination address[/mask][,...]检查报文中的目标IP地址是否符合此处指定的地址或范围[!] -p, --protocol protocolprotocol: tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh or all{tcp|udp|icmp}[!] -i, --in-interface name数据报文流入的接口只能应用于数据报文流入的环节只能应用于PREROUTINGINPUT和FORWARD链[!] -o, --out-interface name数据报文流出的接口只能应用于数据报文流出的环节只能应用于FORWARD、OUTPUT和POSTROUTING链 扩展匹配条件 需要加载扩展模块方可生效隐式扩展不需要手动加载扩展模块因为它们是对协议的扩展所以但凡使用-p指明了协议就表示已经指明了要扩展的模块tcp[!] --source-port, --sport port[:port]匹配报文的源端口可以是端口范围[!] --destination-port,--dport port[:port]匹配报文的目标端口可以是端口范围[!] --tcp-flags mask compmask is the flags which we should examine, written as a comma-separated list例如 SYN,ACK,FIN,RSTcomp is a comma-separated list of flags which must be set例如SYN例如“--tcp-flags SYN,ACK,FIN,RST SYN”表示要检查的标志位为SYN,ACK,FIN,RST四个其中SYN必须为1余下的必须为0[!] --syn用于匹配第一次握手相当于”--tcp-flags SYN,ACK,FIN,RST SYN“ udp[!] --source-port, --sport port[:port]匹配报文的源端口可以是端口范围[!] --destination-port,--dport port[:port]匹配报文的目标端口可以是端口范围icmp[!] --icmp-type {type[/code]|typename}echo-request8echo-reply0显式扩展必须要手动加载扩展模块 [-m matchname [per-match-options]] 处理动作-j targetname [per-target-options]ACCEPTDROPREJECTRETURN返回调用链REDIRECT端口重定向LOG记录日志MARK做防火墙标记DNAT目标地址转换SNAT源地址转换MASQUERADE地址伪装...自定义链防火墙服务CentOS 6service iptables {start|stop|restart|status}start读取事先保存的规则并应用到netfilter上stop清空netfilter上的规则以及还原默认策略等status显示生效的规则restart清空netfilter上的规则再读取事先保存的规则并应用到netfilter上默认的规则文件/etc/sysconfig/iptablesCentOS 7systemctl start|stop|restart|status firewalld.servicesystemctl disable firewalld.servicesystemctl stop firewalld.service 课后作业开放本机web服务器给非192.168.0.0/24网络中的主机访问禁止本机被非172.16.0.0/16网络中的主机进行ping请求开放本机的dns服务给所有主机