Aplikasinya di GNU/Linux Nur Kholis Majid nur.kholis.majid@gmail.com http://kholis.web.id Lab. B201 Teknik Elektro Institut Teknologi Sepuluh Nopember Surabaya Kata Pengantar Assalamualaikum Wr Wb. Hai semua, ini adalah buku mini iseng hasil oprek-oprek di lab.b201. Semua isi didalam kebanyakan bukan tulisan saya, saya hanya mengumpulkan, mencoba lalu menuliskan ulang dengan kata-kata saya sendiri agar suatu saat jikalau saya lupa bisa saya manfaatkan kem- bali. Referensi yang saya ambil berasal dari tulisan senior-senior dan teman-teman saya di kampus seperti mas sokam (http://sokam.or.id), mas galih (http://blog.galihsatria. com), fuad (http://blog.its.ac.id/fuad), mas dhoto (http://dhoto.wordpress.com) dll, maupun berbagai tutorial di internet seperti tulisan-tulisan mas fajar priyanto (http: //linux2.arinet.org), pak onno w. purbo dan masih banyak lainya yang tidak dapat disebutkan satu per satu. Terima kasih buat mereka semua. Semoga buku mini saya ini bisa bermanfaat dan sumbangsih bagi perkembangan teknolo- gi di indonesia. Apabila menemukan kesalahan atau ingin menyampaikan kritik/saran, silahkan kirim ke nur.kholis.majid@gmail.com. Terima kasih. Wassalamualaikum Wr Wb. 2 Daftar Isi I Jaringan Komputer 6 1 Berdasarkan Skala 6 2 Berdasarkan Fungsi 6 2.1 Client-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Peer-to-Peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Berdasarkan Topologi 6 3.1 Topologi Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Topologi Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Topologi Star . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4 Perangkat Jaringan 8 4.1 Network Interface Card (NIC) . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.2 Kabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3 Hub, Switch atau Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 II Pengenalan TCP/IP 11 5 Physical Layer 11 6 Datalink Layer 12 7 Network Layer / Internet Layer 12 7.1 IP (Internet Protokol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.2 ICMP (Internet Control Message Protocol) . . . . . . . . . . . . . . . . . . . 15 7.3 ARP (Address Resolution Protocol) . . . . . . . . . . . . . . . . . . . . . . . 15 8 Transport Layer 15 8.1 TCP (Transmission Control Protocol) . . . . . . . . . . . . . . . . . . . . . . 15 8.2 UDP (User Datagram Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . 15 9 Application Layer 16 III Dasar Kongurasi Jaringan 17 10 Layer 1 (Datalink) 17 11 Layer 2 (Network) 18 11.1 ARP (Address Resolution Protocol) . . . . . . . . . . . . . . . . . . . . . . . 18 11.2 IP Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 11.3 Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 11.4 Ping dan traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 12 Layer 3 (Transport) 21 13 File dan Tools Networking 21 13.1 File-le Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 IV Domain Name System 23 14 Instalasi dan Kongurasi BIND 23 3 15 Testing Service DNS 26 15.1 host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 15.2 nslookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 15.3 dig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 V Firewall 28 16 Iptables 28 16.1 Dasar iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 16.2 Dua pendekatan setup rewall . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 16.3 Syntax Iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 16.4 Contoh Kasus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 17 Shorewall 33 17.1 Instalasi dan kongurasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 VI Proxy Server 38 18 Keuntungan dan kerugian Proxy server[8] 38 18.1 keuntungan proxy server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 18.2 kerugian proxy server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 19 Pengenalan dan Cara Kerja Squid 38 20 Bagian-bagian squid 39 20.1 ICP (Internet Cache Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . 39 20.2 Access Control List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 20.3 Autentikasi pada Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 20.4 Httpd Accelerator / Reverse Proxy Server . . . . . . . . . . . . . . . . . . . . 40 20.5 Transparent Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 20.6 Delay Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 21 Instalasi dan Kongurasi 41 21.1 auth parm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 21.2 http port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 21.3 cache peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 21.4 icp port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 21.5 dead peer timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 21.6 hierarchy stoplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 21.7 cache mem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 21.8 cache swap low/high . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 21.9 cache dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 21.10access log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 21.11cache mgr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 21.12acl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 21.13http access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 21.14delay pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 21.15delay class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 21.16delay access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 21.17delay parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 VII File Sharing 49 4 22 Samba 49 22.1 Instalasi dan Kongurasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 22.2 Kongurasi dengan GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 23 FTP 53 23.1 FTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 23.2 FTP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 24 NFS 56 24.1 NFS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 24.2 NFS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 VIII Print Server 58 25 CUPS 58 25.1 Instalasi dan Kongurasi CUPS server . . . . . . . . . . . . . . . . . . . . . . 58 25.2 Instalasi dan Kongurasi CUPS client . . . . . . . . . . . . . . . . . . . . . . 60 IX DHCP Server 61 26 DHCP Server 61 27 DHCP Client 63 X Network Monitoring 64 28 SNMP (Simple Network Management Protocol) 64 28.1 Instalasi SNMP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 28.2 Instalasi SNMP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 29 MRTG (Multi Router Trac Grapher) 66 XI Network Time Protocol (NTP) 69 30 NTP Server 69 31 NTP Client 70 5 Bagian I Jaringan Komputer Jaringan komputer adalah kumpulan dua atau lebih dari komputer yang saling berhubun- gan dan saling bekerjasana satu sama lain. Produktitas dan esiensi merupakan bentuk keuntungan yang kita dapat dari jaringan komputer. Tujuan dari jaringan komputer antara lain: Membagi sumber daya: contohnya berbagi pemakaian printer, CPU, memori, harddisk Komunikasi: contohnya surat elektronik, instant messaging, chatting Akses informasi: contohnya web browsing Agar dapat mencapai tujuan yang sama, setiap bagian dari jaringan komputer meminta dan memberikan layanan (service). Pihak yang meminta layanan disebut klien (client) dan yang memberikan layanan disebut pelayan (server). Arsitektur ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer. Jaringan komputer diklasikasikan kedalam beberapa cara, antara lain: 1 Berdasarkan Skala Local Area Network (LAN) biasa digunakan pada skala kecil sekelas rumahan, kantor, pertokoan dll. menggunakan ethernet 10/100/1000 Mbps. Metropolitant Area Network (MAN) mencakup area yang lebih luas (perkotaan) menggunakan interkoneksi yang lebih baik. Gigabit ethernet, atau ber optik. Wide Area Network (WAN) area yang ditangani sangat luas (negara) menggunakan media ber optik atau satelit. 2 Berdasarkan Fungsi 2.1 Client-Server Yaitu jaringan komputer dengan komputer yang didedikasikan khusus sebagai server. Se- buah service/layanan bisa diberikan oleh sebuah komputer atau lebih. Sedangkan yang lain bertindak sebagai client yang menggunakan layanan server. Contohnya adalah sebuah domain seperti www.google.com yang diakses oleh banyak komputer. 2.2 Peer-to-Peer Yaitu bentuk jaringan dimana semua komputer berkedudukan sama. bisa sebagai server sekaligus sebagai klien. Ini adalah kebalikan dari yang diatas. 3 Berdasarkan Topologi Arsitektur Fisik jaringan biasa disebut sebagai topologi, yang merupakan suatu cara menghubungkan komputer yang satu dengan komputer lainnya sehingga membentuk jaringan. Yang saat ini banyak digunakan adalah bus, ring, star, mesh. Masing-masing topologi ini mempunyai ciri khas, dengan kelebihan dan kekurangannya sendiri. 6 3.1 Topologi Bus Semua komputer saling terhubung melewati sebuah jalur utama (bus). Kerusakan jalur utama akan merusak semua jaringan. Gambar 1: Topologi bus 3.2 Topologi Ring Metode token-ring (sering disebut ring saja) adalah cara menghubungkan komputer sehingga berbentuk ring (lingkaran). Setiap simpul mempunyai tingkatan yang sama. Jaringan akan disebut sebagai loop, data dikirimkan kesetiap simpul dan setiap informasi yang diterima simpul diperiksa alamatnya apakah data itu untuknya atau bukan. Gambar 2: Topologi ring 3.3 Topologi Star Kontrol terpusat, semua link harus melewati pusat yang menyalurkan data tersebut kesemua simpul atau client yang dipilihnya. Simpul pusat dinamakan stasium primer atau server dan lainnya dinamakan stasiun sekunder atau client server. Setelah hubungan jaringan dimulai oleh server maka setiap client server sewaktu-waktu dapat menggunakan hubungan jaringan tersebut tanpa menunggu perintah dari server. 7 Gambar 3: Topologi star 4 Perangkat Jaringan 4.1 Network Interface Card (NIC) Merupakan suatu card yang terdapat di komputer yang berguna untuk menghubungkan dengan komputer lain. Pada komputer biasanya ada slot (tempat menancap card) yang disebut expansion slot. Slot ini saat membeli komputer baru banyak yang kosong. Yang biasa terpasang adalah untuk menancapkan VGA Card untuk menghubungkan antara CPU dan monitor. Dan salah satu dari slot itu bisa dipakai untuk menancapkan NIC Card supaya bisa komputer kita bisa terhubung dengan jaringan. Kadang-kadang sekarang NIC Card sudah terma- suk dalam fasilitas Motherboard kita (onboard) sehingga kita tidak perlu lagi susah-susah memasangnya. Gambar 4: Network Card Ada beberapa tipe antara lain yaitu ISA, PCI dan USB. Slot PCI lebih pendek dari ISA tapi meskipun lebih pendek mendukung kecepatan I/O yang lebih cepat. Dari sisi protokol, yang paling banyak dipakai adalah ethernet dan fast ethernet. Ada beberapa protokol lain, tapi kurang populer yaitu Token Ring, FDDI dan ATM (dua protokol terakhir dipakai untuk jaringan besar). Ethernet mendukung kecepatan transfer 10/100 Mbps bahkan ada yang sudah 1 Giga bps. Untuk Laptop dikenal PCMCIA Card, mirip kartu kredit sedikit tebal. Disinilah terdapat MAC (Media Access Control) address yang unik untuk setiap NIC. 4.2 Kabel 1. UTP (Unshielded Twisted Pair) 8 Kabel paling murah berbentuk mirip kabel telepon, terdiri dari 4 pasang kabel. ter- dapat 2 cara kongurasi kabel ini. Cross, digunakan apabila 2 buah komputer ingin berhubungan langsung tanpa melalui switch. Gambar 5: Cross-over Straight, digunakan untuk koneksi 2 buah komputer atau lebih dengan memakai sambungan hub/switch. Gambar 6: Straight-through 2. Coaxial Mirip dengan kabel televisi, dulu banyak digunakan, tapi sekarang jarang sekali digu- nakan. karena tidak luwes dan kecepatannya yang rendah. Gambar 7: Kabel Coaxial 3. Fiber Optik 9 Menggunakan cahaya sebagai media tranfer sehingga sangat cepat dan tangguh. tapi hal itu harus di bayar dengan harga yang tidak murah. Kabel ini sangat sensitif (tidak dapat di tekuk) terdiri dari beberapa core yang dibalut hingga 4-5 lapisan sebagai pelindung. Gambar 8: Fiber Optik 4.3 Hub, Switch atau Router Hub dan switch adalah perangkat dengan banyak port yang memungkinkan beberapa titik (dalam hal ini komputer yang sudah memasang NIC Card) bergabung menjadi satu jaringan dengan memakai kabel yang ada. Sedangkan router adalah peralatan yang menghubungkan jaringan satu ke jaringan lain- nya. router dapat berupa peralatan khusus (dedicated), maupun PC biasa yang difungsikan sebagai router. 10 Bagian II Pengenalan TCP/IP TCP/IP (Transmission Control Protocol/Internet Protocol) adalah sekumpulan protokol (aturan) yang digunakan dalam proses komunikasi data pada jaringan[2]. TCP/IP adalah model protokol perbaikan dan pengembangan dari OSI (Open System Interconnection). TCP/IP terdiri dari 4 layer yaitu: Datalink, Network, Transport, dan Application yang berada diatas layer physical. Sehingga beberapa pihak ada yang memasukkan later physical ini ke dalam TCP/IP menjadi layer ke 5. Gambar 9: Layer TCP/IP Layer TCP/IP terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dari proses komunikasi data. Berkat Prinsip ini, tugas masing- masing protokol menjadi jelas dan sederhana. Protokol satu tidak perlu tahu cara kerja protokol lain, yang di perlukan hanya bagaimana cara saling bertukar data. 5 Physical Layer Layer ini merupakan dasar dari semua layer, pada layer ini terjadi transfer data dalam bentuk sinyal-sinyal listrik. Umumnya layer ini terdiri dari hardware jaringan seperti kabel UTP, kabel STP, kabel koaksial, kabel serial RS-232, NIC, Fiber optik dan lainnya, tetapi disamping itu layer physical berfungsi sebagai 1 : Denition of Hardware Specications Operasi-operasi detil dari kabel, konektor, wireless, NIC adalah tugas utama dari physical layer (walaupun sebagian adalah bagian dari Datalink layer) Encoding and Signaling Physical layer bertanggung dalam pengkodean dan pensinyalan yang mengubah data bit kedalam bentuk sinyal yang dapat di kirimkan melalui jaringan. Data Transmission and Reception Setelah data di kodekan, physical layer juga bertanggung jawab saat pengiriman dan penerimaan data. Topology and Physical Network Design Layer ini juga memperhatikan dan mempengaruhi perancangan suatu jaringan. seperti LAN atau WAN. 1 http://www.tcpipguide.com/free/t PhysicalLayerLayer1.htm 11 6 Datalink Layer Fungsi utama layer ini untuk mentrasfer data pada komputer yang berdekatan atau pada jaringan yang sama. Selain itu mekanisme deteksi dan perbaikan error yang terjadi di physical layer terjadi disini. Protokol-protokol yang ada di layer ini antara lain: Ethernet,, Frame Relay, ATM, FDDI, WI-FI, WiMaX, Token Ring, GPRS, PPP dan lainnya 2 . Berikut adalah fungsi-fungsi Datalink layer selengkapnya 3 : Logical Link Control (LLC) Berfungsi membangun dan mengontrol link logical antara node-node di jaringan. serta menyediakan service kepada layer di atasnya dengan menyembunyikan kerumitan pada layer Datalink. Media Access Control (MAC) Terdapat prosedur untuk mengatur akses pada media jaringan. Karena dalam jaringan terdapat banyak node maka diperlukan pengaturan agar tidak terjadi konik. Contoh: Ethernet menggunakan metode CSMA/CD sedangkan Token Ring menggunakan token passing. Data Framing Bertanggung jawab pada enkapsulasi akhir dalam melengkapi pesan dari layer diatas- nya lalu mengubahnya menjadi frame-frame dan selanjutnya di kirim ke physical layer untuk di kirim ke jaringan. Addressing Tiap peralatan di jaringan memiliki nomor yang unik yang disebut MAC address. yang digunakan untuk memastikan data sampai pada mesin tujuan dengan benar. Error Detection and Handling Menangani error yang terjadi di level bawah. Contoh: cyclic redundancy check (CRC) 7 Network Layer / Internet Layer Layer ini bertanggung jawab pada pengiriman paket end to end (dari sumber ke tujuan) melalui satu atau beberapa network, berbeda dengan Datalink layer yang bertanggung jawab pada pengiriman frame node to node. Protokol-protokol yang ada di layer ini antara lain: IP, ICMP, ARP, RARP, OSPF, IGMP dan lainnya. Umumnya protokol di layer ini bersifat connectionless, dan unreliable. Beberapa fungsi Network layer antara lain: Logical Addressing Tiap mesin di jaringan harus mempunyai alamat logical yang unik, alamat ini harus independent terhadap hardware. Routing Meneruskan data ke jaringan lain melalui satu atau beberapa jaringan. Datagram Encapsulation Seperti layer-layer lainnya, layer ini juga menambahkan header dari paket data di atasnya. Fragmentation and Reassembly Data yang akan dikirim ke Datalink kadang melebihi besar kapasitas data. sehingga harus di pecah lalu di kirimkan ke datalink. Sesampainya di network layer tujuan data ini harus di gabungkan lagi. 2 http://en.wikipedia.org/wiki/Data link layer 3 http://www.tcpipguide.com/free/t DataLinkLayerLayer2.htm 12 Error Handling and Diagnostics Protokol khusus di layer ini mengijinkan alat yang terhubung secara logical, atau yang berusaha mengatur trac untuk saling bertukar informasi tentang status host di jaringan atau dirinya sendiri. 7.1 IP (Internet Protokol) Protokol IP merupakan inti dari protokol TCP/IP. Seluruh data yang berasal dari protokol pada layer di atas IP harus dilewatkan, diolah oleh protokol IP. dan dipancarkan sebagai paket IP, agar sampai ke tujuan. Dalam melakukan pengiriman data. IP memiliki sifat yang dikenal sebagai unreliable, connectionless, datagram delivery service. Unreliable/Tidak handal berarti bahwa Protokol IP tidak menjamin datagram yang dikirim pasti sampai ke tempat tujuan. Protokol IP hanya berjanji ia akan melakukan usaha sebaik baiknya (best eort delivery sevice). Agar paket yang dikirim tersebut sampai ke tujuan. Sedangkan connectionless berarti dalam mengirim paket dari tempat asal ke tujuan, pihak pengirim dan penerima paket IP sama sekali tidak mengadakan perjanjian (handshake) terlebih dahulu. Datagram delivery service berarti setiap paket data yang dikirim adalah independen terhadap paket data yang lain. Akibatnya, jalur yang ditempuh oleh masing-masing paket data IP ke tujuannya bisa jadi berbeda satu dengan lainnya, Karena jalur yang ditempuh berbeda, kedatangan paket pun bisa jadi tidak berurutan. Mengapa metode seperti ini dipakai dalam pengiriman paket IP? Hal ini dilakukan untuk menjamin tetap sampainya paket IP ini ke tujuan, walaupun salah satu jalur ke tujuan itu mengalami masalah[2]. IP Address Supaya komputer bisa terhubung dengan benar memerlukan adanya IP Address di setiap komputer. IP Address terdiri dari bilangan biner sepanjang 32 bit yang dibagi atas 4 segmen. Tiap segmen terdiri atas 8 bit yang berarti memiliki nilai desimal dari 0 - 255. Range ad- dress yang bisa digunakan adalah dari 00000000.00000000.00000000.00000000 sampai den- gan 11111111.11111111.11111111.11111111. Jadi, ada sebanyak 232 kombinasi address yang bisa dipakai diseluruh dunia (walaupun pada kenyataannya ada sejumlah IP Address yang digunakan untuk keperluan khusus). Jadi, jaringan TCP/IP dengan 32 bit address ini mampu menampung sebanyak 232 atau lebih dari 4 milyar host. Untuk memudahkan pembacaan dan penulisan, IP Address biasanya direpresentasikan dalam bilangan desimal. Jadi, range address di atas dapat diubah menjadi address 0.0.0.0 sampai address 255.255.255.255. Nilai desimal dari IP Address inilah yang dikenal dalam pemakaian sehari-hari. Beberapa contoh IP Address adalah : 202.95.151.129 202.58.201.211 172.16.122.204 Ilustrasi IP Addres dalam desimal dan biner dapat dilihat pada gambar 1 berikut: Gambar 10: IP Address dalam biner dan desimal IP Address dapat dipisahkan menjadi 2 bagian, yakni : 13 1. Bagian network (bit-bit network/network bit) dan bagian host (bit-bit host/host bit). Bit network berperan dalam identikasi suatu network dari network yang lain, 2. Bagian host, yang berperan dalam identikasi host dalam suatu network. Jadi, seluruh host yang tersambung dalam jaringan yang sama memiliki bit network yang sama. Ada 3 kelas address yang utama dalam TCP/IP, yakni : 1. Kelas A: 8 bit pertama merupakan bit network sedangkan 24 bit terakhir merupakan bit host. 2. Kelas B: 16 bit pertama merupakan bit network sedangkan 16 bit terakhir merupakan bit host. 3. Kelas C: 24 bit pertama merupakan bit network sedangkan 8 bit terakhir merupakan bit host. Gambar 11: Kelas-kelas IP Selain ke tiga kelas di atas, ada 2 kelas lagi yang ditujukan untuk pemakaian khusus, yakni kelas D dan kelas E. Jika 4 bit pertama adalah 1110, IP Address merupakan kelas D yang digunakan untuk multicast address, yakni sejumlah komputer yang memakai bersama suatu aplikasi (bedakan dengan pengertian network address yang mengacu kepada sejumlah komputer yang memakai bersama suatu network). Salah satu penggunaan multicast address yang sedang berkembang saat ini di Internet adalah untuk aplikasi real-time video confer- ence yang melibatkan lebih dari dua host (multipoint), menggunakan Multicast Backbone (MBone). Kelas terakhir adalah kelas E (4 bit pertama adalah 1111 atau sisa dari seluruh kelas). Pemakaiannya dicadangkan untuk kegiatan eksperimental. Address Khusus Selain address yang dipergunakan untuk pengenal host, ada beberapa jenis address yang digunakan untuk keperluan khusus dan tidak boleh digunakan untuk pengenal host. Address tersebut adalah : 1. Broadcast Address. Address ini digunakan untuk mengirim/menerima informasi yang harus diketahui oleh seluruh host yang ada pada suatu network. Seperti diketahui, setiap paket IP memiliki header alamat tujuan berupa IP Address dari host yang akan dituju oleh paket terse- but. Dengan adanya alamat ini, maka hanya host tujuan saja yang memproses paket tersebut, sedangkan host lain akan mengabaikannya. Bagaimana jika suatu host ingin mengirim paket kepada seluruh host yang ada pada networknya? Tidak esien jika ia harus membuat replikasi paket sebanyak jumlah host tujuan. Pemakaian bandwidth akan meningkat dan beban kerja host pengirim bertambah, padahal isi paket-paket tersebut sama. Oleh karena itu, dibuat konsep broadcast address. Host cukup men- girim ke alamat broadcast, maka seluruh host yang ada pada network akan menerima paket tersebut. Konsekuensinya, seluruh host pada network yang sama harus memili- ki address broadcast yang sama dan address tersebut tidak boleh digunakan sebagai IP Address untuk host tertentu. Jadi, sebenarnya setiap host memiliki 2 address un- tuk menerima paket : pertama adalah IP Addressnya yang bersifat unik dan kedua 14 adalah broadcast address pada network tempat host tersebut berada. Address broad- cast diperoleh dengan membuat seluruh bit host pada IP Address menjadi 1. Jadi, untuk host dengan IP address 167.205.9.35 atau 167.205.240.2, broadcast addressnya adalah 167.205.255.255 (2 segmen terakhir dari IP Address tersebut dibuat berharga 11111111.11111111, sehingga secara desimal terbaca 255.255). Jenis informasi yang dibroadcast biasanya adalah informasi routing. 2. Alamat loopback Alamat loopback digunakan oleh komputer untuk menunjuk dirinya sendiri. Alamat ini berawalan 127 sehingga tidak boleh digunakan untuk keperluan lainnya. 3. IP private Adalah ip yang boleh digunakan oleh tiap-tiap orang ketika membuat jaringan. ip private terdiri dari 3 buah. yaitu: 10.0.0.0-10.255.255.255 netmask 255.0.0.0 (Kelas A) 172.16.0.0-172.31.255.255 netmask 255.240.0.0 (Kelas B) 192.168.0.0192.168.255.255 netmask 255.255.0.0 (Kelas C) 7.2 ICMP (Internet Control Message Protocol) ICMP bertugas mengirimkan pesan-pesan kesalahan dan kondisi lain yang memerlukan per- hatian khusus. Pesan ICMP dikirim ketika terjadi masalah pada layer IP dan layer di atasnya (TCP/UDP). seperti matinya host tujuan atau putusnya koneksi. Sehingga sangat membantu mengetahui kondisi jaringan. 7.3 ARP (Address Resolution Protocol) Berfungsi memetakan IP address ke MAC address. Karena dalam pengiriman data diper- lukan MAC address tujuan. ARP bekerja dengan mengirimkan paket berisi IP address yang ingin diketahui ke alamat broadcast. Semua host dalam jaringan akan mengetahui, dan akan dijawab oleh yang cocok saja dengan menyertakan IP dan MAC addressnya. Kebalikan dari ARP adalah RARP (Reverse Address Resolution Protocol). 8 Transport Layer Ada dua protokol utama yang banyak digunakan pada layer ini, TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). Contoh Aplikasi yang menggunakan protokol TCP seperti email, website, ftp, dll. sedang yang menggunakan protokol UDP seperti: DNS, NFS, VoIP, Streaming Audio/Video, dll. 8.1 TCP (Transmission Control Protocol) TCP merupakan protokol transport yang bersifat connection oriented, reliable, byte stream service. Connection oriented berarti sebelum melakukan pertukaran data, dua aplikasi peng- guna TCP harus melakukan pembentukan hubungan (handshake) terlebih dahulu. Reliable berarti TCP menerapkan proses deteksi kesalahan paket dan retransmisi. Sedangkan byte stream service berarti paket dikirim secara berurutan. 8.2 UDP (User Datagram Protocol) UDP adalah protokol transport yang sederhana. Berbeda dengan TCP, UDP bersifat con- nectionless dan tidak ada sequencing (pengurutan data kembali) paket yang datang, ac- knowledgement ataupun retransmisi terhadap paket yang error. Protokol ini digunakan pada aplikasi yang secara periodik melakukan aktivitas tertentu. sehingga hilangnya data pada suatu saat dapat diperbaiki pada waktu berikutnya. misalnya query atau streaming. 15 9 Application Layer Merupakan layer teratas tempat aplikasi kita berjalan. Aplikasi-aplikasi tersebut antara lain: DHCP, DNC, FTP, HTTP, IMAP4, IRC, SMTP dan banyak yang lain. Disinilah tempat data asli yang akan di kirimkan. data akan di tambah header tiap kali melewati layer dibawahnya sehingga jumlahnya semakin besar. Gambar 12: Data pada tiap layer TCP/IP 16 Bagian III Dasar Kongurasi Jaringan 10 Layer 1 (Datalink) Untuk mengetahui interface network yang ada dapat di gunakan perintah lspci. 1 root@air :~# lspci 2 00:00.0 RAM memory: nVidia Corporation C51 Host Bridge (rev a2) 3 00:00.1 RAM memory: nVidia Corporation C51 Memory Controller 0 (rev a2) 4 00:00.2 RAM memory: nVidia Corporation C51 Memory Controller 1 (rev a2) 5 00:00.3 RAM memory: nVidia Corporation C51 Memory Controller 5 (rev a2) 6 00:00.4 RAM memory: nVidia Corporation C51 Memory Controller 4 (rev a2) 7 00:00.5 RAM memory: nVidia Corporation C51 Host Bridge (rev a2) 8 00:00.6 RAM memory: nVidia Corporation C51 Memory Controller 3 (rev a2) 9 00:00.7 RAM memory: nVidia Corporation C51 Memory Controller 2 (rev a2) 10 00:02.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1) 11 00:03.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1) 12 00:05.0 VGA compatible controller: nVidia Corporation MCP51 PCI -X GeForce Go 6100 (rev a2 ) 13 00:09.0 RAM memory: nVidia Corporation MCP51 Host Bridge (rev a2) 14 00:0a.0 ISA bridge: nVidia Corporation MCP51 LPC Bridge (rev a3) 15 00:0a.1 SMBus: nVidia Corporation MCP51 SMBus (rev a3) 16 00:0a.3 Co -processor: nVidia Corporation MCP51 PMU (rev a3) 17 00:0b.0 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) 18 00:0b.1 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) 19 00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev f1) 20 00:0e.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev f1) 21 00:10.0 PCI bridge: nVidia Corporation MCP51 PCI Bridge (rev a2) 22 00:10.1 Audio device: nVidia Corporation MCP51 High Definition Audio (rev a2) 23 00:14.0 Bridge: nVidia Corporation MCP51 Ethernet Controller (rev a3) 24 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 25 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 26 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 27 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 28 03:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini -PCI (rev 01) Baris 23 menunjukkan bahwa ethernet card sudah dikenali dan siap digunakan. Untuk melihat apakah linknya sudah ada atau belum, dapat menggunakan perangkat lunak mii-tool (media independent interface) yang ada pada paket net-tools. Atau juga bisa menggunakan ethtool. 1 root@air :~# apt -get install net -tools 2 root@air :~# mii -tool 3 eth0: negotiated 100 baseTxFD , link ok 4 5 root@air :~# ethtool eth0 6 Settings for eth0: 7 Supported ports: [ MII ] 8 Supported link modes: 10baseT/Half 10baseT/Full 9 100 baseT/Half 100 baseT/Full 10 Supports auto -negotiation: Yes 11 Advertised link modes: 10baseT/Half 10baseT/Full 12 100 baseT/Half 100 baseT/Full 13 Advertised auto -negotiation: Yes 14 Speed: 100Mb/s 15 Duplex: Full 16 Port: MII 17 PHYAD: 1 18 Transceiver: external 19 Auto -negotiation: on 20 Supports Wake -on: g 21 Wake -on: d 22 Link detected: yes Baris ke 1 hanya di lakukan apabila mii-tool belum diinstall. Apabila sudah keluar eth0 seperti baris 3 artinya perangkat jaringan kita menggunakan eth0. 100base-TX-FD artinya kita menggunakan kecepatan 100Mbps dan FD adalah Full-Duplex. dan Link ok menandakan perangkat kita sudah siap. Apabila hasilnya bukan link ok artinya ada masalah dengan perangkat kita. 17 1 root@air :~# mii -tool 2 eth0: no link Apabila tampilan seperti tersebut, artinya terjadi kesalahan dengan perangkat jaringan kita. 11 Layer 2 (Network) 11.1 ARP (Address Resolution Protocol) Untuk mengecek ARP dapat dilakukan dengan: 1 root@air :~# arp -n 2 Address HWtype HWaddress Flags Mask Iface 3 10.122.1.77 ether 00:E0:4D:20:FE:3C C eth0 4 10.122.1.1 ether 00:80:3E:67:71: E8 C eth0 5 10.122.1.77 ether 00:E0:4D:20:FE:3C C eth0 Ini menunjukkan tabel ARP yang ada di komputer kita artinya komputer kita baru saja terhubung dengan komputer dengan IP diatas. Suatu host akan membroadcast ARP request untuk mendapatkan MAC address dari sebuah IP address. Host yang sesuai akan merespons request dengan mengirimkan IP Address sekaligus MAC addressnya. Lalu host perequest akan menyimpan informasi ini pada ARP Cache[3]. 1 root@air :~# tcpdump -enqti eth0 2 tcpdump: listening on eth0 3 0:80:c8:f8:4a:51 ff:ff:ff:ff:ff:ff 42: arp who -has 10.122.1.52 Tell 10.122.1.50 4 0:80:c8:f8:5c:73 0:80:c8:f8:4a:51 60: arp reply 10.122.1.52 is-at 0:80:c8:f8:5c:73 5 0:80:c8:f8:4a:51 0:80:c8:f8:5c:73 98: 10.122.1.50 > 10.122.1.52: icmp: echo request (DF) Baris 3: host 10.122.1.50 membroadcast ARP untuk host 10.122.1.52 Baris 4: host yang sesuai (10.122.1.52) membalas dengan ARP reply dengan menyer- takan MAC Addressnya Baris 5: host 10.122.1.50 menghubungi host 10.122.1.52 11.2 IP Address Untuk mengetahui dan mensetting IP address dapat dilakukan dengan perintah ifcong. 1 root@air :~# ifconfig 2 eth0 Link encap:Ethernet HWaddr 00:16:36: e8:83:c2 3 inet addr :10.122.1.52 Bcast :10.122.1.255 Mask :255.255.255.0 4 inet6 addr: fe80 ::216:36 ff:fee8 :83c2/64 Scope:Link 5 UP BROADCAST RUNNING MULTICAST MTU :1500 Metric :1 6 RX packets :9932 errors :0 dropped :0 overruns :0 frame :0 7 TX packets :679 errors :0 dropped :0 overruns :0 carrier :0 8 collisions :0 txqueuelen :1000 9 RX bytes :1074312 (1.0 MB) TX bytes :133914 (130.7 KB) 10 Interrupt :20 Base address :0xa000 11 12 lo Link encap:Local Loopback 13 inet addr :127.0.0.1 Mask :255.0.0.0 14 inet6 addr: ::1/128 Scope:Host 15 UP LOOPBACK RUNNING MTU :16436 Metric :1 16 RX packets :2657 errors :0 dropped :0 overruns :0 frame :0 17 TX packets :2657 errors :0 dropped :0 overruns :0 carrier :0 18 collisions :0 txqueuelen :0 19 RX bytes :138080 (134.8 KB) TX bytes :138080 (134.8 KB) Baris 2-10 adalah properti dari network card (eth0), sedangkan baris 12-19 adalah alamat loopback. Untuk mengubah ip address dapat dilakukan dengan: 18 1 root@air :~# ifconfig eth0 192.168.0.1 netmask 255.255.25.0 up Agar tiap kali booting tidak harus menambah ip address maka lebih baik kongurasi ini disimpan dalam le. File kongurasi ip address ada di /etc/network/interface, isilah dengan format seperti: 1 auto lo 2 iface lo inet loopback 3 4 auto eth0 5 iface eth0 inet static 6 address 10.122.1.52 7 netmask 255.255.255.0 8 gateway 10.122.1.1 9 dns -nameserver 10.122.1.254 Untuk merestart interface dan meload kongurasi di /etc/network/interface gunakan: 1 root@air :~# /etc/init.d/networking restart 11.3 Routing Untuk mengetahui routing tabel dapat digunakan perintah route 1 root@air :~# route 2 Kernel IP routing table 3 Destination Gateway Genmask Flags Metric Ref Use Iface 4 10.122.1.0 * 255.255.255.0 U 0 0 0 eth0 5 link -local * 255.255.0.0 U 1000 0 0 eth0 6 default 10.122.1.1 0.0.0.0 UG 100 0 0 eth0 Baris 4 menunjukkan bahwa untuk ke jaringan 10.122.1.0 tidak melewati gateway (* sama dengan 0.0.0.0 yang berarti jaringan ini). Sedangkan baris 5 link-local (yang mempunyai alamat 169.254.0.0) juga tidak melewati gateway. Baris 6 Destination: default berarti semua jaringan selain 2 jaringan diatasnya selalu melewati Gateway: 10.122.1.1. Untuk menambah routing misalnya kita ingin menambahkan routing ke jaringan 192.168.0.0 dengan netmask 255.255.255.0 melewati 10.122.1.50 dapat dilakukan dengan: 1 root@air :~# route add -net 192.168.0.0 netmask 255.255.255.0 gateway 10.122.1.50 2 root@air :~# route 3 Kernel IP routing table 4 Destination Gateway Genmask Flags Metric Ref Use Iface 5 192.168.0.0 10.122.1.50 255.255.255.0 UG 0 0 0 eth0 6 10.122.1.0 * 255.255.255.0 U 0 0 0 eth0 7 link -local * 255.255.0.0 U 1000 0 0 eth0 8 default 10.122.1.1 0.0.0.0 UG 100 0 0 eth0 Terlihat bahwa infomasi routing akan ditambahkan pada tabel routing (baris 5). Sedan- gkan untuk menghapus routing dapat dilakukan dengan: 1 root@air :~# route del -net 192.168.0.0 netmask 255.255.255.0 Selengkapnya dapat dibaca pada man route. Agar tiap kali booting tidak harus menam- bah informasi routing maka kongurasi dapat disimpan di le sehingga akan di eksekusi tiap kali booting. Script berikut (baris 11) bisa ditambahkan pada bagian akhir dari le /etc/network/interface untuk menambah informasi routing. 19 1 auto lo 2 iface lo inet loopback 3 4 auto eth0 5 iface eth0 inet static 6 address 10.122.1.52 7 netmask 255.255.255.0 8 gateway 10.122.1.1 9 dns -nameserver 10.122.1.254 10 11 up route add -net 192.168.0.0 netmask 255.255.255.0 gateway 10.122.1.50 11.4 Ping dan traceroute Ping adalah salah satu aplikasi dari protokol ICMP yang berfungsi mengetahui ada tidaknya koneksi antara suatu host ke host lainnya. 1 kholis@air :~$ ping 10.122.1.1 2 PING 10.122.1.1 (10.122.1.1) 56(84) bytes of data. 3 64 bytes from 10.122.1.1: icmp_seq =1 ttl=64 time =5.91 ms 4 64 bytes from 10.122.1.1: icmp_seq =2 ttl=64 time =2.95 ms 5 64 bytes from 10.122.1.1: icmp_seq =3 ttl=64 time =2.96 ms 6 64 bytes from 10.122.1.1: icmp_seq =4 ttl=64 time =3.02 ms Apabila host tidak berhasil dihubungi (tidak terdapat koneksi karena berbagai alasan), maka akan keluar seperti berikut: 1 kholis@air :~$ ping 10.122.1.99 2 PING 10.122.1.99 (10.122.1.99) 56(84) bytes of data. 3 From 10.122.1.52 icmp_seq =1 Destination Host Unreachable 4 From 10.122.1.52 icmp_seq =2 Destination Host Unreachable 5 From 10.122.1.52 icmp_seq =3 Destination Host Unreachable traceroute adalah program untuk mengetahui jalur yang dilewati paket menuju tujuan- nya. 1 root@air :~# traceroute 10.200.1.1 2 traceroute to 10.200.1.1 (10.200.1.1) , 30 hops max , 40 byte packets 3 1 10.122.1.1 (10.122.1.1) 0.452 ms 0.638 ms 0.904 ms 4 2 10.224.2.1 (10.224.2.1) 0.459 ms 0.952 ms 1.088 ms 5 3 10.200.1.1 (10.200.1.1) 0.319 ms 0.327 ms 0.327 ms Sedangkan mtr adalah tool gabungan dari ping dan traceroute sehingga lebih mudah untuk di pahami. 1 root@air :~# mtr proxy.its.ac.id Gambar 13: mtr 20 12 Layer 3 (Transport) Aplikasi yang digunakan untuk mengetahui penggunaan layer transport adalah perintah netstat. Untuk mengetahui port berapa saja yang terbuka untuk koneksi pada PC kita dapat diketahui dengan perintah : 1 root@air :~# netstat -atupln 2 Active Internet connections (servers and established) 3 Proto Recv -Q Send -Q Local Address Foreign Address State PID/ Program name 4 tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 5277/ smbd 5 tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 5277/ smbd 6 tcp 0 0 10.122.1.52:58809 202.46.129.134:22 ESTABLISHED 13696/ ssh 7 tcp6 0 0 :::22 :::* LISTEN 12663/ sshd 8 udp 0 0 0.0.0.0:40832 0.0.0.0:* 5210/ avahi -daemon: 9 udp 0 0 10.122.1.52:137 0.0.0.0:* 5275/ nmbd 10 udp 0 0 0.0.0.0:137 0.0.0.0:* 5275/ nmbd 11 udp 0 0 10.122.1.52:138 0.0.0.0:* 5275/ nmbd 12 udp 0 0 0.0.0.0:138 0.0.0.0:* 5275/ nmbd 13 udp 0 0 0.0.0.0:5353 0.0.0.0:* 5210/ avahi -daemon: State LISTEN berarti service sedang berjalan dan siap melayani request. sedangkan state ESTABLISHED berarti sedang ada koneksi yang terjadi saat ini. 13 File dan Tools Networking 13.1 File-le Networking 1. /etc/hosts Berisi daftar mapping alamat IP dengan nama komputernya. File ini digunakan untuk name resolving tanpa menghubungi DNS Server. 1 root@air :~# cat /etc/hosts 2 127.0.0.1 localhost 3 127.0.1.1 air 4 10.122.1.200 www.computer.ee.its.ac.id 5 6 # The following lines are desirable for IPv6 capable hosts 7 ::1 ip6 -localhost ip6 -loopback 8 fe00 ::0 ip6 -localnet 9 ff00 ::0 ip6 -mcastprefix 10 ff02 ::1 ip6 -allnodes 11 ff02 ::2 ip6 -allrouters 12 ff02 ::3 ip6 -allhosts 2. /etc/resolv.conf File ini berfungsi menunjuk DNS Server yang akan digunakan. 1 root@air :~# cat /etc/resolv.conf 2 domain computer.ee.its.ac.id 3 nameserver 192.168.1.254 3. /etc/network/interface Didalam le ini terdapat kongurasi network interface yang ada di komputer. File ini digunakan oleh perintah ifup saat komputer booting dan ifdown ketika komputer akan di matikan. 21 1 root@air :~# cat /etc/network/interface 2 auto lo 3 iface lo inet loopback 4 5 auto eth0 6 iface eth0 inet static 7 address 10.122.1.52 8 netmask 255.255.255.0 9 network 10.122.1.0 10 broadcast 10.122.1.255 11 gateway 10.122.1.1 12 dns -nameserver 10.122.1.254 4. /etc/services File ini berisi daftar mapping nama service dan nomor portnya. Misalnya, untuk komunikasi dengan www service (mengakses webserver), koneksi harus ditujukan ke port 80, atau jika ingin mengakses ftp service, koneksi harus ditujukan ke port 21. 1 root@air :~# cat /etc/services 2 ... 3 ftp -data 20/ tcp 4 ftp 21/tcp 5 fsp 21/udp fspd 6 ssh 22/tcp # SSH Remote Login Protocol 7 ssh 22/udp # SSH Remote Login Protocol 8 telnet 23/ tcp 9 # 24 - private 10 smtp 25/tcp mail 11 # 26 - unassigned 12 domain 53/ tcp nameserver # name -domain server 13 domain 53/ udp nameserver 14 mtp 57/tcp # deprecated 15 bootps 67/ tcp # BOOTP server 16 bootps 67/ udp 17 bootpc 68/ tcp # BOOTP client 18 ... 22 Bagian IV Domain Name System DNS atau Domain Name Server, yaitu server yang digunakan untuk mengetahui IP Address suatu host lewat host name-nya. Dalam dunia internet, komputer berkomunikasi satu sama lain dengan mengenali IP Address-nya. Namun bagi manusia tidak mungkin menghafalkan IP address tersebut, manusia lebih mudah menghapalkan kata-kata seperti www.yahoo.com, www.google.com, atau www.friendster.com. DNS berfungsi untuk mengkonversi nama yang bisa terbaca oleh manusia ke dalam IP address host yang bersangkutan untuk dihubungi[1]. Cara kerja DNS adalah sebagai berikut: Ketika kita merequest suatu alamat, misalnya www.friendster.com dari host kita (nir- maladewi.its.ac.id 202.154.63.26), maka host kita akan mengontak name server lokal untuk menanyakan dimanakah www.friendster.com berada. Name server ITS (202.154.63.2) akan mencari request tersebut di database lokal. Kare- na tidak ada, maka name server akan mengontak root DNS server-nya, siapa yang memegang domain untuk .com Beberapa daftar Top Level Domain (TLD) yang ada sekarang adalah: com, net, org, biz, info, name, museum, dan tv. Sedangkan Country Code Top Level Domain (ccTLD) adalah: us, uk, fr, es, de, it, jp, ie, dll. Root server akan memberitahu IP address dari server DNS dari www.friendster.com. Kemudian DNS server lokal akan mengontak server DNS yang mengelola www.friendster.com. Kemudian DNS server tersebut akan memberitahu IP address dari www.friendster.com. baru host nirmaladewi merequest www.friendster.com dengan IP address tersebut. Gambar 14: Cara kerja DNS 14 Instalasi dan Kongurasi BIND BIND (Berkeley Internet Name Daemon) adalah salah satu DNS server yang banyak digu- nakan di sistem Unix/Linux, kali ini kita akan menggunakan BIND versi 9 sebagai DNS server. 1. Install bind9 1 root@air :~# apt -get install bind9 dnsutils 23 2. Edit le /etc/bind/named.conf.options 1 options { 2 directory "/var/cache/bind"; 3 4 // If there is a firewall between you and nameservers you want 5 // to talk to, you might need to uncomment the query -source 6 // directive below. Previous versions of BIND always asked 7 // questions using port 53, but BIND 8.1 and later use an unprivileged 8 // port by default. 9 10 query -source address * port 53; 11 12 // If your ISP provided one or more IP addresses for stable 13 // nameservers , you probably want to use them as forwarders. 14 // Uncomment the following block , and insert the addresses replacing 15 // the all -0s placeholder. 16 17 // dns server diatas server anda 18 forwarders { 19 202.46.129.2; 20 }; 21 22 auth -nxdomain no; # conform to RFC1035 23 listen -on-v6 { any; }; 24 }; Baris 2: menunjukkan direktori tempat cache bind sementara disimpan Baris 10: BIND akan menerima query dari semua host lewat port 53 Baris 18-20: DNS server yang akan yang akan dihubungi jika data yang direquest tidak ada dalam database lokal 3. Pastikan terdapat script berikut pada 1 include "/etc/bind/named.conf.local"; 4. Buatlah zona baru yang akan anda tangani pada le /etc/bind/name.conf.local. Mis- alkan domain yang akan kita tangani adalah domainku.com dengan ip address 192.168.1.0 netmask 255.255.255.0. 1 // 2 // Do any local configuration here 3 // 4 5 // Consider adding the 1918 zones here , if they are not used in your 6 // organization 7 // include "/etc/bind/zones.rfc1918 "; 8 9 zone "domainku.com" { 10 type master; 11 file "/etc/bind/db.domainku.com"; 12 }; 13 14 zone "1.168.192.in-addr.arpa" { 15 type master; 16 file "/etc/bind/db .1.168.192"; 17 }; Baris 9: nama domain yang akan ditangani Baris 10: menyatakan bahwa dns server ini bertipe primary. Baris 11: le database forward Baris 14: ip address dari domain yang ditangani. Penting!: penulisan zone harus dalam format 3 oktet terakhir ip address yang di tulis terbalik lalu diakhiri den- gan kata .in-addr.arpa. Contoh: apabila ip domain adalah 10.122.1.0 netmask 255.255.255.0 maka penulisan zona adalah 1.122.10.in-addr-arpa. 24 5. Buat le database sesuai dengan kongurasi diatas. yaitu /etc/bind/db.domainku.com 1 ; 2 ; BIND data file for zone "domainku.com" [via] Internal view 3 ; 4 $TTL 604800 5 @ IN SOA ns.domainku.com. admin.domainku.com. ( 6 2008050601 ; Serial 7 604800 ; Refresh 8 7200 ; Retry 9 2419200 ; Expire 10 604800 ) ; Negative Cache TTL 11 ; 12 ; ns records specifying the authoritative nameservers 13 @ IN NS ns.domainku.com. 14 @ IN MX 5 mail.domainku.com. 15 16 ns IN A 192.168.1.1 17 www IN A 192.168.1.2 18 mail IN A 192.168.1.3 Baris 4: adalah nilai default TTL (Time To Live) untuk semua record pada zone le. dalam satuan detik Baris 5: IN = Internet Name Baris 5: SOA = Start Of Authority Baris 5: ns.domainku.com = Nama host tempat penyimpanan zona le (dalam hal ini nama host yang beperan sebagai primary server) Baris 5: admin.domainku.com = Alamat email penanggung jawab isi zona le. Format penulisan antara username dan host dipisahkan . (titik). Contoh: ad- min.domainku.com berarti admin@domainku.com. Baris 6: Serial = Nomer seri perubahan zona le. Setiap kali terjadi perubahan zona le, Serial harus dinaikkan. Serial digunakan oleh secondary server untuk melakukan pengecekan apakah ada perubahan zona le[2]. Baris 7: Refresh = Selang waktu (dalam detik) yang diperlukan oleh secondary server untuk melakukan pengecekan zona le pada primary server. Baris 8: Retry = Selang waktu (dalam detik) yang diperlukan secondary server untuk mengulang pengecekan zona le pada primary master jika terjadi kega- galan. Sebaiknya digunakan nilai lebih besar dari 1 jam (3600) karena nilai Retry yang terlalu kecil tidak menghasilkan apa-apa karena ada kemungkinan primary server sedang mati (down). Baris 9: Expire = Batas waktu (dalam detik) secondary server boleh menyimpan zona le jika tidak dapat melakukan refresh. Apabila telah masa expire dan secondary server masih belum bisa melakukan refresh zona le tersebut akan dihapus. Sebaiknya gunakan nilai Expire yang cukup besar (misal 1 bulan). Baris 10: Minimum = Waktu minimal (dalam detik) yang digunakan sebagai nilai awal TTL resource record. Nilai yang dianjurkan adalah 1 hari (86400). Baris 13: NS = Name Server, merupakan identikasi DNS server suatu zona. Baris 14: MX = Mail Exchange, Berfungsi untuk mengalihkan alamat email yang ditujukan ke suatu host atau domain ke host lain yang berfungsi sebagai server email. Baris 16: A = Address(IPv4), berfungsi memetakan dari nama host ke alamat IP. 25 1 ; 2 ; BIND data file for zone "1.168.192.in-addr.arpa" 3 ; 4 $TTL 604800 5 @ IN SOA ns.domainku.com. admin.domainku.com. ( 6 2008050601 ; Serial 7 604800 ; Refresh 8 86400 ; Retry 9 2419200 ; Expire 10 604800 ) ; Negative Cache TTL 11 12 @ IN NS ns.domainku.com. 13 14 1 IN PTR ns.domainku.com. 15 2 IN PTR www.domainku.com. 16 3 IN PTR mail.domainku.com. Baris 14: PTR = menunjukkan alamat nama host dari suatu alamat IP. 6. Restart service bind 1 root@air :~# /etc/init.d/bind9 restart 15 Testing Service DNS Untuk mengetahui sekaligus menguji DNS server dapat digunakan aplikasi-aplikasi berikut: 15.1 host 1 kholis@air :~$ host www.domainku.com 2 www.domainku.com has address 192.168.1.2 3 kholis@air :~$ host 192.168.1.2 4 2.1.168.192.in-addr.arpa domain name pointer www.domainku.com. 15.2 nslookup 1 kholis@air :~$ nslookup www.domainku.com 2 Server: 192.168.1.1 3 Address: 192.168.1.1#53 4 5 Name: www.domainku.com 6 Address: 192.168.1.2 7 8 kholis@air :~$ nslookup 192.168.1.2 9 Server: 192.168.1.1 10 Address: 192.168.1.1#53 11 12 2.1.168.192..in -addr.arpa name = www.domainku.com. 26 15.3 dig 1 kholis@air :~$ dig www.domainku.com 2 3 ; <<>> DiG 9.4.2 <<>> www.domainku.com 4 ;; global options: printcmd 5 ;; Got answer: 6 ;; ->>HEADER <<- opcode: QUERY , status: NOERROR , id: 14006 7 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 8 9 ;; QUESTION SECTION: 10 ;www.domainku.com. IN A 11 12 ;; ANSWER SECTION: 13 www.domainku.com. 604800 IN A 192.168.1.2 14 15 ;; AUTHORITY SECTION: 16 domainku.com. 604800 IN NS ns.domainku.com. 17 18 ;; ADDITIONAL SECTION: 19 ns.domainku.com. 604800 IN A 192.168.1.1 20 21 ;; Query time: 9 msec 22 ;; SERVER: 192.168.1.1#53(192.168.1.1) 23 ;; WHEN: Tue Jun 24 19:46:03 2008 24 ;; MSG SIZE rcvd: 95 25 26 kholis@air :~$ dig -x www.domainku.com 27 28 ; <<>> DiG 9.4.2 <<>> -x www.domainku.com 29 ;; global options: printcmd 30 ;; Got answer: 31 ;; ->>HEADER <<- opcode: QUERY , status: NXDOMAIN , id: 53572 32 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 33 34 ;; QUESTION SECTION: 35 ;com.domainku.www.in-addr.arpa. IN PTR 36 37 ;; AUTHORITY SECTION: 38 in-addr.arpa. 10800 IN SOA A.ROOT -SERVERS.NET. dns -ops.ARIN.NET. 2008062404 1800 900 691200 10800 39 40 ;; Query time: 517 msec 41 ;; SERVER: 192.168.1.1#53(192.168.1.1) 42 ;; WHEN: Tue Jun 24 19:45:56 2008 43 ;; MSG SIZE rcvd: 126 27 Bagian V Firewall Firewall merupakan perangkat keamanan jaringan. Firewall dapat berupa software atau hardware yang di rancang untuk menlter informasi yang diperbolehkan atau yang tidak diperbolehkan antara jaringan privat dengan jaringan publik[3]. Alasan menggunakan rewall antara lain: Control (mengendalikan) Saat jaringan pribadi kita terhubung dengan jaringan publik (internet), kita dapat menlter trak yang masuk maupun yang keluar dengan mengizinkan tipe trak tertentu dan memblok tipe yang lain. Secure (mengamankan) Firewall berfungsi memblok usaha penyerangan serta akses tidak sah yang datang dari luar. Prevent (mencegah) Kadang software yang bug atau mesin yang tidak terkongurasi dengan baik akan mengeluarkan sembarang paket keluar. Untuk mengantisipasinya, kita dapat men- ginstruksikan rewall agar memberitakan berbagai hal abnormal yang terjadi pada jaringan. 16 Iptables Iptables atau NetFilter adalah software Linux yang mengimplementasikan sebuah frame- work untuk rewall yang bersifat statefull. Iptables juga memiliki ture Network Address Translation (NAT). Netlter hanya bekerja pada kernel versi 2.4 atau 2.6 dan tidak dapat bekerja pada kernel yang lebih rendah dari 2.4. Netlter membuat aturan-aturan apa yang dilakukan tentang paket-paket network yang lewat. Aturan tersebut bisa meneruskannya, menolaknya, dll. 28 16.1 Dasar iptables Gambar 15: iptables Pada iptables di kenal istilah chain yaitu tempat terjadi proses pemlteran (pada Gambar 15 berwarna hijau). Macam-macam chain[6]: PREROUTING, titik dimana kita bisa memanipulasi paket network sebelum dia memasuki keputusan routing, apakah ia akan masuk ke dalam Linux kita atau cuma sekedar lewat. INPUT, titik dimana kita bisa melakukan pemeriksaan terhadap paket network yang akan MASUK ke dalam Linux kita. OUTPUT, titik dimana kita melakukan pemeriksaan terhadap paket network yang dihasilkan oleh Linux kita KELUAR sebelum routing. FORWARD, titik dimana kita melakukan pemeriksaan terhadap paket network yang cuma numpang LEWAT Linux kita. POSTROUTING, titik dimana kita bisa melakukan manipulasi terhadap paket yang akan keluar dari Linux kita. Masing-masing chain berisi daftar rules. Ketika sebuah paket dikirim ke suatu chain, paket ini dibandingkan dengan masing-masing rule di dalam chain dalam urutan atas ke bawah. rule bisa dalam bentuk user-dened chain atau salah satu dari built-in target: ACCEPT, DROP, QUEUE, atau RETURN. ACCEPT Target ini menyebabkan iptables menerima paket. Paket yang diterima dari chain INPUT diizinkan lewat dan diterima oleh host lokal, sedangkan paket yang diterima dari chain OUTPUT akan diizinkan meninggalkan host, dan paket yang diterima dari chain FORWARD akan diizinkan untuk di-route ke host. DROP Target ini menyebabkan iptables mendrop paket tanpa proses yang lebih lanjut. Paket hilang tanpa ada indikasi yang diberikan ke host pengirim bahwa paket ini telah didrop. Yang tampak dari sender biasanya adalah communication timed-out. 29 MASQUERADING IPMASQ adalah algoritme perubahan source-NAT suatu paket data tanpa menye- butkan asal paket yang sebenarnya. Dengan IPMASQ administrator tidak perlu memasukkan ke daftar tabel routing ketika suatu alamat IP lokal baru ingin men- gakses internet lewat gateway IP live. Pada iptables juga dikenal adanya table yaitu tempat rule-rule/aturan-aturan yang kita buat disimpan (pada Gambar 15 berwarna kuning). Ada 3 buah table, secara general dapat kita denisikan: Table lter, adalah tempat rule-rule yang berkaitan dengan boleh/tidaknya suatu paket network melewati sebuah CHAIN di atas. dalam table ini terdapat Chain INPUT, OUTPUT dan FORWARD Table nat, adalah singkatan dari Network Address Translation, yaitu table tempat rule- rule yang berkaitan dengan manipulasi suatu paket network ketika melewati CHAIN PREROUTING, POSTROUTING, dan OUTPUT. Table mangle, adalah tempat rule-rule yang berkaitan dengan manipulasi suatu paket network untuk keperluan advance, seperti QOS (quality of service), packet marking, dll. dalam table ini terdapat semua Chain diatas. 16.2 Dua pendekatan setup rewall Di mailing list sering ada yang bertanya: Port apa saja sih yang harus kita TUTUP? Ini adalah pendekatan negative list, dimana secara DEFAULT semua port kita BUKA, baru kemudian satu per satu kita TUTUP port yang diinginkan. Pendekatan kedua adalah: positive list, yaitu dimana secara DEFAULT semua port di TUTUP, dan baru kemudian satu per satu kita BUKA port yang diinginkan. Mana dari kedua pendekatan itu yang sebaiknya kita pakai? Berikut ini adalah kelebihan dan kekurangan masing-masing. Negative List: Mudah disetup Beresiko lupa menutup port Positive List: Sangat secure, sebab semua port tertutup Relatif lebih sulit disetup 16.3 Syntax Iptables Iptables memberikan keleluasaan yang sangat besar kepada kita di dalam mengatur rewall. Kita bisa membuat rule mulai dari yang general/umum sampai yang detail sekali. Syntax Iptables seperti ini (perhatikan huruf besar kecil berpengaruh): 1 iptables [-t table] -[AD] CHAIN rule - specification [options] 2 iptables [-t table] -I CHAIN [rulenum] rule -specification [options] 3 iptables [-t table] -R CHAIN rulenum rule - specification [options] 4 iptables [-t table] -D CHAIN rulenum [options] 5 iptables [-t table] -[LFZ] [CHAIN] [options] 6 iptables [-t table] -P CHAIN target [options] Keterangan: -I : insert, maka secara default rule akan menempati baris nomor 1. Kita bisa menye- butkan ingin insert di baris keberapa. 30 -A : append, rule akan ditambahkan di baris paling bawah. -D : delete, menghapus rule baris ke-berapa. -R : replace, mengganti rule baris ke-berapa. -L : list, menampilkan rule-rule yang ada. -P : policy, mengubah policy suatu chain. 16.4 Contoh Kasus Terdapat jaringan sebagai berikut: Gambar 16: Contoh jaringan Melihat status iptables 1 [root@server ~]# iptables -nL 2 Chain INPUT (policy ACCEPT) 3 target prot opt source destination 4 5 Chain FORWARD (policy ACCEPT) 6 target prot opt source destination 7 8 Chain OUTPUT (policy ACCEPT) 9 target prot opt source destination Semua Chain memiliki policy ACCEPT artinya secara default semua paket dapat masuk ke host ini. Ubah policy default menjadi DROP (Positive list) 1 [root@server ~]# iptables -P INPUT DROP 2 [root@server ~]# iptables - n L 3 Chain INPUT (policy DROP) 4 target prot opt source destination 5 6 Chain FORWARD (policy ACCEPT) 7 target prot opt source destination 8 9 Chain OUTPUT (policy ACCEPT) 10 target prot opt source destination Baris 3: policy chain INPUT sudah berubah menjadi DROP. lakukan perubahan juga pada chain yang lain. Perintah ini harus dilakukan pada baris terakhir. Jika ada perintah lain maka harus dilakukan sebelum perintah ini. 31 Membolehkan hanya PC1 (192.168.0.1) yang dapat mengakses Gateway 1 [root@server ~]# iptables -I INPUT -s 192.168.0.1 -j ACCEPT 2 [root@server ~]# iptables -I OUTPUT -d 192.168.0.1 -j ACCEPT 3 [root@server ~]# iptables -nL 4 Chain INPUT (policy ACCEPT) 5 target prot opt source destination 6 ACCEPT all -- 192.168.0.1 0.0.0.0/0 7 8 Chain FORWARD (policy ACCEPT) 9 target prot opt source destination 10 11 Chain OUTPUT (policy ACCEPT) 12 target prot opt source destination 13 ACCEPT all -- 0.0.0.0/0 192.168.0.1 Baris 1: Semua paket yang masuk ke mesin yang berasal dari 192.168.0.1 di- izinkan. Baris 2: Semua paket yang keluar dari mesin menuju 192.168.0.1 diizinkan Kongurasi 2 arah tersebut kadang sangat merepotkan. Oleh karenanya biasa di gu- nakan Connection tracking, yaitu dimana ketika kita sudah mendenisikan sebuah rule di chain tertentu, maka trak network yang terkait dengan rule tersebut tidak perlu disebutkan lagi. Jadi dalam hal kasus diatas, kita cukup mendenisikan rule di chain INPUT saja, yang di OUTPUTnya tidak perlu lagi. 1 [root@server ~]# iptables -I INPUT -s 192.168.0.1 -j ACCEPT 2 [root@server ~]# iptables -I INPUT -m state --state RELATED ,ESTABLISHED -j ACCEPT 3 [root@server ~]# iptables -I INPUT -m state --state RELATED ,ESTABLISHED -j ACCEPT 4 [root@server ~]# iptables -I INPUT -m state --state RELATED ,ESTABLISHED -j ACCEPT 5 6 [root@server ~]# iptables -nL 7 Chain INPUT (policy ACCEPT) 8 target prot opt source destination 9 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED ,ESTABLISHED 10 ACCEPT all -- 192.168.0.1 0.0.0.0/0 11 12 Chain FORWARD (policy ACCEPT) 13 target prot opt source destination 14 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED ,ESTABLISHED 15 16 Chain OUTPUT (policy ACCEPT) 17 target prot opt source destination 18 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED ,ESTABLISHED Sharing Internet. Ada dua langkah yang harus dilakukan agar semua host dapat terkoneksi dengan internet: memperbolehkan semua host untuk mengakses port http (80) host luar (internet) 1 [root@server ~]# iptables -A FORWARD -p tcp --dport 80 -s 192.168.0.1 -j ACCEPT membungkus tiap paket yang keluar menjadi ip gateway, sehingga bisa dikenali dalam internet 1 [root@server ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Mengatur agar kita bisa membuat sebuah web server yang terlindungi di belakang gateway menerima tiap paket yang bertujuan ke port 80 32 1 [root@server ~]# iptables -A FORWARD -p tcp -i eth0 --dport 80 -j ACCEPT mengubah tujuan tiap paket yang bertujuan ke port 80 menuju ke host 192.168.0.201 port 80 1 [root@server ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.201:80 17 Shorewall Shorewall adalah kependekan dari Shoreline Firewall, yaitu suatu tool untuk mempermu- dah kongurasi netlter (iptables). Anda tinggal mendeskripsikan segala kebutuhan rewall menggunakan les kongurasi yang telah disediakan. Lalu shorewall akan membaca kon- gurasi tersebut dan dengan bantuan iptables, shorewall menset netlter sesuai dengan kebutuhan anda tersebut. Sebagai contoh kita akan menggunakan jaringan seperti pada Gambar 16. 17.1 Instalasi dan kongurasi 1. Install shorewall menggunakan apt-get install shorewall. File-le kongurasi shore- wall berada pada direkori /etc/shorewall, pada debian dan turunannya umumnya le pada direktori tersebut kosong. Namun terdapat beberapa contoh kongurasi di /usr/share/doc/shorewall-common/examples/ mulai dari 1 interface sampae 3 interface. Jadi copykan contoh kongurasi yang sesuai dari direkori tersebut ke /etc/shorewall. 1 [root@server ~]# cp -R /usr/share/doc/shorewall -common/examples/two -interfaces/ /etc/ shorewall/ 2. Enable startup service dari 0 menjadi 1 pada le /etc/default/shorewall. (Baris 5) 1 [root@server ~]# vim /etc/default/shorewall 2 # prevent startup with default configuration 3 # set the following varible to 1 in order to allow Shorewall to start 4 5 startup =1 6 7 # if your Shorewall configuration requires detection of the ip address of a ppp 8 # interface , you must list such interfaces in "wait_interface" to get Shorewall to 9 # wait until the interface is configured. Otherwise the script will fail because 10 # it won t be able to detect the IP address. 11 # 12 # Example: 13 # wait_interface ="ppp0" 14 # or 15 # wait_interface ="ppp0 ppp1" 16 # or, if you have defined in /etc/shorewall/params 17 # wait_interface= 18 19 # 20 # Startup options 21 # 22 23 OPTIONS ="" 24 25 # EOF 3. Kongurasi le /etc/shorewall/zones. File Zones adalah le yang menangani zona yang akan ditangani oleh shorewall. Umumnya satu zona mewakili satu interface, tapi tidak menutup kemungkinan satu interface menangani lebih dari satu zona. 33 1 [root@server ~]# vim /etc/shorewall/zones 2 # 3 # Shorewall version 4.0 - Sample Zones File for two -interface configuration. 4 # Copyright (C) 2006 by the Shorewall Team 5 # 6 # This library is free software; you can redistribute it and/or 7 # modify it under the terms of the GNU Lesser General Public 8 # License as published by the Free Software Foundation; either 9 # version 2.1 of the License , or (at your option) any later version. 10 # 11 # See the file README.txt for further details. 12 #------------------------------------------------------------------------------ 13 # For information about entries in this file , type "man shorewall -zones" 14 # 15 # The manpage is also online at 16 # http :// shorewall.net/manpages/shorewall -zones.html 17 # 18 ############################################################################### 19 #ZONE TYPE OPTIONS IN OUT 20 # OPTIONS OPTIONS 21 fw firewall 22 net ipv4 23 loc ipv4 24 25 #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE Baris 21: sesuai dengan topologi, zona fw adalah dirinya sendiri (komputer gate- way). Baris 22: net adalah zona luar (internet). Baris 23: loc adalah zona lokal (192.168.0.0/24) 4. Kongurasi le /etc/shorewall/interfaces. File interfaces menunjukkan interface yang akan ditangani shorewall sesuai dengan zona yang di denisikan di atas. Oleh kare- nanya, kolom zone yang ada disini harus sama dengan zona yang didenisikan diatas. 1 [root@server ~]# vim /etc/shorewall/interfaces 2 # 3 # Shorewall version 4.0 - Sample Interfaces File for two -interface configuration. 4 # Copyright (C) 2006 by the Shorewall Team 5 # 6 # This library is free software; you can redistribute it and/or 7 # modify it under the terms of the GNU Lesser General Public 8 # License as published by the Free Software Foundation; either 9 # version 2.1 of the License , or (at your option) any later version. 10 # 11 # See the file README.txt for further details. 12 #------------------------------------------------------------------------------ 13 # For information about entries in this file , type "man shorewall -interfaces" 14 # 15 # The manpage is also online at 16 # http :// shorewall.net/manpages/shorewall -interfaces.html 17 # 18 ############################################################################### 19 #ZONE INTERFACE BROADCAST OPTIONS 20 net eth0 detect dhcp ,tcpflags ,routefilter ,nosmurfs ,logmartians 21 loc eth1 detect tcpflags ,nosmurfs 22 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Baris 20: zona net berada pada interface eth0 (202.111.2.2) dengan broadcast detect berarti shorewall akan mendeteksi otomatis alamat broadcast eth0. jika menggunakan opsi ini maka eth0 harus up terlebih dahulu sebelum shorewall dijalankan. Sedangkan opsi-opsi diatas bisa digunakan bisa juga tidak, berikut arti dari beberapa opsi: dhcp: gunakan opsi ini jika interface mendapat ip address melalui dhcp, jika interface ini digunakan oleh DHCP server untuk melayani client, jika interface ini mempunyai ip static tapi banyak DHCP client di jaringan lokal anda, jika interface ini adalah bridge dimana DHCP server berada di satu sisi sedangkan DHCP client berada di sisi lain. 34 tcpags: paket yang datang di interface ini akan di cek apakah mengandung kombinasi ilegal dari TCP ags. routelter: menset on kernel route ltering untuk interface ini. nosmurfs: memlter paket smurfs (yaitu paket yang menggunakan alamat broadcast sebagai sumber) logmartians: menset on kernel martial logging. disarankan apabila anda menggunaka opsi routelter. dan banyak opsi yang lain, silahkan baca man shorewall-interfaces untuk se- lengkapnya. Baris 21: zona loc berada pada interface eth1 (192.168.0.250) dengan broadcast detect. 5. Kongurasi le /etc/shorewall/policy. File ini mendenisikan kebijakan yang umum pada paket yang melewati zona yang di denisikan pada /etc/shorewall/zones. Per- hatian!: Urutan tiap aturan pada le ini sangat penting. File ini melakukan apa yang harus dilakukan pada tiap koneksi yang tidak cocok dengan semua aturan yang ada di le /etc/shorewall/rules. 1 [root@server ~]# vim /etc/shorewall/policy 2 ############################################################################### 3 #SOURCE DEST POLICY LOG LEVEL LIMIT:BURST 4 5 # 6 # Note about policies and logging: 7 # This file contains an explicit policy for every combination of 8 # zones defined in this sample. This is solely for the purpose of 9 # providing more specific messages in the logs. This is not 10 # necessary for correct operation of the firewall , but greatly 11 # assists in diagnosing problems. The policies below are logically 12 # equivalent to: 13 # 14 # loc net ACCEPT 15 # net all DROP info 16 # all all REJECT info 17 # 18 # The Shorewall -perl compiler will generate the individual policies 19 # below from the above general policies if you set 20 # EXPAND_POLICIES=Yes in shorewall.conf. 21 # 22 23 # Policies for traffic originating from the local LAN (loc) 24 # 25 # If you want to force clients to access the Internet via a proxy server 26 # on your firewall , change the loc to net policy to REJECT info. 27 loc net ACCEPT 28 loc $FW REJECT info 29 loc all REJECT info 30 31 # 32 # Policies for traffic originating from the firewall ($FW) 33 # 34 # If you want open access to the Internet from your firewall , change the 35 # $FW to net policy to ACCEPT and remove the info LOG LEVEL. 36 # This may be useful if you run a proxy server on the firewall. 37 $FW net REJECT info 38 $FW loc REJECT info 39 $FW all REJECT info 40 41 # 42 # Policies for traffic originating from the Internet zone (net) 43 # 44 net $FW DROP info 45 net loc DROP info 46 net all DROP info 47 48 # THE FOLLOWING POLICY MUST BE LAST 49 all all REJECT info 50 51 #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE Baris 27: memperbolehkan zona loc untuk mengakses zona net 35 Baris 28: tidak mengizinkan zona loc untuk mengakses zona fw, info berarti akan mengeluarkan informasi penolakan ke standart output. Baris 29: tidak mengizinkan zona loc untuk mengakses semua zona. Baris 37: tidak mengizinkan zona fw untuk mengakses zona net Baris 38: tidak mengizinkan zona fw untuk mengases zona loc Baris 39: tidak mengizinkan zona fw untuk mengakses semua zona. Baris 44: tidak mengizinkan zona net untuk mengakses zona fw Baris 45: tidak mengizinkan zona net untuk mengakses zona loc Baris 46: tidak mengizinkan zona net untuk mengakses semua zona. Baris 49: tidak mengizinkan semua zona untuk mengakses semua zona. baris ini harus berada pada akhir kongurasi. beda REJECT dengan DROP: REJECT memberikan ag reset (RST) pada pro- tokol TCP dan unreachable untuk yang lain. sedangkan DROP mengabaikan request koneksi sama sekali. 6. Kongurasi le /etc/shorewall/rules. File ini medenisikan aturan yang sifatnya khusus. File ini merupakan eksepsi dari semua aturan yang ada di /etc/shorewall/policy. Anda dapat menuliskan semua aturan rewall di le ini. 1 [root@server ~]# vim /etc/shorewall/rules 2 # 3 # Shorewall version 4.0 - Sample Rules File for two -interface configuration. 4 # Copyright (C) 2006 ,2007 by the Shorewall Team 5 # 6 # This library is free software; you can redistribute it and/or 7 # modify it under the terms of the GNU Lesser General Public 8 # License as published by the Free Software Foundation; either 9 # version 2.1 of the License , or (at your option) any later version. 10 # 11 # See the file README.txt for further details. 12 #------------------------------------------------------------------------------ 13 # For information about entries in this file , type "man shorewall -rules" 14 # 15 # The manpage is also online at 16 # http :// shorewall.net/manpages/shorewall -rules.html 17 # 18 ########################################################################################### 19 #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK 20 # PORT PORT(S) DEST LIMIT GROUP 21 # 22 # Accept DNS connections from the firewall to the network 23 # 24 DNS/ACCEPT $FW net 25 # 26 # Accept SSH connections from the local network for administration 27 # 28 SSH/ACCEPT loc $FW 29 # 30 # Allow Ping from the local network 31 # 32 Ping/ACCEPT loc $FW 33 34 # 35 # Reject Ping from the "bad" net zone.. and prevent your log from being flooded .. 36 # 37 38 Ping/REJECT net $FW 39 40 ACCEPT $FW loc icmp 41 ACCEPT $FW net icmp 42 # 43 44 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Baris 24: mengizinkan koneksi DNS dari rewall ke internet. 36 Baris 28: mengizinkan koneksi SSH dari jaringan lokal ke rewall untuk admin- istrasi. Baris 32: mengizinkan ping dari jaringan local ke rewall Baris 38: tidak mengizinkan ping dari internet ke rewall Baris 40: mengizinkan ping dari rewall ke jaringan local. merupakan kebalikan baris 32 Baris 41: mengizinkan ping dari rewall ke internet. kebalikan dari baris 38 Untuk mengizinkan hanya ip 192.186.0.1 saja yang boleh mengakses rewall, ma- ka gantilah baris 28 dengan: 1 SSH/ACCEPT loc :192.168.0.1 $FW Untuk meneruskan request http pada rewall dari internet ke ip lokal 192.168.0.201. tambahkan baris berikut: 1 #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL 2 # PORT PORT(S) DEST 3 DNAT net loc :192.168.0.201 tcp http 7. Kongurasi le /etc/shorewall/masq. le ini berguna untuk mendenisikan translasi asal dan atau tujuan paket. 1 [root@server ~]# vim /etc/shorewall/masq 2 # 3 # Shorewall version 4.0 - Sample Masq file for two -interface configuration. 4 # Copyright (C) 2006 by the Shorewall Team 5 # 6 # This library is free software; you can redistribute it and/or 7 # modify it under the terms of the GNU Lesser General Public 8 # License as published by the Free Software Foundation; either 9 # version 2.1 of the License , or (at your option) any later version. 10 # 11 # See the file README.txt for further details. 12 #------------------------------------------------------------------------------ 13 # For information about entries in this file , type "man shorewall -masq" 14 # 15 # The manpage is also online at 16 # http :// shorewall.net/manpages/shorewall -masq.html 17 # 18 ############################################################################### 19 #INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK 20 eth0 eth1 21 #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE Baris 20: semua paket yang berasal dari jaringan eth1 (192.168.0.0/24) akan diubah seakan-akan berasal dari eth0 (202.111.2.2). 37 Bagian VI Proxy Server Teknik proxy adalah teknik yang standar untuk akses Internet secara bersama-sama oleh be- berapa komputer sekaligus dalam sebuah Local Area Network (LAN) melalui sebuah modem atau sebuah saluran komunikasi. Istilah Proxy sendiri banyak dikenal / digunakan terutama di dunia / kalangan diplomatik. Secara sederhana proxy adalah seseorang / lembaga yang bertindak sebagai perantara atau atas nama dari orang lain / lembaga / negara lain[7]. 18 Keuntungan dan kerugian Proxy server[8] 18.1 keuntungan proxy server Dapat menghemat biaya bandwidth. mempercepat koneksi karena le-le web yang direquest (selanjutnya disebut object) disimpan di dalam cache sehingga tidak perlu keluar menuju internet. Dapat mengatur kecepatan bandwidth untuk subnet yang berbeda-beda (mirip dengan HTB atau zaper). Dapat melakukan pembatasan untuk le-le tertentu. Dapat melakukan pembatasan akses kepada situs-situs tertentu (misalnya situs porno). Dapat melakukan pembatasan download untuk le-le tertentu (misalnya le-le mp3, wav, dsb). Dapat melakukan pembatasan waktu-waktu yang diperbolehkan untuk download. Dapat melakukan pembatasan siapa saja yang boleh mengakses internet dengan meng- gunakan autentikasi. Autentikasi yang biasa digunakan bisa basic, digest, ataupun ntlm. Dapat melakukan pembatasan-pembatasan lainnya. 18.2 kerugian proxy server Pintu keluar menuju gerbang internet hanya lewat proxy, sehingga ketika terjadi over- load, akses internet menjadi lambat User akan melihat le yang kadaluarsa jika cache expire time-nya terlalu lama, se- hingga meskipun di website le tersebut sudah berubah, user masih melihat le yang tersimpan di cache memory Karena koneksi internet harus melalui gerbang proxy terlebih dahulu, maka kecepatan akses bisa jadi lebih lambat daripada kita melakukan koneksi langsung. Dalam hal ini keduanya akan mengakses le internet secara langsung 19 Pengenalan dan Cara Kerja Squid Salah satu proxy server yang banyak digunakan di lingkungan Unix/Linux adalah squid http://www.squid-cache.org/. Tidak semua data bisa di cache oleh Squid, data-data yang bersifat dinamik seperti CGI-BIN tidak di cache oleh Squid, jadi tiap kali ada per- mintaan CGI-BIN, maka Squid akan menghubungi langsung server tujuan. Saat ini protokol yang bisa dilayani oleh Squid adalah HTTP, HTTPS, FTP, Gopher, dan Wais. Squid pertama-tama akan memeriksa request yang datang. Jika squid diset dengan autentikasi tertentu, squid akan memeriksa autentikasi user terlebih dahulu. Autentikasi 38 ini termasuk subnet area, user account, jenis le yang direquest, alamat situs tujuan, dan properti-properti yang telah diset pada le kongurasi squid. Jika lolos dan telah sesuai dengan kongurasi, request tersebut kembali diperiksa apakah objek yang diminta telah berada di cache. Jika sudah ada maka proxy server tidak perlu melanjutkan request ke internet tetapi langsung mereply request dengan objek yang diminta. Jika tidak ada di cache, squid dapat menghubungi siblingnya agar bisa saling tukar cache informasi menggunakan protocol icp. Jika masih tidak ada, squid akan merequest ke parentnya. Parent harus menyediakan informasi yang diminta, entah mengambil dari cachenya atau langsung ke internet. 20 Bagian-bagian squid 20.1 ICP (Internet Cache Protocol) ICP merupakan kependekan dari Internet Cache Protocol, yaitu merupakan protokol yang di- gunakan untuk mengkoordinasikan antara dua web cache atau lebih agar dapat bekerjasama dan berkomunikasi. Tujuan web-cache bekerja sama ini adalah supaya dapat mencari letak yang tepat untuk menerima objek yang direquest. Protokol ini tidak reliable namun memi- liki time out yang sangat pendek sehingga cocok untuk web-cache. Protokol ini tidak cocok untuk delivery UDP adalah protokol yang lebih umum digunakan untuk delivery protocol. Dengan ICP, sistem cache bias mempunyai hirarki. Hirarki dibentuk oleh dua jenis hubungan, yaitu parent dan sibling. Parent: cache server yang wajib mencarikan content yang diminta oleh klien Sibling: cache server yang wajib memberikan content yang diminta jika memang terse- dia. Jika tidak, sibling tidak wajib untuk mencarikannya 20.2 Access Control List Access Control List (ACL) adalah daftar rule yang menyatakan pembagian previleges, un- tuk mencegah orang yang tidak memiliki hak akses menggunakan infrastruktur cache. ACL adalah kongurasi yang paling penting dalam sebuah web-cache. Dalam Squid, ACL digu- nakan untuk mendenisikan rule yang diterapkan dalam web-cache tersebut. Squid mendukung tipe-tipe ACL seperti di bawah ini: Network, subnet, baik tujuan maupun asal Protokol dan port yang dituju, misalnya HTTP, FTP, SNMP, dsb Autentikasi user name Maksimal koneksi untuk setiap IP address Maksimal jumlah IP address yang diperbolehkan untuk user name yang sama Alamat website ,MIME dan header yang direquest yang terangkum dalam regular expression Squid akan memeriksa setiap request yang datang dengan ACL yang ada pada kongurasi dan mencocokannya dengan aturan yang ada. Pencocokan ini bisa berakibat diizinkan atau ditolaknya suatu koneksi dari user, pemberian bandwidth yang sesuai dengan aturan, dan sebagainya. 39 20.3 Autentikasi pada Squid Squid mendukung berberbagai cara autentikasi user mulai dari yang sederhana sampai ke yang kompleks. Beberapa autentikasi yang didukung antara lain: LDAP: Uses the Lightweight Directory Access Protocol NCSA: Uses an NCSA-style username and password le. MSNT: Uses a Windows NT authentication domain. PAM: Uses the Linux Pluggable Authentication Modules scheme. SMB: Uses a SMB server like Windows NT or Samba. 20.4 Httpd Accelerator / Reverse Proxy Server Reverse proxy server adalah proxy server yang terinstall di dalam satu neighbourhood den- gan satu atau lebih webserver. Semua request dari internet yang berasal dari internet yang menuju ke salah satu webserver akan dilayani lewat proxy server, yang bisa jadi request tersebut ke dirinya sendiri atau diteruskan ke webserver seluruhnya atau sebagian saja. Ada beberapa alasan kenapa kita memakai reverse proxy server, diantaranya adalah; Alasan keamanan: Proxy server adalah lapisan keamanan tambahan sebelum masuk lapisan webserver. Enkripsi/SSL accelerator: Ketika website yang aman dibentuk, enkripsi SSL mungkin tidak dikerjakan oleh webserver untuk mengurangi beban kerja webserver, tetapi di- lakukan oleh proxy server yang dilengkapi dengan hardware acceleration untuk SSL. Load distribution: Reverse proxy dapat mendistribusikan beban ke beberapa webserv- er, sehingga masing-masing webserver hanya bekerja di areanya sendiri-sendiri. Caching content yang statis. Reverse proxy dapat meng-cache content-content yangstatis seperti image, sehingga memperingan beban kerja webserver. 20.5 Transparent Caching Ketika kita menggunakan squid untuk melakukan caching dari web trac, browser harus dikongurasi agar menggunakan squid sebagai proxy. Transparent caching adalah metode agar browser tidak perlu dikongurasi menggunakan proxy, namun secara otomatis telah menggunakan proxy. Web trac yang menuju ke port 80 diarahkan menuju ke port yang didengarkan oleh squid, sehingga squid bertindak sebagai layaknya standar web server untuk browser. Keuntungan memakai transparent caching: Kita tidak perlu mengkongurasi browser untuk memakai proxy tertentu karena sudah otomatis. Teknik ini cocok jika pengguna dari suatu subnet sangat awam dan tidak mau melakukan kongurasi terlalu rumit pada browsernya. Pengendalian yang terpusat oleh administrator Kerugian memakai transparent caching: Fungsi autentikasi menjadi tidak berjalan Request untuk HTTPS tidak akan di-cache Tidak kokoh, karena transparent proxy sangat bergantung pada kestabilan jalur network (karena adanya pengalihan request) 40 Ketergantungan terhadap browser tertentu. Proxy server melayani request berdasarkan HTTP header dari browser dan beberapa browser yang kuno tidak menyediakan informasi ini. Jika ada suatu webserver yang tidak mendengarkan di port 80, request jelas tidak akan pernah dilayani. 20.6 Delay Pool Delay Pool adalah suatu cara untuk mengatur kecepatan akses untuk suatu alamat website dari ACL tertentu. Squid tidak hanya mendukung delay pool hanya untuk subnet saja, namun untuk semua ACL yang telah dibahas di atas. Dalam squid, Delay Pool dispesikasi dalam beberapa kongurasi, yaitu: Delay Pool Menspesikasi berapa jumlah pool atau kelompok bandwidth yang akan digunakan dalam squid Delay Class Menspesikasi masing-masing kelompok pool untuk masuk dalam class apa. Dalam squid ada beberapa class yang memiliki fungsi yang berbeda-beda, yaitu class 1 - class 5. Class-class ini dispesikasi berdasarkan IP address dari ACL. Contohs: delay pools 4 # 4 delay pools delay class 1 2 # pool 1 is a class 2 pool delay class 2 3 # pool 2 is a class 3 pool delay class 3 4 # pool 3 is a class 4 pool delay class 4 5 # pool 4 is a class 5 pool Delay Parameter Delay parameter menspesikasi berapa jumlah transfer rate atau lebih sering disebut bandwidth untuk suatu pool. Bandwidth dispesikasi dalam transfer rate rata-rata dan transfer rate maksimum yang dapat dicapai suatu pool. Format Delay parameter tiap class: Class 1: delay parameters pool aggregate Class 2: delay parameters pool aggregate individual Class 3: delay parameters pool aggregate network individual Class 4: delay parameters pool aggregate network individual user Class 5: delay parameters pool tag Delay Access Delay Access adalah parameter untuk memasukkan suatu ACL ke pool tertentu. Di sini juga disebutkan apakah ACL diterima atau ditolak untuk masuk ke pool tersebut. 21 Instalasi dan Kongurasi Untuk instalasi squid tidak berbeda dengan lainnya, cukup dengan apt-get install squid. Di Repository Ubuntu terdapat 2 versi squid yaitu versi 2 dan versi 3. Jika anda ingin meng- gunakan squid versi3 installah dengan menggunakan apt-get install squid3. Kongurasi utama squid berada pada le /etc/squid3/squid.conf. File ini berisi ribuan baris karena selain mengandung syntax kongurasi, le ini sekaligus mengandung manu- al sehingga user lebih mudah mengkongurasi squid. Secara umum format syntax pada /etc/squid3/squid.conf sebagai berikut: 41 1 # TAG: cache_mgr 2 # Email -address of local cache manager who will receive 3 # mail if the cache dies. The default is "webmaster ." 4 # 5 #Default: 6 # cache_mgr webmaster 7 cache_mgr kholis@ee.its.ac.id Baris 1: TAG adalah penanda jenis kongurasi (dalam contoh diatas adalah cache mgr) Baris 2-3: adalah penjelasan dari TAG ini Baris 5-6: adalah contoh kongurasi bawaan squid. Upayakan semua kongurasi tam- bahan kita diletakkan sesusah baris ini. Baris 7: adalah le tambahan user Karena opsi-opsi pada le kongurasi squid sangat banyak, tidak semua kongurasi harus kita lakukan. Dengan beberapa kongurasi dasar sebenarnya kita juga sudah bisa men- jalankan squid. Berikut beberapa kongurasi penting squid: 21.1 auth parm Seperti sudah dijelaskan sebelumnya, squid mendukung berbagai macam autentikasi. Kali ini kita akan mencoba metode autentikasi yang paling sederhana menggunakan NCSA. NC- SA menggunakan le text biasa untuk menyimpan username serta password yang di enkripsi. Buat le tempat kita menyimpan user dan password. misal le /etc/squid3/password user 1 root@air :~# mkdir /etc/squid3/squid.conf Tambahkan user satu-persatu. 1 root@air :~# htpasswd /etc/squid/squid_passwd kholis 2 New password : 3 Re-type new password : 4 Adding password for user kholis Carilah TAG: auth parm di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/password_user 2 auth_param basic children 5 3 auth_param basic realm Squid proxy -caching web server ku... 4 auth_param basic credentialsttl 2 hours 5 auth_param basic casesensitive off 6 acl ncsa_users proxy_auth REQUIRED 7 http_access allow ncsa_users 21.2 http port Port HTTP yang didengarkan oleh Squid. Defaultnya adalah 3128. Biasanya port yang umum untuk sebuah proxy server adalah 8080. Terkadang Squid juga memakai port 80 kalau sedang berfungsi sebagai reverse proxy server. Carilah TAG: http port di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: http_port 2 # Usage: port [options] 3 # hostname:port [options] 4 # 1.2.3.4: port [options] 5 # ... (dipotong) 6 http_port 10.122.1.254:3128 42 21.3 cache peer Sintask dari cache peer ini digunakan untuk berhubungan dengan peer lain, dan peer lain yang dikoneksikan ini tipenya bergantung dari tipe peer yang telah dideklarasikan ini, bisa bertipe sibling maupun bertipe parent,dan port yang digunakan untuk hubungan ICP maupun HTTP juga dideklarasikan disini, sedangkan untuk parameter option disini ada bermacam-macam salah satunya adalah default yang berarti dia adalah satu-satunya par- ent yang harus dihubungi (jika bertipe parent) dan proxy-only yang berarti bahwa object yang didapat dari peer tersebut tidak perlu disimpan dalam hardisk local 4 . Carilah TAG: cache peer di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: cache_peer 2 # To specify other caches in a hierarchy , use the format: 3 # 4 # cache_peer hostname type http -port icp -port [options] 5 # 6 # For example , 7 # 8 # # proxy icp 9 # # hostname type port port options 10 # # -------------------- -------- ----- ----- ----------- 11 # cache_peer parent.foo.net parent 3128 3130 proxy -only default 12 # cache_peer sib1.foo.net sibling 3128 3130 proxy -only 13 # cache_peer sib2.foo.net sibling 3128 3130 proxy -only 14 # 15 cache_peer 202.95.150.10 parent 3128 3130 default 21.4 icp port Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer. Carilah TAG: icp port di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: icp_port 2 # The port number where Squid sends and receives ICP queries to 3 # and from neighbor caches. The standard UDP port for ICP is 3130. 4 # Default is disabled (0). 5 #Default: 6 # icp_port 0 7 # 8 icp_port 3130 21.5 dead peer timeout Masing-masing peer yang telah didenisikan sebelumnya mempunyai waktu timeout sebesar yang ditentukan dalam kongurasi ini, Jika peer tidak menjawab kiriman sinyal ICP dalam batas waktu yang telah ditentukan, peer akan dianggap tidak akan dapat dijangkau, dan cache server tidak akan mengambil object dari server yang bersangkutan dalam interval waktu tertentu. Carilah TAG: dead peer timeout di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 4 http://wiki.i-wirelessinnovation.com/index.php/Konsep Proxy 43 1 # TAG: dead_peer_timeout (seconds) 2 # This controls how long Squid waits to declare a peer cache 3 # as "dead." If there are no ICP replies received in this 4 # amount of time , Squid will declare the peer dead and not 5 # expect to receive any further ICP replies. However , it 6 # continues to send ICP queries , and will mark the peer as 7 # alive upon receipt of the first subsequent ICP reply. 8 # 9 # This timeout also affects when Squid expects to receive ICP 10 # replies from peers. If more than dead_peer seconds have 11 # passed since the last ICP reply was received , Squid will not 12 # expect to receive an ICP reply on the next query. Thus , if 13 # your time between requests is greater than this timeout , you 14 # will see a lot of requests sent DIRECT to origin servers 15 # instead of to your parents. 16 # 17 #Default: 18 dead_peer_timeout 10 seconds 21.6 hierarchy stoplist Sintaks ini digunakan untuk menyatakan apa yang harus tidak diminta dari peer, melainkan harus langsung dari web server origin, jika pola1 dan pola 2 adalah parameter cgi-bin, ?, dan lain-lain maka jika ada request URL yang mengandung karakter tersebut maka akan diambilkan langsung ke server origin. Carilah TAG: hierarchy stoplist di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: hierarchy_stoplist 2 # A list of words which , if found in a URL , cause the object to 3 # be handled directly by this cache. In other words , use this 4 # to not query neighbor caches for certain objects. You may 5 # list this option multiple times. 6 # Note: never_direct overrides this option. 7 #We recommend you to use at least the following line. 8 hierarchy_stoplist cgi -bin ? 21.7 cache mem Sintaks ini akan menentukan batas atas jumlah memori yang digunakan untuk menyimpan antara lain : intransit object yaitu object yang dalam masa transisi antara waktu cache mendownload sampai object disampaikan ke klien, dan hot object, yaitu object yang sering diakses. Carilah TAG: cache mem di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: cache_mem (bytes) 2 # NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS SIZE. 3 # IT ONLY PLACES A LIMIT ON HOW MUCH ADDITIONAL MEMORY SQUID WILL 4 # USE AS A MEMORY CACHE OF OBJECTS. SQUID USES MEMORY FOR OTHER 5 # THINGS AS WELL. SEE THE SQUID FAQ SECTION 8 FOR DETAILS. 6 # ... (dipotong) 7 #Default: 8 cache_mem 8 MB 21.8 cache swap low/high Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh. Ukuran penuh ini yang diset pada cache swap low dan cache swap high. Bila batas swap low telah tercapai maka squid mulai menghapus dan jika batas swap high tercapai maka squid akan semakin sering menghapus. 44 Carilah TAG: cache swap low di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: cache_swap_low (percent , 0-100) 2 # TAG: cache_swap_high (percent , 0-100) 3 # 4 # The low - and high -water marks for cache object replacement. 5 # Replacement begins when the swap (disk) usage is above the 6 # low -water mark and attempts to maintain utilization near the 7 # low -water mark. As swap utilization gets close to high -water 8 # mark object eviction becomes more aggressive. If utilization is 9 # close to the low -water mark less replacement is done each time. 10 # 11 # Defaults are 90% and 95%. If you have a large cache , 5% could be 12 # hundreds of MB. If this is the case you may wish to set these 13 # numbers closer together. 14 # 15 #Default: 16 cache_swap_low 90 17 cache_swap_high 95 21.9 cache dir Sintaks ini akan menjelaskan direktori cache yang dipakai, pertama adalah jenis le sistem- nya, lalu didirektori mana cache tersebut akan disimpan, selanjutnya ukuran cache tersebut dalam MegaBytes lalu jumlah direktori level 1 dan direktori level 2 yang akan digunakan squid untuk menyimpan objectnya. Carilah TAG: cache dir di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: cache_dir 2 # Usage: 3 # 4 # cache_dir Type Directory -Name Fs -specific -data [options] 5 #... (dipotong) 6 #Default: 7 cache_dir ufs /var/spool/squid3 1000 16 256 21.10 access log sintaks ini menjelaskan tempat log squid akan di simpan. Carilah TAG: access log di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: access_log 2 # These files log client request activities. Has a line every HTTP or 3 # ICP request. The format is: 4 # ...( dipotong) 5 access_log /var/log/squid3/access.log squid 21.11 cache mgr adalah alamat email yang harus di hubungi bila squid mengalami gangguan. Carilah TAG: cache mgr di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: cache_mgr 2 # Email -address of local cache manager who will receive 3 # mail if the cache dies. The default is "webmaster ." 4 # 5 #Default: 6 cache_mgr kholis@ee.its.ac.id 45 21.12 acl ACL atau access control list berfungsi untuk membatasi hak akses internet client. Dengan ACL proxy server dapat menentukan mana kata atau URL yang boleh diakses dan yang tidak boleh diakses oleh client. ACL sendiri terdiri dari beberapa tipe antara lain : src - IP Address asal yang digunakan klien dst - IP Address tujuan yang diminta klien myip - IP Address local dimana klien terhubung srcdomain - Nama domain asal klien dstdomain - Nama domain tujuan klien srcdom regex- Pencarian pola secara string dari nama domain asal klien dstdom regex - Pencarian pola secara string dari nama domain tujuan klien time - Waktu dinyatakan dalam hari dan jam proto - Protokol transfer (http, ftp, gopher) method - Metode permintaan http (get, post, connect) Misalnya kita medeniskan lokal adalah jaringan 192.168.0.0 netmask 255.255.255.0 Carilah TAG: acl di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: acl 2 # Defining an Access List 3 # 4 # acl aclname acltype string1 ... 5 # acl aclname acltype "file" ... 6 #Recommended minimum configuration: 7 acl manager proto cache_object 8 acl localhost src 127.0.0.1/32 9 acl to_localhost dst 127.0.0.0/8 10 # tambahanku 11 acl lokal src 192.168.0.0/24 12 acl filebesar url_regex -i \.exe 13 acl filebesar url_regex -i \.mp3 14 acl filebesar url_regex -i \.avi 15 acl filebesar url_regex -i \.mpeg 21.13 http access adalah penentu kebijakan ditolak atau diterima semua aturan pada acl. Carilah TAG: http access di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: http_access 2 # Allowing or Denying access based on defined access lists 3 #...( dipotong) 4 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS 5 http_access allow lokal 6 7 # Example rule allowing access from your local networks. 8 # Adapt localnet in the ACL section to list your (internal) IP networks 9 # from where browsing should be allowed 10 #http_access allow localnet 11 http_access allow localhost 12 13 # And finally deny all other access to this proxy 14 http_access deny all 46 Pada konsep sintaks kongurasi squid adalah bahwa sesuatu yang telah dieksekusi pada baris yang lebih atas maka dia tidak dieksekusi lagi dibaris yang paling bawah, walaupun dalam parameter ACL yang dibawah tersebut dia juga termasuk, untuk lebih jelasnya, ji- ka ada IP Address 192.168.100.0/24 maka IP Address yang berkisar dari 192.168.100.1 192.168.100.254 (ACL localnet) telah diijinkan untuk mengakses http yang ditunjukkan oleh http access allow localnet, dan dibawahnya ada ACL allsrc yang itu adalah men- cakup semua daftar IP Address dan ACL itu tidak diperbolehkan mengakses http, yaitu http access deny allsrc, tapi karena pada ACL localnet dia telah dieksekusi untuk sebagai IP Address yang boleh mengakses, maka walaupun dibaris bwahnya di dieksekusi lagi, itu tidak akan berpengaruh,hal-hal seperti itu digunakan untuk seorang administrator cache server untuk melakukan pengontrolan agar tidak akan terlalu detail melakukan pengaturan jika baris atas dan bawah sama-sama saling mempengaruhi. 21.14 delay pool Kita mendenisikan 2 delay pool untuk menampung bandwidth. Satu pool masuk dalam kategori class 2 untuk mendenisikan aturan overall 256 Kbs dan per-network 64 Kbps. Satu pool lainnya masuk kategori class 3 untuk mendenisikan aturan tambahan jika user mendownload le-le yang didenisikan dalam ACL url regex dengan bandwidth maksimal 2 Kbps. Carilah TAG: delay pool di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: delay_pools 2 # This represents the number of delay pools to be used. For example , 3 # if you have one class 2 delay pool and one class 3 delays pool , you 4 # have a total of 2 delay pools. 5 # 6 #Default: 7 delay_pools 2 21.15 delay class Carilah TAG: delay class di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: delay_class 2 # This defines the class of each delay pool. There must be exactly one 3 # delay_class line for each delay pool. For example , to define two 4 # delay pools , one of class 2 and one of class 3, the settings above 5 # and here would be: 6 # 7 #Example: 8 delay_class 1 2 # pool 1 is a class 2 pool 9 delay_class 2 3 # pool 2 is a class 3 pool 21.16 delay access Carilah TAG: delay access di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 47 1 # TAG: delay_access 2 # This is used to determine which delay pool a request falls into. 3 # 4 # delay_access is sorted per pool and the matching starts with pool 1, 5 # then pool 2, ..., and finally pool N. The first delay pool where the 6 # request is allowed is selected for the request. If it does not allow 7 # the request to any pool then the request is not delayed (default). 8 # 9 # For example , if you want some_big_clients in delay 10 # pool 1 and lotsa_little_clients in delay pool 2: 11 # 12 #Example: 13 delay_access 1 allow lokal 14 delay_access 1 deny all 15 delay_access 2 allow lokal filebesar 16 delay_access 2 deny all 21.17 delay parameter Carilah TAG: delay parameter di /etc/squid3/squid.conf. lalu tambahkan syntax berikut 1 # TAG: delay_parameters 2 # This defines the parameters for a delay pool. Each delay pool has 3 # a number of "buckets" associated with it, as explained in the 4 # description of delay_class. For a class 1 delay pool , the syntax is: 5 delay_parameters 1 32000/32000 8000/8000 6 delay_parameters 2 32000/32000 8000/8000 250/250 48 Bagian VII File Sharing 22 Samba Samba adalah aplikasi linux yang menggunakan SMB protokol (Server Message Block). Banyak system operasi seperti Windows dan OS/2 yang menggunakan SMB protocol untuk mendukung client-server networking. Dengan menggunakan protokol ini, SAMBA memu- ngkinkan server yang berbasis Unix/Linux berkomunikasi dengan system jaringan yang berbasis Windows (Win95, Win 98, Win 2000 atau Win NT). Dengan kata lain, samba memungkinkan sebuah mesin unix menjadi sebuah server bagi client berbasis windows dan menyediakan layanan : Berbagi data/le Berbagi printer baik printer yang terhubung ke server maupun yang terhubung ke client Client dapat melihat isi server yang berbasis unix/linux dengan fasilitas Windows Neigborhood Client dapat login ke system windows maupun unix Menunjang penggunaan WINS name server Samba terdiri dari dua daemon utama yaitu smbd dan nmbd. smbd smbd adalah suatu daemon (proses yang selalu aktif di memory) yang bertanggung jawab untuk mengatur layanan bersama (shared resources) antara samba server dan komputer client. Smbd menyediakan layanan berbagi data dan berbagi printer un- tuk komputer client. Smbd juga bertanggung jawab terhadap proses otentikasi atau pengecekan password bagi user yang menggunakan sistem jaringan nmbd nmbd adalah daemon yang berfungsi sebagai nameserver yang merupakan perpaduan antara WINS dan NetBIOS Dengan menggunakan nmbd ini user dapat menjalankan fasilitas Windows Neighborhood untuk mesin unix Selain itu terdapat beberapa utility samba yang penting, antara lain: smbclient smbclient berguna untuk mengakses share komputer lain dengan interface seperti ftp. smbclient akan memberikan prompt untuk password, dan passwordnya seperti biasa tidak akan ditampilkan. Kalau semuanya beres akan keluar prompt smb:> pada prompt ini anda dapat mengetikkan perintah-perintah yang dipakai di ftp seperti ls, get, put, mget, mput, binary dsb. Kalau sudah selesai ketik saja quit. Syntaxnya adalah 5 smbclient service [options] dimana service mempunyai format //namaKomputer/namaFolderShare options yang sering di pake antara lain: -U namauser = Koneksi dengan nama user lain dari username linux 5 http://pemula.linux.or.id/pengguna/samba-client.html 49 -W workgroup = Koneksi dengan nama workgroup selain yang di setting di /etc/smb.conf -n NetBios Name = Koneksi dengan nama host yang berbeda dengan nama host komputer -I IP address = Koneksi ke host tertentu dengan IP tersebut. Sangat berguna jika samba tidak berhasil me-resolve nama host yang di tuju. contoh: 1 kholis@air :~$ smbclient //gf/fullshare 2 Password: 3 Domain =[GF] OS=[ Windows 5.1] Server =[ Windows 2000 LAN Manager] 4 smb: \> ls 5 . D 0 Mon Jun 30 14:39:56 2008 6 .. D 0 Mon Jun 30 14:39:56 2008 7 Daftar Film.xls A 103424 Mon Jun 30 14:39:36 2008 8 kitty.exe A 300544 Mon Aug 27 08:21:30 2007 9 59992 blocks of size 524288. 37525 blocks available 10 smb: \> get kitty.exe 11 getting file \kitty.exe of size 300544 as kitty.exe (8385.7 kb/s) (average 8385.7 kb/s) 12 smb: \> quit smbmount Cara lain mengakses share adalah me-mount remote share tersebut ke suatu direk- tori dengan menggunakan smbmount. Setelah di mount anda bisa mengakses shsre tersebut seperti anda mengakses direktori biasa. Seperti juga mount, smbmount harus dijalankan oleh root. Syntaxnya adalah sebagai berikut: smbmount service mountpoint [-o options] service dalam format //namaKomputer/namaFolderShare Dimana option yang sering digunakan adalah: username=user : Koneksi dengan nama user lain dari username linux (root) netbiosname=name : Koneksi dengan memakai nama host yang berbeda dengan nama host komputer workgroup=name : Koneksi dengan nama workgroup selain yang di setting di /etc/smb.conf ip=1.2.3.4 : Koneksi ke host tertentu dengan IP tertentu misalnya 1.2.3.4. Sangat berguna jika samba tidak berhasil me-resolve nama host yang di tuju. Contoh: 1 [root@linux :~]# smbmount "//gf/my documents" /mnt/gf 2 Password: smbpassword adalah program untuk menambah user yang berhak mengakses samba. User ini harus merupakan user real di sistem. Selain itu juga berfungsi untuk mengubah password user. smbstatus Program yang memberikan informasi tentang jumlah komputer yang sedang terhubung dengan samba server testparm tool untuk mengecek kebenaran kongurasi smb.conf 50 22.1 Instalasi dan Kongurasi Instalasi samba dapat dilakukan dengan: 1 root@air :~# apt -get install samba samba -common smbfs Kongurasi samba berada pada le /etc/samba/smb.conf. Pada le ini terdapat bagian- bagian kongurasi, secara default terdapat kongurasi global dan printer. berikut adalah contoh kongurasi global 1 [global] 2 workgroup = WORKGROUP 3 server string = %h server (Samba , Ubuntu) 4 dns proxy = no 5 log file = /var/log/samba/log.%m 6 max log size = 1000 7 syslog = 0 8 panic action = /usr/share/samba/panic -action %d 9 security = user 10 username map = /etc/samba/smbusers 11 encrypt passwords = true 12 passdb backend = tdbsam 13 obey pam restrictions = yes 14 invalid users = root 15 unix password sync = yes 16 passwd program = /usr/bin/passwd %u 17 passwd chat = *Enter\snew\s*\ spassword :* %n\n *Retype\snew\s*\ spassword :* %n\n * password\supdated\ssuccessfully* . 18 pam password change = yes 19 map to guest = bad user 20 socket options = TCP_NODELAY 21 usershare allow guests = yes 22 guest account = nobody Baris 2: nama workgroup dalam jaringan Baris 3: nama server yang akan terlihat dalam jaringan Baris 4: mencegah nmbd mencari NetBIOS name ke DNS Baris 9: jenis security, bisa user, share, server, atau domain. Lalu anda dapat menambahkan share direktori dengan format sebagai berikut: 1 [source] 2 comment = kode sumber 3 path = /home/kholis/Source 4 browseable = yes 5 valid users = kholis lukman @admin 6 read only = no 7 force user = kholis 8 create mask = 0777 9 directory mask = 0777 10 hosts allow = 192.168.0.0/24 10.1.1.3 Baris 1: nama direktori share yang tampak dalam jaringan. Baris 2: komentar yang dari direktori di Baris 1 Baris 3: adalah letak dari direktori yang akan di share. Baris 4: browseable = yes akan menyebabkan direktori yang di share akan terlihat, demikian sebaliknya. Baris 5: berarti yang boleh mengakses direktori ini hanya user kholis, user lukman dan user dengan group admin. Baris 6: direktori share dapat ditulisi 51 Baris 7: apabila user lukman membuat le atau direktori baru maka kepemilikannya tetap kholis bukan milik lukman. Baris 8: menunjukkan permission dari le baru yang di perbolehkan. nilai dari create mask akan di and kan dengan permission yang diinginkan. Baris 9: mirip baris 8 tetapi untuk direktori. Baris 10: host atau jaringan yang di perbolehkan mengakses direktori share. sebetulnya masih banyak lagi opsi yang dapat di pake, antara lain: public = yes/no : digunakan untuk sharing yang anonymouse (tanpa login) guest ok = yes/no: mirip opsi public writeable = yes/no: mirip opsi read only write lists = kholis lukman @admin: mirip opsi valid users untuk menjalankan (baris 1), menghentikan (baris 2) dan merestart (baris 3) service dapat dilakukan dengan: 1 root@air :~# /etc/init.d/samba start 2 root@air :~# /etc/init.d/samba stop 3 root@air :~# /etc/init.d/samba restart 22.2 Kongurasi dengan GUI Install plugin nautilus untuk samba. 1 root@air :~# apt -get install nautilus -share Buka nautilus. Klik kanan folder yang ingin di share. pilih Sharing Options, akan keluar tampilan: Gambar 17: Share pada nautilus Centang opsi Share this folder lalu isi share name-nya, pilih opsi lain seperti boleh tidaknya di tulis atau mengizinkan guest untuk mengakses folder share. Klik tombol Modify Share. 52 23 FTP File Transfer Protokol (FTP) adalah suatu aplikasi yang berfungsi untuk tukar-menukar le dalam suatu network yang mensupport TCP/IP protokol. Dua hal penting yang ada dalam FTP adalah FTP server dan FTP Client. FTP server menjalankan software yang digunakan untuk tukar menukar le, yang selalu siap memberian layanan FTP apabila mendapat re- quest dari FTP client. FTP client adalah komputer yang merequest koneksi ke FTP server untuk tujuan tukar menukar le (mengupload atau mendownload le) 6 . FTP menggunakan dua jenis hubungan (connection) untuk mentransfer suatu le, yaitu[2]: Control Connection digunakan pada umumnya hubungan client-server. Server membuka diri secara pasif di sebuah port khusus yaitu port 21. Selanjutnya client secara aktif akan membuka konek- si ke port 21 untuk membangun control connection. koneksi ini akan dipertahankan selama client masih berkomunikasi dengan server. Hubungan ini digunakan oleh client untuk mengirim perintah-perintah, dan server menggunakannya untuk merespon. Data Connection dibangun setiap kali sebuah le ditransfer antara client-server. Untuk dapat terhubung dengan ftp server umumnya user menggunakan autentikasi dengan memasukkan username serta password. Tapi ada juga ftp yang khusus disediakan bagi semua orang tanpa membutuhkan autentikasi, yang dikenal dengan anonymous ftp. 23.1 FTP Server Ada banyak sekali FTP server yang umum dipakai di Unix/Linux, beberapa yang populer antara lain: proftpd - Versatile, virtual-hosting FTP daemon vsftpd - The Very Secure FTP Daemon ftpd - FTP server wu-ftpd - powerful and widely used FTP server wzdftpd - A portable, modular, small and ecient ftp server pure-ftpd - Pure-FTPd FTP server Kali ini kita akan menggunakan vsftpd, cara instalasinya mudah saja: 1 root@air :~# apt -get install vsftpd File kongurasi vsftpd terdapat di /etc/vsftpd.conf. Pada le tersebut juga terdapat sedikit manual dari opsi-opsi yang tersedia sehingga memudahkan pengguna. Berikut ini adalah opsi-opsi yang penting: listen=YES, vsftpd akan dijalankan dalam mode standalone. anonymous enable=YES, mode yang digunakan adalah anonymouse dimana user da- pat login menggunakan user: ftp dan tanpa password. local enable=YES, user local server diijinkan mengakses ftp dan menggunakan home direktorinya masing-masing sebagai default direktori saat login ke ftp server. write enable=YES, mengijinkan user membuat, memodikasi atau mengkopi le dan direktori ke server. 6 http://aminudin.net/?p=60 53 local umask=022, permission default saat pembuatan le oleh user lokal anon upload enable=YES, memperbolehkan anonymous user mengupload le chroot local user=YES, lokal user hanya dibatasi hanya diperbolehkan mengakses home direktorinya sendiri. ftpd banner=String, banner saat login ftp server. vsftpd akan membuat direktori /home/ftp sebagai home direktori saat anonymous ftp digu- nakan. 1 kholis@cygnus :~$ ftp 10.122.1.52 2 Connected to 10.122.1.52. 3 220 (vsFTPd 2.0.6) 4 Name (10.122.1.52: kholis): ftp 5 331 Please specify the password. 6 Password: 7 230 Login successful. 8 Remote system type is UNIX. 9 Using binary mode to transfer files. 10 ftp > pwd 11 257 "/home/ftp" 12 ftp > ls 13 200 PORT command successful. Consider using PASV. 14 150 Here comes the directory listing. 15 -rw-r--r-- 1 0 0 0 Jul 01 02:26 test 16 226 Directory send OK. 17 ftp > ? 18 Commands may be abbreviated. Commands are: 19 20 ! debug mdir qc send 21 $ dir mget sendport site 22 account disconnect mkdir put size 23 append exit mls pwd status 24 ascii form mode quit struct 25 bell get modtime quote system 26 binary glob mput recv sunique 27 bye hash newer reget tenex 28 case help nmap rstatus tick 29 cd idle nlist rhelp trace 30 cdup image ntrans rename type 31 chmod lcd open reset user 32 close ls prompt restart umask 33 cr macdef passive rmdir verbose 34 delete mdelete proxy runique ? 35 ftp > bye 36 221 Goodbye. Baris 4: username yang digunakan Baris 6: masukkkan passwordnya (karena anonymous di kosongkan saja) Baris 17: untuk mengetahui perintah-perintah yang bisa dilakukan ketik ? Sedangkan pada mode non-anonymouse home direktori masing-masing user yang akan di- gunakan. 1 kholis@cygnus :~$ ftp 10.122.1.52 2 Connected to 10.122.1.52. 3 220 Welcome on AIR server. selamat menikmati ... 4 Name (10.122.1.52: kholis): kholis 5 331 Please specify the password. 6 Password: 7 230 Login successful. 8 Remote system type is UNIX. 9 Using binary mode to transfer files. 10 ftp > pwd 11 257 "/home/kholis" FTP sebenarnya cara yang tidak aman untuk mentransfer le karena le tersebut ditrans- fer tanpa melalui enkripsi terlebih dahulu tetapi melalui clear text. Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data yang dikirim terlebih dahulu dienkripsi (dikodekan). 54 23.2 FTP Client adalah program yang digunakan untuk mengakses ftp server. ada banyak program yang bisa digunakan umunya terbagai 2 yaitu mode text dan mode gras. untuk yang mode text dapat dilihat seperti pada kode 23.1. Sedangkan untuk mode gras dapat menggunakan le browser seperti: konqueror, nautilus. web browser seperti: refox, opera maupun FTP Client seperti: Filezilla, gftp, dll. berikut beberapa screenshot: Gambar 18: Firefox sebagai ftp client Gambar 19: Nautilus sebagai ftp client 55 Gambar 20: FileZilla sebagai ftp client 24 NFS Network File System atau sistem berkas jaringan adalah sekumpulan protokol yang di- gunakan untuk mengakses beberapa sistem berkas melalui jaringan. Bisa dikatakan juga bahwa NFS merupakan sebuah implementasi dan spesikasi dari sebuah perangkat lunak untuk mengakses remote le melalui jaringan LAN atau WAN. NFS yang dikembangkan oleh Sun Micro Systems Inc. Tujuan dari NFS adalah untuk memungkinkan terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas tersebut. Hubungan yang terjadi di sini didasarkan pada hubungan client-server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan diatas workstation 7 . NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP dengan port number 2049 untuk komunikasi antara client dan server di dalam jaringan. Client NFS selanjutnya akan mengimpor sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas lokal kepada client. 24.1 NFS Server Instalasi NFS server dapat dilakukan dengan: 1 root@air :~# apt -get install nfs -common nfs -kernel -server portmap File kongurasinya berada di /etc/exports. 1 # /etc/exports: the access control list for filesystems which may be exported 2 # to NFS clients. See exports (5). 3 # 4 # Example for NFSv2 and NFSv3: 5 # /srv/homes hostname1(rw,sync) hostname2(ro ,sync) 6 # 7 # Example for NFSv4: 8 # /srv/nfs4 gss/krb5i(rw,sync ,fsid=0,crossmnt) 9 # /srv/nfs4/homes gss/krb5i(rw ,sync) 10 # 11 /home/kholis/share 192.168.1.0/24(rw,sync ,no_root_squash ,no_subtree_check) 7 http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch18s05.html 56 Baris 11: /home/kholis/share: adalah direktori yang di share 192.168.1.0/24: hanya bisa diakses oleh jaringan 192.168.1.0 netmask 255.255.255.0 rw: bisa ditulisi sync: akan memaksakan agar proses dilakukan secara sinkron. Sync akan men- jaga agar tidak ada korupsi data pada saat server reboot / mati pada saat le write, tentunya dengan sedikit pengorbanan performance di bandingkan jika kita menggunakan mekanisme async. no root squash: root yang pada mesin client akan memiliki tingkatan akses ke le sama dengan root pada server no subtree check: membuat NFS client bisa mengakses direktori-direktori di bawah / di dalam direktori yang dibagi tadi. Jalankan service NFS dengan: 1 root@air :~# /etc/init.d/nfs -kernel -server start 24.2 NFS Client Instalasi NFS client dapat dilakukan dengan: 1 root@air :~# apt -get install nfs -user -server Mount direktori share pada server dengan menambahkan entri berikut di /etc/fstab agar tiap kali booting selalu di mount otomatis. 1 # <file system > <mount point > <type > <options > <dump > <pass > 2 192.168.0.1:/ home/kholis/share /home/lukman/nfs_share nfs defaults 0 0 57 Bagian VIII Print Server 25 CUPS Common Unix Printing System (CUPS) adalah sebuah sistem pencetak komputer yang modular (modularised computer printing system) untuk komputer dengan sistem operasi Unix-like seperti Linux, BSD dan Mac OSX, yang memungkinkan komputer berfungsi se- bagai print servers. Komputer yang menjalankan CUPS adalah host yang dapat menerima tugas cetak dari semua komputer klien, memroses perintah tersebut dan mengirimkannya ke printer yang terkait. CUPS terdiri dari sebuah Unix print spooler dan scheduler, sebuah sistem lter yang menterjemahkan print data ke format yang dapat dimengerti mesin pencetak (printer), ter- masuk sebuah sistem dilatar belakang (backend system) yang mensuplai data tersebut ke mesin pencetak. CUPS memanfaatkan Internet Printing Protocol (IPP) sebagai basis untuk mengelola tugas cetak dan antrean (print jobs and queues). 25.1 Instalasi dan Kongurasi CUPS server Install CUPS dengan perintah berikut: 1 root@air :~# apt -get install cupsys cupsys -driver -gutenprint foomatic -db -gutenprint foomatic -filters fontconfig libtiff4 libfreetype6 File kongurasi terletak di /etc/cups/cupsd.conf. 58 1 # Log general information in error_log - change "info" to "debug" for 2 # Encryption 3 Encryption IfRequested 4 5 # troubleshooting ... 6 LogLevel warning 7 8 # Administrator user group ... 9 SystemGroup lpadmin 10 11 12 # Only listen for connections from the local machine. 13 Listen localhost :631 14 Listen 192.168.1.1 15 Listen /var/run/cups/cups.sock 16 17 # Show shared printers on the local network. 18 Browsing On 19 BrowseOrder allow ,deny 20 BrowseAllow all 21 BrowseAddress @LOCAL 22 23 # Default authentication type , when authentication is required ... 24 DefaultAuthType Basic 25 26 # Restrict access to the server ... 27 <Location /> 28 Order allow ,deny 29 Allow localhost 30 Allow 192.168.1.* 31 Deny all 32 </Location > 33 34 # Restrict access to the admin pages ... 35 <Location /admin > 36 Order allow ,deny 37 Allow localhost 38 Deny all 39 </Location > 40 41 # Restrict access to configuration files ... 42 <Location /admin/conf > 43 AuthType Default 44 Require user @SYSTEM 45 Order allow ,deny 46 Allow localhost 47 </Location > Baris 12-15: digunakan untuk setting ip serta port yang digunakan server. Baris 17-21: Opsi Browsing On agar printer server bisa terlihat dan dibrowse dalam jaringan. Baris 26-32: pengaturan hak izin mengakses server. yang diperbolehkan mengakses hanya localhost dan jaringan 192.168.1.0/24 Baris 34-39: pengaturan hak izin mengakses halaman admin server. hanya localhost yang diperbolehkan Baris 41-47: mirip baris 34-39 tetapi untuk halaman kongurasi. Mengaktifkan Dukungan untuk Driver PCL Windows. Driver PCL mengirimkan data mentah ke server print. Untuk mengaktifkan pencetakan data mentah di CUPS anda perlu mengedit /etc/cups/mime.types dan menghapus tanda komentar pada baris-baris application/octet-stream. Anda juga perlu melakukan hal yang sama pada /etc/cups/mime.convs. 1 root@air :~# vim /etc/cups/mime.types 2 # Hapus tanda komentar dari baris berikut 3 application/octet -stream 4 5 root@air :~# vim /etc/cups/mime.convs 6 # Hapus tanda komentar dari baris berikut 7 application/octet -stream application/vnd.cups -raw 0 - 59 Restart service cups 1 root@air :~# /etc/init.d/cupsys restart Sekarang anda coba dari browser anda dengan mengetik http://localhost:631 . Jika proses instalasi berhasil maka anda tinggal install driver printer melalui menu yang ada. 25.2 Instalasi dan Kongurasi CUPS client Install CUPS client dengan perintah berikut: 1 root@air :~# apt -get install cupsys cupsys -client Setelah itu buatlah le /etc/cups/client.conf dan isi dengan code berikut. 1 # Servername 2 ServerName 192.168.1.1 3 # Encryption 4 Encryption IfRequested Restart service cups 1 root@air :~# /etc/init.d/cupsys restart 60 Bagian IX DHCP Server DHCP (Dynamic Host Conguration Protocol) adalah protokol yang berbasis arsitektur client/server yang dipakai untuk memudahkan pengalokasian alamat IP dalam satu jaringan. Sebuah jaringan lokal yang tidak menggunakan DHCP harus memberikan alamat IP kepada semua komputer secara manual. Jika DHCP dipasang di jaringan lokal, maka semua kom- puter yang tersambung di jaringan akan mendapatkan alamat IP secara otomatis dari serv- er DHCP. Selain alamat IP, banyak parameter jaringan yang dapat diberikan oleh DHCP, seperti default gateway dan DNS server. Karena DHCP merupakan sebuah protokol yang menggunakan arsitektur client/server, maka dalam DHCP terdapat dua pihak yang terlibat, yakni DHCP Server dan DHCP Client. DHCP server merupakan sebuah mesin yang menjalankan layanan yang dapat menye- wakan alamat IP dan informasi TCP/IP lainnya kepada semua klien yang memintanya. DHCP client merupakan mesin klien yang menjalankan perangkat lunak klien DHCP yang memungkinkan mereka untuk dapat berkomunikasi dengan DHCP Server. DHCP server umumnya memiliki sekumpulan alamat yang diizinkan untuk didistribusikan kepada klien, yang disebut sebagai DHCP Pool. Setiap klien kemudian akan menyewa ala- mat IP dari DHCP Pool ini untuk waktu yang ditentukan oleh DHCP, biasanya hingga beberapa hari. Manakala waktu penyewaan alamat IP tersebut habis masanya, klien akan meminta kepada server untuk memberikan alamat IP yang baru atau memperpanjangnya. DHCP Client akan mencoba untuk mendapatkan penyewaan alamat IP dari sebuah DHCP server dalam proses empat langkah berikut: DHCPDISCOVER: DHCP client akan menyebarkan request secara broadcast untuk mencari DHCP Server yang aktif. DHCPOFFER: Setelah DHCP Server mendengar broadcast dari DHCP Client, DHCP server kemudian menawarkan sebuah alamat kepada DHCP client. DHCPREQUEST: Client meminta DCHP server untuk menyewakan alamat IP dari salah satu alamat yang tersedia dalam DHCP Pool pada DHCP Server yang bersangku- tan. DHCPACK: DHCP server akan merespons permintaan dari klien dengan mengirimkan paket acknowledgment. Kemudian, DHCP Server akan menetapkan sebuah alamat (dan kongurasi TCP/IP lainnya) kepada klien, dan memperbarui basis data database miliknya. Klien selanjutnya akan memulai proses binding dengan tumpukan protokol TCP/IP dan karena telah memiliki alamat IP, klien pun dapat memulai komunikasi jaringan. Empat tahap di atas hanya berlaku bagi klien yang belum memiliki alamat. Untuk klien yang sebelumnya pernah meminta alamat kepada DHCP server yang sama, hanya tahap 3 dan tahap 4 yang dilakukan, yakni tahap pembaruan alamat (address renew- al), yang jelas lebih cepat prosesnya. DHCP bersifat stand-alone, sehingga jika dalam sebuah jaringan terdapat beberapa DHCP server, basis data alamat IP dalam sebuah DHCP Server tidak akan direplikasi ke DHCP server lainnya. Hal ini dapat menjadi masalah jika kongurasi antara dua DHCP server tersebut berbenturan, karena protokol IP tidak mengizinkan dua host memiliki alamat yang sama. Selain dapat menyediakan alamat dinamis kepada klien, DHCP Server juga dapat mene- tapkan sebuah alamat statik kepada klien, sehingga alamat klien akan tetap dari waktu ke waktu. 26 DHCP Server Berikut ini adalah instalasi dan kongurasi DHCP Server: 61 Install DHCP Server 1 root@air :~# apt -get install dhcp3 -server dhcp3 -common Tentukan interface yang akan digunakan untuk melayani service DHCP dengan menged- it le /etc/default/dhcp3-server. 1 root@air :~# vim /etc/default/dhcp3 -server 2 # Defaults for dhcp initscript 3 # sourced by /etc/init.d/dhcp 4 # installed at /etc/default/dhcp3 -server by the maintainer scripts 5 6 # 7 # This is a POSIX shell fragment 8 # 9 10 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? 11 # Separate multiple interfaces with spaces , e.g. "eth0 eth1". 12 INTERFACES ="eth0" Baris 12: adalah interface yang digunakan. File Kongurasi utama DHCP berada di /etc/dhcp3/dhcpd.conf. Berikut adalah kon- gurasi sederhana sebagai contoh 1 # A slightly different configuration for an internal subnet. 2 subnet 10.122.1.0 netmask 255.255.255.0 { 3 range 10.122.1.101 10.122.1.150; 4 option domain -name -servers ns.computer.ee.its.ac.id; 5 option domain -name "computer.ee.its.ac.id"; 6 option routers 10.122.1.1; 7 option broadcast -address 10.122.1.255; 8 default -lease -time 600; 9 max -lease -time 7200; 10 } Baris 2: menunjukkan jaringan yang akan ditangani Baris 3: adalah range IP Address yang dialokasikan untuk DHCP Baris 4: adalah DNS Server yang akan diberikan ke client. Baris 5: adalah domain dari client. Baris 6: adalah default gateway yang akan di berikan ke client. Baris 7: adalah alamat broadcast client. Baris 8: lama waktu peminjaman (dalam satuan detik) Baris 9: waktu maksimal peminjaman (detik). Untuk memberikan alamat yang tetap pada client dapat ditambahkan kongurasi berikut: 1 host fantasia { 2 hardware ethernet 08:00:07:26: c0:a5; 3 fixed -address fantasia.fugue.com; 4 } Baris 1: nama host Baris 2: MAC Address ethernet card client Baris 3: FQDN (Full Qualied Domain Name) jika terdapat DNS Server. atau bisa juga diganti denga IP Address bila tidak terdapat DNS Server di jaringan. 62 27 DHCP Client Untuk client cukup menginstall paket dhcp3-client. dan mengubah settingan IP Address pada /etc/network/interface menjadi dhcp. 1 auto lo 2 iface lo inet loopback 3 4 auto eth0 5 iface eth0 inet dhcp 63 Bagian X Network Monitoring 28 SNMP (Simple Network Management Protocol) SNMP adalah protokol yang didesain untuk memberikan kemampuan ke pemakai untuk mengelola jaringan komputernya dari jarak jauh. SNMP menggunakan protokol UDP pada port 161(agent) dan 162(manager)[2]. SNMP terdiri dari tiga elemen yaitu: 1. MIB (Management Information Base) adalah struktur database variabel elemen jaringan yang dikelola. Struktur ini bersifat hirarki dan memiliki aturan sehingga informasi setiap variabel dapat diketahui dan diset dengan mudah. 2. Manager software yang berjalan pada sebuah host di jaringan yang berfungsi mengumpulkan informasi dari agen-agen 3. Agent adalah software yang dijalankan di setiap node jaringan yang akan di monitor. 28.1 Instalasi SNMP Server Instalasi SNMP dapat dilakukan dengan: 1 root@air :~# apt -get install snmp snmpd File utama SNMP berada pada /etc/snmp/snmpd.conf. 64 1 #### 2 # First , map the community name (COMMUNITY) into a security name 3 # (local and mynetwork , depending on where the request is coming 4 # from): 5 6 # sec.name source community 7 com2sec paranoid default b201crew 8 #com2sec readonly default public 9 #com2sec readwrite default private 10 11 #### 12 # Second , map the security names into group names: 13 14 # sec.model sec.name 15 group MyROSystem v1 paranoid 16 group MyROSystem v2c paranoid 17 group MyROSystem usm paranoid 18 group MyROGroup v1 readonly 19 group MyROGroup v2c readonly 20 group MyROGroup usm readonly 21 group MyRWGroup v1 readwrite 22 group MyRWGroup v2c readwrite 23 group MyRWGroup usm readwrite 24 25 #### 26 # Third , create a view for us to let the groups have rights to: 27 28 # incl/excl subtree mask 29 view all included .1 80 30 view system included .iso.org.dod.internet.mgmt.mib -2. system 31 32 #### 33 # Finally , grant the 2 groups access to the 1 view with different 34 # write permissions: 35 36 # context sec.model sec.level match read write notif 37 access MyROSystem "" any noauth exact all none none 38 access MyROGroup "" any noauth exact all none none 39 access MyRWGroup "" any noauth exact all all none 40 41 # ----------------------------------------------------------------------------- Baris 7: adalah deklarasi community name dan security name. jika ingin memonitor seluruh jaringan bisa diganti dengan com2sec localNet 192.168.0.0 /24 public Baris 15-17: adalah memetakan security paranoid ke dalam 3 group tersebut. Kongurasi opsional, menunjukkan orang yang bertanggungjawab terhadap SNMP. 1 ############################################################################### 2 # System contact information 3 # 4 5 # It is also possible to set the sysContact and sysLocation system 6 # variables through the snmpd.conf file. ** PLEASE NOTE** that setting 7 # the value of these objects here makes these objects READ -ONLY 8 # (regardless of any access control settings). Any attempt to set the 9 # value of an object whose value is given here will fail with an error 10 # status of notWritable. 11 12 syslocation Lab B-201 13 syscontact kholis <kholis@ee.its.ac.id> Restart service SNMP 1 root@air :~# /etc/init.d/snmpd restart Untuk melihat hasilnya dapat digunakan perintah berikut, dan akan muncul keluaran seperti berikut. 65 1 root@air :~# snmpwalk localhost -c public -v1 2 SNMPv2 -MIB:: sysDescr .0 = STRING: Linux sritest 2.4.27 -2 -386 #1 Wed Aug 17 09:33:35 UTC 2005 i686 3 SNMPv2 -MIB:: sysObjectID .0 = OID: NET -SNMP -MIB:: netSnmpAgentOIDs .10 4 SNMPv2 -MIB:: sysUpTime .0 = Timeticks: (656698) 1:49:26.98 5 SNMPv2 -MIB:: sysContact .0 = STRING: kholis@kholisee.its.ac.id 6 SNMPv2 -MIB:: sysName .0 = STRING: debiantest 7 SNMPv2 -MIB:: sysLocation .0 = STRING: Maindatacenter 8 SNMPv2 -MIB:: sysORLastChange .0 = Timeticks: (0) 0:00:00.00 9 SNMPv2 -MIB:: sysORID .1 = OID: IF-MIB::ifMIB 10 SNMPv2 -MIB:: sysORID .2 = OID: SNMPv2 -MIB:: snmpMIB 11 SNMPv2 -MIB:: sysORID .3 = OID: TCP -MIB:: tcpMIB 12 SNMPv2 -MIB:: sysORID .4 = OID: IP-MIB::ip 13 SNMPv2 -MIB:: sysORID .5 = OID: UDP -MIB:: udpMIB 14 SNMPv2 -MIB:: sysORID .6 = OID: SNMP -VIEW -BASED -ACM -MIB:: vacmBasicGroup 15 SNMPv2 -MIB:: sysORID .7 = OID: SNMP -FRAMEWORK -MIB:: snmpFrameworkMIBCompliance 16 SNMPv2 -MIB:: sysORID .8 = OID: SNMP -MPD -MIB:: snmpMPDCompliance 17 SNMPv2 -MIB:: sysORID .9 = OID: SNMP -USER -BASED -SM -MIB:: usmMIBCompliance 28.2 Instalasi SNMP Client Instalasi SNMP Client dapat dilakukan dengan 8 : 1 root@air :~# apt -get install snmp scli tkmib Fille kongurasinya terdapat pada /etc/snmp/snmp.conf . Editlah le tersebut pada bagian com2sec menjadi seperti berikut 1 #com2sec paranoid default public 2 com2sec readonly 127.0.0.1 public 3 #com2sec readwrite default private Restart dan test kongurasi 1 root@air :~# /etc/init.d/snmp restart 2 root@air :~# snmpwalk -v 2c -c public remotemachineipaddress system 3 SNMPv2 -MIB:: sysDescr .0 = STRING: Linux sritest 2.4.27 -2 -386 #1 Wed Aug 17 09:33:35 UTC 2005 i686 4 SNMPv2 -MIB:: sysObjectID .0 = OID: NET -SNMP -MIB:: netSnmpAgentOIDs .10 5 SNMPv2 -MIB:: sysUpTime .0 = Timeticks: (168871) 0:28:08.71 6 SNMPv2 -MIB:: sysContact .0 = STRING: webmaster@debianhelp.co.uk 7 SNMPv2 -MIB:: sysName .0 = STRING: debiantest 8 SNMPv2 -MIB:: sysLocation .0 = STRING: maindatacenter 9 SNMPv2 -MIB:: sysORLastChange .0 = Timeticks: (0) 0:00:00.00 10 SNMPv2 -MIB:: sysORID .1 = OID: IF-MIB::ifMIB 11 SNMPv2 -MIB:: sysORID .2 = OID: SNMPv2 -MIB:: snmpMIB 12 SNMPv2 -MIB:: sysORID .3 = OID: TCP -MIB:: tcpMIB 13 SNMPv2 -MIB:: sysORID .4 = OID: IP-MIB::ip 14 SNMPv2 -MIB:: sysORID .5 = OID: UDP -MIB:: udpMIB 15 SNMPv2 -MIB:: sysORID .6 = OID: SNMP -VIEW -BASED -ACM -MIB:: vacmBasicGroup 16 SNMPv2 -MIB:: sysORID .7 = OID: SNMP -FRAMEWORK -MIB:: snmpFrameworkMIBCompliance 17 SNMPv2 -MIB:: sysORID .8 = OID: SNMP -MPD -MIB:: snmpMPDCompliance 18 SNMPv2 -MIB:: sysORID .9 = OID: SNMP -USER -BASED -SM -MIB:: usmMIBCompliance 19 SNMPv2 -MIB:: sysORDescr .1 = STRING: The MIB module to describe generic objects for network interface sub -layers 20 SNMPv2 -MIB:: sysORDescr .2 = STRING: The MIB module for SNMPv2 entities 21 SNMPv2 -MIB:: sysORDescr .3 = STRING: The MIB module for managing TCP implementations 22 SNMPv2 -MIB:: sysORDescr .4 = STRING: The MIB module for managing IP and ICMP implementations 23 SNMPv2 -MIB:: sysORDescr .5 = STRING: The MIB module for managing UDP implementations 24 SNMPv2 -MIB:: sysORDescr .6 = STRING: View -based Access Control Model for SNMP. 29 MRTG (Multi Router Trac Grapher) adalah salah satu tool yang digunakan untuk mengetahui statistic jaringan maupun re- source/hardware anda. MRTG hanya menampilkan saja, dia mengambil data dari tool lain seperti SNMP atau iptables dll. 8 http://www.debianhelp.co.uk/snmp.htm 66 1 root@air :~# apt -get install mrtg akan membuat suatu le mrtg.cfg di /etc. agar lebih teratur kita pindah saja ke /etc/m- rtg/mrtg.cfg. le ini (mrtg.cfg) yang nantinya akan dicompile oleh /usr/bin/mrtg menja- di halaman html, gambar png dan le log yang nantinya akan ditampilkan. le mrtg.cfg ini didapatkan dari snmpd yang sudah kita jalankan dg cara men-generate menggunakan cfgmaker: 1 root@air :~# cfgmaker b201@localhost > /etc/mrtg/mrtg.cfg untuk mengubahnya menjadi halaman html serta gambar png, kita gunakan: 1 root@air :~# mrtg /etc/mrtg/mrtg.cfg untuk mendapatkan informasi yang selalu update, maka kita harus mengeksekusi syntax tersebut tiap range waktu (misal tiap 5 menit sekali). untuk itu kita letakkan di cron. buatlah le /etc/cron.d/mrtg yang berisi: 1 */5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi selanjutnya kita buat index.html dr halaman2 html tadi dengan cara: 1 root@air :~# indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html seharusnya anda bisa melihatnya di http://ipaddress/mrtg. yaitu aktitas dari masing2 network interface yang ada. selanjutnya anda juga bisa menampilkan statistic hardware seperti cpu usage, memory usage, disk usage dll. buatlah le /etc/mrtg/cpu.cfg yang berisi 1 WorkDir: /var/www/mrtg 2 LoadMIBs: /usr/share/snmp/mibs/UCD -SNMP -MIB.txt 3 Target[localhost.cpu]: ssCpuRawUser .0& ssCpuRawUser .0: public@127 .0.0.1+ ssCpuRawSystem .0& ssCpuRawSystem .0: public@127 .0.0.1+ ssCpuRawNice .0& ssCpuRawNice .0: public@127 .0.0.1 4 RouterUptime[localhost.cpu]: public@127 .0.0.1 5 MaxBytes[localhost.cpu]: 100 6 Title[localhost.cpu]: CPU Load 7 PageTop[localhost.cpu]: Active CPU Load % 8 Unscaled[localhost.cpu]: ymwd 9 ShortLegend[localhost.cpu]: % 10 YLegend[localhost.cpu]: CPU Utilization 11 Legend1[localhost.cpu]: Active CPU in % (Load) 12 Legend2[localhost.cpu]: 13 Legend3[localhost.cpu]: 14 Legend4[localhost.cpu]: 15 LegendI[localhost.cpu]: Active 16 LegendO[localhost.cpu]: 17 Options[localhost.cpu]: growright ,nopercent buat juga le /etc/mrtg/mem.cfg yang berisi 1 LoadMIBs: /usr/share/snmp/mibs/HOST -RESOURCES -MIB.txt 2 Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0: public@localhost PageTop[localhost.mem]:Free Memory 3 WorkDir: /var/www/mrtg 4 Options[localhost.mem]: nopercent ,growright ,gauge ,noinfo 5 Title[localhost.mem]: Free Memory 6 MaxBytes[localhost.mem]: 1000000 7 kMG[localhost.mem]: k,M,G,T,P,X 8 YLegend[localhost.mem]: bytes 9 ShortLegend[localhost.mem]: bytes 10 LegendI[localhost.mem]: Free Memory: 11 LegendO[localhost.mem]: 12 Legend1[localhost.mem]: Free memory , not including swap , in bytes 67 buatlah script untuk masing-masing *.cfg tadi agar di compile/di ubah menjadi le html, gambar png, dan log di /var/www/mrtg (atau di directory lain sesuai yang ada di le). buatlah di sembarang directory misalnya di /etc/cron.mrtg. le tersebut adalah: /etc/cron.mrtg/cpu yang berisi 1 #!/ bin/sh 2 env LANG=C /usr/bin/mrtg /etc/mrtg/cpu.cfg /etc/cron.mrtg/mem yang berisi 1 #!/ bin/sh 2 env LANG=C /usr/bin/mrtg /etc/mrtg/mem.cfg ubahlah menjadi executable: 1 root@air :~# chmod ugo+x -R /etc/cron.mrtg agar selalu update maka harus di cron juga seperti diatas. tambahkan saja di /etc/cron.d/mrtg menjadi: 1 */5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi 2 */5 * * * * root /bin/run -parts /etc/cron.mrtg 1> /dev/null 68 Bagian XI Network Time Protocol (NTP) Network Time Protocol (NTP) adalah protokol TCP/IP untuk sinkronisasi waktu antar- komputer di seluruh dunia. NTP menggunakan protokol UDP dengan port 123 sebagai layer transport nya. NTP menggunakan sistem packet-switched dan didesain untuk tahan terhadap latency jaringan. NTP merupakan salah satu protokol internet tertua (sejak tahun 1985 ) dan masih digunakan sampai sekarang. NTP diciptakan oleh Dave Mills dari Uni- versity of Delaware 9 . 30 NTP Server 1. Install paket berikut 1 root@air :~# apt -get install ntp ntpdate ntp -server 2. File kongurasi NTP berada di /etc/ntp.conf. Buka dan Editlah seperti berikut: 1 # /etc/ntp.conf , configuration for ntpd 2 3 driftfile /var/lib/ntp/ntp.drift 4 5 # Enable this if you want statistics to be logged. 6 statsdir /var/log/ntpstats/ 7 8 statistics loopstats peerstats clockstats 9 filegen loopstats file loopstats type day enable 10 filegen peerstats file peerstats type day enable 11 filegen clockstats file clockstats type day enable 12 13 # You do need to talk to an NTP server or two (or three). 14 #server ntp.your -provider.example 15 16 # pool.ntp.org maps to about 1000 low -stratum NTP servers. 17 # Your server will pick a different set every time it starts up. 18 # *** Please consider joining the pool! *** 19 # *** <http :// www.pool.ntp.org/join.html > *** 20 21 server 0.sg.pool.ntp.org 22 server 1.sg.pool.ntp.org 23 server 2.sg.pool.ntp.org 24 server 3.sg.pool.ntp.org 25 26 # By default , exchange time with everybody , but don t allow configuration. 27 # See /usr/share/doc/ntp -doc/html/accopt.html for details. 28 restrict -4 default kod notrap nomodify nopeer noquery 29 restrict -6 default kod notrap nomodify nopeer noquery 30 31 # Local users may interrogate the ntp server more closely. 32 restrict 127.0.0.1 33 restrict ::1 34 35 # Clients from this (example !) subnet have unlimited access , 36 # but only if cryptographically authenticated 37 restrict 10.122.1.0 mask 255.255.255.0 nomodify 38 39 # If you want to provide time to your local subnet , change the next line. 40 # (Again , the address is an example only.) 41 broadcast 10.122.1.255 42 43 # If you want to listen to time broadcasts on your local subnet , 44 # de-comment the next lines. Please do this only if you trust everybody 45 # on the network! 46 #disable auth 47 #broadcastclient 9 http://en.wikipedia.org/wiki/Network Time Protocol 69 Baris 21-24: adalah NTP Server yang akan anda hubungi. Carilah yang terdekat dekan wilayah anda. Baris 37: adalah network yang akan ditangani Baris 41: Broadcast network yang ditangani 3. Edit pula le /etc/default/ntpdate 1 # The settings in this file are used by the program ntpdate -debian , but not 2 # by the upstream program ntpdate. 3 4 # Set to "yes" to take the server list from /etc/ntp.conf , from package ntp , 5 # so you only have to keep it in one place. 6 NTPDATE_USE_NTP_CONF=yes 7 8 # List of NTP servers to use (Separate multiple servers with spaces .) 9 # Not used if NTPDATE_USE_NTP_CONF is yes. 10 11 NTPSERVERS ="0.sg.pool.ntp.org 1.sg.pool.ntp.org 2.sg.pool.ntp.org 3.sg.pool.ntp.org" 12 # Additional options to pass to ntpdate 13 NTPOPTIONS ="" Baris 11: isilah sesuai dengan server NTP pada /etc/ntp.conf 4. Jalankan ntpdate untuk mengupdate waktu lokal agar sesuai dengan waktu server 1 root@air :~# ntpdate 0.sg.pool.ntp.org 5. Test kecocokan waktu dengan 1 root@air :~# ntpq -c lpee 2 remote refid st t when poll reach delay offset jitter 3 ============================================================================== 4 *starlite.ispwor 128.250.36.2 2 u 57 64 377 371.361 -32.693 105.088 5 10.122.1.255 .BCST. 16 u - 64 0 0.000 0.000 0.002 Baris 4: tanda * menandakan waktu telah sinkron dengan server. 6. Jalankan daemon ntp untuk melayani client. 1 root@air :~# /etc/init.d/ntp start 31 NTP Client Pada NTP Client tidak banyak perbedaan dengan NTP Server karena pada dasarnya NTP Server adalah NTP Client dari server yang dihubunginya. Installah paket berikut pada NTP Client: 1 root@air :~# apt -get install ntp ntpdate Pada le /etc/ntp.conf. Ubahlah string pada server sesuai dengan IP Address dari NTP Server yang telah anda setting sebelumnya.misalkan NTP Server mempunyai IP Address 192.168.1.254. 70 1 # /etc/ntp.conf , configuration for ntpd 2 3 driftfile /var/lib/ntp/ntp.drift 4 5 # Enable this if you want statistics to be logged. 6 statsdir /var/log/ntpstats/ 7 8 statistics loopstats peerstats clockstats 9 filegen loopstats file loopstats type day enable 10 filegen peerstats file peerstats type day enable 11 filegen clockstats file clockstats type day enable 12 13 # You do need to talk to an NTP server or two (or three). 14 #server ntp.your -provider.example 15 16 # pool.ntp.org maps to about 1000 low -stratum NTP servers. 17 # Your server will pick a different set every time it starts up. 18 # *** Please consider joining the pool! *** 19 # *** <http :// www.pool.ntp.org/join.html > *** 20 21 server 192.168.1.254 22 23 # By default , exchange time with everybody , but don t allow configuration. 24 # See /usr/share/doc/ntp -doc/html/accopt.html for details. 25 restrict -4 default kod notrap nomodify nopeer noquery 26 restrict -6 default kod notrap nomodify nopeer noquery 27 28 # Local users may interrogate the ntp server more closely. 29 restrict 127.0.0.1 30 restrict ::1 Edit le /etc/default/ntpdate. 1 # The settings in this file are used by the program ntpdate -debian , but not 2 # by the upstream program ntpdate. 3 4 # Set to "yes" to take the server list from /etc/ntp.conf , from package ntp , 5 # so you only have to keep it in one place. 6 NTPDATE_USE_NTP_CONF=yes 7 8 # List of NTP servers to use (Separate multiple servers with spaces .) 9 # Not used if NTPDATE_USE_NTP_CONF is yes. 10 11 NTPSERVERS ="192.168.1.254" 12 # Additional options to pass to ntpdate 13 NTPOPTIONS ="" Sinkronkan dengan server. lalu jalankan daemon. 1 root@air :~# ntpdate 192.168.1.254 2 root@air :~# /etc/init.d/ntp start Pustaka [1] Modul Praktikum Jaringan Komputer Politeknik Elektronika ITS Surabaya (EEPIS). [2] Onno W. Purbo, dkk, Buku Pintar Internet TCP/IP, Elek Media Komputindo, 2001 [3] Rachmat Raudin, IP Routing dan Firewall dalam Linux, Penerbit Andi Yogyakarta, 2006 [4] Galih Satriaji, Sekilas Domain Name Server dan Iptables, Teknik Informatika ITS, 2005 [5] azi@arc.itb.ac.id, Training Domain Name Server dengan BIND [6] Fajar Priyanto, PANDUAN PRAKTIS FIREWALL DENGAN IPTABLES, http://linux2.arinet.org, 25 April 2008. [7] Onno W. Purbo. Proxy - untuk sharing internet. http://onno.vlsm.org 71 [8] Galih Satriaji, Sekilas Proxy Server dan Webserver Dengan Squid dan Apache, Teknik Informatika ITS, 2005 [1] Sritrusta Sukaridhoto, Buku Jaringan Komputer, EEPIS-ITS 72