Disaster Recovery and Business Continuity

Disaster Recovery and Business Continuity

Firewall failures can completely isolate web servers, making disaster recovery planning essential. Design firewall architectures that maintain availability during failures while preserving security.

High Availability Configurations: Implement redundant firewalls in active-passive or active-active configurations:

# Configure firewall clustering (example using keepalived)
global_defs {
    router_id FIREWALL_MASTER
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass fw_cluster_secret
    }
    virtual_ipaddress {
        192.168.1.1/24 dev eth0
    }
}

# Sync firewall states between nodes
vrrp_sync_group FW_SYNC {
    group {
        VI_1
    }
    notify_master "/usr/local/bin/fw-failover.sh master"
    notify_backup "/usr/local/bin/fw-failover.sh backup"
}

Configuration Backups: Automate firewall configuration backups:

#!/bin/bash
# Daily firewall backup script

BACKUP_DIR="/backup/firewall"
DATE=$(date +%Y%m%d)
RETENTION_DAYS=30

# Create backup directory
mkdir -p ${BACKUP_DIR}

# Backup firewall configurations
case $FIREWALL_TYPE in
    "iptables")
        iptables-save > ${BACKUP_DIR}/iptables-${DATE}.rules
        ip6tables-save > ${BACKUP_DIR}/ip6tables-${DATE}.rules
        ;;
    "nftables")
        nft list ruleset > ${BACKUP_DIR}/nftables-${DATE}.rules
        ;;
    "aws")
        aws ec2 describe-security-groups > ${BACKUP_DIR}/aws-sg-${DATE}.json
        ;;
esac

# Compress and encrypt
tar -czf - ${BACKUP_DIR}/*-${DATE}.* | \
    openssl enc -aes-256-cbc -salt -pass pass:${BACKUP_PASSWORD} \
    > ${BACKUP_DIR}/firewall-backup-${DATE}.tar.gz.enc

# Clean up old backups
find ${BACKUP_DIR} -name "firewall-backup-*.tar.gz.enc" -mtime +${RETENTION_DAYS} -delete

# Sync to remote storage
aws s3 sync ${BACKUP_DIR} s3://backup-bucket/firewall-configs/