bugfix
This commit is contained in:
115
ib.sh
115
ib.sh
@@ -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 ;;
|
||||
|
||||
Reference in New Issue
Block a user