超强的iptables防护脚本

简介:
vi /root/iptables.sh
 
#echo "Starting kerryhu-iptables rules..."
#!/bin/bash
# BY kerryhu
# QQ:263205768
# MAIL:king_819@163.com
# BLOG:http://kerry.blog.51cto.com
#this is a common firewall created by 2010-3-27
 
IPT="/sbin/iptables"
CONNECTION_TRACKING="1"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
BROADCAST_SRC="0.0.0.0" 
BROADCAST_DEST="255.255.255.255"
LOOPBACK_INTERFACE="lo"
#Remove any existing rules
$IPT -F 
$IPT -X
#setting default firewall policy
$IPT -P FORWARD DROP
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
  
#setting for loopback interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
 
# Stealth Scans and TCP State Flags
# All of the bits are cleared
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# SYN and FIN are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# SYN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# FIN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
# FIN is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
# PSH is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
# URG is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
 
# Using Connection State to By-pass Rule Checking
if [ "$CONNECTION_TRACKING" = "1" ]; then
    $IPT -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -m state --state INVALID -j DROP
    $IPT -A OUTPUT -m state --state INVALID -j DROP
fi
##################################################################
# Source Address Spoofing and Other Bad Addresses
# Refuse spoofed packets pretending to be from 
# the external interface.s IP address 
# Refuse packets claiming to be from a Class A private network
$IPT -A INPUT -s $CLASS_A -j DROP 
# Refuse packets claiming to be from a Class B private network
$IPT -A INPUT -s $CLASS_B -j DROP 
# Refuse packets claiming to be from a Class C private network
$IPT -A INPUT -s $CLASS_C -j DROP 
$IPT -A INPUT -s 0.0.0.0/8 -j DROP
$IPT -A INPUT -s 169.254.0.0/16 -j DROP
$IPT -A INPUT -s 192.0.2.0/24 -j DROP
###################################################################
#setting access rules
#允许出站域名解析
$IPT -A OUTPUT -p udp  --dport 53 -j ACCEPT 
#$IPT -A OUTPUT -p tcp  -d 61.177.7.1 --dport 53 -j ACCEPT
#$IPT -A OUTPUT -p udp  -d 61.177.7.1 --dport 53 -j ACCEPT
#时钟同步
$IPT -A OUTPUT -d 192.43.244.18 -j ACCEPT
#$IPT -A OUTPUT -p udp -d 192.43.244.18 --dport 123 -j ACCEPT
#允许ping出
$IPT -A OUTPUT -p icmp -j ACCEPT
#允许ftp备份
#$IPT -A OUTPUT -p tcp -d 222.102.153.191 --dport 21 -j ACCEPT
#$IPT -A OUTPUT -p tcp -d 222.102.153.191 --dport 20 -j ACCEPT
$IPT -A OUTPUT -d 222.102.153.191 -j ACCEPT
#允许出站http
$IPT -A OUTPUT -p tcp  --dport 80 -j ACCEPT
#允许yum更新
$IPT -A OUTPUT -p tcp -d mirrors.163.com -j ACCEPT
#允许入站ssh
$IPT -A INPUT -p tcp -s 58.102.13.91 --dport 22 -j ACCEPT
#允许cacti监控
#$IPT -A INPUT -p tcp -s 222.102.153.192 --dport 161 -j ACCEPT
$IPT -A INPUT -s 222.102.153.192 -j ACCEPT
#$IPT -A INPUT -p tcp  --dport 443 -j ACCEPT
#$IPT -A INPUT -p tcp  --dport 80 -j ACCEPT
#$IPT -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
 
chmod +x /root/iptables.sh
echo "/root/iptables.sh" >> /etc/rc.local


本文转自king_819 51CTO博客,原文链接:http://blog.51cto.com/kerry/289446,如需转载请自行联系原作者
相关文章
|
缓存 算法 Oracle
JVM02——JVM垃圾回收与性能调优(下)(二)
6.垃圾回收 6.1 判断垃圾 6.1.1 引用计数法
JVM02——JVM垃圾回收与性能调优(下)(二)
|
Python
Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
645 0
Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
|
Web App开发 缓存 前端开发
HTTP协议详解
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。
1394 0
|
关系型数据库 数据处理 Oracle
PLSQL_海量数据处理系列1_架构
2013-05-01 Created By BaoXinjian     Thanks and RegardsERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By Oracle ERP - 鲍新建
808 0
|
5天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
305 116
|
20天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
504 45
Meta SAM3开源:让图像分割,听懂你的话