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
 | |
| 
 | |
| 
 |