当前位置:首页 > 服务器技术 > 正文

Linux网络防火墙配置(从零开始掌握iptables基础)

在当今的互联网环境中,网络安全至关重要。对于运行 Linux 系统的服务器或个人电脑来说,合理配置网络防火墙是保护系统免受外部攻击的第一道防线。本教程将带你从零开始,逐步了解并配置 Linux 下最常用的防火墙工具 —— iptables

什么是 iptables?

iptables 是 Linux 内核中用于配置 IPv4 数据包过滤和 NAT(网络地址转换)的命令行工具。它允许你定义防火墙规则,控制哪些网络流量可以进入、离开或通过你的系统。

Linux网络防火墙配置(从零开始掌握iptables基础) Linux防火墙  iptables配置 网络安全 防火墙规则 第1张

准备工作:检查 iptables 是否安装

大多数 Linux 发行版默认已安装 iptables。你可以通过以下命令检查:

$ sudo iptables --version  

如果未安装,可使用以下命令安装(以 Ubuntu/Debian 为例):

$ sudo apt update$ sudo apt install iptables  

理解 iptables 的基本结构

iptables 使用“表(tables)”、“链(chains)”和“规则(rules)”三层结构:

  • 表(Table):如 filter(默认,用于过滤)、nat(用于地址转换)等。
  • 链(Chain):如 INPUT(入站)、OUTPUT(出站)、FORWARD(转发)。
  • 规则(Rule):每条规则定义了对匹配数据包应采取的动作,如 ACCEPT(允许)、DROP(丢弃)等。

查看当前防火墙规则

使用以下命令查看当前生效的规则:

$ sudo iptables -L -v  

输出将显示所有链及其规则。如果你刚安装完系统,可能看到的是空规则或默认策略。

设置基本的安全规则

下面是一个适合初学者的基础防火墙配置示例:

  1. 允许本地回环(loopback)通信:
$ sudo iptables -A INPUT -i lo -j ACCEPT  
  1. 允许已建立的连接返回数据(非常重要!否则 SSH 会断开):
$ sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  
  1. 允许 SSH 远程登录(端口 22):
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  
  1. 拒绝所有其他入站连接:
$ sudo iptables -P INPUT DROP  

⚠️ 注意:执行最后一条命令前,请确保你已经允许了 SSH,否则可能被锁在服务器外面!

保存规则(持久化)

默认情况下,重启后 iptables 规则会丢失。要永久保存,需使用特定命令:

Ubuntu/Debian:

$ sudo apt install iptables-persistent$ sudo netfilter-persistent save  

CentOS/RHEL:

$ sudo service iptables save  

小结

通过本教程,你已经掌握了 Linux防火墙 的基本配置方法,学会了如何使用 iptables 添加规则、允许必要服务并阻止非法访问。记住,良好的网络安全习惯始于合理的防火墙规则设计。随着经验积累,你可以进一步学习高级功能,如日志记录、端口转发和速率限制等。

希望这篇面向小白的指南能帮助你迈出系统安全防护的第一步!