iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。咋一看iptables的配置很复杂,掌握规律后,其实用iptables完成指定任务并不难,下面我们通过具体实例,学习iptables的详细用法。
1.删除已有规则
在新设定iptables规则时,我们一般先确保旧规则被清除,用以下命令清除旧规则:
iptables -F
(or iptables --flush)
2.设置chain策略
对于filter table,默认的chain策略为ACCEPT,我们可以通过以下命令修改chain的策略:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
以上命令配置将接收、转发和发出包均丢弃,施行比较严格的包管理。由于接收和发包均被设置为丢弃,当进一步配置其他规则的时候,需要注意针对INPUT和OUTPUT分别配置。当然,如果信任本机器往外发包,以上第三条规则可不必配置。
3.屏蔽指定ip
有时候我们发现某个ip不停的往服务器发包,这时我们可以使用以下命令,将指定ip发来的包丢弃:
BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP
以上命令设置将由x.x.x.x ip发往eth0网口的tcp包丢弃。
4.配置服务项
利用iptables,我们可以对日常用到的服务项进行安全管理,比如设定只能通过指定网段、由指定网口通过SSH连接本机:
iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLESHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
若要支持由本机通过SSH连接其他机器,由于在本机端口建立连接,因而还需要设置以下规则:
iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state ESTABLESHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
类似的,对于HTTP/HTTPS(80/443)、pop3(110)、rsync(873)、MySQL(3306)等基于tcp连接的服务,也可以参照上述命令配置。
对于基于udp的dns服务,使用以下命令开启端口服务:
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
5.网口转发配置
对于用作防火墙或网关的服务器,一个网口连接到公网,其他网口的包转发到该网口实现内网向公网通信,假设eth0连接内网,eth1连接公网,配置规则如下:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
6.端口转发配置
对于端口,我们也可以运用iptables完成转发配置:
iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22
以上命令将422端口的包转发到22端口,因而通过422端口也可进行SSH连接,当然对于422端口,我们也需要像以上“4.配置服务项”一节一样,配置其支持连接建立的规则。
7.DoS攻击防范
利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范:
iptables -A INPUT -p -tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
--litmit 25/minute 指示每分钟限制最大连接数为25
--litmit-burst 100 指示当总连接数超过100时,启动 litmit/minute 限制
8.配置web流量均衡
我们可以将一台服务器作为前端服务器,利用iptables进行流量分发,配置方法如下:
复制代码
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:80
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.102:80
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.103:80
复制代码
以上配置规则用到nth扩展模块,将80端口的流量均衡到三台服务器。
9.将丢弃包情况记入日志
使用LOG目标和syslog服务,我们可以记录某协议某端口下的收发包情况。拿记录丢包情况举例,可以通过以下方式实现。
首先自定义一个chain:
iptables -N LOGGING
其次将所有接收包导入LOGGING chain中:
iptables -A INPUT -j LOGGING
然后设置日志前缀、日志级别:
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
最后将包倒向DROP,将包丢弃:
iptables -A LOGGING -j DROP
另可以配置syslog.conf文件,指定iptables的日志输出。
分享到:
相关推荐
在Linux操作系统中,netfilter和iptables是两个非常关键的组件,它们构成了内核级的网络数据包过滤和处理系统。`xt_set`是这个体系中的一个重要模块,它实现了set匹配和SET目标功能,用于更精细化地控制网络流量。...
在深入探讨Linux iptables及其应用之前,我们先来理解一下iptables的基本概念以及它在Linux系统中的重要性...掌握iptables的基本操作和命令,对于Linux系统管理员来说至关重要,它可以帮助他们构建安全可靠的网络环境。
传统 ipchains 的任何功能(来源与目的封包过滤、导向、伪装)。 提供 Source NAT 与 Destination NAT 的功能。 可以针对特定使用者、群组、PID 等限制网络连结的过滤存取。 可以设定封包在 Routing Table 进出前时先...
8. **系统安全与防火墙**:了解Linux安全机制,如用户权限、文件权限、SELinux,以及iptables防火墙的配置。 9. **系统监控**:学习使用top、htop、iostat等工具进行系统性能监控。 10. **故障排查**:掌握日志分析...
它来源于网络并经过了精心整理,旨在帮助用户更好地理解和掌握Linux操作系统。以下是这个教程中可能包含的一些关键知识点: 1. **Linux简介**:介绍Linux的历史、哲学以及它与Unix的关系,解释开源软件的概念和...
### Linux网络安全讲义1:Netfilter机制与iptables工具 #### 一、iptables简介 ##### 1. 官方资源 - **官方网站**: [http://www.netfilter.org/](http://www.netfilter.org/) 提供了关于iptables及其相关技术的...
在这里,我们可以指定包的来源IP 地址、网络接口、端口、协议类型,或者其他什么。下面我们将会看到许多不同的match。 <br>最后是数据包的目标所在“target”。若数据包符合所有的match,内核就用target来处理它...
iptables是Linux系统中的一种强大的网络访问控制工具,用于在Linux内核的Netfilter框架下设置和维护网络包过滤规则。这个“iptables-1.1.9指南中文版”旨在为用户详细解读iptables的使用方法和功能,帮助管理员更好...
【Fedora Core 6 Linux】是一款历史悠久的开源操作系统,由Fedora项目开发,它是Red Hat Linux的后续版本,旨在提供一个先进的、稳定的、创新的Linux发行版。Fedora Core 6发布于2006年,它包含了当时的最新技术和...
【标签】"Linux试卷 西北农林科技大学"明确了资料的主题和来源,Linux试卷代表了考试内容与Linux操作系统相关,而西北农林科技大学则表明这是该学校内部的教学材料,可能反映了该校在Linux教育上的侧重点和教学风格...
总之,基于Linux的Netfilter流量计费系统是解决校园网计费问题的有效解决方案,它利用内核级别的数据包处理能力,实现了对网络流量的精细化管理和计费,为网络管理员提供了强大的工具来优化网络资源分配和保障网络...
《Linux内核网络栈与Netfilter嗅探器代码解析》 在信息技术领域,Linux操作系统以其开源、免费和高度可定制的特性受到了广泛欢迎。而Linux内核网络栈是其核心部分之一,它负责处理系统中的网络通信。本资料集中的...
通过上述iptables配置,我们可以看到如何通过iptables管理Linux系统的网络访问控制,包括允许或拒绝特定类型的流量。同时,我们也了解了MySQL Semi-Synchronous Replication的概念以及如何在主库和备库上安装相应的...
- 清空并重新配置防火墙规则,以允许Samba服务的网络通信:`iptables -F`和`service iptables save`。 5. **测试共享目录的可访问性**: - 在Windows或其他Linux系统上,尝试通过网络路径访问共享目录,例如`\\...
在Linux操作系统中,高级路由和流量控制是网络管理的关键组成部分,它们确保了系统的高效网络通信和数据传输。本文将深入探讨这两个主题,帮助你更好地理解Linux环境下的网络优化。 一、Linux高级路由 1. 路由基础...
Linux系统提供了丰富的工具和接口,如iptables、netfilter等,可以用于构建复杂的网络流量过滤和监控机制。在DDoS攻击检测方面,文章可能探讨了如何通过分析网络流量模式,识别异常流量,比如突然增加的请求速率或...
### 如何配置Linux下的SNMP服务 #### 一、引言 简单网络管理协议(Simple Network Management ...请注意,对于生产环境中的服务器,应进一步加强安全措施,如使用更复杂的community string,并限制访问来源等。
这本书特别强调了对Linux命令行工具的掌握,很多内容来源于man文档和info文档的翻译与整理,因此内容权威且全面。第二版在第一版的基础上进行了更新和完善,以满足对Linux系统有更高要求的学习者的需求。 书中的...
通过iptables配置策略路由,根据用户来源自动选择返回路径。例如,公众网用户访问时,服务器从公众网响应;教育网用户访问时,服务器从教育网响应。动态DNS在此方案中起关键作用,可根据用户所在网络动态调整解析...