Mengenal Firewall Pada Linux Firewall dalam Bahasa Indonesia di artikan tembok api. Sesuai dengan namanya firewall ditujukan untuk melindungi apapun yang berada di balik tembok. Sama halnya dengan sebuah rumah yang diberi tembok atau pagar agar tidak dapat binatang atau orang dapat masuk dengan seenaknya. Sama hal nya dengan komputer, apalagi berada di sebuah jaringan yang besar. Maka hak akses perlu di atur. Pengaturan ini harus di dasarkan pada service yang kita jalankan. Misalnya kita menjalankan ssh maka harus di atur IP address mana saja. Tapi anda harus benar-benar mencatat hostname atau IP address mana saja yang diperbolehkan mengakses setiap service. Ada banyak cara untuk mengatur dari mana saja service kita atur. Sebut saja langkah berikut ini sebagai pengaturan firewall. 1. TCP_WRAPPERS Sewaktu pertama kali menginstall linux, konfigurasi dari linux yang telah diinstall ialah memungkinkan
untuk komputer lain dapat mengakses service yang telah distart pada sistem linux kita. Tapi dengan alasan keamanan yang tentunya memberikan batasan-batasan hak akses dimana tidak semua service dapat di gunakan oleh orang lain dengan bebas. Harus di atur privilege tertentu mengenai pengaksesan service yang ada. Pengaturan ini meliputi 2 (dua) hal yang penting yaitu pemberian ijin akses (allow) dan larangan ijin menggunakan service (deny). Allow berarti diperbolehkannya koneksi ke service tertentu. Sedangkan deny ialah melarang service tertentu untuk di akses. Untuk mengkonfigurasi 2 hal tersebut terdapat 2 file yang di konfigurasi yaitu: 1. /etc/hosts.deny File tersebut berisikan konfigurasi larangan terhadap service. 2. /etc/hosts.allow Kedua file tersebut diatas berisikan konfigurasi
perijinan akses terhadap service. Untuk memberikan konfigurasi ada baiknya perhatikan contoh berikut: Langkah 1: a. buka file /etc/hosts.deny b. kemudian tambahkan script berikut: ALL:ALL Maksud script diatas ialah menambahkan default dari setiap koneksi . Konfigurasi default ini ialah berarti bahwa semua akses ke dalam sistem akan di tolak. Nah untuk memberikan perijinan akses terhadap sistem ikuti langkah berikut: c. buka file /etc/hosts.allow Misalkan komputer kita menyalakan layanan sshd dan hanya diperbolehkan melakukan remote login dari IP Adreess 192.168.0.1 maka tambahkan baris perintah berikut: sshd : 192.168.0.1
Untuk memperjelas penggunaan hosts.allow dan hosts.deny perhatikan contoh berikut: Pada konfigurasi file hosts.allow, telah di setting bahwa yang dapat melakukan atau menggunakan service ssh ialah ip address 192.168.0.1. kali ini dari IP Address bukan 192.168.0.1 akan melakukan ssh. [safii@sinchan safii]$ ssh
[email protected] ssh_exchange_identification: Connection closed by remote host Tampak diatas bahwa percobaan ssh diatas di tolak dikarenakan yang dapat melakukan ssh ialah komputer dengan IP address 192.168.0.1. Selain service ssh juga dapat di tambahkan serviceservice yang lain. 2. xinetd xinetd atau juga disebut super server, ialah aplikasi yang digunakan untuk menghandle setiap koneksi yang masuk pada masing-masing port. Seperti yang diketahui bahwa service-service yang ada di linux berjalan berdasarkan port masing-masing. Misalnya
smtp bekerja pada port 25, pop3 pada port 110 dll. Nah untuk menangani setiap akses terhadap port maka xinetd-lah yang dibutuhkan. Di dalam xinetd terdapat konfigurasi daemondaemon service. Daemon tersebut selayaknya jika tidak di butuhkan maka harus di matikan. Berikut ini konfigurasi xinetd. 1. Rubah file permission /etc/xinetd/conf menjadi 600 [root@sinchan etc]# chmod 600 xinetd.conf [root@ sinchan etc]# stat /etc/xinetd.conf File: `/etc/xinetd.conf' Size: 289 Blocks: 8 IO Block: 4096 Regular File Device: 308h/776d Inode: 257243 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2004-03-09 06:47:51.000000000 +0700 Modify: 2003-02-25 07:10:42.000000000 +0700 Change: 2004-03-09 06:54:43.000000000 +0700 2. File konfigurasi xinetd terletak di xinetd.conf
sedangkan konfigurasi masing-masing service terletak di /etc/xinetd.d/* Berikut ini contoh konrugurasi untuk telnet yang terletak pada /etc/xinetd.d/ # default: on # description: The telnet server serves telnet # sessions; it uses \ # unencrypted username/password pairs for authentication. service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure = USERID disable = yes } Pada baris terakhir disable bernilai yes, ini artinya
bahwa telnet defaultnya service tersebut di matikan. Untuk menyalakan service terdapat dua langkah yaitu: a. mengubah manual disable = yes menjadi disable=no b. ketik: [root@ sinchan safii]# /sbin/chkconfig telnet on Setelah semua perubahan jangan lupa untuk merestart xinetd.conf [root@sinchan safii]# /etc/rc.d/init.d/xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] Perlu diperhatikan bahwa jika terdapat serviceservice yang tidak dibutuhkan maka rubahlah status disable menjadi disable=yes. Nyalakan service yang dibutuhkan saja. Untuk membatasi hanya user tertentu yang dapat
mengakses service dari xinetd maka tambahkan: [root@sinchan xinetd.d]# cat telnet # default: on # description: The telnet server serves telnet # sessions; it uses \ # unencrypted username/password pairs for authentication. service telnet { flags = REUSE log_on_failure += USERID disable = yes socket_type = stream user = root server = /usr/sbin/in.telnetd wait = no only_from = 192.168.0.5 //ini script yang perlu di tambahkan } Dari contoh di atas, daemon telnet hanya dapat di
akses dari IP address 192.168.0.5 3. IP Tables Cara yang terakhir ini yang umum di lakukan, firewall identik dengan block paket dan penggunaan iptables dan ipchain. Untuk dapat memahami bagaimana secara detail apa itu iptables penulis hanya dapat memberikan link-link tutorial khusus dan lengkap tentang iptables: - http://netfilter.samba.org http://www.linuxnewbie.org/nhf/Security/IPtables_Ba sics.html http://www.redhat.com/support/resources/networkin g/firewall.html Berikut ini contoh block service dengan iptables >> Menutup service dari luar #/sbin/iptables -A INPUT -p tcp --sport 22 -j REJECT
Perintah di atas akan menutup port 22 (ssh) sehingga dari luar tidak dapat mengakses telnet. Jika baris perintah ini diterapkan pada server, maka seluruh LAN tidak akan bisa menggunakan fasilitas telnet. Anda dapat merubah nomor port seperti yang tercantum di dalam /etc/services. >> Menutup service yang masuk ke komputer #/sbin/iptables -A INPUT -p tcp --dport 22 -j REJECT Menutup port 22 yang masuk ke suatu komputer . Jika diterapkan pada server maka client tidak dapat mengakses port 22 komputer server. Berikut ini penulis sertakan contoh konfigurasi firewall. Silakan download di iptables.zip.