mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
This mostly avoids starting things that will not work and gets the initial config. Most of the pfSense functionality will not work (pf rules, routing, etc) but it can be used for testing.
179 lines
3.6 KiB
Bash
Executable File
179 lines
3.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# /etc/rc.initial
|
|
# part of pfSense by Scott Ullrich
|
|
# Copyright (C) 2004-2011 Scott Ullrich, All rights reserved.
|
|
# originally based on m0n0wall (http://neon1.net/m0n0wall)
|
|
# Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
|
|
# All rights reserved.
|
|
|
|
# make sure the user can't kill us by pressing Ctrl-C,
|
|
# ctrl-z, etc.
|
|
#trap : 2
|
|
#trap : 3
|
|
#trap : 4
|
|
|
|
# If recovery console shell option has been specified
|
|
if [ -f "/tmp/donotbootup" ]; then
|
|
/usr/bin/env prompt="%B[%n@%m]%b%/(%h)||RecoveryConsoleShell: " /bin/tcsh
|
|
rm "/tmp/donotbootup"
|
|
echo "Rebooting in 5 seconds... CTRL-C to abort..."
|
|
sleep 5
|
|
/etc/rc.reboot
|
|
exit
|
|
fi
|
|
|
|
if [ -f /etc/rc.local ]; then
|
|
RCLOCALPWD=`ps awux | grep rc.local | grep -v grep | awk '{ print $2 }'`
|
|
if [ "$RCLOCALPWD" = "" ]; then
|
|
echo ">>> Launching rc.local in background..."
|
|
sh /etc/rc.local &
|
|
sleep 1
|
|
sh /etc/rc.local.running &
|
|
else
|
|
if [ -f /etc/rc.local.running ]; then
|
|
echo ">>> Launching rc.local.running in background..."
|
|
sh /etc/rc.local.running &
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
CONFIG="/cf/conf/config.xml"
|
|
WORD="https"
|
|
|
|
# Set our operating platform
|
|
PLATFORM=`cat /etc/platform`
|
|
|
|
if [ "$PLATFORM" = "jail" ]; then
|
|
exit
|
|
fi
|
|
|
|
# endless loop
|
|
while : ; do
|
|
|
|
if [ -f /tmp/ttybug ]; then
|
|
rm /tmp/ttybug
|
|
exit && exit && logout
|
|
fi
|
|
|
|
/etc/rc.banner
|
|
|
|
product=`grep product_name /etc/inc/globals.inc | cut -d'"' -f4`
|
|
hidebanner=`grep hidebanner /etc/inc/globals.inc | cut -d'"' -f4`
|
|
|
|
# Check to see if SSH is listening.
|
|
SSHD=`/usr/bin/sockstat -4l | grep "*.22" | wc -l`
|
|
if [ "$SSHD" -gt 0 ]; then
|
|
sshd_option="14) Disable Secure Shell (sshd)";
|
|
else
|
|
sshd_option="14) Enable Secure Shell (sshd)";
|
|
fi
|
|
|
|
for i in /var/db/pfi/capable_*; do
|
|
if [ -f $i -a ! -L /cf/conf ]; then
|
|
option98="98) Move configuration file to removable device"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ "$PLATFORM" = "cdrom" ]; then
|
|
option99="99) Install ${product} to a hard drive, etc."
|
|
fi
|
|
|
|
# display a cheap menu
|
|
echo ""
|
|
echo ""
|
|
echo " 0) Logout (SSH only) 8) Shell"
|
|
echo " 1) Assign Interfaces 9) pfTop"
|
|
echo " 2) Set interface(s) IP address 10) Filter Logs"
|
|
echo " 3) Reset webConfigurator password 11) Restart webConfigurator"
|
|
echo " 4) Reset to factory defaults 12) ${product} Developer Shell"
|
|
echo " 5) Reboot system 13) Upgrade from console"
|
|
echo " 6) Halt system ${sshd_option}"
|
|
echo " 7) Ping host ${option98}"
|
|
|
|
if [ "${option99}" != "" ]; then
|
|
/bin/echo "${option99}"
|
|
fi
|
|
|
|
echo
|
|
read -p "Enter an option: " opmode
|
|
echo
|
|
|
|
# see what the user has chosen
|
|
case ${opmode} in
|
|
0)
|
|
exit && exit && logout
|
|
;;
|
|
1)
|
|
/etc/rc.initial.setports
|
|
;;
|
|
2)
|
|
/etc/rc.initial.setlanip
|
|
;;
|
|
3)
|
|
/etc/rc.initial.password
|
|
;;
|
|
4)
|
|
/etc/rc.initial.defaults
|
|
;;
|
|
5)
|
|
/etc/rc.initial.reboot
|
|
;;
|
|
6)
|
|
/etc/rc.initial.halt
|
|
;;
|
|
7)
|
|
/etc/rc.initial.ping
|
|
;;
|
|
8)
|
|
/bin/tcsh
|
|
;;
|
|
9)
|
|
/usr/local/sbin/pftop
|
|
;;
|
|
10)
|
|
/usr/sbin/tcpdump -n -e -ttt -i pflog0
|
|
;;
|
|
11)
|
|
/etc/rc.restart_webgui
|
|
;;
|
|
12)
|
|
/usr/local/sbin/pfSsh.php
|
|
;;
|
|
13)
|
|
php -f /etc/rc.initial.firmware_update
|
|
;;
|
|
14)
|
|
php -f /etc/rc.initial.toggle_sshd
|
|
;;
|
|
15)
|
|
/etc/rc.banner
|
|
;;
|
|
98)
|
|
if [ ! -f /tmp/config_moved ]; then
|
|
/etc/rc.initial.store_config_to_removable_device
|
|
fi
|
|
;;
|
|
99)
|
|
if [ -e /dev/ukbd0 ]; then
|
|
env TERM=cons25 /scripts/lua_installer
|
|
else
|
|
/scripts/lua_installer
|
|
fi
|
|
;;
|
|
100)
|
|
if grep "$WORD" "$CONFIG"; then
|
|
links "https://localhost"
|
|
else
|
|
links "http://localhost"
|
|
fi
|
|
;;
|
|
"")
|
|
kill $PPID ; exit
|
|
;;
|
|
esac
|
|
|
|
done
|
|
|