IPtables初学者指南

你好朋友!!在本文中,我们将讨论Iptables及其用途。Iptables是一个命令行防火墙,默认安装在所有官方Ubuntu发行版上。使用Iptables,您可以标记一组规则,Linux内核将检查这些规则以验证所有传入和传出的网络流量。
今天我们将看一下Ipatble的一些基本概念,使用各种Iptables选项生成一个Filter Table,它将过滤传入和传出的流量
基本的Iptables选项
-A:  将此规则添加到规则链。
-L:  列出当前的过滤规则。
-m conntrack:根据连接状态允许过滤规则匹配。允许使用-ctstate选项。
-ctstate:定义要匹配的规则的状态列表。有效状态是:
  • - 尚未见到连接。
  • 相关 - 连接是新的,但与已允许的另一个连接有关。
  • ESTABLISHED - 已建立连接。
  • INVALID - 由于某种原因无法识别流量。
-m limit:要求规则仅匹配有限次数。允许使用-limit选项。
用于限制日志记录规则:
  • -limit - 最大匹配率,以数字后跟“/秒”,“/分钟”,“/小时”或“/天”给出,具体取决于您希望规则匹配的频率。如果未使用此选项且使用-m limit,则默认值为“3 /小时”。
-p:描述使用的连接协议。
-dport:  此规则所需的目标端口。可以给出单个端口,或者可以给出一个范围作为start:end,它将匹配从开始到结束的所有端口,包括端点。
-j:  跳转到指定的目标。默认情况下,iptables允许四个目标:
  • ACCEPT - 接受数据包并停止此链中的处理规则。
  • REJECT - 拒绝数据包并通知发件人我们这样做了,并停止处理此链中的规则。
  • DROP - 静默忽略数据包,并停止处理此链中的规则。
  • 日志 - 日志
-I 插入规则。采用两个选项,即插入规则的链,以及它应该是规则编号。
-I:  INPUT 5将规则插入INPUT链并使其成为列表中的第5条规则。
-s:  -source - address [/ mask]源规范
-d:  -destination - 地址[/ mask]目标规范
Iptables遵循Ipchain规则,这些规则只是用于控制传入和传出流量的一堆防火墙规则
三个重要类型Iptable链
输入链:   输入链规则规则用于管理向服务器传入的流量的活动。
输出链:输出链规则用于管理来自服务器的传出流量的活动。
前向链:前向链规则用于添加与转发ip数据包相关的规则。当您将Linux计算机作为路由器连接两个网络时,通常会使用此方法。
如上所述,默认安装iptable在所有Ubuntu发行版中都可用,但是如果它没有安装在任何基于Linux的系统中并且你想要安装它,那么请执行以下命令。
sudo apt-get install iptables
默认情况下,iptable为空白,允许所有传入和传出连接流量,而不过滤它们。为了验证内置的iptable规则,我们需要执行以下命令,该命令显示在iptables中添加的规则列表。
sudo iptables -L -v
这里-L用于显示iptables和-v的链规则以  获取完整信息。


允许传入流量

为了允许任何特定端口的流量,您可以在此处使用以下命令,我们接受端口22上的SSH接入,80接收HTTP和443接收HTTPS
sudo iptables -A INPUT -p tcp -dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp -dport 443 -j ACCEPT
因此,当流量将来自端口22,80和443时,它将允许tcp连接。


丢弃/拒绝传入流量

为了拒绝任何特定端口的流量,你可以使用下面给出的命令,我们分别在端口21上为FTP传输,在23但是为Telnet
sudo iptables -A INPUT -p tcp -dport 21 -j DROP
sudo iptables -A INPUT -p tcp -dport 23 -j DROP
因此,当流量将在端口21,23上出现时它将拒绝tcp连接并给出消息超时


拒绝入境流量

拒绝和删除操作密切相同,以阻止传入流量与服务器建立连接,区别在于,此处它将发送带有“ ICMP消息端口无法访问 ”的消息并丢弃传入的数据包。您可以在此处使用以下命令,我们已拒绝SMTP端口25上的传入。
sudo iptables -A INPUT -p tcp -dport 25 -j REJECT
因此,当流量将来自端口25并且给出消息目标端口不可达时,它将丢弃tcp连接。


允许来自特定IP的传入流量

为了允许流量形成只有特定的IP来建立服务器和客户端之间的安全连接,您可以执行以下命令
sudo iptables -A INPUT -s 192.168.1.104 -j ACCEPT
它将接受来自网络192.168.1.104的数据包


阻止特定网络IP

为了拒绝流量形式只有一个特定的IP来建立一个安全的服务器免受攻击者的IP,你可以执行以下命令
sudo iptables -A INPUT -s 192.168.1.102 -j DROP
它将拒绝来自网络192.168.1.102的数据包


块特定网络接口

要阻止特定的网络接口,例如eth0,请执行以下命令,该命令将丢弃来自10.10.10.10的传入流量
sudo iptables -A INPUT -i eth0 -s 10.10.10.10-j DROP
您可以在此处使用-j ACCEPT选项更改操作以允许来自特定网络接口的流量。


阻止特定IP范围

阻止特定IP范围以拒绝来自特定IP范围的传入流量。执行以下命令,该命令将来自IP 192.168.1.100的传入数据包丢弃到IP 192.168.1.200
sudo iptables -A INPUT -m iprange -src-range 192.168.1.100-192.168.1.200 -j DROP
您可以在此处使用-j ACCEPT选项更改操作以允许来自特定IP范围的流量。
阻止特定的Mac地址
阻止特定Mac地址以拒绝来自特定计算机的传入流量。执行以下命令,该命令丢弃来自给定Mac地址或攻击者计算机的传入数据包。
sudo iptables -A INPUT -m mac -mac-source FC:AA:14:6A:9A:A2 -j DROP
您可以在此处使用-j ACCEPT选项更改操作以允许来自特定Mac地址的流量。


阻止Ping请求

网络管理员总是关注网络安全,因此他们总是通过使用Drop或Reject操作阻止Ping请求,这里我们使用DROP选项阻止Ping请求,如下面的命令所示。
sudo iptables -A INPUT -p icmp -i eth0 -j DROP
查看应用链规则列表
为了再次查看我们应用的链规则,我们将执行下面给出的命令,该命令将转储Iptable规则的列表。
sudo iptables -L
从下面给出的图像中,您可以观察到包含IPtable规则记录的4列。
这些列定义了以下信息:
目标:定义应用的操作
Prot:代表可以TCP,ICMP或UDP的协议类型
选项:定义规则的进一步选项,此处为空白
来源:入局流量网络IP地址
目的地:将接收传入流量数据包的主机IP地址。
现在,如果有人试图Ping服务器机器,如下面给出的图像所示,那么在这里你可以读取消息“请求超时”,这意味着服务器机器已经丢弃了我们的ICMP请求数据包


删除任何规则

要删除Iptable的任何规则以从过滤器表中删除它,您可以使用选项-D和输入规则编号。我们将删除我们的最后一条规则ICMP drop connection,它在给定的规则列表中排在第12位。
sudo iptables -D INPUT 12
您可以在此处根据您的规则列表从您要删除的任何其他号码中替换号码12。
让我们再次使用-L选项查看剩余的链规则,如上所述。从下面给出的图像中,您可以观察到现在该列表仅包含11个规则并且消除了规则ICMP删除连接。


刷新IPtables

如果要删除整套规则以刷新Iptable,请使用选项-F刷新ipatble应用的规则并执行以下命令。
sudo iptables -F
现在再一次当我们查看规则列表时,这次我们得到了空表
转载请注明本文链接: http://www.mayidui.net/t2299.html
话题: 渗透
游客
登录后才可以回帖,登录 或者 注册