iptables防火墙
iptables防火墙设置
iptables是一款基于命令行的防火墙策略管理工具,具有大量的参数,学习难度较大。好在对于日常的防火墙策略配置来讲,大家无须深入了解诸如“四表五链”的理论概念,只需要掌握常用的参数并做到灵活搭配即可,这就足以应对日常工作了。
根据OSI七层模型的定义,iptables属于数据链路层的服务,所以可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配;一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。另外,再次提醒一下,防火墙策略规则的匹配顺序是从上到下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。
iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:
在进行路由选择前处理数据包(PREROUTING);
处理流入的数据包(INPUT);
处理流出的数据包(OUTPUT);
处理转发的数据包(FORWARD);
在进行路由选择后处理数据包(POSTROUTING);
这些动作对应到iptables服务的术语中分别是:
ACCEPT(允许流量通过)
REJECT(拒绝流量通过,表示确定拒绝)
LOG(记录日志信息)
DROP(拒绝流量通过,不回应的拒绝)
注意:REJECT和DROP的不同点,就DROP来说,它是直接将流量丢弃而且不响应;REJECT则会在拒绝流量后再回复一条“信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的响应信息。
常用的iptables命令参数:
举例一
向INPUT链中添加允许ICMP流量进入的策略规则(-I 代表头部添加---INPUT方向-------p匹配的协议 ------ACCEPT动作)
iptables -P DROP 把INPUT规则链的默认策略设置为拒绝(-P大写P是指默认策略)
iptables -I INPUT -p icmp ACCEPT 只允IN方向协议为ICMP
iptables -D INPUT 1 删除INPUT的头部的第一条策略规则
iptables -F 清空iptables 所有策略
举例二:
将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量
-I 添加首部添加,-s源地址 -p协议 --dport目标端口 -j动作
iptables -I INPUT -s 192.168.29.1/32 -p tcp --dport 22 -j ACCEPT 在首部添加一策略允许源地址访问此服务访问22端口
iptables -A INPUT -p tcp --dport 22 -j REGET 在尾部添加一条策略拒绝所有入方向访问此服务器的22端口
防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务。另外,这里提到的22号端口是ssh服务使用的(有关ssh服务,请见第9章),这里先挖个坑,等大家学完第9章后可再验证这个实验的效果。
举例三:
向INPUT规则链中添加拒绝192.168.29.1主机访问本机80端口(Web服务)的策略规则
iptabpes -I INPUT -p tcp -s 192.168.29.1 --dport 80 -j ERGET 在首部添加一条策略允许源地址访问此服务器的80端口
举例四:
向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则
iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT 在尾部添加一条策略拒绝ctp1000至1024端口
iptables -A INPUT -p udp --dport 1000:1024 -j REJECT 在尾部添加一条策略拒绝udp1000至1024端口
特别注意,使用iptables命令配置的防火墙规则默认会在系统下一次重启时失效,如果想让配置的防火墙策略永久生效,还要执行保存命令:
iptables-save
如果公司服务器是5/6/7版本的话,对应的保存命令应该是:
service iptables save
本文来自博客园,作者:聆听城市喧哗,转载请注明原文链接:https://www.cnblogs.com/fzhelpdesk/p/16195294.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现