#!/bin/bash # --- Styling --- YELLOW='\033[1;33m' GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' echo -e "${YELLOW}=== Sechpoint Wallarm Pre-Flight Diagnostic ===${NC}" # --- 1. INTERACTIVE INPUT --- read -p "Enter Application Server IP [127.0.0.1]: " APP_HOST /dev/null; then echo -e "${GREEN}[PASS]${NC} Sudo is active/passwordless." else echo -e "${RED}[FAIL]${NC} Sudo requires a password or user is not in sudoers." fi # Detect OS and try to update/install basics if [ -f /etc/debian_version ]; then echo "OS: Debian/Ubuntu detected. Checking packages..." sudo apt-get update -qq && sudo apt-get install -y curl wget git netcat-openbsd -qq > /dev/null elif [ -f /etc/redhat-release ]; then echo "OS: RHEL/CentOS detected. Checking packages..." sudo yum makecache -q && sudo yum install -y curl wget git nc -q > /dev/null fi # --- 3. TOOL VERIFICATION --- echo -e "\n${YELLOW}[2/4] Verifying Required Tools...${NC}" for tool in curl wget git; do if command -v $tool &> /dev/null; then echo -e "${GREEN}[PASS]${NC} $tool is installed." else echo -e "${RED}[FAIL]${NC} $tool is MISSING." fi done # --- 4. WALLARM CLOUD CONNECTIVITY --- echo -e "\n${YELLOW}[3/4] Testing Wallarm Cloud Connectivity (Port 443)...${NC}" test_conn() { local target=$1 local desc=$2 # Linux-native check. Note: Won't work on default macOS Bash, but perfect for Linux VMs. if timeout 3 bash -c "cat < /dev/null > /dev/tcp/$target/443" 2>/dev/null; then echo -e "${GREEN}[PASS]${NC} $desc ($target)" else echo -e "${RED}[FAIL]${NC} $desc ($target) - BLOCKED" fi } echo "--- EU Cloud ---" test_conn "34.160.38.183" "node-data1.eu1" test_conn "34.144.227.90" "node-data0.eu1" test_conn "34.90.110.226" "api.wallarm.com" echo -e "\n--- US Cloud ---" test_conn "34.96.64.17" "node-data0.us1" test_conn "34.110.183.149" "node-data1.us1" test_conn "35.235.66.155" "us1.api.wallarm.com" test_conn "34.102.90.100" "Extra US-1" test_conn "34.94.156.115" "Extra US-2" test_conn "35.235.115.105" "Extra US-3" # --- 5. INTERNAL APP CHECK --- echo -e "\n${YELLOW}[4/4] Testing Internal App Connectivity...${NC}" if timeout 3 bash -c "cat < /dev/null > /dev/tcp/$APP_HOST/$APP_PORT" 2>/dev/null; then echo -e "${GREEN}[PASS]${NC} Reached App at $APP_HOST:$APP_PORT" else echo -e "${RED}[FAIL]${NC} CANNOT REACH $APP_HOST on port $APP_PORT" fi echo -e "\n${YELLOW}-------------------------------------------------------" echo -e "PRE-FLIGHT COMPLETE. PLEASE SCREENSHOT THIS OUTPUT." echo -e "-------------------------------------------------------${NC}"