Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189671
  • 博文数量: 23
  • 博客积分: 245
  • 博客等级: 二等列兵
  • 技术积分: 973
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-14 13:32
个人简介

大家好,博主现在学习LINUX服务和集群管理还有ORACLE 管理。我在博客中写出详细的学习成果!和大家一起分享,文中有不足之处请大家帮忙指出!谢谢!

文章分类

全部博文(23)

文章存档

2018年(10)

2013年(10)

2012年(3)

分类: LINUX

2013-06-09 10:44:48

项目需求:服务器上对外提供网页服务,由apache搭建而成,有数据库服务器!现在客户提出要求,对外只提供必要的端口号,对内部门管理人员只限制某个IP可以远程管理服务器。
下面这是小宁我写的脚本,模拟测试通过,并且通过流光扫描后只开启了相应的服务端口,其他端口全部封死。

脚本内容:

[root@dba Desktop]# cat iptables.sh
#!/bin/bash
IPTABLES=/sbin/iptables
MODPROBE=/sbin/modprobe

#######SET DEFAUTL RULES ############

$IPTABLES -F                                         解释:清除全部规则
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -P INPUT DROP                      解释:将input output  forwared 默认规则全部设置为drop
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

 

### load connection-tracking modules######
$MODPROBE ip_conntrack                       解释:加载模块


### lookback ruels########################################

$IPTABLES -A INPUT  -i lo -j ACCEPT        解释:本地环回放通,否则会出问题。
$IPTABLES -A OUTPUT -o lo -j ACCEPT

###permit hosts access###############################
$IPTABLES  -A INPUT  -p tcp --dport 22 -s 192.168.1.100 -d 192.168.1.54 -j ACCEPT          解释:只允许源是192.168.1.100 的服务器访问目的地址为192.168.1.254的 22端口(ssh)
$IPTABLES  -A INPUT  -p tcp --dport 22 -d 192.168.1.54 -j DROP                                      解释:将其他访问192.168.1.54的主机22端口的数据包全部丢弃


### icmp rules#############################################

$IPTABLES -A OUTPUT -p icmp -j ACCEPT                                                                      解释:允许ping

$IPTABLES -A INPUT  -p icmp -j ACCEPT

### icmp safe setting#######################################

$IPTABLES -A INPUT -p icmp  --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT   解释:ping的安全策略,防止来自外部的ping攻击

###anti synflood###########################################       

$IPTABLES -N synflood                                                                                                 解释:此小节是防止洪水攻击

$IPTABLES -A synflood -m limit --limit 10/s --limit-burst 100 -j RETURN

$IPTABLES -A synflood -p tcp   -j REJECT  --reject-with tcp-reset

$IPTABLES -A INPUT    -p tcp   -m state   --state NEW -j synflood

########prevent scan tools##############                                                    解释:探测防攻击

$IPTABLES -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT

###  httpd rule (80) ######################################          解释: 对访问80的数据包做安全放通

$IPTABLES -t filter -A INPUT  -p tcp  --syn  --dport 80  -m state --state NEW -j ACCEPT

############################sshd 22###################          

$IPTABLES -t filter -A INPUT  -p tcp  --syn  --dport 22 -m state --state NEW -j ACCEPT       解释:对访问目的端口为22的端口做数据包状态过虑

 

#########################limit client (httpd) connents time#############  解释:以下三句话是对客户端做出限制连接,防止非法客户端做大量连接请求,使服务器宕机
$IPTABLES -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --name web --set
$IPTABLES -A INPUT -m recent --update --name web --seconds 60 --hitcount 20 -j LOG --log-prefix 'HTTP attack :'
$IPTABLES -A INPUT -m recent --update --name web --seconds 60 --hitcount 20 -j DROP


###############close ports####################                                   解释:封死200端口            
$IPTABLES -I INPUT -p udp --dport 200 -j DROP
$IPTABLES -I INPUT -p tcp --dport 200 -j DROP

 


### invalid packet drop and  logging ##############                                               解释:对数据包做状态过虑,对错误包进行丢弃和做日志记录
$IPTABLES -A INPUT -m state --state INVALID -j LOG --log-prefix "DROP INVALID " --log-ip-options --log-tcp-options

$IPTABLES -A INPUT -m state --state INVALID -j DROP
$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

阅读(3269) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~