首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用iptables编写一个简单的防火墙

问用iptables编写一个简单的防火墙
EN

Ask Ubuntu用户
提问于 2012-11-06 08:44:22
回答 1查看 2.2K关注 0票数 3

我正在学习如何使用iptables,并且正在Ubuntu上编写一个非常简单的防火墙。

仅使用筛选器表,我添加了以下规则

代码语言:javascript
复制
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

因为我只想通过我想要的数据包。

然后我尝试添加规则来建立简单的HTTP连接,因此,对于第一次尝试,我添加了

代码语言:javascript
复制
iptables -A INPUT -p tcp -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

接受所有TCP通信量的第一行和接受DNS答案的第二行。

类似地,对于输出链,我添加了

代码语言:javascript
复制
iptables -A OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

但是当我尝试使用lynx时,连接不会发生。

我认为唯一的问题是DNS,因为所有的TCP流量都被接受了。但是进出端口53的数据包可以通过防火墙.那么问题在哪里?

我添加了以下两条规则,现在起作用了。

代码语言:javascript
复制
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

使用Wireshark,我意识到DNS请求也是往返于环回接口的。我从没想过..。为什么?

EN

回答 1

Ask Ubuntu用户

发布于 2012-11-06 10:19:03

只需使用iptables-save并重新启动计算机。这将使您的iptables设置工作。

如果您正在设置防火墙,那么为什么要启用所有tcp端口。我宁愿只允许选定的端口。给林克斯用的。我会用:

代码语言:javascript
复制
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
sudo init 6

还有你为什么要用

代码语言:javascript
复制
sudo iptables -A OUTPUT -j DROP

这将从所有端口丢弃所有传出通信量。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/213532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档