iptables

Iptables untuk pemula

Iptables untuk pemula
Iptables pada dasarnya adalah firewall utama yang digunakan untuk sistem Linux, ada alternatif seperti nftables tetapi Iptables tetap yang utama, sangat fleksibel dengan menerima perintah langsung dari pengguna, Anda dapat memuat dan membongkar aturan sesuai kebutuhan untuk meningkatkan kebijakan firewall Anda ketepatan.

Sebenarnya Anda bahkan tidak perlu mengetahui sintaks Iptable untuk menggunakannya, Anda memiliki alat grafis seperti Firewall Builder yang dapat membuat proses pembelajaran tidak perlu tetapi jika ingin meningkatkan pengetahuan administrasi Linux Iptables adalah langkah pertama untuk mempelajari cara praktis mengelola keamanan di Linux dan bahkan memudahkan pengelolaan perangkat keamanan CISCO atau Fortigate dan sejenisnya.

Iptables pada dasarnya memungkinkan Anda untuk menginstruksikan sistem Anda untuk menerima, menolak atau meneruskan koneksi tergantung pada parameter yang dipilih, misalnya untuk mengarahkan semua koneksi ke port X ke alamat IP yang berbeda, untuk memblokir semua koneksi yang berasal dari IP tertentu, rentang IP atau ke menerima semua koneksi yang berasal dari alamat IP yang masuk daftar putih di antara banyak fungsi lainnya.

Dalam tutorial ini kita akan belajar cara melindungi Server Web, cara meneruskan koneksi ke alamat IP internal dari LAN kita, dan cara menawarkan layanan khusus hanya ke alamat IP yang masuk daftar putih.

Menginstal Iptables

Untuk menginstal iptables pada sistem Debian/Ubuntu jalankan “apt update && apt install iptables” sebagai root atau dengan “sudo” sebagai awalan seperti pada gambar berikut.

Membuka port HTTP dan HTTPS

Pertama-tama mari tambahkan semua kebijakan ACCEPT yang dimulai oleh server web.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Untuk melihat aturan kami ditambahkan, jalankan "iptables -L"

Dimana:

Iptables = memanggil program
-SEBUAH = menambahkan aturan
MEMASUKKAN = lalu lintas masuk
-p = protokol
-ddport = pelabuhan tujuan
-j = tentukan “target”, targetnya adalah jenis kebijakan: ACCEPT, DROP, QUEUE atau RETURN.

Kemudian pada contoh gambar di atas kita menyuruh Iptables untuk menambahkan aturan untuk lalu lintas masuk melalui protokol TCP dan port 80 dan 443 untuk diterima.

Kita dapat mengubah perintah untuk menerima koneksi hanya dari IP tertentu dengan menambahkan parameter “-s”:

iptables -A INPUT -s 127.0.0.1 -p tcp --dport 80 -j TERIMA

Dimana:

s = sumber
Iptables -L = daftar semua aturan yang dimuat iptables
Iptables -L -v = sama dengan verbositas.

Kami juga dapat menguji firewall kami dengan nmap:

Seperti yang kita lihat port 80 terbuka baik menurut "iptables -L" dan Nmap.

Catatan: Untuk informasi lebih lanjut tentang penggunaan Nmap, Anda dapat membaca tutorial kami tentangnya

Melindungi server Anda

#Buka layanan HTTP dan HTTPS.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#Buka Layanan Port SSH
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Di mana parameter baru adalah:

-saya = berarti "cocok" dan digunakan untuk memanggil ekstensi Iptable seperti conntrack yang bukan bagian dari fungsi inti iptable.

jalur penghubung = Memungkinkan untuk melacak informasi tentang koneksi seperti alamat tertentu atau dalam hal ini status koneksi. Ini harus digunakan dengan hati-hati, karena banyak aturan untuk mempertahankan server dari beberapa serangan menggunakan conntrack sementara penggunaannya dibatasi oleh perangkat keras dan batasan tersebut dapat digunakan untuk membebani sumber daya server.

-ctstate = menentukan status aturan yang akan dicocokkan, kemungkinan statusnya adalah: BARU, DIDIRIKAN, TERKAIT, dan INVALID.

#Lindungi Layanan SSH Anda dari serangan brute force dengan hanya mengizinkan IP tertentu
untuk mengakses iptables -A INPUT -p tcp -s X.X.X.X --dport 22 -m conntrack --ctstate BARU,
DIDIRIKAN -j TERIMA
#Lindungi Layanan SSH Anda dari serangan brute force dengan membatasi upaya koneksi
Iptables -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate BARU -j 22-test
Iptables -A 22-test -m recent --name CONNECTIONS --set --mask 255.255.255.255 --rsource
Iptables -A 22-test -m recent --name CONNECTIONS --rcheck --mask 255.255.255.255
--rsource --detik 30 --hitcount 3 -j 22-perlindungan
Iptables -A 22-tes -j TERIMA
Iptables -A 22-perlindungan -j DROP

Dimana:
Di baris pertama aturan kami mengatakan “-m conntrack -ctstate BARU” yang berarti jika koneksi baru maka lolos ke aturan "22-test".

Baris kedua mengatakan paket netmask 255.255.255.255 disebut sebagai KONEKSI .

Baris ketiga mengatakan jika a KONEKSI tampaknya lebih dari 3 kali dalam 30 detik firewall terus menerapkan rantai 22-perlindungan. Baris keempat mengatakan jika KONEKSI tidak terlihat lebih dari 3 kali dalam 30 detik itu dapat diterima.
Baris kelima, yang termasuk dalam 22-perlindungan rantai mengatakan untuk menjatuhkan KONEKSI jika terlihat lebih dari 3 kali dalam 30 detik.

Sekarang untuk mengakhiri, mari kita tolak semua koneksi yang tidak diterima dan mari kita izinkan semua lalu lintas keluar:

iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP

Dimana -P berarti rantai target, ingat targetnya adalah kebijakan, ACCEPT, DROP, QUEUE atau RETURN. Dalam hal ini kami mengatakan kebijakan default untuk lalu lintas keluar adalah menerima dan kebijakan default untuk lalu lintas masuk adalah menolak, kecuali jika kami menentukan sesuatu yang berbeda dalam aturan sebelumnya. Ini adalah firewall yang sangat dasar yang tidak menyertakan aturan untuk banyak serangan, untuk tujuan pembelajaran dan bukan untuk produksi, di akhir artikel saya melampirkan firewall yang saya gunakan untuk produksi di server, ada komentar yang menjelaskan setiap aturan.

MENERUSKAN KONEKSI KE PORT KHUSUS KE ALAMAT IP KHUSUS

Ini sangat berguna juga untuk pengguna desktop yang ingin melakukan enroute koneksi melalui perangkat tertentu, ini dapat berguna bahkan untuk gamer, biasanya kita melakukannya dari pengaturan router tetapi mari kita asumsikan perangkat perutean menjalankan Iptables.

iptables -A PREROUTING -t nat -p tcp -d X.X.X.X --dport 8080 -j DNAT --ke tujuan
kamu.kamu.kamu.Y:80
iptables -A POSTROUTING -t nat -p tcp -j SNAT --to-source X.X.X.X

Aturan di atas memanggil NAT (Network Address Translation)  untuk menentukan koneksi melalui protokol TCP, ke alamat X.X.X.X dan port 8080 akan dialihkan ke alamat Y.kamu.kamu.Y, port 80. Aturan kedua menentukan balasan harus dikirim ke alamat sumber (X.X.X.X). Kami dapat menggunakan aturan ini untuk mengizinkan akses ke kamera IP, untuk mengaktifkan game online dengan jaringan eksternal, dll.

Tutorial ini dimaksudkan untuk memperkenalkan Iptables kepada pemula dan hanya menjelaskan sejumlah fungsi dasar yang terbatas. Di bawah ini Anda dapat melihat contoh firewall yang direncanakan dengan baik yang digunakan untuk server produksi, termasuk dari beberapa aturan yang telah kami lihat hingga aturan yang lebih kompleks untuk mencegah serangan DDoS antara lain.
Tutorial selanjutnya adalah tentang sniffing dalam jaringan lokal, namun pada tutorial berikutnya saya akan menjelaskan beberapa aturan yang diterapkan pada firewall di bawah ini.  Terima kasih telah mengikuti LinuxHint.com, terus ikuti kami untuk pembaruan di masa mendatang tentang Iptables dan Linux secara umum.

Bonus: Contoh firewall produksi

iptables -F
#---- Aktifkan perlindungan pesan kesalahan yang buruk
aktifkan /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#---- Aktifkan pemfilteran jalur terbalik. Lebih aman, tetapi merusak perutean asimetris dan/atau IPSEC
aktifkan /proc/sys/net/ipv4/conf/*/rp_filter
#---- Jangan terima paket yang dirutekan sumber. Perutean sumber jarang digunakan untuk yang sah
tujuan menonaktifkan /proc/sys/net/ipv4/conf/*/accept_source_route
#---- Nonaktifkan penerimaan pengalihan ICMP yang dapat digunakan untuk mengubah tabel perutean Anda
nonaktifkan /proc/sys/net/ipv4/conf/*/accept_redirects
#---- Karena kami tidak menerima pengalihan, jangan kirim pesan Pengalihan juga
nonaktifkan /proc/sys/net/ipv4/conf/*/send_redirects
#---- Abaikan paket dengan alamat yang tidak mungkin
nonaktifkan /proc/sys/net/ipv4/conf/*/log_martians
#---- Lindungi dari pembungkus nomor urut dan bantu pengukuran waktu perjalanan pulang pergi
aktifkan /proc/sys/net/ipv4/tcp_timestamps
#---- Bantuan terhadap serangan syn-flood DoS atau DDoS menggunakan pilihan awal tertentu
Nomor urut TCP mengaktifkan /proc/sys/net/ipv4/tcp_syncookies
#---- Gunakan Selective ACK yang dapat digunakan untuk menandakan bahwa paket tertentu hilang
nonaktifkan /proc/sys/net/ipv4/tcp_sack
modprobe nf_conntrack_ipv4
modprobe nf_nat
# modprobe nf_conntrack_ipv6
# modprobe nf_conntrack_amanda
#modprobe nf_nat_amanda
modprobe nf_conntrack_h323
modprobe nf_nat_h323
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
# modprobe nf_conntrack_netbios_ns
# modprobe nf_conntrack_irc
# modprobe nf_nat_irc
# modprobe nf_conntrack_proto_dccp
# modprobe nf_nat_proto_dccp
modprobe nf_conntrack_netlink
# modprobe nf_conntrack_pptp
# modprobe nf_nat_pptp
# modprobe nf_conntrack_proto_udplite
# modprobe nf_nat_proto_udplite
# modprobe nf_conntrack_proto_gre
# modprobe nf_nat_proto_gre
# modprobe nf_conntrack_proto_sctp
# modprobe nf_nat_proto_sctp
# modprobe nf_conntrack_sane
modprobe nf_conntrack_sip
modprobe nf_nat_sip
# modprobe nf_conntrack_tftp
# modprobe nf_nat_tftp
# modprobe nf_nat_snmp_basic
#Sekarang kita dapat mulai menambahkan layanan yang dipilih ke filter firewall kita. Hal pertama seperti itu
adalah antarmuka localhost iptables -A INPUT -i lo -j ACCEPT
#Kami memberi tahu firewall untuk mengambil semua paket yang masuk dengan flag tcp NONE dan hanya DROP mereka.
iptables -A INPUT -p tcp ! -m conntrack --ctstate BARU -j DROP
#Kami memberi tahu iptables untuk menambahkan (-A) aturan ke yang masuk (INPUT) - SSH berfungsi pada port 50683
bukannya 22.
iptables -A INPUT -p tcp -m tcp --dport 50683 -j TERIMA
iptables -A INPUT -p tcp -m tcp -s ip spesifik --dport 50683 -j TERIMA
iptables -A INPUT -p tcp -m tcp -s ip spesifik --dport 50683 -j TERIMA
iptables -A INPUT -p tcp -m tcp -s ip spesifik --dport 50683 -j TERIMA
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate BARU -m baru-baru ini --set
--nama SSH -j TERIMA
iptables -A INPUT -p tcp --dport 50683 -m baru-baru ini --update --detik 60 --hitcount 4
--rttl --nama SSH -j LOG --log-prefix "SSH_brute_force"
iptables -A INPUT -p tcp --dport 50683 -m baru-baru ini --update --detik 60 --hitcount 4
--rttl --nama SSH -j DROP
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate BARU -m baru-baru ini --set
--nama SSH
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate BARU -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate NEW -m recent --update
--detik 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_bru
iptables -A INPUT -p tcp --dport 50683 -m conntrack --ctstate BARU -m baru-baru ini --update
--detik 60 --hitcount 4 --rttl --nama SSH -j DROP
#Sekarang saya mengizinkan imap, dan smtp.
-MASUKAN -p tcp --dport 25 -j TERIMA
# Memungkinkan koneksi pop dan pop
-MASUKAN -p tcp --dport 110 -j TERIMA
-MASUKAN -p tcp --dport 995 -j TERIMA
############ IMAP & IMAPS ############
-MASUKAN -p tcp --dport 143 -j TERIMA
-MASUKAN -p tcp --dport 993 -j TERIMA
########### MYSQL ########################
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j TERIMA
########## R1soft CDP System ###############
iptables -A INPUT -p tcp -m tcp -s ip spesifik --dport 1167 -j TERIMA
############### keluar ########################
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
### Izinkan berlangsung, blokir masuk tidak ditentukan ###
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -L -n
iptables-save | tee /etc/iptables.uji.aturan
iptables-restore < /etc/iptables.test.rules
#service iptables restart
WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...
Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...
Kursor melompat atau bergerak secara acak saat mengetik di Windows 10
Jika Anda menemukan bahwa kursor mouse Anda melompat atau bergerak sendiri, secara otomatis, acak saat mengetik di laptop atau komputer Windows, maka ...