上海市普陀区建设规划局网站长沙如何优化排名

bicheng/2026/1/23 10:24:53/文章来源:
上海市普陀区建设规划局网站,长沙如何优化排名,wordpress建淘宝客,网站建设 网站制作目录 一、防火墙基本认识 1. 安全技术 2. 防火墙分类 3. 防火墙工具介绍 二、iptables 1. 概述 2. 五表五链 3. 语法 3.1 基本语法 3.2 语法总结 4. 管理选项 5. 通用匹配 6. 控制类型 7. iptables应用 7.1 新增防火墙规则 7.2 查看规则表 7.3 黑白名单 7.4 …目录 一、防火墙基本认识 1. 安全技术 2. 防火墙分类 3. 防火墙工具介绍 二、iptables 1. 概述 2. 五表五链 3. 语法 3.1 基本语法 3.2 语法总结 4. 管理选项 5. 通用匹配 6. 控制类型 7. iptables应用 7.1 新增防火墙规则 7.2 查看规则表 7.3 黑白名单 7.4 替换、删除、清空规则 7.5 设置默认策略 8. 自定义链  8.1 创建自定义链 8.2 改名  8.3 自定义链添加规则 8.4 使用自定义链 8.5 删除自定义链  9. 隐含扩展模块 9.1 TCP模块 9.2 ICMP模块 10. 显示扩展模块 10.1 multiport扩展混合端口 10.2 iprange扩展 10.3 mac地址 10.4 string 字符串 10.5 time模块 10.6 connlimit扩展  10.7 limit模块限制流量 10.8 state模块 一、防火墙基本认识 1. 安全技术 ① 入侵检测系统Intrusion Detection Systems特点是不阻断任何网络访问量化、定位来自内外网络的威胁情况主要以提供报警和事后监督为主提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署默默的看着你方式。 ② 入侵防御系统Intrusion Prevention System以透明模式工作分析数据包的内容如溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断在判定为攻击行为后立即予以 阻断主动而有效的保护网络的安全一般采用在线部署方式必经之路。 ③ 防火墙 FireWall 隔离功能工作在网络或主机边缘对进出网络或主机的数据包基于一定的规则检查并在匹配某规则时由规则定义的行为进行处理的一组功能的组件基本上的实现都是默 认情况下关闭所有的通过型访问只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中。 ④ 防水墙Waterwall与防火墙相对是一种防止内部信息泄漏的安全产品。   网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径在事前、事  中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系。 2. 防火墙分类 按保护范围划分 主机防火墙服务范围为当前一台主机网络防火墙服务范围为防火墙一侧的局域网 按实现方式划分 硬件防火墙在专用硬件级别实现部分功能的防火墙另一个部分功能基于软件实现如华为 山石hillstone,天融信启明星辰绿盟深信服, PaloAlto , fortinet, Cisco, Checkpoint NetScreen(Juniper2004年40亿美元收购)等软件防火墙运行于通用硬件平台之上的防火墙的应用软件Windows 防火墙 ISA -- Forefront 按网络协议划分 网络层防火墙OSI模型下四层又称为包过滤防火墙应用层防火墙/代理服务器proxy 代理网关OSI模型七层 3. 防火墙工具介绍 ① iptablesiptables是Linux中最常用的防火墙工具之一。它基于内核的Netfilter框架可以配置规则集来过滤、转发和修改网络数据包。iptables提供了广泛的功能和灵活性可以根据源IP地址、目标IP地址、端口号等多个参数进行过滤。 ② firewalldfirewalld是Red Hat系列Linux发行版中默认的防火墙管理工具。它使用了D-Bus接口和动态防火墙规则支持更高级的网络配置。firewalld通过定义“区域”和“服务”来管理网络连接并且可以实时更新规则而无需重启防火墙。 ③ nftablesnftables是Netfilter框架的下一代替代品。它提供了更简洁和高效的语法支持类似于iptables的过滤、NAT和连接跟踪功能。nftables的目标是取代iptables并提供更好的性能和可扩展性。 二、iptables 1. 概述 属于“用户态”(User Space 又称为用户空间)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序它使插入、修改和删除数据包过滤表中的规则变得容易通常位于/sbin/iptables目录下。 netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙其中内置了raw、mangle、 nat和filter四个规则表。表中所有规则配置后立即生效不需要重启服务。 2. 五表五链 iptables由五个表table和五个链chain以及一些规则组成。表中有链链中有规则。iptables使用表来组织规则链是规则的容器用于按顺序处理数据包。 五个表tablefilter、nat、mangle、raw、security用的较少 raw关闭启用的连接跟踪机制加快封包穿越防火墙速度跟踪数据包mangle修改数据标记位规则表标记数据包natnetwork address translation 地址转换公网和私网的地址转换filter过滤规则表根据预定义的规则过滤符合条件的数据包默认表允许、拒绝security用于强制访问控制MAC网络规则由Linux安全模块如SELinux)实现 (了解) 优先级由高到低的顺序为security --raw--mangle--nat--filter 五个链chaininput、output、forward、postrouting、prerouting input 处理入站数据output处理出站数据forward转发数据prerouting处理路由选择前数据postrouting处理路由选择后数据 内核中数据包的传输过程  ① 当一个数据包进入网卡时数据包首先进入PREROUTING链内核根据数据包目的IP判断是否需要转送出去 ② 如果数据包是进入本机的数据包就会沿着图向下移动到达INPUT链。数据包到达INPUT链后 任何进程都会收到它。本机上运行的程序可以发送数据包这些数据包经过OUTPUT链然后到达 ③ 如果数据包是要转发出去的且内核允许转发数据包就会向右移动经过FORWARD链然后到达POSTROUTING链输出 三种报文流向 流入本机PREROUTING -- INPUT--用户空间进程流出本机用户空间进程 --OUTPUT-- POSTROUTING转发PREROUTING -- FORWARD -- POSTROUTING 3. 语法 3.1 基本语法 iptables [-t 表名] -管理选项 [链表] [通用规则匹配] [-j 控制类型]#不指定默认filter表 3.2 语法总结 4. 管理选项 在使用iptables进行防火墙管理时可以使用各种选项来配置规则、查看规则、添加/删除规则以及保存/加载规则等。以下是一些常用的iptables防火墙管理选项的介绍 管理选项用法示例-A在指定链末尾追加一条 iptables -A INPUT 操作-I在指定链中插入一条新的未指定序号默认作为第一条 iptables -I INPUT 操作-P指定默认规则 iptables -P OUTPUT ACCEPT 操作-D删除 iptables -t nat -D INPUT 2 操作-p服务名称 icmp tcp-R修改、替换某一条规则 iptables -t nat -R INPUT 操作-L查看 iptables -t nat -L 查看-n所有字段以数字形式显示比如任意ip地址是0.0.0.0而不是anywhere比如显示协议端口号而不是服务名 iptables -L -n,iptables -nL,iptables -vnL 查看-v查看时显示更详细信息常跟-L一起使用 查看--line-number规则带编号 iptables -t nat -L -n --line-number /iptables -t nat -L --line-number-F清除链中所有规则 iptables -F 操作-N新加自定义链-X清空自定义链的规则不影响其他链 iptables -X-Z清空链的计数器匹配到的数据包的大小和总和iptables -Z-S看链的所有规则或者某个链的规则/某个具体规则后面跟编号 5. 通用匹配 直接使用不依赖于其他条件或扩展包括网络协议、IP地址、网络接口等条件。 协议匹配: -p协议名地址匹配: -s 源地址、-d目的地址。可以是IP、网段、域名、空(任何地址)接口匹配: -i入站网卡、-o出站网卡   iptables -I INPUT -p icmp -j DROP iptables -A FORWARD ! -p icmp -j ACCEPT #感叹号”!”表示取反 6. 控制类型 对于防火墙数据包的控制类型非常关键直接关系到数据包的放行、封堵及做相应的日志记录等。在 iptables 防火墙体系中最常用的几种控制类型如下 - ACCEPT允许数据包通过- DROP直接丢弃数据包不给出任何回 应信息 - REJECT拒绝数据包通过必要时会给数据发送端一个响应信息- LOG在/var/log/messages 文件中记录日志信息然后将数据包传递给下一条规则- SNAT:修改数据包的源地址- DNAT:修改数据包的目的地址- MASQUERADE:伪装成一个非固定公网IP地址 7. iptables应用 iptables是Linux中最常用的防火墙工具之一它基于内核的Netfilter框架。iptables可以通过配置规则集来过滤、转发和修改网络数据包从而保护计算机系统免受网络攻击。 7.1 新增防火墙规则 添加新的防火墙规则时使用管理选项“-A”、“-I”前者用来追加规则后者用来插入规则。注意-A代表最底部插入-I默认首行插入-I 数字代表插入第数字条。 示例 [rootlocalhost ~]# systemctl stop firewalld.service #需要关闭firewalld.service防火墙服务 [rootlocalhost ~]# iptables -t filter -A INPUT -p icmp -j DROP #建立iptables防火墙规则指定filter规则表添加INPUT链规则规定icmp协议控制拒绝即拒绝来自任意主机的icmp包禁止ping本机这里省略了-s 源地址也就是所有。 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.101 -p tcp --dport 22 -j ACCEPT #允许来自192.168.192.168主机访问本机的22端口这里省略了-t filter不指定认filter表。[rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 19 packets, 1156 bytes)pkts bytes target prot opt in out source destination 0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 192.168.190.101 0.0.0.0/0 tcp dpt:22 [rootlocalhost ~]# iptables -I INPUT 2 -s 192.168.190.101 -j ACCEPT #在链表第条二插入规则 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 8 packets, 488 bytes)pkts bytes target prot opt in out source destination 0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.190.101 0.0.0.0/0 0 0 ACCEPT tcp -- * * 192.168.190.101 0.0.0.0/0 tcp dpt:227.2 查看规则表 查看已有的防火墙规则时使用管理选项“-L”结合“--line-numbers”选项还可显示各条规则在链内的顺序号。一般格式如下 iptables [-t表名] -v -n -L [链名] [-- line-numbers] -v详细信息-n规则-L 规则列表 注意L必须写在最后  示例 [rootlocalhost ~]# iptables -vnL #查看全部规则 Chain INPUT (policy ACCEPT 367 packets, 27100 bytes)pkts bytes target prot opt in out source destination 0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 192.168.190.100 0.0.0.0/0 tcp dpt:22Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 247 packets, 25974 bytes)pkts bytes target prot opt in out source destination [rootlocalhost ~]# iptables -t filter -vnL INPUT 2 #指定查看filter表INPUT链第二条规则0 0 ACCEPT tcp -- * * 192.168.190.100 0.0.0.0/0 tcp dpt:22[rootlocalhost ~]# iptables -vnL --line-numbers #查看filter表INPUT链规则编号 Chain INPUT (policy ACCEPT 38 packets, 2220 bytes) num pkts bytes target prot opt in out source destination 1 0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 2 0 0 ACCEPT tcp -- * * 192.168.190.100 0.0.0.0/0 7.3 黑白名单 在iptables防火墙中可以使用黑名单和白名单来控制网络流量的访问权限。黑名单和白名单是两种不同的策略用于指定哪些IP地址或IP地址段被允许或禁止通过防火墙。 ① 黑名单默认全部允许通过添加谁才不允许谁通过。 ② 白名单默认全部不允许通过添加谁允许谁通过。 如何制作白名单提高安全性且不影响使用iptables -F命令 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.1 -j ACCEPT [rootlocalhost ~]# iptables -A INPUT -j DROP [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 29 1716 ACCEPT all -- * * 192.168.190.1 0.0.0.0/0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 13 packets, 1000 bytes)pkts bytes target prot opt in out source destination #在最后加入一条拒绝所有入站数据的规则注意需要在拒绝所有入站数据规则前加上自己想要访问地址的规则。最后一条规则在这里可以实现既是白名单也是黑名单。 7.4 替换、删除、清空规则 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 10 packets, 612 bytes)pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 192.168.190.101 0.0.0.0/0 0 0 DROP all -- * * 192.168.190.102 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.190.102 0.0.0.0/0 [rootlocalhost ~]# iptables -R INPUT 3 -s 192.168.190.102 -j DROP #修改、替换某一条规则需要在链后指定序号 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 8 packets, 488 bytes)pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 192.168.190.101 0.0.0.0/0 0 0 DROP all -- * * 192.168.190.102 0.0.0.0/0 0 0 DROP all -- * * 192.168.190.102 0.0.0.0/0 [rootlocalhost ~]# iptables -D INPUT -s 192.168.190.102 -j DROP #按内容删除若遇到内容相同的规则默认删除序号最小的那条 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 8 packets, 488 bytes)pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 192.168.190.101 0.0.0.0/0 0 0 DROP all -- * * 192.168.190.102 0.0.0.0/0 [rootlocalhost ~]# iptables -D INPUT 2 #按编号删除 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 10 packets, 612 bytes)pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 192.168.190.101 0.0.0.0/0 [rootlocalhost ~]# iptables -F #清空filter规则 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 6 packets, 364 bytes)pkts bytes target prot opt in out source destination 清空指定链或表中的所有防火墙规则使用管理选项“-F”。例如若要清空 filter 表 INPUTiptables -F INPUT即可。 注意 若规则列表中有多条相同的规则时按内容匹配只删除的序号最小的一条按号码匹配删除时确保规则号码小于等于已有规则数否则报错按内容匹配删数时确保规则存在否则报错 7.5 设置默认策略 iptables 的各条链中默认策略是规则匹配的最后一个环节——当找不到任何一条能够匹配数据包的规则时则执行默认策略。默认策略的控制类型为 ACCEPT允许、DROP丢弃两种。 [rootlocalhost ~]# iptables -P INPUT DROP #默认清除所有规则输入后没显示无法远程连接因为INPUT链只剩下DROP默认拒绝所有 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.1 -p tcp -j ACCEPT #添加远程访问规则 [rootlocalhost ~]# iptables -vnL Chain INPUT (policy DROP 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 50 5302 ACCEPT tcp -- * * 192.168.190.1 0.0.0.0/0 设置回环网卡允许访问规则可以连通本机所有网卡 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.1 -j ACCEPT [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.0/24 -j REJECT [rootlocalhost ~]# iptables -A INPUT -s 172.19.8.0/24 -j REJECT [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 249 18736 ACCEPT all -- * * 192.168.190.1 0.0.0.0/0 0 0 REJECT all -- * * 192.168.190.0/24 0.0.0.0/0 reject-with icmp-port-unreachable0 0 REJECT all -- * * 172.19.8.0/24 0.0.0.0/0 reject-with icmp-port-unreachable测试连通性无法ping通 [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. [rootlocalhost ~]# ping 172.19.8.211 PING 172.19.8.211 (172.19.8.211) 56(84) bytes of data.添加允许流量进入本机回环网卡并测试连通性 [rootlocalhost ~]# iptables -I INPUT 2 -i lo -j ACCEPT [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. 64 bytes from 192.168.190.100: icmp_seq1 ttl64 time0.035 ms [rootlocalhost ~]# ping 172.19.8.211 PING 172.19.8.211 (172.19.8.211) 56(84) bytes of data. 64 bytes from 172.19.8.211: icmp_seq1 ttl64 time0.038 ms8. 自定义链  自定义链是iptables中的一种功能它允许用户创建自己的链来组织和管理规则。自定义链可以帮助简化规则集使其更易于管理。通过将相关规则放入一个自定义链中可以提高可读性并降低错误发生的可能性。此外自定义链还可以在多个规则之间共享相同的操作从而减少冗余。 8.1 创建自定义链 格式 iptables -N CUSTOM_CHAIN_NAME 示例 [rootlocalhost ~]# iptables -N web [rootlocalhost ~]# iptables -vnL Chain web (0 references)pkts bytes target prot opt in out source destination 8.2 改名  [rootlocalhost ~]# iptables -E web WEB [rootlocalhost ~]# iptables -vnL Chain WEB (0 references)pkts bytes target prot opt in out source destination 8.3 自定义链添加规则 [rootlocalhost ~]# iptables -A WEB -p tcp -m multiport --dport 80,443 -j ACCEPT [rootlocalhost ~]# iptables -A WEB -p tcp --dport 8080 -j ACCEPT [rootlocalhost ~]# iptables -vnL Chain WEB (0 references)pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,4430 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80808.4 使用自定义链 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.101 -j WEB [rootlocalhost ~]# iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination0 0 WEB all -- * * 192.168.190.101 0.0.0.0/0 8.5 删除自定义链  [rootlocalhost ~]# iptables -X WEB 9. 隐含扩展模块 iptables防火墙中的隐含扩展是指一些特殊的扩展模块它们不需要显式加载而是隐含在iptables中。这些隐含扩展包括一些常见的功能如状态跟踪state tracking、网络地址转换Network Address TranslationNAT和数据包过滤等。 iptables 在使用-p选项指明了特定的协议时无需再用-m选项指明扩展模块的扩展机制不需要手动加载扩展模块。要求以特定的协议匹配作为前提包括端口、TCP标记、ICMP类型等条件。 端口匹配: --sport 源端口、--dport 目的端口可以是个别端口、端口范围。 9.1 TCP模块 TCP模块允许iptables根据TCP连接的状态进行过滤和处理。 端口号  [!] --source-port, --sport port[:port]匹配报文源端口,可为端口连续范围 [!] --destination-port,--dport port[:port]匹配报文目标端口,可为连续范围 --sport  指明源端口使用格式 --sport  端口或 端口1端口2(端口1到端口2的连续端口范围指定)。 [rootlocalhost ~]#iptables -A INPUT -p tcp --sport 10000:30000 -j REJECT #端口10000到30000全部拒绝 --dport  指明目的端口使用格式 --dport  端口或 端口1端口2(端口1到端口2的连续端口范围指定)。  [rootlocalhost ~]# iptables -A INPUT -p -s 192.168.190.0/24 --dport 80 -j ACCEPT #允许192.168.91段访问80端口 示例拒绝目标端口为80的tcp协议流量 192.168.19.100 [rootlocalhost ~]# iptables -t filter -A INPUT -m tcp -p tcp --dport 80 -j REJECT #拒绝所有目标端口为80的TCP协议数据包的输入流量并且该规则适用于filter表。协议名和模块名重复这里- m模块可以省略。192.168.190.101 [rootlocalhost ~]# curl 192.168.190.100:80 curl: (7) Failed connect to 192.168.190.100:80; 拒绝连接 [rootlocalhost ~]# ssh root192.168.190.100 The authenticity of host 192.168.190.100 (192.168.190.100) cant be established. ECDSA key fingerprint is SHA256:68qeJTs9OwWCvFNtomXsQvrfbno8F3moR0oliq7QU. ECDSA key fingerprint is MD5:3b:d2:42:d9:c3:03:ba:ac:18:2c:e0:03:a3:c7:bd:ba. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 192.168.190.100 (ECDSA) to the list of known hosts. root192.168.190.100s password: Last login: Sat Feb 3 22:51:26 2024 from 192.168.190.100 示例拒绝ip192.168.190.101目标端口为20到80的tcp协议流量 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -p tcp --dport 22:80 -s 192.168.190.101 -j REJECT ##拒绝192.168.190.101目标端口为20到80的TCP协议数据包的输入流量192.168.190.101 [rootlocalhost ~]# curl 192.168.190.100:80 curl: (7) Failed connect to 192.168.190.100:80; 拒绝连接 [rootlocalhost ~]# ssh root192.168.190.100 ssh: connect to host 192.168.190.100 port 22: Connection refused #ssh协议用的是22端口这里拒绝了22-80所有的端口注意--sport和--dport 必须配合-p 协议类型使用   握手连接  [!] --tcp-flags mask comp   mask 需检查的标志位列表用,分隔 , 例如 SYN,ACK,FIN,RST   comp 在mask列表中必须为1的标志位列表无指定则必须为0用,分隔tcp协议的扩展选项 --tcp-flags SYN,ACK,FIN,RST SYN #表示要检查的标志位为SYN,ACK,FIN,RST四个其中SYN必须为1余下的必须为0第一次握手 --tcp-flags FIN,RST SYN,ACK #第二次握手 --tcp-flags ALL ALL   //6给位置全为1不可能 --tcp_flags ALL NONE //6给位置全为0不可能 #错误包代表流量有问题--syn用于匹配第一次握手相当于--tcp-flags SYN,ACK,FIN,RST SYN 示例拒绝第一次握手即无法建立tcp连接 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -s 192.168.190.101 -j REJECT #拒绝三次握手第一次握手即拒绝所有tcp协议的连接192.168.190.101 [rootlocalhost ~]# curl 192.168.190.100:80 curl: (7) Failed connect to 192.168.190.100:80; 拒绝连接 [rootlocalhost ~]# ssh root192.168.190.100 ssh: connect to host 192.168.190.100 port 22: Connection refused9.2 ICMP模块 ICMP模块允许iptables根据ICMP协议的类型和代码进行过滤和处理。 类型匹配--icmp-type ICMP类型 可以是字符串、数字代码 Echo- Request (代码为8)表示请求 Echo- Reply (代码为0)表示回复 Dest ination-Unreachable (代码为3)表示目标不可达 关于其它可用的ICMP协议类型可以执行“iptables -p icmp -h”命令查看帮助信息  示例192.168.190.100可以单向ping通192.168.190.101 思路100ping101100发送8包101发送0包反之101发送8包100发送0包。这里只需要禁止来自101的8包即可达到目标。 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.101 -p icmp --icmp-type 8 -j REJECT #拒绝源地址192.168.190.100的icmp协议类型为8的包 [rootlocalhost ~]# ping 192.168.190.101 PING 192.168.190.101 (192.168.190.101) 56(84) bytes of data. 64 bytes from 192.168.190.101: icmp_seq1 ttl64 time0.727 ms 64 bytes from 192.168.190.101: icmp_seq2 ttl64 time1.35 ms 64 bytes from 192.168.190.101: icmp_seq3 ttl64 time1.05 ms192.168.190.101 [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. From 192.168.190.100 icmp_seq1 Destination Port Unreachable From 192.168.190.100 icmp_seq2 Destination Port Unreachable From 192.168.190.100 icmp_seq3 Destination Port Unreachable 当然也可以禁止100OUTPUT0包实现目标 191.168.190.100 [rootlocalhost ~]# iptables -A OUTPUT -d 192.168.190.101 -p icmp --icmp-type 0 -j REJECT #禁止给目标地址发送icmp协议类型为0的包 [rootlocalhost ~]# ping 192.168.190.101 PING 192.168.190.101 (192.168.190.101) 56(84) bytes of data. 64 bytes from 192.168.190.101: icmp_seq1 ttl64 time0.861 ms 64 bytes from 192.168.190.101: icmp_seq2 ttl64 time1.99 ms192.168.190.101 [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. 10. 显示扩展模块 显示扩展即必须使用-m选项指明要调用的扩展模块名称需要手动加载扩展模块。 10.1 multiport扩展混合端口 以离散方式定义多端口匹配,最多指定15个端口。 选项  [!] --source-ports,--sports port[,port|,port:port]... #指定多个源端口 逗号隔开 [!] --destination-ports,--dports port[,port|,port:port]... # 指定多个目标端口 逗号隔开 [!] --ports port[,port|,port:port]... #多个源或目标端 示例使用混合模块控制多个端口 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.101 -p tcp -m multiport --dport 22,80 -j REJECT #拒绝来自源地址为192.168.190.101tcp协议multiport混合模块)目的端口为22和80的流量192.168.190.101 [rootlocalhost ~]# ssh root192.168.190.100 ssh: connect to host 192.168.190.100 port 22: Connection refused [rootlocalhost ~]# curl 192.168.190.100:80 curl: (7) Failed connect to 192.168.190.100:80; 拒绝连接 10.2 iprange扩展 指明连续的但一般不是整个网络ip地址范围。 [!] --src-range from[-to] 源IP地址范围 [!] --dst-range from[-to] 目标IP地址范围 示例拒绝来自192.168.190.101-103所有的流量 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -m iprange --src-range 192.168.190.101-192.168.190.103 -j REJECT 192.168.190.101 [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. From 192.168.190.100 icmp_seq1 Destination Port Unreachable From 192.168.190.100 icmp_seq2 Destination Port Unreachable192.168.190.102 [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. From 192.168.190.100 icmp_seq1 Destination Port Unreachable 10.3 mac地址 mac模块可以指明源MAC地址进行控制。 -m   mac   --mac-source XX:XX:XX:XX:XX:XX    源 示例根据192.168.190.101mac地址控制流量 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:62:c7:6d -j REJECT #拒绝mac地址为00:0c:29:62:c7:6d的所有流量192.168.190.101 [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. From 192.168.190.100 icmp_seq1 Destination Port Unreachable From 192.168.190.100 icmp_seq2 Destination Port Unreachable [rootlocalhost ~]# curl 192.168.190.100:80 curl: (7) Failed connect to 192.168.190.100:80; 拒绝连接 [rootlocalhost ~]# ssh root192.168.190.100 ssh: connect to host 192.168.190.100 port 22: Connection refused 10.4 string 字符串 对报文中的应用层数据做字符串模式匹配检测。 选项  --algo {bm|kmp} 字符串匹配检测算法  bmBoyer-Moore           算法  kmpKnuth-Pratt-Morris   算法 --from offset 开始查询的地方 --to offset   结束查询的地方 [!] --string pattern 要检测的字符串模式 [!] --hex-string pattern要检测字符串模式16进制格式 mac ip 协议/端口号 62 真 示例 192.168.190.100 [rootlocalhost html]# echo www.baidu.com /var/www/html/baidu.html [rootlocalhost html]# echo www.bilibili.com /var/www/html/bilibili.html 192.168.190.101 [rootlocalhost ~]# curl 192.168.190.100/baidu.html www.baidu.com [rootlocalhost ~]# curl 192.168.190.100/bilibili.html www.bilibili.com192.168.190.100 [rootlocalhost html]# iptables -A OUTPUT -p tcp --sport 80 -m string --algo bm --from 62 --string bilibili -j REJECT #http协议即tcp协议源端口为80使用字符模块利用bm算法从第62个字节开始检查字符串为bilibili #注意请求的包不带字符回复的包带字符所以要output192.168.190.101 [rootlocalhost ~]# curl 192.168.190.100/baidu.html www.baidu.com [rootlocalhost ~]# curl 192.168.190.100/bilibili.html ^C10.5 time模块 iptables防火墙中的time模块允许您根据当前时间来匹配数据包。这个模块通常用于实现基于时间的访问控制比如只允许在特定时间段内访问某些服务或资源。注意这里时间需要使用格林威治时间date -u可以查看。 选项  --datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]] 日期 --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]] --timestart hh:mm[:ss]       时间 --timestop hh:mm[:ss] [!] --monthdays day[,day...]   每个月的几号 [!] --weekdays day[,day...]   星期几1 – 7 分别表示星期一到星期日 --kerneltz内核时区当地时间不建议使用CentOS 7版本以上系统默认为 UTC 注意 centos6 不支持kerneltz --localtz指定本地时区(默认) 192.168.190.100 [rootlocalhost ~]# date -u 2024年 02月 04日 星期日 06:21:31 UTC [rootlocalhost ~]# iptables -A INPUT -p tcp -s 192.168.190.101 --dport 22 -m time --timestart 06:00 --timestop 18:00 --weekdays 6,7 -j REJECT #拒绝源地址192.168.190.101在周末6点到18点访问tcp协议22端口192.1168.190.101 [rootlocalhost ~]# ssh root192.168.190.100 ssh: connect to host 192.168.190.100 port 22: Connection refused 10.6 connlimit扩展  iptables防火墙中的connlimit扩展模块允许您限制连接数以防止某个服务被过多的连接请求所淹没。这个扩展模块通常用于防止DDoS分布式拒绝服务攻击或其他类型的连接泛滥。 选项  --connlimit-upto N #连接的数量小于等于N时匹配 --connlimit-above N #连接的数量大于N时匹配 示例限制tcp协议80端口最大连接数 192.168.190.100 [rootlocalhost ~]# systemctl start httpd [rootlocalhost ~]# iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 2 -j REJECT #针对TCP协议的目标端口80使用connlimit扩展模块限制并发连接数不超过2个并且对超过限制的连接进行拒绝处理。192.168.190.101 [rootlocalhost opt]# gcc flood_connect.c -o flood #编译安装黑客文件 [rootlocalhost opt]# ./flood 192.168.190.100 #运行黑客脚本192.168.190.100 [rootlocalhost ~]# ss -natp | grep 80 LISTEN 0 128 :::80 :::* users:((httpd,pid1877,fd4),(httpd,pid1876,fd4),(httpd,pid1875,fd4),(httpd,pid1874,fd4),(httpd,pid1873,fd4),(httpd,pid1871,fd4)) SYN-RECV 0 0 0:0:200:::80 ::eb47:ba37:ec47:ba37:34884 SYN-RECV 0 0 400::100:0:80 ::80:0:d80:0:34882 192.168.190.101 [rootlocalhost opt]# ./flood 192.168.190.100 Starting flood connect attack on 192.168.190.100 port 80 ^CAborted (made 2 successful connects) #只有两个成功 10.7 limit模块限制流量 iptables防火墙的 limit 模块用于限制特定类型的数据包的数量。它可以用于防止DDoS攻击或限制特定类型的流量。 选项 --limit rate: 指定限制的速率例如--limit 10/minute表示每分钟允许的数据包数量为10个 --limit-burst number: 指定允许的突发连接数例如--limit-burst 5表示允许5个数据包的突发连接 --limit-mode mode: 指定限制模式可选的模式有upstream、downstream和srcip. 默认为srcip表示限制来自单个源IP地址的数据包数量 --limit-upto bytes: 用于限制数据包的大小超出这个大小的数据包将被丢弃 示例限制允许通过包拒绝私有规则组合 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -s 192.168.190.101 -p icmp --icmp-type 8 -m limit --limit 10/minute --limit-burst 5 -j ACCEPT #限制系统接收到的ping请求的数量每分钟不超过10个允许出现最多5个突发连接。超出这个限制的ping请求将被丢弃。 [rootlocalhost ~]# iptables -A INPUT -p icmp -j REJECT #拒绝所有 192.168.190.101长ping101 小结  这两条iptables规则的组合将实现对ICMP (Internet Control Message Protocol) 数据包的限制和拒绝处理。这种组合使用的目的是限制某种类型的ICMP数据包的流量避免可能的滥用或拒绝服务攻击并对超过限制的数据包进行拒绝。同时通过限制和拒绝结合的方式可以灵活地处理不同情况下的ICMP数据包。  10.8 state模块 state模块是iptables防火墙中的一个重要模块它用于根据连接的状态进行过滤和处理规则。它根据数据包的状态如新建、已建立、相关、无效来确定是否接受、拒绝或进一步处理数据包。 格式 -m state --state state1,state2,... 在上面的格式中state1,state2,... 是一个逗号分隔的连接状态列表用于指定要匹配的连接状态。实现功能老用户可以访问新用户不可以访问 iptables -AINPUT -m state --state ESTABLISHED -j ACCEPT #已在ping的可以继续ping停了也不可以通了xshell也不可以再连 iptables -AINPUT -m state --state NEW -j REJET #新用户拒绝 状态类型 NEW新发出请求连接追踪信息库中不存在此连接的相关信息条目因此将其识别为第一次发出的请求ESTABLISHEDNEW状态之后连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态RELATED新发起的但与已有连接相关联的连接如ftp协议中的数据连接与命令连接之间的关系INVALID无效的连接如flag标记不正确UNTRACKED未进行追踪的连接如raw表中关闭追踪 常用选项介绍 --state指定要匹配的连接状态列表如--state NEW,ESTABLISHED --ctstate与--state选项类似用于指定要匹配的连接状态列表。与--state选项不同的是--ctstate选项允许更精确的匹配特别在使用连接跟踪模块来管理连接状态时非常有用。例如--ctstate NEW,ESTABLISHED表示仅匹配连接跟踪状态为新建或已建立的数据包 --state INVALID匹配无效的数据包这些数据包不符合协议规范或防火墙状态跟踪出错 --state NEW匹配新建的连接请求数据包 --state ESTABLISHED匹配已建立的连接属于已通过的数据包 --state RELATED匹配与已建立的连接相关的数据包。例如FTP的数据传输就属于相关的数据包  示例 192.168.190.100 [rootlocalhost ~]# iptables -A INPUT -p icmp -s 192.168.190.101 -m state --state NEW -j ACCEPT [rootlocalhost ~]# iptables -A INPUT -p icmp -m state --state NEW -j DROP #允许来自IP地址为192.168.1.100的源IP的TCP连接请求通过同时拒绝其他任何新建连接的TCP数据包。192.168.190.101: [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. 64 bytes from 192.168.190.100: icmp_seq1 ttl64 time0.710 ms 64 bytes from 192.168.190.100: icmp_seq2 ttl64 time1.36 ms192.168.190.102: [rootlocalhost ~]# ping 192.168.190.100 PING 192.168.190.100 (192.168.190.100) 56(84) bytes of data. ^C --- 192.168.190.100 ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 4001ms

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进入网站后台ftp空间后怎样上传wordpress建的网站吗

1 花盆 是高度比较低的盆,只有一个下2;上面分两个 1 2 盆边缘颜色深,上面靠近外面的颜色浅,正面颜色稍微深一点,画两条竖的浅色线,作为装饰 2 花盆中的沙石 沙子颜色深一点,中间有浅一点的线…

全球网站排名查询网做选择网站

GPIO控制-外部中断 文章目录 GPIO控制-外部中断1、CH32V307中断介绍2、GPIO外部中断相关API3、外部中断使用代码实现CH32V3x 系列内置可编程快速中断控制器(PFIC– Programmable Fast Interrupt Controller),最多支持255 个中断向量。当前系统管理了88 个外设中断通道和8 个…

网站开发适合女生不网络架构方案规划设计和实施

目录 前言: 1.HTTPS协议理论 1.1协议概念 1.2加密 2.两类加密 2.1对称加密 2.2非对称加密 3.引入“证书” 3.1证书概念 3.2数据证书内容 3.3数据签名 4.总结 前言: 了解完HTTP协议后,HTTPS协议是HTTP协议的升级加强版&#xff0c…

做一款网站万站霸屏

文章目录 【Oracle】如何给物化视图分区给物化视图进行分区的例 【声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) 收集Oracle数据库内存相关的信息 【Oracle】ORA-32017和ORA-00384错误处理 【Oracle】设置…

淘宝导购网站源码学校网站建设配套制度

完美撤离!暗区突围测试资格获取指南 超简单的暗区突围资格申请! 最近游戏圈关注度最高的一件事莫过于暗区突围国际服的上线,随着暗区突围PC端的上线,这款游戏的测试资格申请成为了玩家们心头的一个大问题,许多玩家爱不…

网站建设怎么做呢计算机网站建设教程

首先,单例模式分为饿汉模式和懒汉模式 单例模式有什么用呢? 可以保证在程序运行过程中,一个类只有一个实例,而且该实例易于供外界访问,从而方便的控制了实例个数,并节约系统资源。 例如:DataSource&#x…

大连企业网站模板北京网络营销公司哪家好

2019国考成绩要出来了不?2019国考成绩何时出来?现在已是1月中旬,许多考生对于自己的国考笔试成绩都非常期待,而最近风声四起,搞得考生们人心慌慌,那么2019国考成绩要出来了不?现在我们一起来分析…

东莞微网站制作公司有的网站域名解析错误

Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了。本节将主要讲解在Xamarin Studio中如何进行工程的创建以及编写代码等内容XamariniOS编写第一个应用程序创建工程本文选自Xamarin iOS开发实战大学霸。 1.3.…

电子商务网站建设课设学生体会网站推广赚钱吗

怎样区分好用的特征 避免无意义的信息避免重复性的信息避免复杂的信息 激活函数的选择 浅层神经网络,可以随便尝试各种激活函数 深层神经网络,不可随机选择各种激活函数,这涉及到梯度爆炸和梯度消失。(给出梯度爆炸和梯度消失的…

到国外建网站自动点击器安卓

键盘输入一组人员的姓名、性别、年龄等信息,信息间采用空格分隔,每人一行,空行回车结束录入,示例格式如下: 张三 男 23 李四 女 21 王五 男 18 计算并输出这组人员的平均年龄(保留2位小数)和其中男性人数,格式如下: 平…

张家口网站建设网站logo一般多大

一、几何校正 1、概念 是指消除或改正遥感影像几何误差的过程;

检查网站是否做301宁波网站推广营销

现象非常的奇特,电脑ping手机没问题,用手机的socket调试助手也没问题,手机还能向外连接tcp服务器,但是电脑连手机tcp服务器连不上。更有趣的是,有些手机做tcp服务器可以被连接,有些手机做tcp服务器不能被连…

做网站如何文字链接文字做网站需要多

单片机外部中断的基本原理 STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。那么其中断是怎样实现的呢?其原理就是由GPIO口产生触发信号,通过NVIC中断控制器和EXTI外部中断控制器完成中断响应。使用外部中断可以…

网站二级目录怎么做动态公司网站设计

2024阿里云服务器优惠活动政策整理,阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年,轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,云服务器8核…

电商网站建设开发维护英国跨境电商平台有哪些

从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)_ubuntu搭建android编译环境-CSDN博客Android系统编译流程详解(一)-腾讯云开发者社区-腾讯云 (tencent.com) Android系统源码的整编和单编 - schips - 博客园 (cnblogs.com) 修改初始化文件…

领卷网站怎么做温州房产信息网

1.概要 捕获全部线程的异常 试验,最终结果task的异常没有找到捕获方法 2.代码 2.1.试验1 2.1.1 试验结果 2.2 代码 2.2.1主程序代码 using NLog; using System; using System.Threading; using System.Windows.Forms;namespace 异常监控 {static class Program…

站长工具百度百科辽宁鞍山网站建设

lineage-19.1/oneplus6-build.md 修复内核崩溃 经过此两修改后, 编译出的OTA包 刷入手机, 手机重启正常越过logo 进入android, 但卡在LineageOS-19的弧形进度界面, 没有此两修改时, 根本进不到android, 只到开机logo就黑屏 亮呼吸灯 , 串口处于900E(高通ramdump模式), 因此…

中国商业网广州网站优化服务商

1.准备好绿联2.5英寸 2.准备好 SSD 磁盘 3.接入硬盘和盒子 4.win10 电脑 win x 然后选择磁盘管理 (磁盘管理 K) 5.它会提示需要初始化的一个新的磁盘,确定初始化 6.添加卷 7.命名盘符 8.检测是否识别到盘符 9.end

制作网站空间域名蓝色网站配色

自动驾驶辅助功能测试用例表格(续) 用例编号测试类型测试项目测试描述车辆准备车辆状态车辆场景车辆执行可变因素具体信号状态通过标准预期标准通过/失败RSA-001可靠性测试系统重启稳定性测试自动驾驶辅助系统在重启后的稳定性和功能恢复情况系统已安装并配置完成车辆静止状态…

深圳中英文网站建设电销系统外呼软件

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…