Pendahuluan
Cara mematikan internet wireless di linux server. tutorial ini berangkat dari permasalahan ketika server memiliki koneksi jaringan ke dua interface jaringan yaitu lan dan wlan. Yang mana lan adalah interface untuk menghubungkan jaringan dari kabel LAN dan wlan adalah interface untuk menghubungkan jaringan jaringan nirkabel atau WIFI. Dan dari kedua interface tersebut memiliki jaringan internet namun saya sebagai administrator saya hanya ingin membuat server saya hanya mendapat jaringan internet dari lan saja dan untuk wlan hanya koneksi biasa saja tanpa internet. Berikut caranya.
Cara
Langkah pertama buat skrip sh
sudo nano /usr/local/bin/remove-wlan0-default-route.sh
Masukan isi skrip berikut.
#!/bin/bash
# File log
LOGFILE="/root/remove-wlan0-route.log"
# Fungsi untuk menulis log
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> $LOGFILE
}
log_message "Script remove-wlan0-default-route.sh dijalankan."
# Fungsi untuk cek apakah wlan0 sudah mendapat IP
function check_ip_wlan0 {
ip addr show wlan0 | grep "inet " > /dev/null
return $?
}
# Fungsi untuk cek apakah ada default route untuk wlan0
function check_route_wlan0 {
ip route | grep '^default' | grep 'wlan0' > /dev/null
return $?
}
# Tunggu hingga wlan0 mendapatkan IP
log_message "Menunggu wlan0 mendapatkan IP address..."
until check_ip_wlan0; do
log_message "Belum ada IP untuk wlan0, menunggu..."
sleep 2
done
log_message "wlan0 sudah mendapatkan IP."
# Tunggu hingga default route untuk wlan0 muncul
log_message "Menunggu default route untuk wlan0..."
until check_route_wlan0; do
log_message "Belum ada default route untuk wlan0, menunggu..."
sleep 2
done
# Setelah route ditemukan, cek apakah masih ada sebelum menghapus
GATEWAY=$(ip route | grep '^default' | grep 'wlan0' | awk '{print $3}')
if [ -n "$GATEWAY" ]; then
log_message "Menghapus default route untuk wlan0 dengan gateway $GATEWAY."
sudo ip route del default via $GATEWAY dev wlan0
if [ $? -eq 0 ]; then
log_message "Default route untuk wlan0 berhasil dihapus."
else
log_message "Gagal menghapus default route untuk wlan0."
fi
else
log_message "Default route untuk wlan0 sudah tidak ada atau tidak ditemukan."
fi
log_message "Script selesai dijalankan."
Simpan dan tutup file.
Beri izin eksekusi pada skrip
sudo chmod +x /usr/local/bin/remove-wlan0-default-route.sh
Langkah kedua membuat systemd service
buat file service di folder /etc/systemd/system/.
sudo nano /etc/systemd/system/remove-wlan0-default-route.service
Masukan isi configurasi service berikut.
[Unit]
Description=Remove default route for wlan0 once it gets an IP
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/remove-wlan0-default-route.sh
StandardOutput=journal
StandardError=journal
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Simpan dan tutup file service.
Langkah ke tiga reload systemd dan jalankan service yang telah kita buat
Reload systemd daemon agar service terbaru terdaftar.
sudo systemctl daemon-reload
Jalankan service.
sudo systemctl start remove-wlan0-default-route.service
Check status service untuk memastikan service berjalan dengan baik tanpa ada error.
sudo systemctl status remove-wlan0-default-route.service
Langkah ke empat membuat service otomatis dimulai saat server pertama kali dinyalakan atau boot.
Enable service agar service dijalankan setiap kali sistem di-boot.
sudo systemctl enable remove-wlan0-default-route.service
Langkah ke lima verifikasi dan cek log
log pada service bisa dilihat melalui journalctl dengan perintah berikut.
sudo journalctl -u remove-wlan0-default-route.service -f
Lalu log pada service juga bisa diliat dengan cara membaca log secara real-time dengan perintah berikut.
tail -f /root/remove-wlan0-route.log
Kesimpulan
dengan cara diatas linux server saya bisa mendapat internet hanya lewat lan saja. dan ketika server direstart secara otomatis systemd dari linux akan mengeksekusi kembali script konfigurasi yg telah kita buat.
Itu aja mungkin dari penulis semoga bermanfaat, dan see you on the next post 😊
Komentar
Posting Komentar