当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Linux服务器上适用的防火墙分析

Linux服务器
Linux/UNIX命令dd简介
分级防御 针对Linux服务器攻击防范
Linux下Apache配置虚拟主机+SSL
Linux系统的服务器攻防技术详解
Linux环境使用TC进行服务器流量控制方法
Apache服务器使用.htaccess实现图片防盗链
整理一些linux系统一些常用的系统信息查看命令
修改Linux系统下22端口两种方法
加强Linux系统在安全方面的管理
linux创建一定大小文件命令--dd
linux下configure命令详细介绍
使用linux cd命令来改变所在目录
巧用linux cd命令和Pushd切换目录
linux中Find命令的使用
DB2在Linux和UNIX环境下的安装
教程:三万元搭建LINUX服务器集群
Linux集群的虚拟化技术面临的挑战
Linux 服务器的安全隐患以及防范对策
使用linux下的TC进行服务器流量控制
在linux上使用BIND建立DNS服务器

Linux服务器上适用的防火墙分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 56 ::
收藏到网摘: n/a


#!/bin/bash
echo-e"\t\t\033[1;31mRainLowfirewall\033[mserverversion1.0rc1--09/24/2004\n"
echo-e"############################################"
echo-e"Thissoftwaremaybeusedanddistributedaccordingto"
echo-e"thetermsoftheGNUGeneralPublicLicense(GPL)provided"
echo-e"creditisgiventotheoriginalauthor."
echo-e"\t\t\t\033[1;31mCopyright(c)2004rainlow\033[m\n"
echo-e"\t\t\t\tAllrightsreserved\n\n\n"
echo-e"#######################################"

#nowbeginsthefirewall
echo-e"\n\t\t\tWelcometo\033[3;31mRainlowFirewall\033[0m\n\n"
echo-e"\t\t\t\t\033[1;32mhttp://www.rainlow.com\033[m\n"


PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
./etc/init.d/functions

exit_failure()
{
echo-en"\t\033[3;031m[FAILED]\033[0m\n"
echo-en"\033[3;031m->FATAL:$FAILURE\033[0m\n"
echo-en"\033[3;031m->**ABORTED**.\033[0m\n"
exit1
}

check_root()
{
ROOT_ID=0
echo"Checkingifyouareroot...."
if["$UID"="$ROOT_ID"]
then
echo-e"\n\tOK!continue....\n"
echo-e"\a"
else
echo-e"Sorry,youarenotrootandnotpermittedtodothisoption...\n"
echo-e"\a"
FAILURE="youcannotrunthiscommand,youmustberoottodothis"
exit_failure

fi
}

check_enviroment()
{
echo-e"\t\t\033[1;31mNowCheckingsoftwareenvrioment\033[m\n"

OS=`uname-s`
_OS=$OS
if["$_OS"!="Linux"];then
FAILURE="Sorrythisversioncanonlyworkunderlinux"
exit_failure
else
echo-en"\t\t\033[1;32mPASS\033[m\n"
fi

KERNELMAJ=`uname-r|sed-e's,\..*,,'`
KERNELMIN=`uname-r|sed-e's,[^\.]*\.,,'-e's,\..*,,'`

if["$KERNELMAJ"-lt2];then
FAILURE="Sorryyoukernelistooold,pleaseupgradeitfirst!"
exit_failure
fi
if["$KERNELMAJ"-eq2-a"$KERNELMIN"-lt4];then
FAILURE="onlykernelgreaterthan2.4issupported"
exit_failure
fi

if((`iptables-V2>&1|grep-c"Commandnotfound"`));then

FAILURE="cannotfindiptablescommandyoumustinstalliptablesfirst"
exit_failure
fi

if!((`whichmodprobe2>&1|grep-c"which:nomodprobein"`))&&
        ([-a/proc/modules]||![-a/proc/version]);then
if((`lsmod|grep-c"ipchains"`));then
rmmodipchains>/dev/null2>&1
fi
fi

}

wait()
{
echo|awk'{printf"||",$1}'
forxin`seq110`;
do
sleep1
echo"#"|awk'{printf"%s",$1}'
done

echo-en"\n"
}

iptables()
{
/sbin/iptables"$@"
}

mp()
{
/sbin/modprobe"$@"
}

load_module()
{
if[-e/lib/modules/`uname-r`/kernel/net/ipv4/netfilter/ip_tables.o]
then
echo-e"\n\tLoadingiptablesmodulespleasewait...."
mpip_tables
mpipt_LOG
mpipt_owner
mpipt_MASQURADE
mpipt_REJECT
mpipt_conntrack_ftp
mpipt_conntrack_irc
mpiptable_filter
mpiptable_nat
mpiptable_mangle
mpip_conntrack
mpipt_limit
mpipt_state
mpipt_unclean
mpipt_TCPMSS
mpipt_TOS
mpipt_TTL
mpipt_quota
mpipt_iplimit
mpipt_pkttype
mpipt_ipv4options
mpipt_MARK
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
else
echo-e"\tSorry,noiptablesmodulesfound!!"
fi
}

ip_stack_adjust()
{
if[-e/proc/sys/net/ipv4/ip_forward]

then
echo-e"enableip_forward.pleasewait...."
echo0>/proc/sys/net/ipv4/ip_forward
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/ip_default_ttl]

then
echo-e"changingdefaultttl...."
echo88>/proc/sys/net/ipv4/ip_default_ttl
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
echo-e"\n\tdisabledynamicipsupport...."
echo0>/proc/sys/net/ipv4/ip_dynaddr
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"

if[-e/proc/sys/net/ipv4/ip_no_pmtu_disc]

then
echo-e"disablepathmtudiscovery.pleasewait...."
echo0>/proc/sys/net/ipv4/ip_no_pmtu_disc
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi

if[-e/proc/sys/net/ipv4/ipfrag_high_thresh]

then
echo-e"changingipfrag_high_thresh.pleasewait...."
echo5800>/proc/sys/net/ipv4/ipfrag_high_thresh
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/ipfrag_low_thresh]

then
echo-e"changingipfrag_low_thresh.pleasewait...."
echo2048>/proc/sys/net/ipv4/ipfrag_low_thresh
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/ipfrag_time]

then
echo-e"changingipfrag_low_thresh.pleasewait...."
echo20>/proc/sys/net/ipv4/ipfrag_time
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/ipfrag_secret_interval]

then
echo-e"changingipfrag_secret_interval.pleasewait...."
echo600>/proc/sys/net/ipv4/ipfrag_secret_interval
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/tcp_syn_retries]

then
echo-e"changingtcp_syn_retries.pleasewait...."
echo4>/proc/sys/net/ipv4/tcp_syn_retries
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/tcp_synack_retries]

then
echo-e"changingtcp_synack_retries.pleasewait...."
echo4>/proc/sys/net/ipv4/tcp_synack_retries
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/tcp_keepalive_time]

then
echo-e"changingtcp_keepalive_time.pleasewait...."
echo300>/proc/sys/net/ipv4/tcp_keepalive_time
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/tcp_keepalive_probes]

then
echo-e"changingtcp_keepalive_probes.pleasewait...."
echo4>/proc/sys/net/ipv4/tcp_keepalive_probes
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/tcp_keepalive_intvl]

then
echo-e"changingtcp_keepalive_intvl.pleasewait...."
echo60>/proc/sys/net/ipv4/tcp_keepalive_intvl
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi
if[-e/proc/sys/net/ipv4/tcp_retries1]

then
echo-e"changingtcp_retriest.pleasewait...."
echo3>/proc/sys/net/ipv4/tcp_retries1
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi

if[-e/proc/sys/net/ipv4/tcp_retries2]

then
echo-e"changingtcp_retriest.pleasewait...."
echo15>/proc/sys/net/ipv4/tcp_retries2
echo-e"\t\t\t\t\033[3;032m[OK]\033[0m\n"
fi

if[-e/proc/sys/net/ipv4/tcp_orphan_retries]

then
echo-e"disabletcp