fix: update setup script for PostgreSQL configuration and refine packets table structure
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 7s

This commit is contained in:
2025-11-25 16:35:15 +01:00
parent abea4c0ba4
commit 59496dd74c

View File

@@ -17,12 +17,12 @@ sudo sed -i "s/^#listen_addresses =.*/listen_addresses = '*'/" "$PG_CONF"
echo "[3] Updating pg_hba.conf for LAN + localhost access…" echo "[3] Updating pg_hba.conf for LAN + localhost access…"
PG_HBA="/etc/postgresql/$(ls /etc/postgresql)/main/pg_hba.conf" PG_HBA="/etc/postgresql/$(ls /etc/postgresql)/main/pg_hba.conf"
# Add localhost entry if missing # Add localhost
if ! grep -Eq "^[ ]*host[ ]+all[ ]+all[ ]+127.0.0.1/32" "$PG_HBA"; then if ! grep -Eq "^[ ]*host[ ]+all[ ]+all[ ]+127.0.0.1/32" "$PG_HBA"; then
echo "host all all 127.0.0.1/32 md5" | sudo tee -a "$PG_HBA" echo "host all all 127.0.0.1/32 md5" | sudo tee -a "$PG_HBA"
fi fi
# Add LAN entry if missing # Add LAN
if ! grep -q "$LAN_SUBNET" "$PG_HBA"; then if ! grep -q "$LAN_SUBNET" "$PG_HBA"; then
echo "host all all $LAN_SUBNET md5" | sudo tee -a "$PG_HBA" echo "host all all $LAN_SUBNET md5" | sudo tee -a "$PG_HBA"
fi fi
@@ -34,12 +34,10 @@ echo "[5] Creating database + user (idempotent)…"
sudo -u postgres psql <<EOF sudo -u postgres psql <<EOF
DO \$\$ DO \$\$
BEGIN BEGIN
-- Create user if missing
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '$DB_USER') THEN IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '$DB_USER') THEN
CREATE USER $DB_USER WITH PASSWORD '$DB_PASS'; CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';
END IF; END IF;
-- Create database if missing
IF NOT EXISTS (SELECT FROM pg_database WHERE datname = '$DB_NAME') THEN IF NOT EXISTS (SELECT FROM pg_database WHERE datname = '$DB_NAME') THEN
CREATE DATABASE $DB_NAME OWNER $DB_USER; CREATE DATABASE $DB_NAME OWNER $DB_USER;
END IF; END IF;
@@ -47,41 +45,33 @@ END
\$\$; \$\$;
EOF EOF
echo "[6] Creating table (idempotent)…" echo "[6] Creating packets table (idempotent)…"
sudo -u postgres psql -d "$DB_NAME" <<EOF sudo -u postgres psql -d "$DB_NAME" <<EOF
CREATE TABLE IF NOT EXISTS packet_log ( CREATE TABLE IF NOT EXISTS packets (
id BIGSERIAL PRIMARY KEY, id BIGSERIAL PRIMARY KEY,
timestamp TIMESTAMPTZ DEFAULT NOW(), timestamp TIMESTAMPTZ DEFAULT NOW(),
-- ingress / egress -- interface metadata
iface VARCHAR(64),
direction VARCHAR(16), direction VARCHAR(16),
-- eBPF metadata -- Ethernet
interface VARCHAR(32),
-- Ethernet layer
src_mac VARCHAR(32), src_mac VARCHAR(32),
dst_mac VARCHAR(32), dst_mac VARCHAR(32),
eth_type VARCHAR(16), eth_type INTEGER,
-- IP layer -- IP
src_ip VARCHAR(64), src_ip VARCHAR(64),
dst_ip VARCHAR(64), dst_ip VARCHAR(64),
ip_protocol VARCHAR(16), protocol INTEGER,
length INTEGER,
-- Transport layer -- eBPF data (reserved for later)
src_port INTEGER, ebpf_verdict VARCHAR(32),
dst_port INTEGER, ebpf_chain VARCHAR(64),
packet_len INTEGER,
-- nftables metadata -- raw packet bytes
nft_hook VARCHAR(32), raw BYTEA
nft_table_name VARCHAR(64), -- <— renamed (fix)
nft_chain VARCHAR(64),
nft_verdict VARCHAR(32),
-- raw packet
raw_packet BYTEA
); );
EOF EOF