S03usbdev: Removed erroneous cat command

S30eth: Refactored to remove subshell

S30eth: Fixed spelling error for /etc/resolv.conf (not /etc/resolve.conf)

S50shd: Optimized the sshd script

S95nanokvm: Checked for IPTables rules before implementing to prevent duplicates.
This commit is contained in:
BlwAvg
2025-02-27 12:43:36 -07:00
parent 594c205a29
commit 023fb4b68b
3 changed files with 100 additions and 66 deletions

View File

@@ -106,7 +106,7 @@ start_usb_dev(){
fi
fi
ls /sys/class/udc/ | cat > UDC
ls /sys/class/udc/ > UDC
echo device > /proc/cviusb/otg_role
}

View File

@@ -3,67 +3,82 @@
# sshd Starts sshd.
#
# Make sure the ssh-keygen progam exists
[ -f /usr/bin/ssh-keygen ] || exit 0
# Ensure required binaries exist
[ -x /usr/bin/ssh-keygen ] || exit 0
[ -x /usr/sbin/sshd ] || exit 1
PIDFILE="/var/run/sshd.pid"
umask 077
startssh() {
/usr/bin/ssh-keygen -A
# Generate keys if missing
[ ! -f /etc/ssh/ssh_host_rsa_key ] && /usr/bin/ssh-keygen -A
printf "Starting sshd: "
/usr/sbin/sshd
touch /var/lock/sshd
echo "OK"
# Prevent multiple instances using PID check
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo "sshd already running"
exit 0
fi
printf "Starting sshd: "
/usr/sbin/sshd
echo $! > "$PIDFILE" # Store the PID of sshd
touch /var/lock/sshd
echo "OK"
}
start() {
# Create any missing keys
if [ -e /etc/kvm/ssh_stop ]
then
if [ -e /boot/start_ssh_once ]
then
rm /boot/start_ssh_once
startssh
else
echo "SSH does not start"
fi
else
startssh
fi
if [ -e /etc/kvm/ssh_stop ]; then
if [ -e /boot/start_ssh_once ]; then
rm -f /boot/start_ssh_once
startssh
else
echo "SSH does not start"
exit 0
fi
else
startssh
fi
}
stop() {
printf "Stopping sshd: "
killall sshd
rm -f /var/lock/sshd
echo "OK"
printf "Stopping sshd: "
if [ -f "$PIDFILE" ]; then
kill "$(cat "$PIDFILE")" 2>/dev/null && rm -f "$PIDFILE"
fi
rm -f /var/lock/sshd
echo "OK"
}
restart() {
stop
start
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
permanent_on)
rm /etc/kvm/ssh_stop
start
;;
permanent_off)
touch /etc/kvm/ssh_stop
stop
;;
*)
echo "Usage: $0 {start|stop|restart|permanent_on|permanent_off}"
exit 1
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
permanent_on)
[ ! -e /etc/kvm/ssh_stop ] && { echo "SSH is already enabled"; exit 0; }
rm -f /etc/kvm/ssh_stop
start
;;
permanent_off)
[ -e /etc/kvm/ssh_stop ] && { echo "SSH is already disabled"; exit 0; }
touch /etc/kvm/ssh_stop
stop
;;
*)
echo "Usage: $0 {start|stop|restart|permanent_on|permanent_off}"
exit 1
esac
exit $?
exit 0

View File

@@ -1,42 +1,57 @@
#!/bin/sh
# nanokvm Rev3.0
# nanokvm Rev3.1
case "$1" in
start)
echo -n kvm > /boot/hostname.prefix
cp /mnt/data/sensor_cfg.ini.LT /mnt/data/sensor_cfg.ini
str_value=$(cat /sys/class/cvi-base/base_uid | awk '{print $2}')
first_uint=$(echo $str_value | cut -d'_' -f1)
second_uint=$(echo $str_value | cut -d'_' -f2)
result="$first_uint$second_uint"
echo $result > /device_key
# Copy sensor config if the file exists
[ -f /mnt/data/sensor_cfg.ini.LT ] && cp /mnt/data/sensor_cfg.ini.LT /mnt/data/sensor_cfg.ini
# Generate unique device key
if [ -f /sys/class/cvi-base/base_uid ]; then
str_value=$(awk '{print $2}' /sys/class/cvi-base/base_uid)
first_uint=$(echo "$str_value" | cut -d'_' -f1)
second_uint=$(echo "$str_value" | cut -d'_' -f2)
echo "$first_uint$second_uint" > /device_key
fi
# Set iptables rules (skip if already present)
iptables -C INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 2>/dev/null || \
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -C OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 2>/dev/null || \
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -C OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 2>/dev/null || \
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -C INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 2>/dev/null || \
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -C OUTPUT -o eth0 -p tcp --sport 8000 -m state --state ESTABLISHED -j DROP 2>/dev/null || \
iptables -A OUTPUT -o eth0 -p tcp --sport 8000 -m state --state ESTABLISHED -j DROP
# Start services
cp -r /kvmapp/kvm_system /tmp/
/tmp/kvm_system/kvm_system &
cp -r /kvmapp/server /tmp/
/tmp/server/NanoKVM-Server &
;;
;;
stop)
killall kvm_system
killall NanoKVM-Server
rm -r /tmp/kvm_system
rm -r /tmp/server
rm -r /tmp/kvm_system /tmp/server
echo "OK"
;;
;;
restart)
killall kvm_system
killall NanoKVM-Server
rm -r /tmp/kvm_system
rm -r /tmp/server
rm -r /tmp/kvm_system /tmp/server
cp -r /kvmapp/kvm_system /tmp/
/tmp/kvm_system/kvm_system &
@@ -44,7 +59,11 @@ case "$1" in
/tmp/server/NanoKVM-Server &
sync
echo "OK"
;;
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac