Pengantar Lapisan 3 Firewall MikroTik

Firewall (atau filter paket) adalah topik besar dan kompleks baik secara teoritis maupun praktis. Paket filter dalam berbagai sistem operasi dapat memiliki pro dan kontra dibandingkan dengan implementasi lainnya. Pada artikel ini, saya secara eksklusif akan mempertimbangkan Firewall di RouterOS dengan memperhatikan iptables nenek moyangnya.


Kata Pengantar


Untuk siapa artikel ini?


Jika Anda tahu cara bekerja dengan iptables, maka lanjutkan dan konfigurasikan firewall, tidak akan ada yang baru untuk Anda dalam artikel ini (well, kecuali bahwa rantai dengan nama lain digunakan dalam tabel NAT). Jika ini pertama kalinya Anda melihat firewall di RouterOS dan ingin mendapatkan skrip siap pakai untuk konfigurasi, maka Anda tidak akan menemukannya di sini. Materi ini ditujukan untuk mereka yang ingin mendapatkan ide dasar tentang bagaimana firewall bekerja dan apa yang terjadi dengan paket ip pada berbagai tahap pemrosesan. Pemahaman yang lebih dalam akan datang dengan pengalaman dan pemecahan masalah sehari-hari dan tidak biasa menggunakan filter paket.


Bagian teoretis


Apa itu Layer3 Firewall?



Misalkan Anda memiliki router dengan akses Internet dan dua antarmuka jembatan: bridge-lan (ether2-ether5) dan bridge-dmz (ether6-ether10).


Di dalam antarmuka Bridge, perangkat secara independen menemukan tetangga dari subnet dan paket pertukaran mereka, router bertindak sebagai saklar dan tidak memantau lalu lintas seperti itu di tingkat jaringan (tentu saja, Anda dapat memaksanya untuk melakukan ini, tetapi kita akan membicarakan tentang Layer2 Firewall di lain waktu).


Jika perlu, hubungi perangkat yang terhubung ke antarmuka jembatan lain atau terletak di jaringan global, perangkat mengirimkan paket ke router, yang menentukan rute dan memprosesnya di tingkat jaringan (Layer 3).


Diagram Alur Paket


Jalur lalu lintas lengkap dijelaskan dalam Diagram Alur Paket, ada beberapa versi resmi (v5, v6 ), mereka perlu diketahui dan digunakan dalam pekerjaan sehari-hari, tetapi untuk memahami operasi filter paket, mereka kelebihan beban, jadi saya akan menjelaskan dalam versi ringan.



Input / Output Interface adalah antarmuka router Layer 3 (fisik atau virtual) apa saja. Paket yang pergi dari jaringan lokal ke Internet sampai ke antarmuka input, dan meninggalkan antarmuka output. Paket dari Internet ke jaringan lokal juga sampai ke antarmuka input, dan meninggalkan antarmuka output. Packet Flow selalu dibaca dalam input satu arah -> output.


Fitur terminologi


Mempelajari aliran paket untuk iptables, Anda dapat menemukan deskripsi melalui "rantai dalam tabel" atau "tabel dalam rantai". Diagram menunjukkan tabel dalam rantai, saat menambahkan aturan ke firewall, semuanya akan menjadi sebaliknya.


Namun pada kenyataannya, paket bergerak di antara blok [rantai + tabel], misalnya, jika Anda melakukan terima di blok [prerouting + mangle], paket transit masih akan diproses dalam [forward + mangle]. Ini penting untuk diingat dalam konfigurasi kompleks dengan pbr dan antrian.


Dokumentasi iptables memiliki definisi yang lebih tepat, tetapi dengan kata-kata sederhana:
Chains bertanggung jawab atas di mana paket diproses dan urutan aturan.
Tabel menentukan tindakan yang dapat dilakukan pada suatu paket.


Paket Dasar Mengikuti Opsi



Transit



  1. Paket dari jaringan datang ke salah satu antarmuka router
  2. Dalam rantai PREROUTING, administrator dapat memengaruhi rute paket: menentukan antarmuka keluaran (perutean basis kebijakan) atau mengalihkan ke alamat lain (dst-nat).
  3. Sesuai dengan tabel routing untuk paket, antarmuka keluar ditentukan.
  4. Rantai FORWARD adalah tempat penyaringan utama untuk lalu lintas yang lewat.
  5. Item terakhir sebelum memasuki jaringan adalah rantai POSTROUTING, di mana Anda dapat mengubah alamat pengirim (src-nat).
  6. Paket itu online.

Masuk



  1. Paket dari jaringan datang ke salah satu antarmuka router
  2. Tekan rantai PREROUTING.
  3. Menurut tabel routing, paket itu dikirim untuk diproses ke proses lokal.
  4. Rantai INPUT menyaring lalu lintas masuk oleh administrator.
  5. Paket diproses oleh proses lokal.

Keluar



  1. Salah satu proses router menghasilkan paket ip (baru atau respons - tidak masalah).
  2. Sesuai dengan tabel routing, antarmuka output didefinisikan untuk paket tersebut.
  3. Administrator dapat menyaring lalu lintas keluar atau mengubah rute dalam rantai OUTPUT.
  4. Untuk paket, keputusan akhir pada antarmuka output dibuat.
  5. Paket jatuh ke POSTROUTING, seperti halnya lalu lintas yang lewat .
  6. Paket itu online.

Pelacak koneksi


Pertama, Anda perlu memahami apa filter paket stateful dan stateless.



Sebuah contoh Komputer 192.168.100.10 membuka koneksi tcp ke server 192.0.2.10. Di sisi klien, port dinamis 49149 digunakan, di sisi server 80. Sebelum konten diterima, klien dan server harus bertukar paket untuk membuat sesi tcp.


Dalam keadaan stateless, Anda perlu membuka lalu lintas dari jaringan lokal ke Internet dan dari Internet ke jaringan lokal (setidaknya untuk kisaran port dinamis). Yang secara keseluruhan adalah lubang.


Dalam router stateful , ia menganalisis paket-paket dan, setelah menerima tcp syn dari 192.168.100.10:49149 untuk 192.0.2.10:80, menganggap ini sebagai awal dari koneksi baru. Semua paket lebih lanjut (ke segala arah) antara 192.168.100.10:49149 dan 192.0.2.10:80 akan dianggap sebagai bagian dari koneksi yang ada sampai sesi tcp ditutup atau timer berakhir.


Untuk UDP / ICMP dan jenis lalu lintas lainnya, di mana awal dan akhir koneksi tidak dapat dibedakan dengan jelas, paket pertama adalah yang pertama, sisanya dianggap sebagai bagian dari koneksi yang dibuat dan memperbarui timer, router lupa tentang koneksi tersebut setelah timer berakhir.


Pelacak koneksi membagi paket menjadi beberapa jenis:



baru - paket yang membuka koneksi, misalnya syn untuk tcp atau paket pertama dalam aliran udp.
didirikan - paket yang terkait dengan koneksi yang dikenal.
related - package terkait dengan koneksi tambahan dalam multiprotocol (sip, pptp, ftp, ...).
tidak valid - paket dari koneksi yang tidak dikenal.
untracked - paket tidak dilacak pelacak koneksi.


Konfigurasi pelacak koneksi
diaktifkan = ya - diaktifkan.
diaktifkan = tidak - dinonaktifkan.
enabed = auto-disable hingga aturan yang menggunakan kapabilitas conntrack muncul di firewall. Ini digunakan secara default.



Parameter yang tersisa adalah timer yang berbeda dan biasanya tidak memerlukan penyetelan.


Administrator dapat melihat dan menghapus koneksi, misalnya, koneksi ke NAT terlihat seperti ini:



Menggunakan conntrack memengaruhi kinerja dan konsumsi sumber daya (terutama dengan sejumlah besar koneksi), tetapi itu tidak akan berfungsi di sebagian besar konfigurasi, karena Anda akan memiliki firewall stateless tanpa NAT.


Daftar fungsi tergantung pelacak koneksi


TTL


Time To Live - bidang dalam header paket IP yang menentukan jumlah router tempat paket dapat pergi sebelum dihancurkan, melindungi terhadap penerusan paket tanpa akhir selama loop routing.



Saat meneruskan, router mengurangi nilai TTL sebanyak 1, jika TTL = 0. Dalam hal ini, paket dengan TTL = 1 akan menuju ke proses lokal router.


Beberapa operator menggunakan trik TTL untuk mencegah penggunaan router. Semua batasan ini sepadan dengan peningkatan nilai ttl dalam tabel mangle.


NAT


Terjemahan Alamat Jaringan - teknologi untuk mengubah alamat dalam header paket ip. Seperti linux, NAT adalah bagian dari filter paket. NAT bekerja berdasarkan pelacak koneksi.


Awalnya, NAT dirancang sebagai solusi cepat untuk masalah kelelahan alamat IPv4, untuk jaringan lokal, diusulkan untuk menggunakan subnet dari rentang: 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16 dan menerjemahkannya menjadi satu (atau beberapa) alamat yang dapat dirutekan. Bahkan, ada beberapa subnet layanan yang dapat digunakan pada jaringan pribadi dan router, pada prinsipnya, sama dengan cara NAT, tetapi disarankan untuk mengikuti standar.


Hanya proses NAT: tcp, udp, icmp dan beberapa multi-protokol dari [IP] -> [Firewall] -> [Service Port]. Hanya paket pertama (koneksi-negara = baru) dalam koneksi yang diproses, paket-paket yang tersisa diproses secara otomatis tanpa partisipasi tabel NAT. Ini bisa dilacak oleh perubahan penghitung dalam aturan.


Header paket masing-masing berisi Sumber dan tujuan, dan NAT dibagi menjadi Sumber dan Tujuan NAT.


Sumber NAT - alamat pengirim spoofing, hadir di sebagian besar router rumah dan perusahaan di dunia.



Ini memungkinkan banyak perangkat dengan alamat "abu-abu" di jaringan lokal untuk berkomunikasi dengan Internet menggunakan satu (atau beberapa) alamat asli.



Kembali ke Packet Flow, kita melihat bahwa SRC-NAT dalam Postrouting, setelah memutuskan apakah akan merutekan paket.


Paket respons melewati DST-NAT implisit di mana alamat penerima diubah menjadi lokal.


NAT Tujuan - penggantian alamat penerima.



Digunakan, jika perlu, untuk meneruskan paket ke alamat lain, biasanya digunakan untuk "meneruskan port" dari jaringan eksternal ke jaringan lokal.



Menurut Packet Flow, operasi DST-NAT terjadi sebelum keputusan tentang perutean di Prerouting dibuat, SRC-NAT implisit hadir untuk lalu lintas respons.


NAT adalah alat manajemen lalu lintas yang cukup kuat, tetapi harus digunakan terakhir (ketika alat lain tidak dapat membantu).


Rantai (rantai) dasar dan pengguna


Rantai terdiri dari aturan dan memaksa logika pemrosesan paket.
Ada beberapa rantai dasar yang dipetakan ke aliran paket:
Prerouting (dstnat) - pemrosesan paket sebelum memutuskan rute
Paket pemrosesan input ditujukan untuk proses lokal router
Keluaran - pemrosesan paket paket yang dihasilkan oleh proses lokal router
Maju - Memproses Passing Traffic
Postrouting (srcnat) - Memproses lalu lintas yang siap untuk dikirim ke antarmuka


Semuanya seperti di iptables, tetapi rantai di nat diganti nama. Apa yang terhubung dengan ini (kemungkinan besar dengan hotspot atau pembongkaran perangkat keras nat) tidak diketahui oleh saya, tetapi tidak mengubah apa pun.


Paket melewati aturan dalam rantai secara berurutan, jika cocok untuk semua kondisi, maka tindakan diterapkan ke paket. Jika tindakan mengakhiri dan tidak menjatuhkan paket, maka diteruskan ke blok aliran paket berikutnya.


Semua rantai dasar memiliki tindakan default (jika paket tidak sesuai dengan salah satu aturan) - terima .


Rantai kustom diperlukan untuk mengurangi jumlah aturan yang dilewati setiap paket dan membuat aturan yang rumit untuk memproses lalu lintas. Semua rantai pengguna memiliki tindakan default - kembali .



Di dalam tabel, Anda bisa meneruskan aturan dari beberapa rantai basis (dan pengguna) yang berbeda ke rantai pengguna, tetapi paket tersebut akan kembali ke rantai dari mana asalnya.



Syarat dan Ketentuan


Rantai terdiri dari aturan, setiap aturan terdiri dari kondisi dan tindakan. Ada banyak kondisi, tetapi tidak semua dari Anda akan menggunakan dalam konfigurasi nyata. Sebagian besar kondisi dapat diawali dengan "tidak" (tanda "!"). Agar sesuai dengan aturan, paket harus cocok untuk semua kondisi ini.



Beberapa kondisinya
KetentuanDeskripsi
src-addressAlamat Sumber
alamat pertamaAlamat penerima
src-address-listAlamat sumber tercantum.
dst-address-listAlamat penerima terdaftar
protokolProtokol lapisan transport
src-portPort sumber
port pertamaPort Penerima
pelabuhanSumber atau port tujuan
dalam antarmukaAntarmuka tempat paket itu datang
out-interfaceAntarmuka dari mana paket akan dikirim ke jaringan
dalam-antarmuka-daftarAntarmuka tempat paket datang terdaftar
keluar-antarmuka-daftarAntarmuka dari mana paket akan dikirim ke jaringan terdaftar
layer7-protokolAnalisis isi dari 10 paket pertama dalam suatu koneksi
kontenCari string yang diberikan dalam batch
tls-hostHost pencarian di tls header
kebijakan-IPSecPeriksa apakah paket cocok dengan kebijakan ipsec atau tidak
ukuran paketukuran paket dalam byte
src-mac-addressalamat sumber paket mac
tanda koneksiLabel koneksi
tanda paketLabel paket
Routing-markPaket Waypoint
kondisi koneksiStatus paket koneksi
tcp-flagsPaket panji tcp
opsi icmpOpsi paket Icmp
acakAturan dipicu (ketika kondisi lain bertepatan) dengan probabilitas yang diberikan
waktuAnda dapat menentukan jam kerja aturan, sayangnya tanpa konversi tanggal
ttlNilai bidang TTT dalam paket
dscpNilai bidang DSCP (ToS) dalam paket
- // -- // -
tempat-sebelumnyaOpsi konsol (tanpa syarat), memungkinkan Anda menambahkan aturan sebelum ditentukan
dinonaktifkanOpsi konsol (bukan kondisi), memungkinkan Anda untuk menonaktifkan aturan

Catatan
Sebagai Alamat src. (Dst.), Anda dapat menentukan: ip tunggal, rentang alamat melalui tanda hubung, atau subnet.
Daftar alamat diperlukan untuk menggabungkan beberapa ip yang tidak terhubung dengan nama yang sama. Tidak seperti ipset di netfilter, entri dalam daftar MikroTik dapat dihapus setelah jangka waktu tertentu. Anda dapat melihat daftar dan membuat perubahan dalam [IP] -> [Firewall] -> [Daftar Alamat].
Sebagai nomor port (port, src-port, dst-port), Anda dapat menentukan satu port, beberapa port dipisahkan oleh koma, atau rentang port melalui tanda hubung.


Pada MUM terakhir di MSC, ada presentasi yang baik tentang efek berbagai kondisi pada kecepatan pemrosesan paket (di sana Anda akan belajar cara menggunakan tabel mentah untuk mengurangi beban pada router), yang tertarik pada: perekaman dan presentasi .


Tindakan Tabel


Serangkaian tindakan yang tersedia pada paket tergantung pada tabel di mana ia diproses.

Filter - tabel pemfilteran lalu lintas, salah satu dari dua tempat di mana Anda dapat menjatuhkan paket.


NAT - tabel untuk memodifikasi alamat dan port ip (tpc, udp) di header paket ip.


Mangle - tabel untuk memodifikasi bidang lain dari paket ip dan mengatur berbagai label.



Ada tiga jenis label paket internal: koneksi, paket, rute. Label hanya ada di dalam router dan tidak pergi ke jaringan. Suatu paket dapat memiliki satu label dari masing-masing jenis, sementara melewati beberapa aturan mark-* secara berurutan, label ditimpa.
Label rute hanya dapat ditetapkan di rantai prerouting dan output, sisanya di rantai apa pun.


Merupakan praktik yang baik untuk menandai koneksi terlebih dahulu, kemudian paket (paket) atau rute (rute). Memeriksa label lebih cepat daripada bidang paket. Dalam praktiknya, ini tidak selalu terjadi dalam antrian kompleks atau pbr menandai tambahan koneksi tidak berguna.


RAW - tabel yang memungkinkan paket untuk memotong pelacak koneksi. Ini digunakan untuk menangkal DoS dan mengurangi beban pada cpu (misalnya, menghilangkan lalu lintas multicast). Memungkinkan Anda menjatuhkan paket.


Mengakhiri tindakan menyelesaikan pemrosesan paket dalam rantai dan meneruskannya ke blok berikutnya dalam aliran paket, atau membuangnya.


Tindakan
MejaAksiDeskripsiMengakhiri?
SemuaterimaHentikan pemrosesan paket dan transfer ke blok aliran Pakcet berikutnyaYa
SemualogInformasi paket log. Dalam versi modern, Anda dapat menambahkan log ke tindakan lain apa pun.Tidak
SemuapasstroughHitung jumlah paket. Digunakan untuk debuggingTidak
Semuatambahkan src ke daftar alamat dan tambahkan dst ke daftar alamatTambahkan alamat (tujuan) sumber dari paket ke daftar yang diberikanTidak
SemualompatBuka rantai penggunaYa
SemuakembaliKembali ke rantai induk. Dalam rantai dasar berfungsi seperti menerimaYa
Filter dan RawjatuhHentikan aliran paket pada aliran paket dan buangYa
Filter dan Preroutingjalur cepatPaket flag untuk aliran paket yang cepatYa
SaringtolakSeperti drop, tetapi pengirim paket mengirim pemberitahuan (tcp atau icmp) tentang paket yang dijatuhkanYa
SaringtrapitMeniru kehadiran port terbuka. Digunakan untuk perlindungan terhadap DoS, menyesatkan dan (terkadang) debuggingYa
NATsrc-natPergantian alamat pengirim ke yang ditentukanYa
NATtopengKasus khusus src-nat, menggantikan alamat pengirim dengan salah satu alamat dari antarmuka, digunakan pada antarmuka dinamis (dhcp, vpn). Tidak disarankan untuk menggunakan jika ada beberapa ip pada antarmukaYa
NATsamaKasus khusus src-nat. Mengganti alamat pengirim dengan alamat dari rentang yang ditentukanYa
NATdst-natMengganti alamat penerima dengan yang ditentukanYa
NATredirectKasus khusus dst-nat, menggantikan alamat penerima dengan alamat antarmuka router tempat paket itu datangYa
NATnetmapBukan pengganti dst-nat. Digunakan untuk terjemahan jaringan-ke-jaringan, lihat contohYa
Mangletandai koneksiLabel koneksiTidak
Mangletandai paketLabel paket diterapkan dalam antrianTidak
Manglemenandai ruteLabel rute diterapkan dalam perutean basis KebijakanTidak
Mangleubah ttlEdit ttlTidak
Mangleubah dcsp (tos)Ubah desimal dcspTidak
Mangleubah mssUbah mss ke tcp synTidak
Manglehapus dfHapus jangan bendera terfragmentasiTidak
Manglemenghapus opsi ipv4Hapus opsi lanjutan ipv4Tidak
Mangletetapkan prioritasTetapkan prioritas untuk CoSTidak
MangleruteSetel gateway untuk paket. Versi PBR yang sederhanaTidak
Manglemengendus tzspEnkapsulasi paket dalam udp dan kirim ke ip yang ditentukanTidak
Manglemengendus pcAnalog tzsp, tetapi dengan tipe enkapsulasi yang berbeda. Di wiki jika menggunakan case dengan caleaTidak
ManglepasstroughSecara default, sebagian besar aturan di mangle tidak menghentikan paket agar tidak lewat, Anda bisa mengubah perilaku ini dengan mengatur passtrough = tidakTidak
MentahnotrackJangan melacak paket dalam pelacak koneksiYa

Jika ada yang menginginkannya, saya dapat menulis lebih banyak tentang FastTrack dan FastPath, tetapi Anda seharusnya tidak mengharapkan keajaiban dari teknologi ini.


Beberapa kata tentang DPI


Ada beberapa kemungkinan untuk melihat ke dalam paket sedikit lebih dalam dari header layer transport:
content - mencari string yang diberikan dalam suatu paket.
layer7-protocol - buffer 10 paket pertama (atau 2KiB) dari koneksi dan mencari regexp dalam data buffered. Sejumlah besar aturan layer7 secara signifikan mempengaruhi kinerja.
tls-host adalah alamat nama host di header TLS / SNI koneksi HTTPS.


Contohnya


Jangan menyalin contoh tanpa berpikir, lebih baik untuk mengambil perangkat dan mencoba untuk menulis sendiri konfigurasi (atau menulis ulang contoh, tetapi untuk memahami apa yang masing-masing aturan lakukan). Jika Anda tidak tahu cara melengkapi aturan: di konfigurasi rumah default dan minimum tidak ada akses ke router dari antarmuka yang lemah, tambahkan dengan penyaringan berdasarkan daftar alamat.


RouterOS Firewall Default


Konfigurasi yang cukup aman, tetapi di tempat-tempat sangat membingungkan:


/ip firewall filter #     (established, related)   (untracked)  add action=accept chain=input connection-state=established,related,untracked #    (invalid)  add action=drop chain=input connection-state=invalid #  icmp  add action=accept chain=input protocol=icmp #          add action=drop chain=input in-interface-list=!LAN #   ipsec    add action=accept chain=forward ipsec-policy=in,ipsec add action=accept chain=forward ipsec-policy=out,ipsec #          add action=fasttrack-connection chain=forward connection-state=established,related #       add action=accept chain=forward connection-state=established,related,untracked #    add action=drop chain=forward connection-state=invalid #     wan ,     dstnat (,      src-nat   dst-nat) add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN /ip firewall nat #Source NAT      ipsec,      WAN add action=masquerade chain=srcnat ipsec-policy=out,none out-interface-list=WAN 

Saya tidak pernah menggunakan konfigurasi default, tetapi sebelum firewall default jauh lebih buruk.


Firewall Rumah Minimal


Hal termudah untuk muncul. Ya, lalu lintas yang tidak dilacak tidak diizinkan di dalamnya (tetapi pada tahap studi dasar firewall Anda masih tidak membutuhkannya) dan akan ada masalah dengan tunnel ipsec (sekali lagi, jika Anda dapat mengkonfigurasi ipsec, Anda sendiri tahu apa yang harus dilakukan).


 /ip firewall filter #     (established, related)  add chain=input connection-state=established,related action=accept #  icmp  add chain=input connection-state=new protocol=icmp action=accept #      add chain=input connection-state=new in-interface-list=LAN action=accept #     add chain=input action=drop #       add chain=forward connection-state=established,related action=accept #         add chain=forward connection-state=new in-interface-list=LAN action=accept #     add chain=forward action=drop /ip firewall nat #Source NAT        WAN add chain=srcnat out-interface-list=WAN action=masquerade 

Contoh DMZ


Pada router "home", DMZ akronim suka memanggil komputer di subnet lokal tempat semua port dari jaringan eksternal diteruskan.


Bahkan, ini tidak demikian dan salah satu opsi DMZ adalah untuk memisahkan sumber daya yang Anda harus memberikan akses dari Internet dan serangan yang berhasil dapat dilakukan (server web dengan cms di mana lubang selalu ditemukan adalah target yang baik untuk penyerang). Dalam hal peretasan, penyerang tidak akan dapat mempengaruhi peserta di jaringan lokal.



 #  /ip firewall nat add chain=dstnat dst-port=80,443 action=dst-nat to-address=192.168.200.2 /ip firewall filter #   icmp   add chain=input connection-state=established,related action=accept add chain=input protocol=icmp connection-state=new action=accept #      add chain=input in-interface=ether2-lan action=accept #    add chain=input action=drop #    add chain=forward connection-state=established,related action=accept #        add chain=forward in-interface=ether2-lan connection-state=new action=accept #    web  add chain=forward out-interface=ether3-dmz dst-address=192.168.200.2 dst-port=80,443 connection-state=new action=accept #   add chain=forward action=drop 

Jepit Rambut NAT



 /ip firewall nat add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2 

Situasi umum adalah ketika Anda meneruskan port ke server di jaringan lokal dan semuanya bekerja dari luar, tetapi di dalam jaringan lokal server tidak dapat diakses di alamat eksternal.


Mari kita lihat apa yang terjadi:


  1. Komputer 192.168.100.10 mengirim permintaan ke 192.0.2.100
  2. Ia melakukan DST-NAT pada router dan paket diteruskan ke 192.168.100.2
  3. Server melihat bahwa paket dari 192.168.100.10 telah sampai di alamat 192.168.100.2 dan merespons dari alamat lokal
  4. Komputer menerima paket tak terduga dari 192.168.100.2 dan membuangnya.

Solusinya adalah menambahkan aturan tambahan yang mengubah alamat sumber ke alamat router, sehingga server akan mengembalikan paket ke router, yang akan mengirimkannya ke komputer penginisialisasi.


 /ip firewall nat #  add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2 # ,      add chain=srcnat src-address=192.168.100.0/24 dst-address=192.168.100.2 action=masquerade 

Dalam praktiknya, skema ini tidak sering digunakan, tetapi sebagai contoh debugging firewall, saya sangat menyukainya.


Penggunaan netmap dengan benar



Netmap adalah teknologi untuk menerjemahkan alamat dari satu subnet ke alamat subnet lainnya.
Alamat IP (dalam entri mask) terdiri dari dua bagian: jaringan (jumlah bit yang ditentukan dalam subnet mask) dan host (bit yang tersisa). Netmap mengubah bagian jaringan dari alamat, tetapi tidak menyentuh bagian host.



Ada dua router yang terhubung oleh saluran VPN. Router melayani subnet dengan pengalamatan yang sama. Hal ini diperlukan untuk membuat akses antar subnet.


Anda tidak dapat melakukannya tanpa pengalamatan tambahan.


Pengguna dari subnet kiri akan mengetuk ke kanan melalui subnet 192.168.102.0/24
Pengguna dari subnet kanan akan mengetuk ke kiri melalui subnet 192.168.101.0/24


Konfigurasi pada MikroTik 1.


 #     /ip route add distance=1 dst-address=192.168.102.0/24 gateway /ip firewall nat #       add action=netmap chain=srcnat dst-address=192.168.102.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.101.0/24 #       add action=netmap chain=dstnat dst-address=192.168.101.0/24 in-interface=ipip src-address=192.168.102.0/24 to-address=192.168.100.0/24 

Konfigurasi MikroTik2 hampir sama:


 /ip route add distance=1 dst-address=192.168.101.0/24 gateway=10.10.10.1 /ip firewall nat add action=netmap chain=srcnat dst-address=192.168.101.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.102.0/24 add action=netmap chain=dstnat dst-address=192.168.102.0/24 in-interface=ipip src-address=192.168.101.0/24 to-address=192.168.100.0/24 

Ada konfigurasi yang lebih kompleks menggunakan netmap, misalnya, jika Anda memiliki banyak koneksi ke titik-titik jarak jauh dengan subnet berpotongan dan tidak ada cara untuk mengubah pengaturan pada peralatan jarak jauh, tetapi ini sudah routing yang maju.


Jika Anda tidak mengerti apa-apa (tentang netmap), maka Anda tidak membutuhkannya dan tidak menggunakan tindakan ini saat meneruskan port.

Source: https://habr.com/ru/post/id435070/


All Articles