赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

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

发布时间:2007.07.11 20:57     来源:赛迪网技术社区    作者:lynn

#!/bin/bash

  echo -e " \t\t \033[1;31m RainLow firewall \033[m server version 1.0rc1 -- 09/24/2004 \n"

  echo -e "############################################################"

  echo -e " This software may be used and distributed according to "

  echo -e "the terms of the GNU General Public License (GPL) provided"

  echo -e "credit is given to the original author. "

  echo -e "\t\t\t \033[1;31m Copyright (c) 2004 rainlow \033[m \n"

  echo -e "\t\t\t\t All rights reserved \n\n\n"

  echo -e "############################################################"

  

  # now begins the firewall

  echo -e "\n\t\t\t Welcome to \033[3;31m Rainlow Firewall \033[0m \n\n"

  echo -e " \t\t\t\t \033[1;32m http://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"

  exit 1

  }

  

  check_root()

  {

  ROOT_ID=0

  echo "Checking if you are root...."

  if [ "$UID" = "$ROOT_ID" ]

  then

  echo -e "\n\t OK ! continue....\n"

  echo -e "\a"

  else

  echo -e " Sorry,you are not root and not permitted to do this option...\n"

  echo -e "\a"

  FAILURE="you can not run this command ,you must be root to do this"

  exit_failure

  

  fi

  }

  

  check_enviroment()

  {

  echo -e "\t\t \033[1;31m Now Checking software envrioment \033[m \n"

  

  OS=`uname -s`

  _OS=$OS

  if [ "$_OS" != "Linux" ];then

  FAILURE="Sorry this version can only work under linux "

  exit_failure

  else

  echo -en "\t\t \033[1;32m PASS \033[m \n"

  fi

  

  KERNELMAJ=`uname -r | sed -e 's,\..*,,'`

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

  

  if [ "$KERNELMAJ" -lt 2 ] ; then

  FAILURE="Sorry you kernel is too old,please upgrade it first!"

  exit_failure

  fi

  if [ "$KERNELMAJ" -eq 2 -a "$KERNELMIN" -lt 4 ] ; then

  FAILURE="only kernel greater than 2.4 is supported"

  exit_failure

  fi

  

  if ((`iptables -V 2>&1 | grep -c "Command not found"` )); then

  

  FAILURE="can not find iptables command you must install iptables first"

  exit_failure

  fi

  

  if !(( `which modprobe 2>&1 | grep -c "which: no modprobe in"` )) && ( [ -a /proc/modules ] || ! [ -a /proc/version ] ); then

  if (( `lsmod | grep -c "ipchains"` )); then

  rmmod ipchains > /dev/null 2>&1

  fi

  fi

  

  }

  

  wait()

  {

  echo | awk '{printf "||" ,$1}'

  for x in `seq 1 10`;

  do

  sleep 1

  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\tLoading iptables modules please wait...."

  mp ip_tables

  mp ipt_LOG

  mp ipt_owner

  mp ipt_MASQURADE

  mp ipt_REJECT

  mp ipt_conntrack_ftp

  mp ipt_conntrack_irc

  mp iptable_filter

  mp iptable_nat

  mp iptable_mangle

  mp ip_conntrack

  mp ipt_limit

  mp ipt_state

  mp ipt_unclean

  mp ipt_TCPMSS

  mp ipt_TOS

  mp ipt_TTL

  mp ipt_quota

  mp ipt_iplimit

  mp ipt_pkttype

  mp ipt_ipv4options

  mp ipt_MARK

  echo -e "\t\t\t\t \033[3;032m [ OK ] \033[0m\n"

  else

  echo -e "\tSorry,no iptables modules found !!"

  fi

  }

  

  ip_stack_adjust()

  {

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

  

  then

  echo -e "enable ip_forward.please wait...."

  echo 0 >/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 "changing default ttl...."

  echo 88 >/proc/sys/net/ipv4/ip_default_ttl

  echo -e "\t\t\t\t \033[3;032m [ OK ] \033[0m\n"

  fi

  echo -e "\n\t disable dynamic ip support...."

  echo 0 > /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 "disable path mtu discovery.please wait...."

  echo 0 >/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 "changing ipfrag_high_thresh.please wait...."

  echo 5800 >/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 "changing ipfrag_low_thresh.please wait...."

  echo 2048 >/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 "changing ipfrag_low_thresh.please wait...."

  echo 20 >/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 "changing ipfrag_secret_interval.please wait...."

  echo 600 >/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 "changing tcp_syn_retries.please wait...."

  echo 4 >/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 "changing tcp_synack_retries.please wait...."

  echo 4 >/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 "changing tcp_keepalive_time.please wait...."

  echo 300 >/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 "changing tcp_keepalive_probes.please wait...."

  echo 4 >/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 "changing tcp_keepalive_intvl.please wait...."

  echo 60 >/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 "changing tcp_retriest.please wait...."

  echo 3 >/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 "changing tcp_retriest.please wait...."

  echo 15 >/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 "disable tcp


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 基于Linux系统的包过滤防火墙 (07-11) · Linux防火墙配置入门必学 (07-11)
· Linux系统下免费防毒软件安装及使用经验 (07-10) · LVS集群学习笔记(NAT\DR\IP tunnel)详解 (07-10)
· Ubuntu 7.04在Nvdia-raid上的安装方法介绍 (07-10) · 详细讲解 用Linux+Iptables构建防火墙实例 (07-10)
· 系统DIY:自己定制软盘上的Linux系统方案 (07-10) · 详细讲解 自动封杀非法连接FTP的IP的方法 (07-10)
· Ubuntu Linux下安全读写NTFS分区格式文件 (07-10) · 详细讲解 Ubuntu Dapper中安装多媒体支持 (07-10)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管