Halaman

Kamis, 09 Juni 2011

Network Access Control

Linux dapat memilih komputer mana saja yang dapat mengaksesnya. Pembatasan antar jaringan ini dinamakan Network Access Control. Alat pengontrolan akses jaringan ini dinamakan firewall.

Tentang Firewall

Secara umum, firewall biasanya menjalankan fungsi:

  • Analisa dan filter paket Data yang dikomunikasikan lewat protokol di internet, dibagi atas paket-paket. Firewall dapat menganalisa paket ini, kemudian memperlakukannya sesuai kondisi tertentu. Misal, jika ada paket a maka akan dilakukan b. Untuk filter paket, dapat dilakukan di Linux tanpa program tambahan.
  • Bloking isi dan protokol Firewall dapat melakukan bloking terhadap isi paket, misalnya berisi applet Jave, ActiveX, VBScript, Cookie.
  • Autentikasi koneksi dan enkripsi Firewall umumnya memiliki kemampuan untuk  menjalankan enkripsi dalam autentikasi identitas user, integritas dari satu session, dan melapisi transfer data dari intipan pihak lain. Enkripsi yang dimaksud termasuk DES, Triple DES, SSL, IPSEC, SHA, MD5, BlowFish, IDEA dan sebagainya.
Catatan:

Untuk mempelajari firewall, minimal Anda harus mengetahui bagaimana TCP/IP bekerja. Sebagai literatur, Anda dapat membaca Buku TCP/IP karangan ONNO W. PURBO. Dokumen online berbahasa Indonesia tentang pengenalan TCP/IP juga tersedia di http://www.k-elektronik.org.

Tipe firewall :


  1. Network-Level Firewall Filter paket dilakukan biasanya dijalankan di router. Filter ini dapat dijalankan dengan memberlakukan rule set tertentu. Contoh tipikal dari Network-Lever Firewall adalah TCP Wrappers. Filter paket di Linux akan dibahas pada bagian selanjutnya.
  2. Application-Proxy Firewall/Application Gateways Berbeda dengan firewall sebelumnya yang memfilter dan bloking paket, Application-Proxy firewall meneruskan paket yang ada ke host internal yang dituju. Firewall ini bisa dikatakan sebagai jembatan. Application-Proxy Firewall biasanya berupa program khusus. Lebih jauh tentang Application Gateways dapat Anda baca artikel karangan JOHN WACK di
    http://www.telstra.com.au/pub/docs/security/800-10/node52.html.
Catatan :

Contoh tipikal dari Application-Proxy Firewall adalah TIS FWTK (Trusted Information System Firewall Toolkit), beberapa sumbernya :

http://www.micrognosis.com/nreadwin/fwtk/history.txt ; tentang sejarah TIS FWTK. http://www.ssc.com/lj/issue25/1024.html ; dokumen "Creating Firewall using the TIS Toolkit" karangan BENJAMIN EWY.

ftp://ftp.tis.com/pub/firewalls/toolkit/dist ; Program TIS FWTK. Untuk menginstallnya di Linux, Anda harus mendownload patchnya di 
ftp://ftp.tisl.ukans.edu/pub/security/firewalls/fwtkpatches.tgz.

Filter Paket di Linux

Program paling populer untuk filter paket (dan dimasukkan hampir kesemua distribusi Linux) adalah TCP Wrappers, dibuat oleh WIETSE VENEMA. Aplikasinya berada di
/usr/sbin/tcpd

Catatan :

Dokumentasi yang dilampirkan pada saat TCP Wrappers ini dipublikasikan dapat Anda baca di http://www.raptor.com/lib/tcp_wrapper.ps.
Untuk melihat bagaimana TCP Wrappers ini bekerja, lihat sampel /etc/inetd.conf secara umum : ftp     stream  tcp     nowait  root    /usr/sbin/ftpd

telnet  stream  tcp     nowait  root    /usr/sbin/telnetd

shell   stream  tcp     nowait  root    /usr/sbin/rshd

login   stream  tcp     nowait  root    /usr/sbin/rlogind

pop3    stream  tcp     nowait  root    /usr/sbin/pop3d

 
Ambil contoh salah satu, yakni telnetd :
telnet  stream  tcp     nowait  root    /usr/sbin/telnetd

Penjelasan dari entri telnet tersebut adalah :

  • Service yang dijalankan adalah telnet
  • Tipe soket STREAM
  • Protokol yang digunakan TCP
  • Nowait berarti bahwa inetd harus memanggil program telnetd pada saat dibutuhkan.
  • Root berarti bahwa telnetd harus dijalankan dengan user root
  • /usr/sbin/telnetd menunjukkan letak program telnetd.
Jika ada permintaan telnet dari klien, maka inetd akan memanggil program telnetd untuk melayaninya. Dengan demikian, server akan dijalankan oleh satu buah daemon, yakni inetd, jika ada permintaan. Masalahnya adalah, program daemon tidak bisa menyeleksi tiap koneksi yang masuk. Untuk itu dijalankan TCP Wrappers.
Catatan :

Binary Slackware, SuSE dan RedHat secara otomatis sudah menjalankan TCP Wrapper begitu selesai instalasi.
Dengan TCP Wrapper, tcpd akan memotong permintaan inetd kepada semua service. Dalam contoh di atas, saat ada user menjalankan telnet di port 25, inetd akan memanggil telnetd. Tapi sebelum ke telnetd, dipotong dulu oleh tcpd, dicocokkan dengan beberapa rule set yang telah diatur. Jika memenuhi syarat, akan diteruskan ke telnetd. Jika tidak, permintaan diputus. Berikut isi dari inetd.conf yang telah dipasang tcpd (TCP Wrappers)
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  wu.ftpd -l -i -a

telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

telnet stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/in.telnetsnoopd

shell   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd -L

login   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind

pop3    stream  tcp     nowait  root    /usr/sbin/tcpd  in.pop3d

TCP Wrapper sebagai Kontrol Akses

Tcpd dalam memberlakukan aturannya, membaca dua konfigurasi file, yaitu

  • /etc/hosts.allow      - host yang diperbolehkan untuk mengakses
  • /etc/hosts.deny       - host yang tidak diperbolehkan untuk mengakses
Pada saat selesai instalasi, isi file hosts.allow Anda akan tampak sebagai berikut : #

# hosts.allow   This file describes the names of the hosts which are

#               allowed to use the local INET services, as decided by

#               the '/usr/sbin/tcpd' server.

#

# Version:      @(#)/etc/hosts.allow    1.00    05/28/93

#

# Author:       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org

#

#

 

# End of hosts.allow.

Dan file hosts.deny akan tampak :
#

# hosts.deny    This file describes the names of the hosts which are

#               *not* allowed to use the local INET services, as decided

#               by the '/usr/sbin/tcpd' server.

#

# Version:      @(#)/etc/hosts.deny     1.00    05/28/93

#

# Author:       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org

#

#

 

# End of hosts.deny.

Untuk memasukkan rule set dalam file tersebut, WIETZE VENEMA membuat bahasa tersendiri yang dituangkan dalam hosts_options. Untuk mengetahui detailnya, Anda bisa ketikkan :
$ man hosts_options
Inti dari rule set pada kedua file di atas menggunakan format :
Daemon list : client list : option
Misalnya, Anda ingin memberikan akses hanya untuk mesin dengan nomor ip 1.2.3.4, dapat menuliskan :
ALL:ALL:DENY
ALL:1.2.3.4:ALLOW
Rule set tersebut, dapat Anda masukkan dalam file /etc/hosts.deny, sehingga file tersebut menjadi seperti berikut :
 
#

# hosts.deny    This file describes the names of the hosts which are

#               *not* allowed to use the local INET services, as decided

#               by the '/usr/sbin/tcpd' server.

#

# Version:      @(#)/etc/hosts.deny     1.00    05/28/93

#

# Author:       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org

#

#

ALL:ALL:DENY

ALL:1.2.3.4:ALLOW

# End of hosts.deny.

Anda bisa melakukan ujicoba dengan mengakses service pada inetd lewat nomor IP 1.2.3.4 dan nomor IP lain. Lihat perbedaannya, sekaligus mengetes apakah ruleset yang Anda buat telah berjalan dengan baik.

Tidak ada komentar:

Posting Komentar