Saya telah mencoba untuk menyusun skrip iptables server dasar yang akan berfungsi untuk sebagian besar situs hanya menjalankan server web dasar menggunakan HTTP (S) dan SSH (port 80, 443, & 22). Lagi pula, sebagian besar VPS hanya membutuhkan aturan port awal ini dan dapat menambahkan port mail atau game nanti sesuai kebutuhan.
Sejauh ini saya memiliki ruleset berikut dan saya bertanya-tanya apakah ada yang tahu tentang skrip yang lebih baik atau perbaikan apa pun yang dapat ditambahkan.
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
iptables adalah salah satu bagian paling penting dari pengamanan kotak Anda (juga lihat fail2ban) namun ada banyak orang seperti saya yang kesulitan memahami segala sesuatu yang membuat firewall dasar aman untuk server kami.
Apa cara paling aman untuk hanya membuka port dasar yang diperlukan untuk server web?
Pembaruan: cyberciti.biz memiliki skrip iptables lain yang terlihat cukup bagus.
Selain itu, daripada menggunakan Denyhosts atau fail2ban, Anda dapat menggunakan iptables sendiri untuk memblokir upaya berulang yang buruk di SSH .
modprobe
tidak diinstal (atau ada kesalahan lain sebelum Anda membuka port 22), Anda akan mengunci diri dari server.