#!/usr/bin/env bash # ============================================================================== # FatecSeg Corp - Script de Instalação e Deploy Automatizado # Disciplina: Desenvolvimento Seguro # ============================================================================== set -e DEST_DIR="/var/www/html/fatecseg" TAR_URL="https://git.tmferreira.tec.br/tiago.ferreira/desenvolvimento_sitemas_seg_info/raw/branch/main/fatecseg.tar.gz" TEMP_TAR="/tmp/fatecseg.tar.gz" DB_USER="root" DB_PASS="sploitme" # Cores para o terminal GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' echo -e "${BLUE}======================================================${NC}" echo -e "${BLUE} FatecSeg Corp - Deploy e Configuração Automática ${NC}" echo -e "${BLUE}======================================================${NC}" # 1. Verificar se é root if [ "$EUID" -ne 0 ]; then echo -e "${RED}[!] Erro: Este script precisa ser executado com sudo/root.${NC}" echo -e " Execute: sudo bash $0 ou curl ... | sudo bash" exit 1 fi # 2. Garantir que o serviço MySQL esteja ativo e com socket configurado echo -e "\n${YELLOW}[1/5] Verificando serviço MySQL...${NC}" if command -v service >/dev/null 2>&1; then service mysql start >/dev/null 2>&1 || true fi # Ajuste de socket do Metasploitable 3 if [ -S /run/mysql-default/mysqld.sock ] && [ ! -S /var/run/mysqld/mysqld.sock ]; then mkdir -p /var/run/mysqld ln -sf /run/mysql-default/mysqld.sock /var/run/mysqld/mysqld.sock >/dev/null 2>&1 || true fi echo -e "${GREEN}[✓] Serviço MySQL verificado.${NC}" # 3. Limpar diretório anterior e recriar echo -e "\n${YELLOW}[2/5] Preparando diretório ${DEST_DIR}...${NC}" rm -rf "$DEST_DIR" mkdir -p "$DEST_DIR" echo -e "${GREEN}[✓] Diretório preparado.${NC}" # 4. Baixar pacote atualizado echo -e "\n${YELLOW}[3/5] Baixando pacote do portal FatecSeg Corp...${NC}" echo -e "URL: ${TAR_URL}" if command -v curl >/dev/null 2>&1; then curl -fsSL "$TAR_URL" -o "$TEMP_TAR" elif command -v wget >/dev/null 2>&1; then wget -q --show-progress "$TAR_URL" -O "$TEMP_TAR" else echo -e "${RED}[X] Erro: curl ou wget não encontrado.${NC}" exit 1 fi echo -e "${GREEN}[✓] Download concluído.${NC}" # 5. Extrair pacote e ajustar permissões echo -e "\n${YELLOW}[4/5] Extraindo arquivos e ajustando permissões...${NC}" tar -xzf "$TEMP_TAR" -C "$DEST_DIR" rm -f "$TEMP_TAR" rm -f "$DEST_DIR"/data/*.sqlite >/dev/null 2>&1 || true chown -R www-data:www-data "$DEST_DIR" 2>/dev/null || true chmod -R 755 "$DEST_DIR" chmod -R 777 "$DEST_DIR/data" echo -e "${GREEN}[✓] Arquivos extraídos e permissões configuradas.${NC}" # 6. Configurar o banco de dados MySQL echo -e "\n${YELLOW}[5/5] Configurando banco de dados MySQL...${NC}" DB_OK=false if command -v mysql >/dev/null 2>&1 || command -v mariadb >/dev/null 2>&1; then MYSQL_BIN=$(command -v mysql || command -v mariadb) # 1ª tentativa: Metasploitable 3 (root / sploitme em 127.0.0.1) if $MYSQL_BIN -h 127.0.0.1 -u "$DB_USER" -p"$DB_PASS" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then DB_OK=true # 2ª tentativa: root sem senha via socket elif $MYSQL_BIN -u "$DB_USER" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then DB_OK=true # 3ª tentativa: root com sploitme via socket elif $MYSQL_BIN -u "$DB_USER" -p"$DB_PASS" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then DB_OK=true fi fi # Fallback via PHP CLI se necessário if [ "$DB_OK" = false ] && command -v php >/dev/null 2>&1; then if php "$DEST_DIR/setup_db.php" >/dev/null 2>&1; then DB_OK=true fi fi if [ "$DB_OK" = true ]; then echo -e "${GREEN}[✓] Banco de dados configurado e populado com 12 usuários no MySQL!${NC}" else echo -e "${YELLOW}[!] Inicialize o banco pelo navegador: http://localhost/fatecseg/setup_db.php${NC}" fi # Identificar IP da máquina IP_LOCAL=$(hostname -I 2>/dev/null | awk '{print $1}' || echo "localhost") if [ -z "$IP_LOCAL" ]; then IP_LOCAL="localhost"; fi echo -e "\n${GREEN}======================================================${NC}" echo -e "${GREEN} Deploy concluído com sucesso! ${NC}" echo -e "${GREEN}======================================================${NC}"