当前位置:操作系统 > Unix/Linux >>

脚本范例

管理脚本范例

  [目录]

  --------------------------------------------------------------------------------

  Mail Server脚本

  This is the configuration script file for our Mail Server. This is configured to allows unlimited traffic on the Loopback inte易做图ce, ICMP, DNS Server and Client (53), SSH Server (22), SMTP Server and Client (25), IMAP server (143), and OUTGOING TRACEROUTE requests by default.

  If you don't want some services listed in the firewall rules files for the Mail Server that I make ON by default, comment them out with a "#" at the beginning of the line. If you want some other

  services that I commented out with a "#", then remove the "#" at the beginning of their lines.

  Create the firewall script file, touch /etc/rc.d/init.d/firewall on your Mail Server and add:

  #!/bin/sh

  #

  # ----------------------------------------------------------------------------

  # Last modified by Gerhard Mourani: 04-25-2000

  # ----------------------------------------------------------------------------

  # Copyright (C) 1997, 1998, 1999 Robert L. Ziegler

  #

  # Permission to use, copy, modify, and distribute this software and its

  # documentation for educational, research, private and non-profit purposes,

  # without fee, and without a written agreement is hereby granted.

  # This software is provided as an example and basis for individual firewall

  # development. This software is provided without warranty.

  #

  # Any material furnished by Robert L. Ziegler is furnished on an

  # "as is" basis. He makes no warranties of any kind, either expressed

  # or implied as to any matter including, but not limited to, warranty

  # of fitness for a particular purpose, exclusivity or results obtained

  # from use of the material.

  # ----------------------------------------------------------------------------

  #

  # Invoked from /etc/rc.d/init.d/firewall.

  # chkconfig: - 60 95

  # description: Starts and stops the IPCHAINS Firewall

  # used to provide Firewall network services.

  # Source function library.

  . /etc/rc.d/init.d/functions

  # Source networking configuration.

  . /etc/sysconfig/network

  # Check that networking is up.

  if [ ${NETWORKING} = "no" ]

  then

  exit 0

  fi

  if [ ! -x /sbin/ipchains ]; then

  exit 0

  fi

  # See how we were called.

  case "$1" in

  start)

  echo -n "Starting Firewalling Services: "

  # Some definitions for easy maintenance.

  # ----------------------------------------------------------------------------

  # EDIT THESE TO SUIT YOUR SYSTEM AND ISP.

  EXTERNAL_INTERFACE="eth0" # Internet connected inte易做图ce

  LOOPBACK_INTERFACE="lo" # Your local naming convention

  IPADDR="my.ip.address" # Your IP address

  ANYWHERE="any/0" # Match any IP address

  NAMESERVER_1="my.name.server.1" # Everyone must have at least one

  NAMESERVER_2="my.name.server.2" # Your secondary name server

  MY_ISP="my.isp.address.range/24" # ISP NOC address range

  SMTP_SERVER="my.smtp.server" # Your Mail Hub Server.

  SYSLOG_SERVER="syslog.internal.server" # Your syslog internal server

  SYSLOG_CLIENT="sys.int.client.range/24" # Your syslog internal client range

  LOOPBACK="127.0.0.0/8" # Reserved loopback address range

  CLASS_A="10.0.0.0/8" # Class A private networks

  CLASS_B="172.16.0.0/12" # Class B private networks

  CLASS_C="192.168.0.0/16" # Class C private networks

  CLASS_D_MULTICAST="224.0.0.0/4" # Class D multicast addresses

  CLASS_E_RESERVED_NET="240.0.0.0/5" # Class E reserved addresses

  BROADCAST_SRC="0.0.0.0" # Broadcast source address

  BROADCAST_DEST="255.255.255.255" # Broadcast destination address

  PRIVPORTS="0:1023" # Well known, privileged port range

  UNPRIVPORTS="1024:65535" # Unprivileged port range

  # ----------------------------------------------------------------------------

  # SSH starts at 1023 and works down to 513 for

  # each additional simultaneous incoming connection.

  SSH_PORTS="1022:1023" # range for SSH privileged ports

  # traceroute usually uses -S 32769:65535 -D 33434:33523

  TRACEROUTE_SRC_PORTS="32769:65535"

  TRACEROUTE_DEST_PORTS="33434:33523"

  # ----------------------------------------------------------------------------

  # Default policy is DENY

  # Explicitly accept desired INCOMING OUTGOING connections

  # Remove all existing rules belonging to this filter

  ipchains -F

  # Clearing all current rules and user defined chains

  ipchains -X

  # Set the default policy of the filter to deny.

  # Don't even bother sending an error message back.

  ipchains -P input DENY

  ipchains -P output DENY

  ipchains -P forward DENY

  # ----------------------------------------------------------------------------

  # LOOPBACK

  # Unlimited traffic on the loopback inte易做图ce.

  ipchains -A input -i $LOOPBACK_INTERFACE -j ACCEPT

  ipchains -A output -i $LOOPBACK_INTERFACE -j ACCEPT

  # ----------------------------------------------------------------------------

  # Network Ghouls

  # Deny access to jerks

  # /etc/rc.d/rc.firewall.blocked contains a list of

  # ipchains -A input -i $EXTERNAL_INTERFACE -s address -j DENY

  # rules to block from any access.

  # Refuse any connection from problem sites

  #if [ -f /etc/rc.d/rc.firewall.blocked ]; then

  # . /etc/rc.d/rc.firewall.blocked

  #fi

  # ----------------------------------------------------------------------------

  # SPOOFING BAD ADDRESSES

  # Refuse spoofed packets.

  # Ignore blatantly illegal source addresses.

  # Protect yourself from sending to bad addresses.

  # Refuse spoofed packets pretending to be from the external address.

  ipchains -A input -i $EXTERNAL_INTERFACE -s $IPADDR -j DENY -l

  # Refuse packets claiming to be to or from a Class A private network

  ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_A -j DENY -l

  ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_A -j DENY -l

  ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_A -j REJECT -l

  ipchains -A output -i $EXTERNAL_INTERFACE -d $CLASS_A -j REJECT -l

  # Refuse packets claiming to be to or from a Class B private network

  ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_B -j DENY -l

  ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_B -j DENY -l

  ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_B -j REJECT -l

  ipchains -A output -i $EXTERNAL_INTERFACE -d $CLASS_B -j REJECT -l

  # Refuse packets claiming to be to or from a Class C private network

  # ipchains -A input -i $EXTERNAL_INTERFACE -s $CLA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,