initial commit
This commit is contained in:
141
01/01-k-server-initial-setup.06.sh
Executable file
141
01/01-k-server-initial-setup.06.sh
Executable file
@@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
#===============================================================================
|
||||
# ШАГ 6: НАСТРОЙКА SSH
|
||||
#===============================================================================
|
||||
# Запуск: sudo bash 01-k-server-initial-setup.06.sh
|
||||
#===============================================================================
|
||||
|
||||
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
source "$SCRIPT_DIR/01-k-server-initial-setup.00.sh"
|
||||
|
||||
init_log
|
||||
check_root
|
||||
|
||||
print_header "ШАГ 6: НАСТРОЙКА SSH"
|
||||
|
||||
SSH_CONFIG="/etc/ssh/sshd_config"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# 6.1 Проверка SSH-сервиса
|
||||
#-------------------------------------------------------------------------------
|
||||
print_subheader "Проверка SSH"
|
||||
|
||||
if service_running sshd || service_running ssh; then
|
||||
print_success "SSH-сервер запущен"
|
||||
else
|
||||
print_warning "SSH-сервер не запущен"
|
||||
print_info "Установка OpenSSH..."
|
||||
apt install -y openssh-server
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# 6.2 Backup конфигурации
|
||||
#-------------------------------------------------------------------------------
|
||||
print_subheader "Резервная копия"
|
||||
|
||||
if [[ -f "$SSH_CONFIG" ]]; then
|
||||
cp "$SSH_CONFIG" "${SSH_CONFIG}.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
print_success "Backup создан"
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# 6.3 Создание новой конфигурации
|
||||
#-------------------------------------------------------------------------------
|
||||
print_subheader "Создание конфигурации"
|
||||
|
||||
cat > "$SSH_CONFIG" << 'EOF'
|
||||
# SSH Server Configuration - Ubuntu 24.04
|
||||
# АВТОРИЗАЦИЯ ТОЛЬКО ПО КЛЮЧАМ
|
||||
|
||||
# Сетевые настройки
|
||||
Port 22
|
||||
AddressFamily any
|
||||
ListenAddress 0.0.0.0
|
||||
ListenAddress ::
|
||||
|
||||
# Ключи хоста
|
||||
HostKey /etc/ssh/ssh_host_rsa_key
|
||||
HostKey /etc/ssh/ssh_host_ecdsa_key
|
||||
HostKey /etc/ssh/ssh_host_ed25519_key
|
||||
|
||||
# Аутентификация - ТОЛЬКО КЛЮЧИ
|
||||
PermitRootLogin prohibit-password
|
||||
PubkeyAuthentication yes
|
||||
AuthorizedKeysFile .ssh/authorized_keys
|
||||
|
||||
# ОТКЛЮЧИТЬ парольную аутентификацию
|
||||
PasswordAuthentication no
|
||||
PermitEmptyPasswords no
|
||||
KbdInteractiveAuthentication no
|
||||
ChallengeResponseAuthentication no
|
||||
UsePAM no
|
||||
|
||||
# Безопасность сессий
|
||||
X11Forwarding no
|
||||
AllowAgentForwarding yes
|
||||
AllowTcpForwarding no
|
||||
PermitTunnel no
|
||||
PermitUserEnvironment no
|
||||
|
||||
# Логирование
|
||||
SyslogFacility AUTH
|
||||
LogLevel VERBOSE
|
||||
|
||||
# Таймауты
|
||||
LoginGraceTime 30
|
||||
ClientAliveInterval 300
|
||||
ClientAliveCountMax 2
|
||||
MaxAuthTries 3
|
||||
MaxSessions 5
|
||||
|
||||
# Криптография (современные алгоритмы)
|
||||
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
|
||||
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
|
||||
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
|
||||
|
||||
# Разрешённые пользователи (раскомментируйте и настройте)
|
||||
AllowUsers admin git komisar
|
||||
|
||||
# SFTP подсистема
|
||||
Subsystem sftp /usr/lib/openssh/sftp-server
|
||||
EOF
|
||||
|
||||
print_success "SSH конфигурация создана"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# 6.4 Проверка конфигурации
|
||||
#-------------------------------------------------------------------------------
|
||||
print_subheader "Проверка конфигурации"
|
||||
|
||||
if sshd -t; then
|
||||
print_success "Конфигурация SSH валидна"
|
||||
else
|
||||
print_error "Ошибка в конфигурации SSH!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# 6.5 Перезапуск SSH
|
||||
#-------------------------------------------------------------------------------
|
||||
print_subheader "Перезапуск SSH"
|
||||
|
||||
systemctl restart sshd 2>/dev/null || systemctl restart ssh
|
||||
systemctl enable sshd 2>/dev/null || systemctl enable ssh
|
||||
|
||||
print_success "SSH перезапущен"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# 6.6 Предупреждение
|
||||
#-------------------------------------------------------------------------------
|
||||
echo ""
|
||||
echo -e "${YELLOW}============================================================${NC}"
|
||||
echo -e "${YELLOW} ВАЖНО: Парольная авторизация ОТКЛЮЧЕНА!${NC}"
|
||||
echo -e "${YELLOW}============================================================${NC}"
|
||||
echo ""
|
||||
echo " Убедитесь, что SSH-ключ добавлен для $ADMIN_USER:"
|
||||
echo " cat /home/$ADMIN_USER/.ssh/authorized_keys"
|
||||
echo ""
|
||||
echo " Проверьте вход с другой консоли ПЕРЕД закрытием текущей сессии!"
|
||||
echo ""
|
||||
|
||||
print_success "Шаг 6 завершён: SSH настроен (только ключи)"
|
||||
Reference in New Issue
Block a user