安装可以使用RPM安装,下载最新的版本,然后./configure --prifix=/some/path/ && make && make install 就可以了。重点在如何step by step 简历一个自己的iptables防火墙。
首先在使用iptables之前敲入一下两条命令
# iptables -F #这句话的意思是清空所有的链
# iptables -X #这句话的意思是清空所有自定义的链
以上两条的含义你可以简单的认为是iptables的初始化命令,无需深入。
下面我们将要开始建立一个iptables防火墙了。我们的做法是,默认所有的数据都丢弃,除非我认为满足条件的我才接受,有针对的打开我们需要的端口,无疑是很安全的一种做法。下面两句话可以定义默认全部丢弃数据包:
> iptables -P INPUT DROP
> iptables -P OUTPUT DROP
-P参数的意思是policy,翻译成策略~那么这两句话就好理解了。
第一句的意思是:
输入(INPUT)的数据包默认的策略(-P)是丢弃(DROP)的
第二句的意思是:
输出(OUTPUT)的数据包默认的策略(-P)是丢弃(DROP)的
用shell脚本写下一下内容,然后再执行这个脚本,把相应的内容写到相应的链中
#!/bin/bash
#filename:iptabshell
#
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT //允许icmp包进入
iptables -A INPUT -s localhost -d localhost -j ACCEPT //允许本地的数据包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //允许已经建立和相关的数据包进入
iptables -A OUTPUT -p icmp --icmp any -j ACCEPT //允许icmp包出去
iptables -A OUTPUT -s localhost -d localhost -j ACCEPT //允许本地数据包出去
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //允许已经建立和相关的数据包出去
#http&https
iptables -A INPUT -p tcp --dport 80 -j ACCEPT //允许http的数据进入
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
//允许已经建立的数据包出去
iptables -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
//允许http的数据出去
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //允许已经建立的数据包出去
iptables -A INPUT -p tcp --dport 443 -j ACCEPT //允许https数据进入
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#dns
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
//允许dns中的tcp数据包进入
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
//允许dns中的tcp数据包进入
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
//允许dns中的tcp数据包出去
#ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT //允许ssh的数据进入
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT //允许ssh的数据出去
#smtp
iptables -A INPUT -p tcp --dport 25 -j ACCEPT //允许smtp的数据进入
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT //允许smtp的数据进入
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#samba
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT