PERSIST FIREWALL & KONFIGURASI KERNEL DOCKER OPENWRT

January 22, 2026 elektro jaringan komputer openwrt


Script ini akan mengatur semua konfigurasi yang dibutuhkan agar koneksi antar container Docker tetap stabil bahkan setelah sistem reboot.

 

📝 SCRIPT OTOMATIS (NAMAI FILE:  setup-docker-openwrt.sh )

 

bash

 '''#!/bin/sh

# Script untuk mengatur firewall dan kernel OpenWRT agar kompatibel dengan Docker

# Dibuat untuk menyelesaikan masalah koneksi antar container (Connection refused)


echo "=== MEMULAI SETUP DOCKER DI OPENWRT ==="


# --------------------------

# BAGIAN 1: BACKUP FILE KONFIGURASI

# --------------------------

echo "[1/4] Membuat backup file konfigurasi..."

BACKUP_DATE=$(date +%Y%m%d-%H%M%S)

cp /etc/sysctl.conf /etc/sysctl.conf.backup-$BACKUP_DATE

cp /etc/firewall.user /etc/firewall.user.backup-$BACKUP_DATE

echo "Backup selesai: sysctl.conf.backup-$BACKUP_DATE & firewall.user.backup-$BACKUP_DATE"


# --------------------------

# BAGIAN 2: KONFIGURASI KERNEL

# --------------------------

echo "[2/4] Mengatur parameter kernel..."

# Hapus baris konfigurasi lama jika ada

sed -i '/net.bridge.bridge-nf-call-/d' /etc/sysctl.conf

# Tambahkan konfigurasi baru

cat >> /etc/sysctl.conf << EOF


# Konfigurasi untuk kompatibilitas Docker

net.bridge.bridge-nf-call-iptables=0

net.bridge.bridge-nf-call-ip6tables=0

net.bridge.bridge-nf-call-arptables=0

EOF

# Terapkan perubahan kernel

sysctl -p

echo "Konfigurasi kernel berhasil diterapkan"


# --------------------------

# BAGIAN 3: KONFIGURASI FIREWALL

# --------------------------

echo "[3/4] Mengatur aturan firewall..."

# Hapus aturan lama jika ada

sed -i '/# RULES DOCKER OPENWRT/d' /etc/firewall.user

sed -i '/iptables -I FORWARD -i docker0/d' /etc/firewall.user

sed -i '/iptables -D DOCKER-ISOLATION/d' /etc/firewall.user

# Tambahkan aturan baru

cat >> /etc/firewall.user << EOF


# RULES DOCKER OPENWRT - MULAI

# Izinkan forwarding trafik Docker

iptables -I FORWARD -i docker0 -o docker0 -j ACCEPT

iptables -I FORWARD -i docker0 -j ACCEPT

iptables -I FORWARD -o docker0 -j ACCEPT

# Hapus isolasi Docker

iptables -D DOCKER-ISOLATION-STAGE-1 -j DROP 2>/dev/null

iptables -D DOCKER-ISOLATION-STAGE-2 -j DROP 2>/dev/null

# RULES DOCKER OPENWRT - SELESAI

EOF

# Restart firewall untuk menerapkan perubahan

/etc/init.d/firewall restart

echo "Konfigurasi firewall berhasil diterapkan"


# --------------------------

# BAGIAN 4: RESTART LAYANAN DOCKER

# --------------------------

echo "[4/4] Merestart layanan Docker..."

/etc/init.d/dockerd restart

echo "Layanan Docker berhasil direstart"


echo "=== SETUP SELESAI ==="

echo "Konfigurasi akan tetap ada setelah reboot"

echo "Untuk menguji koneksi, coba akses layanan antar container" 

 

 

🚀 CARA MENJALANKAN SCRIPT

 

1. Salin script di atas ke file  setup-docker-openwrt.sh  di OpenWRT:

bash

nano setup-docker-openwrt.sh

 

2. Berikan izin eksekusi:

bash

chmod +x setup-docker-openwrt.sh

 

3. Jalankan script sebagai root:

bash

./setup-docker-openwrt.sh

 

 

📋 APA YANG DILAKUKAN SCRIPT?

 

1. Backup Otomatis: Membuat cadangan file  sysctl.conf  dan  firewall.user  dengan nama berdasarkan tanggal/jam.

2. Konfigurasi Kernel: Menonaktifkan filter bridge kernel agar Docker bisa bekerja optimal.

3. Firewall Persist: Menambahkan aturan forwarding Docker ke  firewall.user  sehingga tidak hilang setelah reboot.

4. Restart Layanan: Menerapkan semua perubahan dengan merestart firewall dan Docker.

 

✅ CARA MEMVERIFIKASI

 

Setelah menjalankan script, cek apakah konfigurasi sudah benar:

 

bash

# Cek parameter kernel

sysctl net.bridge.bridge-nf-call-iptables


# Cek aturan firewall

iptables -L FORWARD -n | grep docker0

Loading...