This commit is contained in:
2026-01-12 21:14:37 +07:00
parent e5dfc19f55
commit 3bcb4ffbb7

115
ib.sh
View File

@@ -400,6 +400,119 @@ setup_disks_advanced() {
echo "📝 Добавлено в /etc/fstab"
pause
}
install_fail2ban_interactive() {
echo "${GREEN}🛡️ FAIL2BAN — ИНТЕРАКТИВНАЯ НАСТРОЙКА${NC}"
pkg_install fail2ban
# Остановка если запущен
systemctl stop fail2ban 2>/dev/null || true
# Бэкап
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak 2>/dev/null || true
clear
echo "${YELLOW}⚙️ ОСНОВНЫЕ НАСТРОЙКИ${NC}"
read -p "Время бана (по умолчанию 1h): " BANTIME
BANTIME=${BANTIME:-3600}
read -p "Макс. попыток (по умолчанию 5): " MAXRETRY
MAXRETRY=${MAXRETRY:-5}
read -p "Время проверки попыток (по умолчанию 10m): " FINDTIME
FINDTIME=${FINDTIME:-600}
echo ""
echo "${YELLOW}🤝 IP КОТОРЫЕ НЕ БАНИТЬ (через запятую):${NC}"
echo "Примеры: 192.168.1.0/24, 10.0.0.0/8"
read -p "Белый список: " IGNOREIP
IGNOREIP=${IGNOREIP:-"127.0.0.1/8 ::1"}
# SSH Jail настройки
echo ""
echo "${GREEN}🔒 SSH ЗАЩИТА${NC}"
echo "1) Только стандартный порт 22"
echo "2) Несколько портов (22,2222)"
echo "3) Ручной ввод портов"
read -p "► " SSH_PORT_CHOICE
case $SSH_PORT_CHOICE in
1) SSH_PORT="ssh" ;;
2) SSH_PORT="22,2222" ;;
3) read -p "Порты (через запятую): " SSH_PORT ;;
*) SSH_PORT="ssh" ;;
esac
# Дополнительные сервисы
echo ""
echo "${YELLOW} ДОПОЛНИТЕЛЬНЫЕ СЕРВИСЫ${NC}"
echo "1) Только SSH"
echo "2) SSH + Nginx/Apache"
echo "3) SSH + все популярные"
read -p "► " SERVICES_CHOICE
case $SERVICES_CHOICE in
2) SERVICES="sshd nginx-http-auth nginx-botsearch" ;;
3) SERVICES="sshd nginx-http-auth nginx-botsearch apache-auth dropbear" ;;
*) SERVICES="sshd" ;;
esac
# Создание jail.local
cat > /etc/fail2ban/jail.local << EOF
[DEFAULT]
bantime = $BANTIME
findtime = $FINDTIME
maxretry = $MAXRETRY
backend = systemd
ignoreip = $IGNOREIP
EOF
# Добавление SSH
cat >> /etc/fail2ban/jail.local << EOF
[sshd]
enabled = true
port = $SSH_PORT
logpath = /var/log/auth.log
backend = systemd
EOF
# Дополнительные сервисы
for service in $SERVICES; do
cat >> /etc/fail2ban/jail.local << EOF
[$service]
enabled = true
EOF
done
# Фикс auth.log
[ ! -f /var/log/auth.log ] && ln -sf /var/log/syslog /var/log/auth.log
# Тест и запуск
if fail2ban-client -t 2>/dev/null; then
systemctl daemon-reload
service_enable fail2ban
echo "${GREEN}✅ Fail2Ban настроен и запущен!${NC}"
echo ""
echo "📊 АКТИВНЫЕ JAIL:"
fail2ban-client status | grep -E '^[a-z]' | sed 's/^/ /'
echo ""
echo "🔍 Подробный статус:"
echo " fail2ban-client status sshd"
echo " fail2ban-client status"
else
echo "${RED}❌ Ошибка конфигурации!${NC}"
echo "📋 Проверьте:"
echo " fail2ban-client -t"
echo " journalctl -u fail2ban -xe"
fi
pause
}
# --- ГЛАВНОЕ МЕНЮ ---
@@ -440,7 +553,7 @@ while true; do
7) curl -fsSL https://git.io/wireguard -o wg.sh && bash wg.sh; pause ;;
8) curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh && chmod +x openvpn-install.sh && ./openvpn-install.sh; pause ;;
9) pkg_install glances htop; pause ;;
10) pkg_install fail2ban; service_enable fail2ban; pause ;;
10) install_fail2ban_interactive ;;
11) $PKG_MGR autoremove -y && $PKG_MGR autoclean -y; pause ;;
12) install_unattended_upgrades ;;
13) install_smb_interactive ;;