Menyinkronkan Kompabilitas /etc/rc.local dengan Systemd. Di masa kini, sebagian besar sistem operasi mengadopsi Systemd. Meskipun tujuannya serupa, namun Systemd lebih kompleks daripada /etc/rc.local yang sering digunakan pada sistem operasi yang lebih lama untuk menjalankan perintah tertentu saat proses booting.
Langkah 1 :
# systemctl status rc-local
Jika terjadi kesalahan ataupun error , lanjut ketahap berikut
# printf '%s\n' '#!/bin/bash' 'exit 0' | tee -a /etc/rc.local
Langkah 2 :
chmod +x /etc/rc.local
Kemudian kita lanjut pembuatan service SystemD
Langkah 3 :
nano /etc/systemd/system/rc-local.service
Isi seperti ini :
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Langkah 4 :
# systemctl daemon-reload
# systemctl enable rc-local
# systemctl start rc-local
# systemctl status rc-local
seperti gambar dibawah ini :
dilanjutkan mencoba memasukkan script :
Langkah 5 :
# nano /etc/rc.local
saya isikan contoh script iptables :
#!/bin/bash
## Mendeteksi dan Mengatasi Serangan DoS
iptables -A INPUT -p tcp -m state --state NEW -m limit --limit 2/second --limit-burst 2 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -j LOG --log-prefix "Dos Detected"
iptables -A INPUT -p tcp -m state --state NEW -j DROP
##Mendeteksi Port Scanning
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j LOG --log-prefix "Port Scan Detected"
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j LOG --log-prefix "Port Scan Detected"
##Mengatasi Serangan Port Scanning
iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG, -j DROP
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j DROP
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j DROP
exit 0
untuk mengetes apakah rc.local berjalan ketika komputer di restart , maka kita reboot komputer, setelah reboot kemudian kita cek dengan perintah :
# iptables --list
Jika ada output script iptables tadi maka rc.local telah berjalan setiap komputer di reboot.