虚拟主机域名注册-常见问题 → 服务器知识 → 操作系统 | ||||
Iptables配置三种类型的表,这些表包含有内置的和用户自定义的规则的链,以控制系统上的I/O流量。 FILTER – 这是iptables的默认表。它包含三个链: INPUT – 目的地为本地套接字的网络数据包 OUTPUT – 本地生成的网络数据包 FORWARD – 通过系统路由的网络数据包 NAT –这是网络数据包尝试创建新连接时系统参考的表。它具有以下内置链: PREROUTING – 用于在收到网络数据包后立即对其进行更改 POSTROUTING –用于更改即将出门的网络数据包 OUTPUT – 用于更改本地生成的网络数据包 MANGLE – 这是用于更改网络数据包的表。以前有两个连锁店,但现在有五个: PREROUTING – 用于更改传入的网络数据包 POSTROUTING – 用于更改传出网络数据包 INPUT – 用于传入数据包 OUTPUT – 用于更改本地生成的数据包 FORWARD – 用于通过盒子路由的数据包 本文旨在学习iptables CLI防火墙的用法。您将在此处看到有用的命令,该命令可为您自己的Linux服务器管理和配置iptables防火墙。 例子: 在这里,我们将使用一些使用示例来解释iptables工具,这些示例可以帮助您了解实际情况下的iptables使用。 1、管理iptables防火墙服务 要管理iptables服务,可以使用常规服务命令,该命令用于管理其他Linux服务。 在基于SystemD的Linux发行版上- # systemctl start iptables # systemctl stop iptables # systemctl restart iptables 在基于SysVinit的Linux发行版上- # /etc/init.d/iptables start # /etc/init.d/iptables stop # /etc/init.d/iptables restart 2、检查所有已配置的iptables防火墙规则 您可以使用以下命令检查现有已配置的iptables规则: # iptables -L -n -v 您将获得如下输出: ![]() 还有一个选项可以检查特定表的已配置规则。要检查特定表的规则,请使用“ -t”选项,后跟表名称。例如,要检查NAT表,请使用以下命令: # iptables -t nat -L -v -n 3、阻止iptables防火墙中的特定IP地址 您将有很多方式在iptables防火墙上阻止IP,特别是当我们从IP发现系统上任何异常或滥用行为时,我们就会这样做。 要使用iptables阻止IP地址,请使用以下命令: # iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP 您可以将“ xxx.xxx.xxx.xxx”替换为您的IP地址。您可以使用“ -A”选项将规则附加到所选链的末尾。 有时您需要阻止来自IP的TCP通信,并且可以使用“ -p”选项来指定协议,例如以下命令: # iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP 4、在iptables防火墙中取消阻止IP地址 如果要从iptables规则中删除或取消阻止特定IP,则可以使用以下命令删除阻止规则: # iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP “ -D”选项是从所选链中删除一个或多个规则。您也可以使用“-– delete”代替“ -D”。 5、使用Iptables在特定端口上允许IP地址范围 有时您需要允许特定端口用于特定范围的IP或网络。假设您想允许端口25上的传出连接到网络192.160.5.0/24。 您可以使用以下命令执行此操作: # iptables -A OUTPUT -p tcp -d 192.168.5.0/24 --dport 25 -j ACCEPT 6、使用iptables防火墙阻止社交网站 有时,您可以获得指示,以阻止任何社交媒体网站或办公室或特定系统中的工作网站。 假设我们需要使用iptables防火墙阻止facebook。com(请将com前的。换成.)用于特定系统。您可以使用以下三个步骤阻止facebook。com: ①首先,找到网站的IP地址 要查找facebook。com的IP地址,请使用以下命令。 # host facebook。com facebook。com has address 31.13.80.36 facebook。com has IPv6 address 2a03:2880:f10e:83:face:b00c:0:25de ②查找该网站使用的网络ip范围 要通过facebook.com查找使用的网络范围,请使用以下命令: # whois 31.13.80.36 | grep inetnum inetnum: 31.13.64.0 - 31.13.127.255 在给定IP范围内计算CIDR之后,您将获得31.13.64.0/18。 ③配置iptables规则以阻止IP范围 现在,您可以使用以下iptables命令在系统中阻止查找IP范围: # iptables -A OUTPUT -p tcp --dport xxx -j DROP 7、iptables防火墙上的Blocak特定端口 有时我们需要阻止特定端口上的所有传入或传出流量。当您为Linux服务器进行安全设置时,都必须进行网络安全保护。 您可以使用以下命令来阻止特定端口上的传出连接: # iptables -A OUTPUT -p tcp --dport xxx -j DROP 与上面的命令类似,您可以使用下面的命令来阻止特定端口上的传入连接: # iptables -A INPUT -p tcp --dport xxx -j DROP 在下面给出的两个命令中,应将“xxx”替换为实际端口,如果要阻止UDP流量而不是TCP流量,请将“ TCP”更改为“ UDP” 8、在iptables上允许多个端口 iptables具有编写命令以在单个命令中配置多个端口的功能。要执行此操作,请使用以下命令中所示的多端口。 # iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT # iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT 9、使用iptables配置端口转发 Linux iptables防火墙还支持端口转发,该端口转发功能可将一项服务的流量转发到另一端口。 您可以使用以下命令使用端口转发: # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525 上面的命令将配置一个iptables规则,该规则将从端口25到2525转发网络接口“ eth0”上的所有传入流量。您可以根据需要更改端口。 10、使用iptables阻止HTTP端口上的网络泛洪 有时您会在网络接口上获得连接数,因为IP地址可能会在您的网站或应用程序的Web端口上请求太多连接。这可能会导致您的网站崩溃。您可以通过使用以下命令在iptables防火墙中添加流量控制规则来防止此类问题: # iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT 上面的命令将每分钟传入连接限制为100,并将突发限制为200。您可以根据需要设置限制和突发限制。 11、阻止iptables上的传入ping请求 有时出于安全考虑,我们也会在Linux服务器上阻止ping请求。它不会满足至关重要的安全性要求,但是很好地知道如何进行配置。 要在Linux上阻止ping请求,请使用以下命令: # iptables -A INPUT -p icmp -i eth0 -j DROP 12、允许使用iptables进行回送访问 从IP 127.0.0.1进行的访问称为回送,这是必不可少的,因此我们应始终使用以下命令将其保持活动状态: # iptables -A INPUT -i lo -j ACCEPT # iptables -A OUTPUT -o lo -j ACCEPT 13、将丢弃的数据包的日志保存在iptables上 如果要捕获网络接口“ eth0”上丢弃的数据包的日志,可以通过以下命令进行: # iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:" 您可以根据需要更改“--log-prefix”的值。该日志将捕获在“ / var / log / messages”中,您可以在其中使用以下命令搜索日志: # grep "IPtables dropped packets:" /var/log/messages 14、使用iptables阻止特定的MAC地址访问 使用iptables,可以使用以下命令从特定的MAC地址阻止对系统的访问: # iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP 您可以使用您要阻止的实际MAC地址更改“ 00:00:00:00:00:00”。 15、使用iptables配置每个IP地址的并发连接数 有时您可能想限制传入流量的并发连接。如果要限制来自给定服务或端口上单个IP地址的同时连接,可以使用以下命令进行连接: # iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT 上面的命令仅允许从单个IP到端口22的3个并发连接,在这里您可以更改端口号以配置服务。您也可以根据需要更改“ –connlimit-above”的值。 16、定义新的iptables链 iptables可以灵活地定义或配置链并在其中存储自定义规则。 您可以使用以下命令定义链: # iptables -N custom-filter 现在,您可以使用以下命令检查新过滤器是否在iptables列表中: # iptables -L 您将获得类似以下的输出: ![]() 17、刷新iptables防火墙链或规则 如果要刷新防火墙链,请使用带有“ -F”选项的iptables命令,如下所示: # iptables -F 您可以选择使用“ -t”选项后跟表名从特定表中清除链,类似于以下命令: # iptables -t nat -F 您可以在上面的命令中使用所需表更改要刷新的“ nat”。 18、将iptables规则保存或备份到文件中 有时,您需要在文件中保存或备份已配置的iptable规则,以使用它在其他系统中还原或配置相同的规则。 要将配置的规则保存在文件中,请使用“ iptables-save”命令,如下例所示: # iptables-save > ~/iptables.rules 文件名和位置取决于您要放置的位置和文件名。 19、从文件还原或配置iptables规则 您可以使用“ iptables-restore”命令从文件中还原iptables规则,如下所示: # iptables-restore < ~/iptables.rules 您可以在上面的命令中使用文件位置。 20、允许使用iptables建立和建立相关连接 网络流量按传入和传出连接类型分隔,您可以允许既建立的流量又相关的流量。 对于传入流量,可以使用以下命令: # iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 对于传出流量,您可以使用以下命令: # iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT 21、在iptables中丢弃无效的数据包 使用iptables,可以将某些网络数据包标记为无效并将其丢弃。 要使用iptables丢弃无效的网络数据包,可以使用以下命令: # iptables -A INPUT -m conntrack --ctstate INVALID -j DROP 22、设置iptables规则以实现PCI合规性 如果您的站点具有直接或间接基于支付的解决方案,则需要PCI合规性。如果您需要将服务器配置为符合PCI,则不同的PCI合规供应商有许多要求,但有一些常见的设置规则。 在大多数情况下,您有多个IP地址。您需要为网站的IP地址应用以下规则。在添加规则之前,请确保要做什么,并在确定后执行命令。 23、使用iptables阻止网络接口上的连接 有时您具有多个网络接口,并且您希望根据每个接口来控制流量。您可以限制或阻止网络接口的连接。 您可以使用以下命令来阻止特定IP地址的网络接口连接: # iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP 您可以使用要在网络接口“ eth0”上阻止的实际IP地址更改“ xxx.xxx.xxx.xxx”。如果您使用其他名称,也可以用网络接口名称替换“ eth0”。 24、通过iptables禁用外发邮件 如果您的系统不需要发送电子邮件,则最好阻止smtp端口以防止滥用。 您可以使用以下命令来阻止smtp端口: # iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT iptables是Linux操作系统中最有用,功能最强大的工具。它具有典型防火墙所具有的所有功能。对于每个Linux管理员或工程师来说,它都是一个方便的实用程序,而且大多数情况下,我们每天都必须使用它。
|
||||
>> 相关文章 | ||||
没有相关文章。 |