83 lines
2.8 KiB
Bash
Executable File
83 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# By Brielle Bruns <bruns@2mbit.com>
|
|
# 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 <http://www.gnu.org/licenses/>.
|
|
|
|
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
|
|
|
|
|