#!/bin/bash # By Brielle Bruns # URL: http://www.sosdg.org/freestuff/firewall # License: GPLv3 # # Copyright (C) 2009 - 2010 Brielle Bruns # Copyright (C) 2009 - 2010 The Summit Open Source Development Group # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . CONFIGTOOL_VER="0.1" WHIPTAIL="/usr/bin/whiptail" TMPCONFIG=`mktemp` WHICH="/usr/bin/which" AUTOCONFIG_BIN="iptables:IPTABLES ip6tables:IP6TABLES modprobe:MODPROBE" # These are string variables TOOL_TITLE="Welcome to the Firewall/SOSDG Config Tool v${CONFIGTOOL_VER}" WELCOME_BODY="This tool is a quick way to do a basic setup of the firewall script.\n\nThe results of this tool will be output to a file of your choosing at the end of configuration.\nContinue?" AUTOCONFIG_PATHS="Would you like to try to configure paths of important programs automatically?" FAILED_BINS="The following binaries were not found on this system:" FAILED_BINS_FOOT="Please edit the config file by hand and put in the proper path." if [ ! -x $WHIPTAIL ]; then echo "Error: please make sure you have whiptail installed, and the WHIPTAIL variable is set correctly in the tool." rm -f "$TMPCONFIG" exit 1 fi if ! ( $WHIPTAIL --title "${TOOL_TITLE}" --yesno "${WELCOME_BODY}" 12 70 --no-button "Quit" ); then echo "Quitting config tool." rm -f "$TMPCONFIG" exit 1 fi if [ -w "$TMPCONFIG" ]; then echo "# Automatically generated config file, please check before actually using." >"${TMPCONFIG}" else echo "Error: could not write tmp file for config generation." exit 1 fi if ( $WHIPTAIL --title "${TOOL_TITLE}" --yesno "${AUTOCONFIG_PATHS}" 10 40 ); then unset FAILED_CMD_PATH for i in $AUTOCONFIG_BIN; do IFS_OLD=${IFS};IFS=: BIN_PATH=($i) IFS=${IFS_OLD} if ( ${WHICH} ${BIN_PATH[0]} &>/dev/null ); then BIN_FULL="`${WHICH} ${BIN_PATH[0]}`" echo "${BIN_PATH[1]}=\"${BIN_FULL}\"" >>"${TMPCONFIG}" else FAILED_CMD_PATH="${FAILED_CMD_PATH} ${BIN_PATH[0]}" echo "#${BIN_PATH[1]}=\"\"" >>"${TMPCONFIG}" fi done if [ "$FAILED_CMD_PATH" ]; then $WHIPTAIL --title "${TOOL_TITLE}" --msgbox "${FAILED_BINS}\n${FAILED_CMD_PATH}\n${FAILED_BINS_FOOT}" 10 60 fi else for i in $AUTOCONFIG_BIN; do IFS_OLD=${IFS};IFS=: BIN_PATH=($i) IFS=${IFS_OLD} echo "#${BIN_PATH[1]}=\"\"" >>"${TMPCONFIG}" fi