1 / 51

Firewall & Bandwidth Management

by Henry Saptono henry@nurulfikri.com , boypyt@yahoo.com http://www.nurulfikri.com Jan 2007. Firewall & Bandwidth Management. Network Diagram. Network Diagram (with PC gateway). Network Diagram (with PC gateway). Kata Kunci.

xarles
Download Presentation

Firewall & Bandwidth Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. by Henry Saptono henry@nurulfikri.com, boypyt@yahoo.com http://www.nurulfikri.com Jan 2007 Firewall & Bandwidth Management

  2. Network Diagram

  3. Network Diagram (with PC gateway)

  4. Network Diagram (with PC gateway)

  5. Kata Kunci

  6. Device dedicated yang berfungsi mengatur proses 'routing' antar jaringan komputer Router

  7. Firewall • Mekanisme untuk melakukan Paket Filtering, Paket Investigasi, dan Paket manipulasi. • Diimplementasikan pada level “Kernel Space” yang berupa modul atau built in • Secara logik sebagai node khusus dalam jaringan komputer

  8. Gateway • Mengatur “proses static routing” antar jaringan. • Dalam wujud PC. • Diimplementasikan pada level “kernel space”, umumnya sebagai fungsi built in.

  9. Linux sebagai Sistem Operasi yang mendukung Jaringan • Sistem operasi linux memiliki ragam bentuk fungsi-fungsi “ dukungan jaringan (Networking Support)”, diantaranya sbb: • Routing (IP Forwarding) • Firewall (Netfilter) • QoS (Quality Of Service) • Tunneling • IPsec(vpn) • LVS, dan lain -lain

  10. Implementasi Linux Gateway • Fungsi linux sebagai gateway (IP Forwarding) adalah fungsi built-in pada kernel • Perlu diaktifkan pada saat 'boot' • echo 1 > /proc/sys/net/ipv4/ip_forward • Atau edit file /etc/sysctl.conf, dan set parameter net.ipv4.ip_forward=1 • Jika diperlukan mengatur tabel routing (gunakan perintah 'route' )

  11. Ilustrasi IP Forwarding

  12. Internet Sharing • Internet sharing : berbagi akses koneksi internet pada sebuah koneksi internet. • Implementasinya pada level 'kernel space' melibatkan fungsi-fungsi kernel yaitu : IP forwarding(routing/gateway) dan IP Masquerading (Netfilter/IPtables)

  13. Internet sharing • Di Linux Langkah-langkah menerapkannya, sbb: • IP Forwarding (gateway) • echo 1 > /proc/sys/net/ipv4/ip_forward • Atau, vi /etc/sysctl.conf net.ipv4.ip_forward=1 • IP Masquerading • iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

  14. Ilustrasi IP Masquerade

  15. Klasifikasi Firewall • Firewall dapat diklasifikasikan secara umum terdiri dari 2 class: • Proxy (Dual homed host) • Packet Filter (screening router)

  16. Firewall(packet filter) • Diimplementasikan pada level 'kernel space', dengan nama fungsi “netfilter” , dalam bentuk modul. • Cek dukungan kernel terhadap netfilter sbb: • grep -i netfilter /boot/config-2.6.13

  17. Konfigurasi kernel

  18. Tool administrasi firewall (netfilter) di linux disediakan secara default dalam bentuk perintah (command) 'iptables' Tool Administrasi Firewall

  19. Iptables • netfilter/iptables terdiri dari 3 tabel: filter, nat, mangle • Perintah 'iptables' digunakan untuk mengelola, memaintain, menginspeksi rule-rule IP packet filter dalam kernel linux.

  20. filter: This is the default table (if no -t option is passed). It contains the built-in chains INPUT (for packets destined to local sockets), FORWARD (for packets being routed through the box), and OUTPUT (for locally-generated packets). Tabel Filter

  21. nat: This table is consulted when a packet that creates a new connection is encountered. It consists of three built-ins: PREROUTING (for altering packets as soon as they come in), OUTPUT (for alteringlocally-generated packets before routing), and POSTROUTING (for altering packets as they are about to go out). Tabel nat

  22. mangle: This table is used for specialized packet alteration. Until kernel 2.4.17 it had two built-in chains: PREROUTING (for altering incoming packets before routing) and OUTPUT (for altering locally-generated packets before routing). Since kernel 2.4.18, three other built-in chains are also supported: INPUT (for packets coming into the box itself), FORWARD (for altering packets being routed through the box),and POSTROUTING (for altering packets as they are about to go out). Tabel mangle

  23. SYNOPSIS iptables [-t table] -[AD] chain rule-specification [options] iptables [-t table] -I chain [rulenum] rule-specification [options] iptables [-t table] -R chain rulenum rule-specification [options] iptables [-t table] -D chain rulenum [options] iptables [-t table] -[LFZ] [chain] [options] iptables [-t table] -N chain iptables [-t table] -X [chain] iptables [-t table] -P chain target [options] iptables [-t table] -E old-chain-name new-chain-name iptables - administration tool for IPv4 packet filtering and NAT

  24. Diagram netfilter/iptables

  25. Sebuah rule iptables dapat menspesifiksikan sumber paket (-s), tujuan paket (-d) , protokol (-p), dan port. Sebagai contoh , untuk memblok (deny) seuatu paket yang datang dari IP address 192.168.0.254 , sebgai berikut: iptables -t filter -A INPUT -s 192.168.0.254 -j DROP filter adalah default table jika option -t tidak disertakan. Contoh perintah iptables

  26. Jika tanda "!" disertakan didepan ip address sumber atau tujuan , ini menyatakan negasi dari ip address tersebut. iptables -t filter -A OUTPUT -d ! 192.168.0.254 -j DROP Rule diatas memblok semua paket dari local komputer firewall yang ditujukan ke semua ip address kecuali ke ip address 192.168.0.254. Incoming atau Outgoing interface dapat di spesifikasikan sebagai berikut: iptables -t filter -A INPUT -s 192.168.0.251 -i eth1 -j DROP Contoh perintah iptables

  27. iptables dan NAT Network Address Translation dapat ditampilkan oleh kernel 2.4 dalam bentuk satu dari dua buah cara , yaitu: source NAT (SNAT) dan destination NAT (DNAT). DNAT sering digunakan untuk membelokkan (redirect) paket yang datang ke suatu interface dan diarahkan menjadi ke lokasi lain, seperti ke mesin proxy(squid proxy server). SNAT digunakan untuk menyembunyikan source address dari paket dengan cara memetakan ulang source address paket yang keluar ke IP address komputer yang lain atau rentang address yang lain. Kernel 2.4 secara otomatis melakukan reverse-translate semua paket-paket NAT yang dimaksud.

  28. Ilustrasi DNAT

  29. Ilustrasi SNAT

  30. Contoh NAT • Untuk mengimplementasikan ip masquerading lakukan hal-hal sebagai berikut, : • iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE • Untuk menerapkan REDIRECT untuk keperluan membelokkan paket web secara transparan yang datang pada interface eth0 ke proxy server pada firewall itu sendiri, jalankan perintah berikut: • iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT –to-port 3128

  31. Contoh NAT • Untuk menerapkan destination NAT untuk keperluan membelokkan paket web secara transparan yang datang pada interface eth0 ke 192.168.0.1, jalankan perintah berikut: • iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,443 -i eth0 -j DNAT --to-destination 192.168.0.1 • Untuk merubah source address melalui SNAT menjadi ip address 192.168.0.33 dengan port 1024 sampai 65535, gunkan perintah berikut: • iptables -t nat -A POSTROUTING -p tcp -o eth1 -j SNAT --to 192.168.0.33:1024-65535

  32. Shoreline Firewall atau lebih dikenalnya dengan istilah shorewall adalah tool tingkat tinggi yang digunakan untuk konfigurasi netfilter/iptables (firewall di linux). Untuk implementasi firewall dengan shorewall Anda harus mengkonfigurasi beberapa file konfigurasi shorewall seperti file zones, interfaces, policy, masq, dan rules. Semua file konfigurasi shorewall terletak dalam folder /etc/shorewall. Shorewall

  33. Langkah pertama, edit file /etc/shorewall/shorewall.conf untuk mengenable atau mengaktifkan shorewall, carilah parameter “STARTUP_ENABLED”, kemudian set parameter tersebut sebagai berikut: STARTUP_ENABLED=Yes Langkah kedua, editlah file /etc/shorewall/zones untuk mendefinisikan zone (segment) jaringan yang ada. Dalam contoh ini kita anggap firewall memiliki 2 buah interface network masing-masing terhubung dengan zone net (internet) dan zone loc (LAN). Lihat contoh berikut ini: #ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall net ipv4 loc ipv4 #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE Konfigurasi Shorewall

  34. Langkah ketiga, editlah file /etc/shorewall/interfaces untuk mendefinisikan interface network mana sajakah yang ada pada komputer firewall dan terhubung dengan zone mana sajakah.Lihat contoh berikut ini: #ZONE INTERFACE BROADCAST OPTIONS net eth0 detect loc eth1 detect #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE Konfigurasi Shorewall

  35. Langkah keempat, editlah file /etc/shorewall/policy untuk mendefinisikan default kebijakan firewall pada masing-masing zone yang telah didefinisikan. Lihat contoh berikut ini: #SOURCE DEST POLICY LOG LIMIT:BURST # LEVEL fw all ACCEPT loc fw DROP info loc net DROP info net fw DROP info net loc DROP info all all DROP #LAST LINE -- DO NOT REMOVE Konfigurasi Shorewall

  36. Langkah kelima, editlah file /etc/shorewall/masq untuk memungkinkan masquerade paket dari LAN yang akan keluar dari firewall menuju internet. Lihat contoh berikut ini: #INTERFACE SUBNET ADDRESS PROTO PORT(S)IPSEC eth0 eth1 #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE Konfigurasi Shorewall

  37. Langkah keenam, editlah file /etc/shorewall/rules untuk mendefinisikan rule-rule firewall selain rule default yang telah didefinisikan dalam file /etc/shorewall/policy. Lihat contoh berikut ini: SECTION NEW ACCEPT net:202.159.11.154 fw ACCEPT loc:192.168.1.100 fw REDIRECT loc:!192.168.1.31 3128 tcp www ACCEPT net:202.159.11.154 fw tcp 20,21,22,25,53,80 ACCEPT net:202.159.11.154 fw udp 20,21,22,25,53,80 ACCEPT loc net tcp 20,21,22,25,53,80,443 ACCEPT loc net udp 20,21,22,25,53,80,443 #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE Konfigurasi Shorewall

  38. Bandwidth Management (Traffic Control/Shaping) adalah suatu istilah yang ditujukan pada suatu subsistem antrian packet dalam/pada suatu jaringan atau network devices. Secara singkat traffic control/shaping adalah suatu usaha mengontrol traffic jaringan sehingga bandwidth lebih optimal dan performa network lebih terjamin. Fungsi dan operasi traffic control pada kernel linux terdiri dari komponen-komponen berikut ini: queueing disciplines (qdisc) classes filters policer Bandwidth Management

  39. Bandwidth Management Queueing discipline (Qdisc) bertanggungjawab untuk mentransmisikan data. Classes dipasang pada qdisc dan mengandung/berisi traffic. Setiap class yang tidak memiliki child class selalu memiliki 1 qdisc yang berasosiasi dengannya untuk mentransmisikan paket-paket data, dan qdisc tersebut menampung seluruh traffic yang masuk/mengalir ke dalam class tersebut. Filters dipasang pada qdisc dan class dan men-split traffic menjadi beberapa child-class yang berbeda. Policers digunakan untuk meyakinkan filters sesuai/match hanya dengan satu rate paket tertentu. Policers dapat dishare oleh beberapa filter berbeda dan pada interface-interface berbeda.

  40. Bandwidth Management • Bandwidth Management (Trfaffic Control/Shaping) adalah mekanisme mengelola dan memaintain traffic yang dibangkitkan oleh suatu Interface Network. • Bandwidth Management diimplementasikan pada level 'kernel space' • Merupakan bagian dari fungsi QoS. Cek dukungan kernel sbb: • # grep -i qos /boot/config-2.6.17

  41. Konfigurasi kernel

  42. Tool administrasi traffic shaping • Untuk mengelola dan memaintain trraffic digunakn tool administrasi yang disediakan dalam bentuk perintah 'tc'. • tc merupakan tool yang berasal dari paket software 'iproute' atau 'iproute2'

  43. SYNOPSIS tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id |root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ] tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ] tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id tc [-s | -d ] qdisc show [ dev DEV ] tc [-s | -d ] class show dev DEV tc filter show dev DEV tc - show / manipulate traffic control settings

  44. Diagram hubungan netfilter dan TC

  45. Skenario Traffic Shaping • Traffic shaping hanya akan efektif diimplementasikan pada Outgoing traffic/bandwith • Outgoing traffic diterapkan sebagai TC EGRESS

  46. kbps :Kilobytes per second mbps :Megabytes per second kbit :Kilobits per second mbit :Megabits per second Spesifikasi Bandwidths / rates

  47. Langkah pertama dalam implementasi traffic controll menggunakan shorewall adalah mengenable Traffic Controll (TC) pada file konfigurasi utama shorewall (/etc/shorewall/shorewall.conf). Sebelumnya diasumsikan konfigurasi shorewall sebagai firewall dan gateway telah dilakukan dengan baik dan benar. Dalam file tersebut carilah parameter “TC_ENABLED”, dan pastikan atau set nilai parameter tersebut menjadi ssb: TC_ENABLED=Internal Langkah kedua editlah file /etc/shorewall/tcdevices, untuk menentukan pada device manakah akan Anda terapkan pengontrolan bandwidth, serta berapakan maksimum incoming dan outgoing bandwidth. Sebagai contoh kita akan mengatur agar bandwidth maksimum yang datang ke devices eth1 sebesar 512kbit dan bandwidth outgoing (traffic download dari client/ LAN) maksimum sebesar 384kbit. Lihat contoh berikut ini: #INTERFACE IN-BANDWITH OUT-BANDWIDTH eth1 512kbit 384kbit #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Konfigurasi Shorewall sbg Traffic controll

  48. Langkah ketiga editlah file /etc/shorewall/tcclasses, untuk menentukan atau mendefinisikan class-class pada qdisc. Sebagai contoh kita akan mendefinisikan 3 buah class , class pertama dengan prioritas utama memiliki rate 50% dari bandwidth (outgoing bandwidth) yang ada. Dan class yang kedua 30%, class yang ketiga 20% sebagai default class. Lihat contoh berikut ini: #INTERFACE MARK RATE CEIL PRIORITY OPTIONS eth1 1 full*5/10 full 0 eth1 2 full*3/10 full*5/10 1 eth1 3 full*2/10 full*5/10 2 default #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Konfigurasi Shorewall sbg Traffic controll

  49. Langkah keempat editlah file /etc/shorewall/tcrules, untuk menentukan atau mendefinisikan rule klasifikasi traffic. Dalam file ini menentukan traffic manakah yang masuk dalam class -class yang telah kita definisikan dalam file tcclasses. Lihat contoh sebagai berikut: #MARK SOURCE DEST PROTO PORT(S) CLIENT USER TEST # PORT(S) 1:F 0.0.0.0/0 0.0.0.0/0 icmp 1:F 0.0.0.0/0 192.168.1.2 all 2:F 0.0.0.0/0 192.168.1.3 tcp - 80,443 3:F 0.0.0.0/0 192.168.1.100 all #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Konfigurasi Shorewall sbg Traffic controll

  50. Langkah kelima, restartlah shorewall dengan perintah sbb: #shorewall restart Kemudian checklah qdisc dan class sbb: #shorewall show tc Dan terakhir cobalah Anda uji dan amati dengan mengakses server di internet (http,https,ssh dll) dari LAN atau dari IP - IP yang dicontohkan dalam tcrules (misal ip 192.168.1.2, 192.168.1.3, 192.168.1.100) Konfigurasi Shorewall sbg Traffic controll

More Related