Источник печати баннера сценария SSH затем выполняется - PullRequest
0 голосов
/ 07 ноября 2018

Итак, я создал баннер bash-скрипта для моего SSH-сервера, довольно просто. Он находится в файле profile.d:

/etc/profile.d/ssh_banner.sh

Я отредактировал файл sshd_config следующим образом:

# no default banner path
Banner /etc/profile.d/ssh_banner.sh

Однако, когда я захожу на сервер, перед выполнением сценария и отображением выходных данных он непосредственно отображает источник сценария;

adam@adam-ThinkPad-T470s:~$ ssh adam@<IP_ADDRESS> -p 51536

#!/bin/bash

#Colours
red="\033[00;31m"
RED="\033[01;31m"

green="\033[00;32m"
GREEN="\033[01;32m"

brown="\033[00;33m"
YELLOW="\033[01;33m"

blue="\033[00;34m"
BLUE="\033[01;34m"

purple="\033[00;35m"
PURPLE="\033[01;35m"

cyan="\033[00;36m"
CYAN="\033[01;36m"

white="\033[00;37m"
WHITE="\033[01;37m"

NC="\033[00m"

echo -e "${WHITE}******************************************************************************"
echo -e "${WHITE}**                                                                          **"
echo -e "${WHITE}**                    Powered By Raspbian                                   **"
echo -e "${WHITE}**                                                                          **"
echo -e "${YELLOW}******************************************************************************"

CPUMOD=$(cat /proc/cpuinfo | grep -m 1 -w 'model name' | awk -F: '{print $2}')
HOSTNAME=$(uname -n)
KERNEL=$(uname -r)
MEMTOTAL=$(cat /proc/meminfo | grep -m 1 -w 'MemTotal' | awk -F: '{print $2}')
MEMFREE=$(cat /proc/meminfo | grep -m 1 -w 'MemFree' | awk -F: '{print $2}')
SWAPTOTAL=$(cat /proc/meminfo | grep -m 1 -w 'SwapTotal' | awk -F: '{print $2}')
SWAPFREE=$(cat /proc/meminfo | grep -m 1 -w 'SwapFree' | awk -F: '{print $2}')
echo -e "**     ${YELLOW}Unauthorised access to this network is strickly FORBIDDEN            **"
echo -e "**     ${YELLOW}If you havn't been given authorisation ${RED}LOGOUT IMMEDIATELY!${YELLOW}           **"
echo -e "**${YELLOW}                    This logon has been recored                           **"
echo -e "${YELLOW}******************************************************************************"
echo -e ""
echo -e "${WHITE} Welcome ${YELLOW}${USER}${WHITE}"
echo -e ""

echo -e "${WHITE} Date: "`date`
echo -e ""

echo -e "${WHITE} Hostname:   ${HOSTNAME}"
echo -e "${WHITE} CPU Model: ${CPUMOD}"
echo -e ""
echo -e "${WHITE} Total Memory: ${MEMTOTAL}"
echo -e "${WHITE} Free Memory: ${MEMFREE}"
echo -e ""
echo -e "${WHITE} Swap Total:    ${SWAPTOTAL}"
echo -e "${WHITE} Swap Free:    ${SWAPFREE}"
echo -e ""


# Reset Terminal Colour Back to Normal
echo -e "${NC}"
Last login: Wed Nov  7 12:56:47 2018 from <IP_ADDRESS>
******************************************************************************
**                                                                          **
**                    Powered By Raspbian                                   **
**                                                                          **
******************************************************************************
**     Unauthorised access to this network is strickly FORBIDDEN            **
**     If you havn't been given authorisation LOGOUT IMMEDIATELY!           **
**                    This logon has been recored                           **
******************************************************************************

 Welcome adam

 Date: Wed 7 Nov 13:18:42 UTC 2018

 Hostname:   pi
 CPU Model:  ARMv7 Processor rev 4 (v7l)

 Total Memory:          949448 kB
 Free Memory:           781588 kB

 Swap Total:            102396 kB
 Swap Free:             102396 kB


adam@pi:~ $ 

Предполагаемый баннер распечатывается после строки, сообщающей о последнем входе в систему, Я попытался поместить ssh_banner.sh в другие каталоги, и это приводит к тому, что ssh выводит только исходный код без выполненного вывода. /etc/profile.d - единственный каталог, где SSH выполняет баннер.

Я не понимаю, почему это так, и если кто-то может помочь, я был бы признателен.

1 Ответ

0 голосов
/ 07 ноября 2018

sshd не выполняет и не создает ваш баннер ssh_banner.sh, как указано в документации:

Banner

Содержимое указанного файла отправляется удаленному пользователю до разрешения аутентификации. Если аргумент «none», тогда баннер не отображается. Этот параметр доступен только для протокола версии 2. По умолчанию баннер не отображается.

Если вы поместите баннер ssh_banner.sh под /etc/profile.d, тогда баннер будет получен через обычный процесс входа в систему и не будет иметь ничего общего с sshd.

Таким образом, вы можете поместить комментарий # перед строкой Banner в sshd_config, а ssh_banner.sh все еще поступает при обычном входе в систему.

...