配置iptables静态防火墙
时间:2007-04-03 来源:anyager
配置iptables静态防火墙
1、初始化防火墙
在shell提示符#下键入:
iptables -F
iptables -X
iptables -Z
利用iptables设置你自己的防火墙之前,首先要清除所有以前设置的规则。
2、设置规则:
2.1、设置默认策略
iptables -P INPUT DROP
这一条命令将阻止所有从网络进入计算机的数据包丢弃(drop)。此时,如果你ping 127.0.0.1,你就会发现屏幕一直停在那里,因为ping收不到任何应答数据包。
2.2、创建用户自定义的链
iptables -N MYINPUT
iptables -N MYDROPLOG
2.3 、添加规则
iptables -A INPUT -j MYINPUT
这条规则将所有进入计算机的包转发到自定义的链进行过滤。
iptables -A MYINPUT -p icmp -j ACCEPT
此时再输入命令 ping 127.0.0.1,结果还会和刚才一样吗?
如果要访问www服务
iptables -A MYINPUT -p tcp --sport 80 -j ACCEPT
这条规则允许来自网络并且源端口是80的数据进入计算机。80端口正是www服务所使用的端口。现在可以看网页了。但是,如果你在浏览器的地址中输入www.baidu.com,能看到网页吗?你得到的结果一定是:找不到主机www.baidu.com。如果你再输入211.94.144.100,你仍然能够访问baidu的网页。为什么?因为如果访问www.baidu.com,计算机需要先进行域名解析获取www.baidu.com对应的ip地址211.94.144.100才能正常访问。我们还需要打开DNS。
iptables -A MYINPUT -p udp --sport 53 -j ACCEPT
这条规则接受所有UDP协议53端口的数据。53正是DNS服务所用的端口。此时测试一下,你能通过域名访问www吗?你能通过ip访问www吗?当然,都可以!
丢弃其他的所有网络数据包
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
2.4、记录日志
iptables -I MYDROPLOG 1 -j LOG --log-prefix '[IPTABLES DROP LOGS]:' --log-level debug
这样所有被丢弃的网络数据包都被记录下来了,访问网络的详细信息可以查看日志。至此,一个安全的个人静态防火墙已经构建,可以根据访问网络的具体需求再次配置防火墙,满足各种需求。
3、查看防火墙
此时可以查看防火墙了
iptables -L --line-number
可以将上面的实验内容总结一下,写成一个脚本。
#!/bin/bash
# This is a script of
# a personal static firewall
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -N MYINPUT
iptables -N MYDROPLOG
iptables -A INPUT -j MYINPUT
iptables -A MYINPUT -p icmp -j ACCEPT
iptables -A MYINPUT -p tcp --sport 80 -j ACCEPT
iptables -A MYINPUT -p udp --sport 53 -j ACCEPT
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
iptables -I MYDROPLOG 1 -j LOG --log-prefix '[IPTABLES DROP LOGS]:' --log-level debug
iptables -L --line-number
运行脚本快速实现自己的防火墙。
1、初始化防火墙
在shell提示符#下键入:
iptables -F
iptables -X
iptables -Z
利用iptables设置你自己的防火墙之前,首先要清除所有以前设置的规则。
2、设置规则:
2.1、设置默认策略
iptables -P INPUT DROP
这一条命令将阻止所有从网络进入计算机的数据包丢弃(drop)。此时,如果你ping 127.0.0.1,你就会发现屏幕一直停在那里,因为ping收不到任何应答数据包。
2.2、创建用户自定义的链
iptables -N MYINPUT
iptables -N MYDROPLOG
2.3 、添加规则
iptables -A INPUT -j MYINPUT
这条规则将所有进入计算机的包转发到自定义的链进行过滤。
iptables -A MYINPUT -p icmp -j ACCEPT
此时再输入命令 ping 127.0.0.1,结果还会和刚才一样吗?
如果要访问www服务
iptables -A MYINPUT -p tcp --sport 80 -j ACCEPT
这条规则允许来自网络并且源端口是80的数据进入计算机。80端口正是www服务所使用的端口。现在可以看网页了。但是,如果你在浏览器的地址中输入www.baidu.com,能看到网页吗?你得到的结果一定是:找不到主机www.baidu.com。如果你再输入211.94.144.100,你仍然能够访问baidu的网页。为什么?因为如果访问www.baidu.com,计算机需要先进行域名解析获取www.baidu.com对应的ip地址211.94.144.100才能正常访问。我们还需要打开DNS。
iptables -A MYINPUT -p udp --sport 53 -j ACCEPT
这条规则接受所有UDP协议53端口的数据。53正是DNS服务所用的端口。此时测试一下,你能通过域名访问www吗?你能通过ip访问www吗?当然,都可以!
丢弃其他的所有网络数据包
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
2.4、记录日志
iptables -I MYDROPLOG 1 -j LOG --log-prefix '[IPTABLES DROP LOGS]:' --log-level debug
这样所有被丢弃的网络数据包都被记录下来了,访问网络的详细信息可以查看日志。至此,一个安全的个人静态防火墙已经构建,可以根据访问网络的具体需求再次配置防火墙,满足各种需求。
3、查看防火墙
此时可以查看防火墙了
iptables -L --line-number
可以将上面的实验内容总结一下,写成一个脚本。
#!/bin/bash
# This is a script of
# a personal static firewall
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -N MYINPUT
iptables -N MYDROPLOG
iptables -A INPUT -j MYINPUT
iptables -A MYINPUT -p icmp -j ACCEPT
iptables -A MYINPUT -p tcp --sport 80 -j ACCEPT
iptables -A MYINPUT -p udp --sport 53 -j ACCEPT
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
iptables -I MYDROPLOG 1 -j LOG --log-prefix '[IPTABLES DROP LOGS]:' --log-level debug
iptables -L --line-number
运行脚本快速实现自己的防火墙。
相关阅读 更多 +