Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595924
  • 博文数量: 187
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 2990
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 17:40
文章分类

全部博文(187)

文章存档

2010年(1)

2009年(23)

2008年(163)

我的朋友

分类: LINUX

2008-07-27 10:54:41

我的第一个iptables角本
假定只有一台主机,其防火墙也运行在这个主机上,没有单独的数据库服务器。且只对外提供web报务,开放80,443端口,关闭其它一切端口,禁止ping,管理员不需要远程对服务器进行维护,禁止所有udp连接,除正常的tcp连接外,禁止所有tcp的连接。以下是我写的一个小小的过滤规则(参考了好多其它的角本,按照我的理解和需要,我仿照写的),在我的机子上已经可以运行.(redhat 9.0)  对于记录入侵,我现在想到的只是利用日志记录。

#!bin/sh
echo "Starting firewalling....."
#清除原先所有预设规则
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#禁止ping,并对ping进行记录
iptables -A INPUT -p icmp -j LOG --log-level notice --log-prefix "icmp_packet"
iptables -A INPUT -p icmp -j DROP

#禁止一切udp协议,并对udp进行记录
iptables -A INPUT -p udp -j LOG --log-level debug --log-prefix "udp_packet"
iptables -A INPUT -p udp -j DROP

#开放80端口,对外提供web服务
iptables -A INPUT -p tcp --dport 80 -j ACCETP
iptables -A OUTPUT -p tcp ! --syn --sport 80 -j ACCEPT

开放443端口,对外提供安全的https
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp ! --syn --sport 443 -j ACCEPT

#防止碎片攻击,并对其记录
iptables -A INPUT -f -j LOG --log-level debug --log-prefix "ip_fragment"
iptables -A INPUT -f -j DROP

#除正常的tcp连接外,禁止所有其它的tcp连接
iptables -A INPUT -p tcp -j LOG --log-level debug --log-previx "tcp_packet"
iptables -A INPUT -p tcp -j DROP

#禁止所有非有效的连接,并进行记录
iptables -A INPUT -m state --state INVALID -j LOG --log-level notice --log-prefix "in_invalid"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j LOG --log-level notice --log-prefix "out_invalid"
iptables -A OUTPUT -m state --state INVALID -j DROP

#充许所有已经建立的有效连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

echo "end!"
exit 0

http://blog.chinaunix.net/u2/72017/showart_1093163.html
阅读(490) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~