Linux 防火墙(Netfilter/iptables)
了解使用 `iptables` 筛选流量并保护系统的 Linux 防火墙基础
Linux 防火墙(Netfilter/iptables) 是 CoddyKit 上的免费 Linux Networking & TCP/IP for Developers 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Networking & TCP/IP for Developers 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Networking & TCP/IP for Developers 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Firewalls: Your Network Guardian
What is a firewall? It's like a security guard for your network, controlling what traffic goes in and out. In Linux, the core firewall framework is called Netfilter. We use a command-line tool called iptables to manage its rules.
Netfilter: The Kernel's Core
Netfilter is a powerful framework built right into the Linux kernel. It allows different kernel modules to inspect, modify, and drop network packets.
Think of it as the engine behind the firewall. It provides "hooks" where packet processing can be intercepted.
`iptables`: Managing Firewall Rules
While Netfilter is in the kernel, iptables is the command-line utility you use to interact with it. It lets you define rules that tell Netfilter what to do with specific packets.
These rules are organized into tables and chains, which we'll explore next.
`iptables` Chains: Traffic Paths
iptables organizes rules into chains. These are ordered lists of rules that packets are checked against. The three most common built-in chains are:
- INPUT: For packets destined for the local system.
- OUTPUT: For packets originating from the local system.
- FORWARD: For packets passing through the system (e.g., a router).
Default Actions: Chain Policies
Each chain has a default policy, which is the action taken if no rule in the chain matches a packet. Common policies are:
- ACCEPT: Let the packet through.
- DROP: Silently discard the packet (sender gets no response).
- REJECT: Discard the packet and send an error message back to the sender.
It's common to set default policies to DROP for security.
Viewing Current `iptables` Rules
Before adding rules, it's good to see what's already there. You can list all current iptables rules with the -L option. Adding -n shows IP addresses numerically, and -v adds verbosity.
sudo iptables -L -n -vAllowing Inbound SSH Traffic
Let's add a rule to allow incoming SSH connections (port 22). We'll append (-A) this rule to the INPUT chain, specifying TCP protocol (-p tcp) and destination port (--dport 22). The action (-j) will be ACCEPT.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTBlocking Outbound Ping Requests
Now, let's block all outbound ping requests (ICMP protocol). We'll append this rule to the OUTPUT chain, specifying the ICMP protocol. The action will be DROP.
This means your system won't send ping requests, but might still receive them if not blocked on INPUT.
sudo iptables -A OUTPUT -p icmp -j DROPMaking Rules Permanent
iptables rules are volatile; they disappear on reboot! To make them permanent, you need to save them. On many systems, you'd use iptables-save to export rules and iptables-restore to load them.
Some Linux distributions use specific services (like netfilter-persistent) or files (e.g., /etc/sysconfig/iptables) to manage persistence.
Firewall Chains Check
Based on what you've learned, which iptables chain would typically handle network packets that are trying to reach a service running on your local machine?
Recap: `iptables` Firewall Basics
You've learned about Netfilter, the kernel's firewall framework, and iptables, the user-space tool to manage its rules. We covered the main chains (INPUT, OUTPUT, FORWARD) and policies (ACCEPT, DROP, REJECT).
You also saw how to list, add basic rules, and the importance of saving them for persistence. This is a crucial step in securing any Linux system!
常见问题解答
「Linux 防火墙(Netfilter/iptables)」课时是免费的吗?
是的 — 「Linux 防火墙(Netfilter/iptables)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Networking & TCP/IP for Developers 课程的其余内容,请升级到 CoddyKit PRO。 Linux Networking & TCP/IP for Developers 课程共包含 4 节课。
「Linux 防火墙(Netfilter/iptables)」这节课中我会学到什么?
了解使用 `iptables` 筛选流量并保护系统的 Linux 防火墙基础 你通过在浏览器中直接运行的动手代码来练习 Linux Networking & TCP/IP for Developers,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Networking & TCP/IP for Developers 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Networking & TCP/IP for Developers 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Linux 防火墙(Netfilter/iptables)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Networking & TCP/IP for Developers 课中编写并运行代码吗?
能。每节 Linux Networking & TCP/IP for Developers 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 Wireshark/tcpdump 抓包
- 网络性能工具
- Linux 防火墙(Netfilter/iptables)
- 使用 dig 和 nslookup 诊断 DNS