iptables类似于防火墙,它对进出网卡的包进行过滤。
iptables主要分3个链(chain),可以理解为3个模块 INPUT OUTPUT FORWARD和他们的名字一样,这3个链分别负责进入网卡的包,网卡发出的包和负责转发的包。
主要说一下进入的包。
我们可以在输入 iptables -L查看自己的规则。假设都没有规则的话,当然有3个默认规则即3个都是ACCEPT
为了电脑的安全,我们首先让所有进入的包都变成DROP iptables -P INPUT DROP -P表示这个是预设命令,即如果没有其他要求的话就把进入的包丢掉。
如果要访问网页 则需要让http服务器传过来的包能够接收到 iptables -A INPUT -p tcp --sport 80 -j ACCEPT
这样http服务器就可以进入了 -A表示append,添加 不过是添加在chain的末尾 -p protocol协议 --sport source port 源端口 -j 表示需要做的动作INPUT指的是INPUT链 ACCEPT表示接收
但是这是在你的知道对方ip的前提下。换句话说,你之前访问一个网页已经通过dns服务器记录下了这个网页的ip,但当你访问别的网站的话,就会因为与dns连接的问题而访问不上。这样就需要在设置允许dns'服务器的数据进来了。首先我们要了解到一个协议和一个端口基本上就能代表了一个应用程序。如同 tcp+80端口就代表着浏览器服务。udp+53代表着dns服务。下面设置 iptables -A INPUT -p udp --sport 53 -j ACCEPT
这样基本上就能浏览大量的网页了。可以有些网页如同登入需要进行加密验证的网页使用固定而不是80端口而是443端口。
所以还要设置 iptables -A INPUT -p tcp --sport 443 -j ACCEPT
这样就好了
至于FORWARD 和OUTPUT两条链,因为大多数都不需要作为服务器,并且只要不是从我们电脑里出去的流量都不太会对安全造成什么影响,所以就默认设置就好了。