mengunci tampilan desktop on ubuntu

Posted: Oktober 25, 2010 in linux's

salam satu jiwa opensourse :D
bayak yang penasaran bagai mana mengunci tampilan desktop agar tidak bisa di rubah sembarangan……

ini pengalaman dulu sekarang udah mulai lupa…. makanya di tulis ni mas bro…

langsung aja ke tkp:

1 tekan <alt>F2
kemudian ni……
/apps/nautilus/preferences/show_desktop
printah tsb di atas berfungsi untuk menon aktifkan klik kanan pada desktop

2 tekan <alt>F2
kemudian ni……
/apps/panel/global/locked_down
nah jika memang benar, panel tidak akan berfungsi untuk melakan perubahan atau konfigurasi pada panel.

sekian dulu mas brooo

by: t3ll0

Berikut langkah-langkah membangun server repository Ubuntu 9.04 (jauty) yang sumbernya berasal dari iso image repository.

1. Buat sebuah folder yang akan menampung paket2 repository
#mkdir /home/repo
2. Mounting dulu iso ke folder /cdrom satu persatu
#mount -t iso9660 -o loop /home/repo/ubuntu-9.04-repository-i386-1_contrib.iso /cdrom
3. Kopikan isi iso yang sudah dimount ke cdrom, ke folder root website
#rsync -avx –progress /cdrom/. /home/web/repo/ubuntu
4. Ulangi langkah 2 dan 3 untuk dvd repo disc 2, 3,4,5 dan6
5. Masukkan disc 3 untuk mengkopi package universe
#umount /cdrom
#mount -t iso9660 -o loop /home/repo/ubuntu-9.04-repository-i386-2_contrib.iso /cdrom
#cp /cdrom/dists/jaunty/universe/binary-i386/Packages /home/repo/dists/jaunty/universe/binary-i386/

6. Masukkan disc 3 untuk menggabungkan paket
#umount /cdrom
#mount -t iso9660 -o loop /home/repo/ubuntu-9.04-repository-i386-3_contrib.iso /cdrom
#cat /cdrom/dists/jaunty/universe/binary-i386/Packages >> /home/web/repo/ubuntu/dists/jaunty/universe/binary-i386/Packages

7. Ulangi langkah 6 untuk disc 4, dan 6
8. Build ulang package
#cd /home/web/repo/jaunty/dists/jaunty/universe/binary-i386
#rm Packages.gz Packages.bz2
#gzip -9 -c Packages > Packages.gz
#bzip2 -9 -c Packages > Packages.bz2

9. Server Repository sudah jadi, langkah selanjutnya adalah mencoba server tersebut.
10. Pada client edit file /etc/apt/source.list#vim /etc/apt/source.list
11. Arahkan server repository pada client ke alamat ip / nama host server yang baru kita bangun
#deb http://ip.atau.nama.server/ubuntu hardy main restricted universe multiverse
12. Jalankan update pada client
#apt-get update
13. Jika masih ada error, amati baik2 report errornya seperti apa dan coba cari solusinya, dan jika tidak ada error berarti server repository tersebut sudah bisa digunakan unutk membantu kita dalam proses instalasi paket-paket.
14. Selesai, semoga bermanfaat.

* kalau ingin menambahkan Package untuk 64 maka silahkan di download di repo yang saat ini OL.

all_BSD_Chapter 10

Posted: Mei 31, 2009 in linux's

Simple Network Management Protocol

SNMP)

  1. Apa itu SNMP?

SNMP adalah kependekan dari Simple Network Management Protocol, yaitu sebuah protokol yang didesain untuk memberikan kemampuan kepada pemakai untuk mengelola jaringan komputernya dari jarak jauh atau remote. Pengelolaan ini dilaksanakan dengan cara melakukan polling dan setting variabel-variabel elemen jaringan yang dikelolanya.

Gagasan di balik SNMP adalah bagaimana supaya informasi yang dibutuhkan untuk manajemen jaringan bisa dikirim menggunakan TCP/IP. Protokol tersebut memungkinkan administrator jaringan untuk menggunakan perangkat jaringan khusus yang berhubungan dengan perangkat jaringan yang lain untuk mengumpulkan informasi dari mereka, dan mengatur bagaimana mereka beroperasi.

Ada dua jenis perangkat SNMP. Pertama adalah Managed Nodes yang merupakan node biasa pada jaringan yang telah dilengkapi dengan software supaya mereka dapat diatur menggunakan SNMP. Mereka biasanya adalah perangkat TCP/IP biasa; mereka juga kadang-kadang disebut managed devices. Kedua adalah Network Management Station (NMS) yang merupakan perangkat jaringan khusus yang menjalankan software tertentu supaya dapat mengatur managed nodes. Pada jaringan harus ada satu atau lebih NMS karena mereka adalah perangkat yang sebenarnya “menjalankan” SNMP.

Sumber: http://www.pcmedia.co.id/detail.asp?Id=1035&Cid=22&Eid=22, http://www.klik-kanan.com/kamus/s.shtml.

  1. Menginstall Net-SNMP

Untuk menginstall SNMP (Net-SNMP) dibutuhkan beberapa file-file berikut ini:

http://ftp.gnu.org:80/gnu/libtool/libtool-1.5.10.tar.gz

http://ftp.gnu.org:80/gnu/autoconf/autoconf-2.59.tar.bz2

http://ftp.gnu.org:80/gnu/m4/m4-1.4.1.tar.gz

http://ftp.gnu.org:80/gnu/gettext/gettext-0.14.1.tar.gz

http://ftp.gnu.org:80/gnu/libiconv/libiconv-1.9.2.tar.gz

File-file tersebut akan otomatis diinstall saat kita menginstall Net-SNMP jika tersedia koneksi Internet. Baiklah, langsung saja cara untuk menginstall Net-SNMP adalah masuk ke folder /usr/ports/net-mgmt/net-snmp.

# cd /usr/ports/net-mgmt/net-snmp

Kemudian ketikkan make install clean untuk menginstallnya.

# make install clean

Setelah selesai, jalankan SNMP dengan mengetikkan perintah berikut:

# /usr/local/etc/rc.d/snmpd.sh forcestart

Kemudian, agar SNMP tetap dijalankan saat komputer restart, maka kita perlu menambahkan beberapa konfigurasi di /etc/rc.conf, yaitu dengan menambahkan:

# ee /etc/rc.conf

snmpd_enable=”YES”

di baris mana saja yang Anda inginkan, di baris terakhir saja ya.

  1. Mengkonfigurasi Net-SNMP

Jika perlu melakukan konfigurasi SNMP, masuk ke direktori /usr/local/bin dan jalankan perintah snmpconf.

# cd /usr/local/bin

# ./snmpconf -i -g basic_setup

************************************************

*** Beginning basic system information setup ***

************************************************

Do you want to configure the information returned in the system MIB group (contact info, etc)? (default = y):y

Configuring: syslocation

Description:

The [typically physical] location of the system.

Note that setting this value here means that when trying to

perform an snmp SET operation to the sysLocation.0 variable will make

the agent return the “notWritable” error code. IE, including

this token in the snmpd.conf file will disable write access to

the variable.

arguments: location_string

The location of the system: Laboratorium STIKI, Malang

Finished Output: syslocation “Laboratorium STIKI, Malang”

Configuring: syscontact

Description:

The contact information for the administrator

Note that setting this value here means that when trying to

perform an snmp SET operation to the sysContact.0 variable will make

the agent return the “notWritable” error code. IE, including

this token in the snmpd.conf file will disable write access to

the variable.

arguments: contact_string

The contact information: admin@stiki.ac.id

Finished Output: syscontact admin@stiki.ac.id

Do you want to properly set the value of the sysServices.0 OID (if you don’t know, just say no)? (default = y): y

Configuring: sysservices

Description:

The proper value for the sysServices object.

arguments: sysservices_number

does this host offer physical services (eg, like a repeater) [answer 0 or 1]: 0

does this host offer datalink/subnetwork services (eg, like a bridge): 0

does this host offer internet services (eg, supports IP): 1

does this host offer end-to-end services (eg, supports TCP): 1

does this host offer application services (eg, supports SMTP): 1

Finished Output: sysservices 76

**************************************

*** BEGINNING ACCESS CONTROL SETUP ***

**************************************

Do you want to configure the agent’s access control? (default = y): y

Do you want to allow SNMPv3 read-write user based access (default = y): n

Do you want to allow SNMPv3 read-only user based access (default = y): n

Do you want to allow SNMPv1/v2c read-write community access (default = y): n

Do you want to allow SNMPv1/v2c read-only community access (default = y): y

Configuring: rocommunity

Description:

a SNMPv1/SNMPv2c read-only access community name

arguments: community [default|hostname|network/bits] [oid]

The community name to add read-only access for: local

The hostname or network address to accept this community name from [RETURN for all]: 202.159.121.0/24

The OID that this community should be restricted to [RETURN for no-restriction]:

Finished Output: rocommunity local 202.159.121.0/24

Do another rocommunity line? (default = y): n

****************************************

*** Beginning trap destination setup ***

****************************************

Do you want to configure where and if the agent will send traps? (default = y): n

****************************************

*** Beginning monitoring setup ***

****************************************

Do you want to configure the agent’s ability to monitor various aspects of your system? (default = y): n

The following files were created:

snmpd.conf installed in /usr/local/share/snmp

all_BSD_Chapter 9

Posted: Mei 31, 2009 in linux's

Firewalls

  1. Mengenal Firewall di FreeBSD

Firewall memungkinkan kita untuk memfilter paket data yang masuk atau keluar lewat sistem yang kita miliki. Secara harfiah, yang dimaksud dengan firewall adalah satu atau sekumpulan aturan-aturan yang memeriksa paket-paket jaringan baik yang masuk maupun keluar untuk kemudian akan diijinkan atau ditolak melewati sistem kita.

Berikut ini adalah beberapa fungsi firewall yang mungkin akan kita dapatkan:

  • Untuk melindungi dan mensterilkan aplikasi, layanan/service, dan mesin Anda pada jaringan lokal dari trafik yang tidak diinginkan yang berasal dari Internet publik.

  • Untuk membatasi atau menonaktifkan akses dari host pada jaringan internal dalam memperoleh layanan/service dari Internet. Karena tidak semua layanan Internet itu menguntungkan, contohnya penggunaan software P2P (baca: peer to peer) yang tentunya sangat rakus akan bandwidth. Ini yang perlu diblok.

  • Untuk mendukung Network Address Translation (NAT) atau yang lebih dikenal dengan Internet Connection Sharing di Windows, yaitu membagi koneksi Internet tunggal kepada semua user yang ada di jaringan lokal.

Ada dua jenis firewall di FreeBSD yang dapat kita gunakan, yaitu IPFILTER dan IPFW. Untuk pembahasan selanjutnya akan lebih difokuskan kepada IPFW, alasannya adalah penulis lebih familiar dengan jenis firewall yang satu ini dan belum sempat menggali lebih dalam tentang IPFILTER. Maybe someday I will be..

  1. Penggunaan IP Firewall

Sebelum dapat menggunakan ip firewall, pastikan kernel Anda telah dikonfigurasi dengan benar untuk mendukung penggunaan ip firewall. Baca cara konfigurasi kernel pada chapter one. Untuk mengecek apakah sistem kita sudah mendukung atau belum yaitu dengan menggunakan perintah ipfw show. Berikut ini tampilan jika kernel sudah mendukung ipfw.

# ipfw show

65535 169 18126 allow ip from any to any

sedangkan jika belum akan tampil:

# ipfw show

ipfw: getsockopt(IP_FW_GET): Protocol not available

Contoh aturan-aturan IPFW dapat kita lihat pada file /etc/rc.firewall yang merupakan standar dari FreeBSD. Berikut ini beberapa kombinasi perintah ipfw untuk melihat daftar rules yang telah ditetapkan:

# ipfw list

# ipfw -t list

# ipfw -a list

# ipfw -d list

# ipfw -d -e list

# ipfw zero

# ipfw zero NUM

Untuk menetapkan aturan firewall secara sederhana kita dapat langsung mengetikkan, contoh kasus, saya ingin memblok klien saya agar tidak dapat menggunakan Yahoo Messenger maka yang saya lakukan adalah memblok port dari Yahoo Messenger yakni 5050 s/d 5061, ini yang akan saya ketikkan pada mesin router:

# ipfw add 50 deny tcp from any to any 5050-5061

Lantas, cek penerapan aturan ini dengan perintah ipfw show, maka akan tampil:

# ipfw show

Permasalahan yang terjadi saat menggunakan metode penulisan aturan firewall di atas adalah: pada saat sistem shutdown atau hang atau restart, maka semua aturan firewall yang kita tambahkan, ubah, atau hapus menjadi hilang. Tidak percaya, coba saja reboot komputer router yang Anda jadikan percobaan, hilanglah aturan untuk memblok Yahoo Messenger tadi.

Agar aturan yang kita tulis tidak hilang, solusinya dengan menuliskan semua aturan firewall yang kita buat ke dalam sebuah file yang akan di-loading saat komputer booting. Dalam hal ini adalah file /etc/rc.local.

# ee /etc/rc.local

ketik:

ipfw add 50 deny tcp from any to any 5050-5061

ubah izin aksesnya agar bisa dijalankan.

# chmod +x /etc/rc.local

File /etc/rc.local adalah file yang secara default akan di-loading oleh FreeBSD.

Yang biasa saya lakukan

Adalah menetapkan semua aturan firewall ke dalam file lain yang saya definisikan sendiri, yakni: /etc/ipfw.rules.

# ee /etc/ipfw.rules

ketik isinya sebagai berikut:

#!/bin/sh

RULENO=”1500″

ipfw -f flush

ipfw add $RULENO deny tcp from any to any 5050-5061

kemudian ubah ijin akses sehingga bisa di-execute:

# chmod +x /etc/ipfw.rules

Kemudian agar scripts ini di-loading saat komputer booting, kita juga perlu mengkonfigurasi file /etc/rc.conf sehingga menjadi seperti berikut:

# ee /etc/rc.conf

firewall_type=”OPEN”

firewall_script=”/etc/ipfw.rules”

Kelebihan IPFW yang patut dicatat adalah bahwa aturan-aturan IPFW dapat langsung ditetapkan dan dijalankan tanpa harus mereboot komputer.

Contoh kasus lain, misalkan kita ingin memblok seluruh paket tcp yang lewat kecuali untuk browsing, FTP, Yahoo Messenger, dan MIRC. Maka scripts IPFW yang kita tulis adalah

ipfw add 50 allow tcp from any to any 80 # http

ipfw add 50 allow tcp from any to any 443 # https

ipfw add 50 allow tcp from any to any 21 # ftp

ipfw add 50 allow tcp from any to any 5050-5061 # ym

ipfw add 50 allow tcp from any to any 6667 # mirc

ipfw add 60 deny tcp from any to any

Yang perlu kita ingat adalah, rules yang ada pada urutan di atas akan menindis rules yang ada di bawahnya. Sehingga kalau di rules terbawah men-deny semua paket tcp yang masuk dan keluar, maka aturan di atasnya akan mengizinkan paket-paket tertentu untuk lewat.

  1. Membatasi Bandwidth dengan Dummynet

Dummynet adalah sebuah alat yang fleksibel yang sejatinya didesain untuk mengetest protokol jaringan. Namun kemudian dalam perkembangannya, dummynet juga digunakan untuk memanagemen bandwidth.

Dalam banyak kesempatan, saya menggunakan dummynet pada mesin FreeBSD yang bertindak sebagai router ataupun bridges. ISP tempat STIKI bernaung saat tulisan ini dibuat juga menggunakan dummynet untuk membagi bandwidth kliennya. Disini saya akan memberikan beberapa contoh penerapan aturan dummynet yang biasa kami kerjakan di STIKI.

Yang pertama adalah rules untuk membatasi trafik ICMP (baik inbound maupun outbound) menjadi 50Kbit/s.

# ipfw add pipe 1 icmp from any to any

# ipfw pipe 1 config bw 50Kbit/s queue 10

Rules yang kedua untuk membatasi trafik inbound (download) menjadi 60Kbit/s untuk setiap host pada jaringan dosen 192.168.1.0/24. Jika rules ini diterapkan, maka jatah bandwidth untuk setiap komputer paling tinggi mendapatkan 60kbps. Ya, hanya 60kbps, walaupun para klien menggunakan Download Accelerator atau apa saja, jatahnya tetap 60kbps.

# ipfw add pipe 2 ip from any to 192.168.1.0/24

# ipfw pipe 2 config bw 60Kbit/s queue 20 mask dst-ip 0x000000ff

all_BSD_Chapter 8

Posted: Mei 31, 2009 in linux's

Securing FreeBSD

  1. Introduction

Rajin-rajinlah mengupdate system

Saat tulisan ini dibuat system yang ada di serper sekarang adalah:

router# uname -a

FreeBSD router.stiki.ac.id 6.1-STABLE FreeBSD 6.1-STABLE

Yup, Anda lihat stable bukan?

Tapi jangan keburu senang dulu. Seorang hacker/cracker dapat menyusup melalui celah keamanan yang ada pada package2 yang terinstall pada mesin Anda. Jadi waspadalah.

Bagaimana Anda mengetahui sistem yang ada sekarang telah up to date atau tidak. Untuk maksud tersebut, kita membutuhkan beberapa package dibawah ini, antara lain:

  1. Portsnap

  2. Portaudit

  3. Portupgrade

  1. Keep Ports Up to Date

Portsnap telah terinstall otomatis pada sistem 6.1. Yang lainnya, jika Anda belum memilikinya, installah terlebih dahulu!

Adapun paket yang dibutuhkan dalam installasi portupgrade terutama adalah:

  • pkgtools-2.0.1.tar.bz2

  • ruby/ ruby-1.8.4.tar.gz

  • ruby/ bdb1-0.2.2.tar.gz

perintah untuk menginstallnya adalah:

# cd /usr/ports/security/portaudit && make install clean

# cd /usr/ports/sysutils/portupgrade && make install clean

Saat menginstall portupgrade akan muncul sebuah option, tekan saja OK tanpa mengubah option tersebut.

Sudah diinstall semua paket diatas? Jika iya, maka langkah selanjutnya adalah mengupdate daftar-daftar ports yang kita miliki dengan daftar ports yang terbaru yang terdapat di serper freebsd pusat. Caranya:

router# portsnap fetch

router# portsnap extract

router# portsnap update

Perintah portsnap fetch akan mendownload daftar ports dari serper pusat ke mesih FreeBSD kita, perintah portsnap extract akan mengextract daftar tadi ke dalam mesin kita dengan kata lain memperbaharui daftar dari ports di mesin local kita. Sedangkan perintah terakhir (portsnap update) akan melakukan update ports lama dengan yang lebih baru.

Setelah semua selesai, saatnya kita mengecek versi paket-paket yang terinstall di mesin kita. Ketikkan perintah berikut:

router# pkg_version

autoconf =

ca-roots =

cvsup-without-gui =

freebsd-update =

gettext =

gmake =

help2man =

ispell =

libiconv =

libtool =

lynx =

m4 =

net-snmp =

p5-gettext =

perl =

pico =

portaudit <

portupgrade <

ruby <

ruby18-bdb1 =

squid <

sudo =

trafshow =

unzip =

List diatas adalah package2 yang terinstall pada mesin saya. Perhatikan penjelasan berikut ini:

  • Tanda sama dengan (=) menandakan bahwa paket yang terinstall memiliki versi yang sama dengan yang terdaftar di ports.

  • Tanda kurang dari (<) menunjukkan bahwa versi paket yang terinstall lebih rendah (lebih lama) dari paket yang terdaftar di ports. Perlu kita update.

  • Tanda lebih dari (>) menunjukkan bahwa versi paket yang terinstall lebih baru dibandingkan dengan daftar ports yang ada.

Anda lihat bukan? Paket2 mana saja yang tidak up to date. Apa yang bisa ditimbulkan dari paket2 tersebut. Hmmm… kita lihat saja vulnerable (celah keamanan) yang mungkin timbul menggunakan portaudit.

# /usr/local/sbin/portaudit squid

Affected package: squid

Type of problem: squid — DoS on failed PUT/POST requests vulnerability.

Reference: <http://www.FreeBSD.org/ports/portaudit/8dbf7894-a9a8-11d9-a788-0001020eed82.html>

Affected package: squid

Type of problem: squid — possible denial of service condition regarding NTLM authentication.

Reference: <http://www.FreeBSD.org/ports/portaudit/44e7764c-2614-11da-9e1e-c296ac722cb3.html>

1 problem(s) found.

—-Beberapa sudah dipotong untuk menghemat halaman—

Owh, one problem’s found

Saatnya kita mengupdatenya.

# /usr/local/sbin/portupgrade squid

===> Installing rc.d startup script(s)

===> Compressing manual pages for squid-2.5.14_1

===> Registering installation for squid-2.5.14_1

===> SECURITY REPORT:

This port has installed the following files which may act as network

servers and may therefore pose a remote security risk to the system.

/usr/local/sbin/squid

This port has installed the following startup scripts which may cause

these network services to be started at boot time.

/usr/local/etc/rc.d/squid

If there are vulnerabilities in these programs there may be a security

risk to the system. FreeBSD makes no guarantee about the security of

ports included in the Ports Collection. Please type ‘make deinstall’

to deinstall the port if this is a concern.

For more information, and contact details about the security

status of this software, see the following webpage:

http://www.squid-cache.org/

===> Cleaning for perl-5.8.8

===> Cleaning for squid-2.5.14_1

—> Cleaning out obsolete shared libraries

[Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 24 packages found (-0 +1) . done]

Selesai, sekarang versi squid Anda telah up to date. Tidak percaya silakan Anda cek lagi dengan perintah pkg_version.

# pkg_version | grep squid

squid =

Lihat bukan, tanda squid telah berubah menjadi sama dengan (=).

Kita tidak hanya akan melihat celah keamanan pada program squid saja, tetapi yang biasa saya lakukan adalah memeriksa semua vulnerable pada seluruh program yang terinstall. Yaitu dengan mengetikkan perintah:

# /usr/local/sbin/portaudit –Fda

auditfile.tbz 100% of 35 kB 626 Bps 00m00s

New database installed.

Database created: Tue Jun 27 15:11:17 UTC 2006

Affected package: mysql-server-5.1.6_2

Type of problem: MySQL — SQL-injection security vulnerability.

Reference: <http://www.FreeBSD.org/ports/portaudit/7f8cecea-f199-11da-8422-00123ffe8333.html>

Affected package: mysql-server-5.1.6_2

Type of problem: MySQL — Information Disclosure and Buffer Overflow Vulnerabilities.

Reference: <http://www.FreeBSD.org/ports/portaudit/4913886c-e875-11da-b9f4-00123ffe8333.html>

2 problem(s) in your installed packages found.

You are advised to update or deinstall the affected package(s) immediately.

Jika ditemukan vulnerable, segera saja update port Anda dengan perintah portsnap. Dan ketikkan perintah portupgrade –a untuk mengupdate package yang terinstall melalui ports secara keseluruhan.

# portupgrade –a

  1. Menghindari DdoS

Edit file /boot/loader.conf.

# ee /boot/loader.conf

kern.ipc.maxsockets=16384

autoboot_delay=”3″

Edit file /etc/sysctl.conf.

# ee /etc/sysctl.conf

kern.ipc.nmbclusters=16384

net.inet.tcp.sendspace=32768

net.inet.tcp.recvspace=32768

kern.ipc.somaxconn=2048

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

net.inet.ip.redirect=0

kern.maxfiles=112328

kern.maxfilesperproc=31095

net.inet.tcp.blackhole=1

net.inet.udp.blackhole=1

  1. Menyembunyikan Informasi Apache dan PHP pada Header HTTP

Secara default, Apache akan mengirimkan versi Apache dan informasi tentang modul-modulnya (misalnya mod_php, mod_ssl, mod_perl) dalam setiap Header HTTP. Kita dapat mengeceknya dengan menggunakan HTTP Header Tool (http://www.webconfs.com/http-header-check.php). Sebagai contoh, informasi tentang header dari www.stiki.ac.id sebelum diseting:

HTTP/1.1 200 OK =>

Date => Fri, 30 Jun 2006 19:42:04 GMT

Server => Apache/2.2.2 (FreeBSD) mod_ssl/2.2.2 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.1.4

X-Powered-By => PHP/5.1.4

Connection => close

Content-Type => text/html

Nah, untuk menyembunyikan informasi tersebut maka kita perlu mensetting ulang file konfigurasi Apache.

# ee /etc/apache22/httpd.conf

Lantas, tambahkan dua baris berikut di baris paling akhir dari file httpd.conf:

ServerTokens ProductOnly

ServerSignature Off

Sedangkan untuk menyembunyikan informasi PHP, kita perlu mematikan expose_php pada file php.ini.

# ee /usr/local/etc/php.ini

Carilah baris yang mengandung kata berikut ini:

expose_php = On

ganti dengan:

expose_php = Off

Tips: Dengan menggunakan editor ee pada FreeBSD, Anda bisa mencari kata diatas tanpa perlu menilik satu persatu isi filenya. Tekan saja Ctrl+Y dan masukkan kata yang ingin Anda cari. Jika sudah tekan enter.

Oke, jika sudah restartlah Apache Anda untuk merasakan perubahan yang dilakukan.

# apachectl restart

Terakhir kita cek sekali lagi dengan HTTP Header Tool. Crengg….., informasi tentang mesin web server Anda akan hilang.

HTTP/1.1 200 OK =>

Date => Fri, 30 Jun 2006 19:45:31 GMT

Server => Apache

Connection => close

Content-Type => text/html

all_BSD_Chapter 7

Posted: Mei 31, 2009 in linux's

FTP Server

  1. Installasi FTPD

File Transfer Protocol (FTP) memberikan kemudahan bagi user untuk memindahkan file ke serper dan atau mengambil file dari serper. Biasanya kita menggunakan protokol yang satu ini untuk menaruh file web di serper dengan mengakses alamat ftp://stiki.ac.id. Nah, supaya alamat tersebut bisa aktif kita harus menginstall aplikasi FTP Server di komputer Serper. Oke sudah bingung?? Supaya lebih jelas saya akan berikan perbandingan dua buah gambar. Dimana salah satu gambar terinstall FTP Server, sedangkan satunya tidak.

FTPD – Defaultnya dari FreeBSD

Dalam FreeBSD sendiri sudah include software FTP Server, ftpd namanya. Kita hanya tinggal mengaktifkannya saja. Untuk mengaktifkannya ikuti cara berikut ini:

Pertama, editlah file /etc/inetd.conf. Saya biasa menggunakan editor ee untuk keperluan ini.

# ee /etc/inetd.conf

Pada baris ke-9 terdapat tulisan seperti berikut:

#ftp stream tcp nowait root /usr/libexec/ftpd ftpd –l

Yang perlu Anda lakukan adalah menghilangkan (uncomment) tanda # guna mengaktifkan ftpd pada system FreeBSD Anda. Setelah hal tersebut Anda lakukan tekanlah tombol ESC dan tombol ENTER dua kali untuk keluar dan menyimpan perubahan yang Anda lakukan.

Langkah kedua, edit pula file /etc/rc.conf untuk mengaktifkan inet.d saat boting awal.

# ee /etc/rc.conf

Di akhir baris, tambahkan command berikut ini:

inetd_enable=”YES”

Jika sudah tekan ESC dan tombol ENTER dua kali untuk keluar dan menyimpan perubahan yang Anda lakukan dan restartlah komputer Anda dengan mengetikkan perintah berikut:

# reboot

  1. Konfigurasi FTPD

Membiarkan saja konfigurasi ftpd Anda dengan konfigurasi default (bawaan) adalah hal yang sangat riskan sekali. Untuk itu kita harus mengutak-atik sedikit konfigurasi dari ftpd ini.

Perhatikan isi file /etc/ftpusers. File tersebut berisi daftar dari user-user yang tidak diijinkan untuk mengakses FTP. Secara default, biasanya user-user tersebut adalah account yang dibuat untuk sistem, misalnya mysql, ssh, ftp, etc. Tapi kita juga bisa menambahkan list yang ada disini untuk user yang tidak diizinkan mengakses FTP.

# cat /etc/ftpusers

Berikut ini isi dari file /etc/ftpusers:

# $FreeBSD: src/etc/ftpusers,v 1.14 2005/06/07 03:41:19 maxim Exp $

#

# list of users disallowed any ftp access.

# read by ftpd(8).

root

toor

daemon

operator

bin

tty

kmem

games

news

man

sshd

bind

proxy

_pflogd

_dhcp

uucp

pop

www

nobody

mailnull

smmsp

Oke, sekarang kita akan mencoba untuk mengakses FTP server dari komputer lain di dalam jaringan. Ingat!! Pastikan user yang akan login tidak terdapat dalam file

/etc/ftpusers. Disini saya menggunakan program FTP Client – WS_FTP dan login sebagai 1smail dengan password hanyasayayangtau.

Perhatikan direktori yang saya kasih tanda petir diatas. Sekali lagi perhatikan! Direktori tersebut adalah direktori root. Apa artinya ini? Ini artinya celaka dua belas. Kenapa? Ya karena seharusnya yang tampil hanyalah home direktori dari user 1smail, tidak perlu isi direktori root juga ikut ditampilkan. Kalau begini maka tiap user yang punya akses ftp akan dengan mudah mengobrak-abrik serper tersebut.

Nah, sekarang bagaimana mengatasinya? Maka kita harus dapat memenjarakan user yang mengakses FTP tersebut di dalam home direktorinya saja.

Untuk melakukan hal tersebut mudah saja. Pada ftpd terdapat satu file yang dapat melakukan tugas ini yaitu file /etc/ftpchroot. Sayangnya file ini belum ada secara default, jadi kita harus membuatnya lebih dulu. Ketikkan perintah berikut ini:

# ee /etc/ftpchroot

Tambahkan user-user yang ingin di chroot/dipenjarakan di home direktorinya.

1smail

kepakelang

isi

hic

scen

bem

Tekan ESC dan ENTER dua kali untuk keluar dan menyimpan perubahan yang dilakukan. Sekarang mari kita coba login lagi sebagai 1smail, dan lihat perbedaannya. Yup sekarang user 1smail tidak dapat lagi melihat-lihat direktori root, dia hanya bisa melihat/memodifikasi isi home direktorinya saja.

Pertanyaannya sekarang, apakah perlu kita menambahkan user di ftpchroot setiap kali membuat user baru untuk memenjarakannya di home direktorinya?

Bagaimana jika usernya ada ratusan?? Jawabnya tidak perlu. Cukup kita membuat satu group untuk user jenis ini. Misalnya nama groupnya userweb.

# pw groupadd userweb

Lantas kita masukkan user 1smail tadi ke group userweb.

# pw groupmod userweb –M 1smail

# pw groupshow userweb

userweb:*:1004:1smail

Option –M disini berfungsi untuk memasukkan user 1smail sebagai anggota dari userweb. Untuk lebih yakinnya jika 1smail sudah menjadi anggota group userweb, ketikkan perintah berikut ini:

# id 1smail

uid=1001(1smail) gid=1001(1smail) groups=1001(1smail), 1004(userweb)

Sekarang tinggal kita add saja group userweb tadi ke file /etc/ftpchroot. Karena dia jenisnya group – bukan user – maka kita perlu menambahkan simbol @ di depan nama group tadi. Seperti contoh dibawah. Ostomastis setiap user yang menjadi member dari userweb setiap kali mengakses ftp akan dipenjarakan di home direktorinya masing-masing. Oke.

# ee /etc/ftpchroot

@userweb

Ftpwelcome & ftpmotd

Ada dua file teks yang dikhususkan untuk menampilkan pesan selamat datang di sisi client. Pertama adalah /etc/ftpwelcome yang akan ditampilkan ke user sebelum mereka login (lihat gambar 6.1). Setelah mereka sukses login, maka isi dari file /etc/ftpmotd lah yang akan ditampilkan.

  1. Maintenance FTPD

Ftpd Daemon secara default akan menyimpan log yang diletakkan di /var/log/xferlog. Lokasi ini dapat dirubah melalui konfigurasi pada file /etc/syslog.conf dengan memodifikasi baris berikut ini:

ftp.info /var/log/xferlog

Mengecek Log

Untuk mengecek log user yang login ke FTP dengan perintah:

# tail /var/log/xferlog

Oct 18 09:36:54 ns ftpd[35402]: connection from 192.168.123.2 (192.168.123.2)

Oct 18 09:36:54 ns ftpd[35402]: FTP LOGIN FROM 192.168.123.2 as highlander

Oct 18 09:36:54 ns ftpd[35402]: session root changed to /web/highlander

Oct 18 09:38:47 ns ftpd[35198]: User hotspot timed out after 900 seconds

Oct 18 09:44:04 ns ftpd[35454]: connection from 192.168.123.2 (192.168.123.2)

Oct 18 09:44:04 ns ftpd[35454]: ANONYMOUS FTP LOGIN REFUSED FROM 192.168.123.2

Oct 18 09:44:04 ns ftpd[35455]: connection from 192.168.123.2 (192.168.123.2)

Oct 18 09:44:04 ns ftpd[35455]: ANONYMOUS FTP LOGIN REFUSED FROM 192.168.123.2

Oct 18 09:44:14 ns ftpd[35457]: connection from 192.168.123.2 (192.168.123.2)

Oct 18 09:44:14 ns ftpd[35457]: FTP LOGIN FROM 192.168.123.2 as eva

all_BSD_Chapter 6

Posted: Mei 31, 2009 in linux's

Running Apache, PHP dan MySQL Server

  1. Apache Web Server

Apache adalah salah satu web server paling terkemuka di dunia. Dia ini populer banget loh, ngalahin IIS (Internet Information Services)-nya Microsoft. Hampir 60% (begitu katanya) web server yang ada di seluruh dunia menggunakan apache (wheww).

Apache juga sudah include kok di FreeBSD 6.0. Tapi untuk menginstallnya kita butuh koneksi internet. Jadi sebelum melanjutkan ke langkah berikut ini, pastikan dulu server kita telah terkoneksi ke internet dengan baik dan benar .

Pertama-tama kita perlu menginstall apachenya dulu. Ada beberapa versi apache yang ada di FreeBSD 6.0 yaitu apache13, apache20, apache21, dan apache 22. Apache 13 artinya apache versi 1.3, Apache 20 berarti versi 2.0, Apache 2.1 berarti versi 2.1. Baiknya kita milih yang updetan terbaru aja yah. Sekarang ketikkan perintah di bawah ini.

# whereis apache22

Perintah diatas untuk memastikan dimana tempat asal paket apache versi 22 berada. Eksekusi perintah diatas akan menghasilkan alamat direktori yaitu: /usr/ports/www/apache22

Nah, kesanalah kita harusnya berada.

# cd /usr/ports/www/apache22

Sudah?? Sekarang ketikkan perintah berikut untuk memulai installasi apache versi 2.2 pada sistem FreeBSD kita.

# make install clean

File yang dibutuhkan pada installasi Apache ini adalah:

  • apache22/httpd-2.2.0.tar.bz2

  • apache22/apr_dbd_mysql.c

  • python/Python-2.4.2.tgz

Agar apache dapat dijalankan jika komputer booting, maka kita perlu melakukan langkah-langkah sebagai berikut:

# ee /usr/local/etc/rc.d/apache22.sh

Carilah baris yang mengandung kata-kata berikut. (di sistem yang saya install ada pada baris ke-44):

[ -z "$apache22_enable" ] && apache22_enable=”NO”

Ubahlah NO menjadi YES, sehingga menjadi seperti berikut:

[ -z "$apache22_enable" ] && apache22_enable=”YES”

Sekarang, jalankan service apache22 Anda dengan mengetikkan perintah berikut ini:

# /usr/local/etc/rc.d/apache22.sh start

Maka sekarang Apache telah terinstall dengan baik pada komputer Anda.

  1. PHP 5

Module PHP5 sudah include dalam ports FreeBSD loh, yang perlu kita lakukan adalah mencari tempat sumber paket tersebut berada. Ketikkan perintah dibawah ini untuk mengetahuinya.

# whereis php5

php5: /usr/ports/lang/php5

Nah, sekarang kita sudah tau dimana source php5 berada, kesanalah kita pergi sekarang.

# cd /usr/ports/lang/php5

Adapun perintah untuk menginstall PHP5 seperti berikut:

# make config install clean

File yang dibutuhkan dalam installasi php5 ini adalah

  • php-5.1.2.tar.bz2

  • pkg-config-0.20.tar.gz

  • libxml2-2.6.23.tar.bz2

Jika telah selesai, log dari installasi php5 pada sistem FreeBSD kita, kurang lebih seperti berikut ini:

***************************************************************

Make sure index.php is part of your DirectoryIndex.

You should add the following to your Apache configuration file:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

***************************************************************

===> Compressing manual pages for php5-5.2.0

===> Registering installation for php5-5.2.0

===> SECURITY REPORT:

This port has installed the following files, which may act as network

servers and may therefore pose a remote security risk to the system.

/usr/local/libexec/apache/libphp5.so

/usr/local/bin/php

/usr/local/bin/php-cgi

If there are vulnerabilities in these programs there may be a security

risk to the system. FreeBSD makes no guarantee about the security of

ports included in the Ports Collection. Please type ‘make deinstall’

to deinstall the port if this is a concern.

For more information, and contact details about the security

status of this software, see the following webpage:

http://www.php.net/

===> Cleaning for apache-1.3.37_1

===> Cleaning for autoconf-2.59_2

===> Cleaning for pkg-config-0.21

===> Cleaning for libxml2-2.6.26

===> Cleaning for perl-5.8.8

===> Cleaning for expat-2.0.0_1

===> Cleaning for m4-1.4.4

===> Cleaning for help2man-1.36.4_1

===> Cleaning for gmake-3.81_1

===> Cleaning for libiconv-1.9.2_2

===> Cleaning for p5-gettext-1.05_1

===> Cleaning for gettext-0.14.5_2

===> Cleaning for libtool-1.5.22_2

===> Cleaning for php5-5.2.0

Setelah selesai, bukalah file konfigurasi Apache.

# ee /usr/local/etc/apache22/httpd.conf

Tambahkan baris-baris berikut kedalamnya agar PHP5 Anda didukung oleh Apache. Anda berhak meletakkannya dimana saja. Di akhir baris juga boleh. Kemudian tekan ESC dan Enter dua kali.

AddType application/x-httpd-php php

AddType application/x-httpd-php-source phps

Langkah selanjutnya adalah menyiapkan file php.ini.

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Restart apache Anda untuk mengaktifkan perubahan yang telah dilakukan.

# /usr/local/sbin/apachectl restart

RootDirectory dari apache22 terletak pada /usr/local/www/apache22/data. Untuk memudahkan kita dalam memanage RootDirectory ini, mari kita buatkan link simbolic.

# cd /

# ln -s /usr/local/www/apache22/data/ /www

# ll

total 49

-rw-r–r– 2 root wheel 801 May 7 2006 .cshrc

-rw-r–r– 2 root wheel 251 May 7 2006 .profile

drwxrwxr-x 2 root operator 512 Jan 10 15:29 .snap

-r–r–r– 1 root wheel 6187 May 7 2006 COPYRIGHT

drwxr-xr-x 2 root wheel 1024 Jan 10 15:30 bin

drwxr-xr-x 6 root wheel 512 Jan 12 11:03 boot

drwxr-xr-x 2 root wheel 512 Jan 10 15:29 cdrom

lrwxr-xr-x 1 root wheel 10 Jan 10 15:38 compat -> usr/compat

dr-xr-xr-x 4 root wheel 512 Jan 1 1970 dev

drwxr-xr-x 2 root wheel 512 Jan 10 15:29 dist

drwxr-xr-x 18 root wheel 2048 Jan 11 13:50 etc

drwxr-xr-x 3 root wheel 1024 Jan 10 15:30 lib

drwxr-xr-x 2 root wheel 512 Jan 10 15:30 libexec

drwxr-xr-x 2 root wheel 512 May 7 2006 mnt

dr-xr-xr-x 2 root wheel 512 May 7 2006 proc

drwxr-xr-x 2 root wheel 2560 Jan 10 15:30 rescue

drwxr-xr-x 2 root wheel 512 Jan 11 00:38 root

drwxr-xr-x 2 root wheel 2560 Jan 10 15:30 sbin

lrwxrwxrwx 1 root wheel 11 Jan 10 15:29 sys -> usr/src/sys

drwxrwxrwt 7 root wheel 512 Jan 12 13:00 tmp

drwxr-xr-x 17 root wheel 512 Jan 12 00:19 usr

drwxr-xr-x 23 root wheel 512 Jan 12 10:25 var

lrwxr-xr-x 1 root wheel 29 Jan 12 13:01 www -> /usr/local/www/apache22/data/

Sehingga, sekarang saat kita mengakses /www atau usr/local/www/apache22/data sama saja.

Kemudian untuk menguji apakah php Anda telah berjalan dengan baik, kita buat satu buah file.

# ee /www/info.php

Adapun isinya adalah sebagai berikut:

<?php phpinfo(); ?>

Sekarang, reboot komputer Anda.

# reboot

Setelah komputer Anda direstart, buka web browser dari klien, dan seharusnya jika konfigurasi Anda sudah benar akan tampil seperti berikut:

  1. MySQL 5

MySQL (My Structured Query Language) adalah salah satu Relational Database Management System (RDBMS), dari sekian banyak basis data lain seperti Oracle, MS SQL, PostgresSQL dan banyak lagi. Basis data MySQL digunakan pada server STIKI dengan alasan basis data MySQL sangat cepat, handal, dan mudah untuk digunakan. Selain itu, MySQL telah teruji oleh banyak server di seluruh dunia.

Langkah-langkah Instalasi dan Konfigurasi MySQL pada FreeBSD

Pada bagian ini akan dijelaskan secara singkat proses instalasi MySQL. MySQL pada FreeBSD terletak pada direktori /usr/ports/databases/mysql51-server. Ketikkan perintah berikut untuk menginstall MySQL Server.

# cd /usr/ports/databases/mysql51-server/

# make install clean

Tunggulah beberapa saat, agak lama memang. Setelah nanti installasi Anda selesai, akan muncul log seperti berikut:

Added group “mysql”.

Added user “mysql”.

install-info –quiet /usr/local/info/mysql.info /usr/local/info/dir

if [ "`/usr/bin/dirname mysql`" != "." ]; then echo “@unexec /bin/rmdir %D/info/`/usr/bin/dirname mysql` 2> /dev/null || true” >> /usr/ports/databases/mysql51-server/work/.PLIST.mktmp; fi

===> Installing rc.d startup script(s)

===> Compressing manual pages for mysql-server-5.1.6_2

===> Registering installation for mysql-server-5.1.6_2

===> SECURITY REPORT:

This port has installed the following files which may act as network

servers and may therefore pose a remote security risk to the system.

/usr/local/libexec/mysqld

This port has installed the following startup scripts which may cause

these network services to be started at boot time.

/usr/local/etc/rc.d/mysql-server

If there are vulnerabilities in these programs there may be a security

risk to the system. FreeBSD makes no guarantee about the security of

ports included in the Ports Collection. Please type ‘make deinstall’

to deinstall the port if this is a concern.

For more information, and contact details about the security

status of this software, see the following webpage:

http://www.mysql.com/

===> Cleaning for libtool-1.5.22_2

===> Cleaning for mysql-client-5.1.6_1

===> Cleaning for mysql-server-5.1.6_2

Setelah selesai, jalankan service mysql Anda dengan mengetikkan perintah:

# /usr/local/etc/rc.d/mysql-server forcestart

Starting mysql.

Untuk memastikan bahwa service mysql Anda telah berjalan, ketikkan perintah di bawah ini. Jika kemudian muncul service mysql dengan pid dan prosesnya, maka mysql telah berjalan dengan benar.

# ps waux | grep mysql

mysql 12941 0.0 0.7 1652 1008 p0 I 4:13PM 0:00.08 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysq

mysql 12961 0.0 19.2 46928 29824 p0 S 4:13PM 0:03.90 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf

root 12963 0.0 0.5 1440 764 p0 R+ 4:14PM 0:00.02 grep mysql

Kemudian, agar service mysql senantiasa dijalankan pada saat komputer restart, maka buka file /etc/rc.conf dan tambahkan konfigurasi mysql_enable=”YES” didalamnya.

# ee /etc/rc.conf

mysql_enable=”YES”

Jika telah selesai tekan ESC dan Enter dua kali, kemudian reboot komputer Anda untuk memastikan semuanya telah berjalan dengan baik dan benar.

# reboot

Memberi Password Kepada Root

User root disini berbeda dengan user root pada pembahasan kita mengenai sistem FreeBSD. User root yang ada disini murni account mahadewa yang dimiliki oleh MySQL. Secara default user root pada mysql tidak memiliki password sama sekali. Ada satu perintah yang dapat digunakan untuk menambahkan password pada user root yaitu:

# mysqladmin -u root password stikimalang

Sekarang, Anda telah memberikan keamanan pada user root Anda dengan password bernama “stikimalang”.

  1. Melakukan Konfigurasi Apache

Untuk memudahkan kita dalam mengkonfigurasi apache ada baiknya kita membuat shortcut sebagai berikut:

# ln -s /usr/local/etc/apache22/ /etc/apache22

Menambahkan Virtual Hosts

Lakukan editing pada file /etc/apache22/httpd.conf.

# ee /etc/apache22/httpd.conf

Carilah baris yang mengandung kata-kata berikut ini:

# Virtual hosts

#Include etc/apache22/extra/httpd-vhosts.conf

Hilangkan tanda pagar (remark) menjadi:

# Virtual hosts

Include etc/apache22/extra/httpd-vhosts.conf

Selanjutnya, untuk menambahkan virtual hosts pada apache, dapat melakukan editing pada file /etc/apache22/extra/httpd-vhosts.conf.

# ee /etc/apache22/extra/httpd-vhosts.conf

Langkah pertama sebelum Anda menambahkan virtual host, mark dulu semua yang tidak dibutuhkan yaitu:

#<VirtualHost *:80>

# ServerAdmin webmaster@dummy-host.example.com

# DocumentRoot /www/docs/dummy-host.example.com

# ServerName dummy-host.example.com

# ServerAlias www.dummy-host.example.com

# ErrorLog /var/log/dummy-host.example.com-error_log

# CustomLog /var/log/dummy-host.example.com-access_log common

#</VirtualHost>

#<VirtualHost *:80>

# ServerAdmin webmaster@dummy-host2.example.com

# DocumentRoot /www/docs/dummy-host2.example.com

# ServerName dummy-host2.example.com

# ErrorLog /var/log/dummy-host2.example.com-error_log

# CustomLog /var/log/dummy-host2.example.com-access_log common

#</VirtualHost>

Kemudian, agar user dapat mengakses alamat http://www.stiki.ac.id, maka kita perlu menambahkan baris-baris berikut pada file di atas. Letakkan di baris paling akhir.

<VirtualHost *:80>

ServerAdmin webmaster@stiki.ac.id

DocumentRoot /usr/local/www/apache22/data

ServerName www.stiki.ac.id

ErrorLog /var/log/www.stiki.ac.id-error_log

CustomLog /var/log/www.stiki.ac.id-access_log common

</VirtualHost>

Contoh lain, misalkan kita ingin menambahkan subdomain http://sql.stiki.ac.id yang memiliki direktori asal di /web/phpmyadmin, maka kita tinggal menambahkan baris-baris berikut pada file di atas. Letakkan di baris paling akhir. Tapi ingat, Anda harus siapkan dulu direktori phpmyadmin yang berisi script dari phpmyadmin yang dapat di-download dari www.phpmyadmin.net.

<VirtualHost *:80>

ServerAdmin webmaster@stiki.ac.id

DocumentRoot /usr/local/www/apache22/phpmyadmin

ServerName sql.stiki.ac.id

ErrorLog /var/log/sql.stiki.ac.id-error_log

CustomLog /var/log/sql.stiki.ac.id-access_log common

</VirtualHost>

  1. Mengamankan Web Traffic dengan SSL/TLS

Secure Socket Layer (SSL) adalah mekanisme pembungkusan data yang berlalu lalang antara klien dan server dengan suatu metode enkripsi data. Mekanisme ini adalah suatu protokol khusus yang menyediakan komunikasi yang aman dengan enkripsi dan tanda tangan digital. Mekanisme SSL ini menggunakan

Pada metode ini, tiap-tiap pihak yang terlibat dalam komunikasi memiliki dua buah kunci. Satu disebut kunci pribadi (private key) dan satu lagi disebut kunci publik. Kunci pribadi disimpan sendiri dan harus dijaga kerahasiaannya. Hanya pemilik kunci tersebut yang boleh membaca isi kuncinya. Berbeda dengan kunci publik. Kunci publik harus diserahkan kepada pihak lain yang diajak berkomunikasi. Semua komunikasi dari pihak A ke pihak B dilakukan dengan cara:

A dan B saling mengirimkan kunci publiknya masing-masing

A melakukan enkripsi pada pesan yang hendak dikirimkan dengan kunci pribadi dan kunci publik milik B. Kunci publik dan data kemudian dikirimkan ke pihak B. Setelah diterima, pihak B akan membuka isi pesan tersebut dengan kunci pribadi milik B dan kunci publik milik A yang juga sudah diterima.

Walaupun dalam perjalanannya, isi pesan tersebut dapat disadap orang, maka (secara teori) sang penyadap tidak akan dapat membaca isi pesan yang asli. Untuk dapat membuka isi pesan, sang penyadap harus memiliki kunci pribadi B dan kunci publik A.

Pada Apache, komunikasi antara browser dan server web dapat menggunakan protokol SSL dengan mengaktifkan modul mod_ssl. Untuk mengaktifkannya, server web harus terlebih dahulu memasang file sertifikat yang berisi kunci publik dan kunci pribadi server.

File sertifikat ini, biasanya dapat diperoleh dengan cara membelinya dari suatu badan yang disebut dengan Certificate Authority (CA). Beberapa CA yang cukup terkenal adalah Verisign (http://www.verisign.com) dan Thawte (http://www.thawte.com).

Sebelum mulai membuat sertifikat, perlu dipersiapkan direktori khusus untuk sertifikat, yaitu dengan cara:

# cd

# mkdir certs

# cd certs

Membuat CA Sendiri

File sertifikat dapat dibuat sendiri tanpa harus membelinya dari CA (Certificate Authority). Namun, tentunya sertifikat yang dibuat sendiri ini tidak akan dikenali oleh browser. Untuk membuatnya sendiri melalui FreeBSD, caranya cukup mudah. Ikuti langkah-langkah berikut ini:

# cd ~/certs

# mkdir -p demoCA

# touch demoCA/index.txt

# echo 01 > demoCA/serial

# openssl genrsa -des3 -out ca.key 1024

Generating RSA private key, 1024 bit long modulus

…………………………………………………….++++++

…………………………….++++++

e is 65537 (0×10001)

Enter pass phrase for ca.key:

Verifying – Enter pass phrase for ca.key:

Masukkan password minimal sebanyak empat karakter dan ingat password tersebut. Hasil perintah di atas adalah sebuah file berisi kunci pribadi tipe RSA dengan algoritma TripleDES yang bernama ca.key.

Langkah berikutnya adalah membuat sertifikat CA dari kunci pribadi RSA tadi:

# openssl req -new -x509 -key ca.key -out ca.crt

Generating RSA private key, 1024 bit long modulus

e is 65537 (0×10001)

Enter pass phrase for ca.key:

Verifying – Enter pass phrase for ca.key:

hotspot# openssl req -new -x509 -key ca.key -out ca.crt

Enter pass phrase for ca.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ‘.’, the field will be left blank.

—–

Country Name (2 letter code) [AU]:ID

State or Province Name (full name) [Some-State]:Jawa Timur

Locality Name (eg, city) []:Malang

Organization Name (eg, company) [Internet Widgits Pty Ltd]:STIKI

Organizational Unit Name (eg, section) []:IT Solution

Common Name (eg, YOUR name) []:hotspot.stiki.ac.id

Email Address []:admin@stiki.ac.id

Saat menjalankan perintah diatas, sistem akan meminta untuk mengisi password yang tadi dipakai untuk membuat kunci pribadi, kemudian isikan data tentang organisasi/institusi. Hasilnya adalah sebuah file sertifikat bernama ca.crt. Simpan kedua file ini baik-baik karena akan digunakan nanti.

Membuat Sertifikat

Untuk membuat sertifikat SSL pertama kali yang harus dilakukan adalah membuat kunci pribadi server web.

# cd ~/certs

# openssl genrsa -des3 -out hotspot.stiki.ac.id.key 1024

Generating RSA private key, 1024 bit long modulus

………….++++++

……………………………….++++++

e is 65537 (0×10001)

Enter pass phrase for hotspot.stiki.ac.id.key:

Verifying – Enter pass phrase for hotspot.stiki.ac.id.key:

Masukkan password minimal sebanyak empat karakter dan ingat password tersebut. Langkah berikutnya adalah menghilangkan password dari kunci tersebut. Ini bertujuan untuk menyederhanakan proses menjalankan server web. Sebab bila kunci pribadi memiliki password, maka password tersebut akan selalu diminta pada setiap kali server web dijalankan, dan ini akan merepotkan. Keamanan kunci cukup dilakukan nanti dengan mengeset hak akses dengan benar. Namun bila

tetap menginginkan file kunci pribadi yang memiliki password, cukup abaikan saja perintah berikut ini:

# cp hotspot.stiki.ac.id.key hotspot.stiki.ac.id.old

# openssl rsa -in hotspot.stiki.ac.id.old -out hotspot.stiki.ac.id.key

Enter pass phrase for hotspot.stiki.ac.id.old:

writing RSA key

Hasil perintah di atas adalah sebuah file berisi kunci pribadi tipe RSA dengan algoritma TripleDES yang bernama hotspot.stiki.ac.id.key. Langkah berikutnya adalah membuat permintaan sertifikat yang disebut dengan Certificate Signing Request (CSR) dengan cara:

# openssl req -new -key hotspot.stiki.ac.id.key -out hotspot.stiki.ac.id.csr

Enter pass phrase for hotspot.stiki.ac.id.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ‘.’, the field will be left blank.

—–

Country Name (2 letter code) [AU]:ID

State or Province Name (full name) [Some-State]:Jawa Timur

Locality Name (eg, city) []:Malang

Organization Name (eg, company) [Internet Widgits Pty Ltd]:STIKI

Organizational Unit Name (eg, section) []:IT Solution

Common Name (eg, YOUR name) []:hotspot.stiki.ac.id

Email Address []:admin@stiki.ac.id

Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password []:stikimalang

An optional company name []:STIKI

Hasilnya adalah file CSR bernama hotspot.stiki.ac.id.csr.

Kemudian kirimkan file hotspot.stiki.ac.id.csr ke CA tempat membeli sertifikat. Silakan ikuti petunjuk yang diberikan oleh CA selanjutnya. Namun bila ingin menggunakan CA sendiri sebagai mana telah diterangkan sebelumnya, gunakan perintah berikut:

# openssl ca -in hotspot.stiki.ac.id.csr -out hotspot.stiki.ac.id.crt -keyfile ca.key -cert ca.crt

-outdir ./ -policy policy_anything

Using configuration from /etc/ssl/openssl.cnf

Enter pass phrase for ca.key:

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number: 1 (0×1)

Validity

Not Before: Aug 7 10:27:11 2006 GMT

Not After : Aug 7 10:27:11 2007 GMT

Subject:

countryName = ID

stateOrProvinceName = Jawa Timur

localityName = Malang

organizationName = STIKI

organizationalUnitName = IT Solution

commonName = 1smail

emailAddress = admin@stiki.ac.id

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

20:8B:E9:80:10:DB:F4:DA:D0:A7:0D:DC:86:31:C9:A1:CE:6C:97:34

X509v3 Authority Key Identifier:

keyid:B8:BE:72:21:4C:B1:E6:EC:45:FC:80:E2:AC:EE:14:91:39:48:DD:65

DirName:/C=ID/ST=Jawa Timur/L=Malang/O=STIKI/OU=IT Solution/CN=1smail/emailAddress=admin@stiki.ac.id

serial:C6:ED:AD:E8:4C:D3:42:DD

Certificate is to be certified until Aug 7 10:27:11 2007 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

Hasil proses di atas adalah file hotspot.stiki.ac.id.crt. Bila mungkin menggunakan CA lain, hasilnya juga beri nama hotspot.stiki.ac.id.crt. sekarang langkah berikutnya adalah:

# cd ~/certs

# mkdir /usr/local/etc/apache22/certs

# cp hotspot.stiki.ac.id.crt hotspot.stiki.ac.id.key /usr/local/etc/apache22/certs/

# chown -R www:www /usr/local/etc/apache22/certs/

# chmod 600 /usr/local/etc/apache22/certs/*

Dari perintah di atas dilakukan pemberian hak akses yang sangat ketat. Hanya user www dan root yang bisa membaca file sertifikat serta kunci pribadi.

Instalasi Sertifikat

Sekarang waktunya untuk menginstal file sertifikat dan file kunci pribadi server web pada konfigurasi Apache. Edit file /usr/local/etc/apache22/extra/httpd-ssl.conf.

# cd /usr/local/etc/apache22

# ee extra/httpd-ssl.conf

Kemudian isikan lokasi sertifikat dan file kunci pribadi seperti ini:

SSLCertificateFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.crt

SSLCertificateKeyFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.key

Jangan lupa untuk menghapus atau mengubah baris yang mengandung konfigurasi di atas. Untuk disesuaikan dengan lokasi file sertifikat berada.

Berikut adalah isi file httpd-ssl.conf selengkapnya:

Listen 443

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl .crl

SSLPassPhraseDialog builtin

SSLSessionCache shmcb:/var/run/ssl_scache(512000)

SSLSessionCacheTimeout 300

SSLMutex file:/var/run/ssl_mutex

<VirtualHost _default_:443>

DocumentRoot “/usr/local/www/apache22/data”

ServerName hotspot.stiki.ac.id:443

ServerAdmin admin@stiki.ac.id

ErrorLog /var/log/httpd-error.log

TransferLog /var/log/httpd-access.log

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.crt

SSLCertificateKeyFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.key

<FilesMatch “\.(cgi|shtml|phtml|php)$”>

SSLOptions +StdEnvVars

</FilesMatch>

<Directory “/usr/local/www/apache22/cgi-bin”>

SSLOptions +StdEnvVars

</Directory>

BrowserMatch “.*MSIE.*” \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog /var/log/httpd-ssl_request.log \

“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

Secara default, Apache tidak mengaktifkan konfigurasi SSL diatas bila tidak mengedit file httpd.conf terlebih dahulu. Bukalah file httpd.conf dengan mengetikkan perintah berikut:

# ee /usr/local/etc/apache22/httpd.conf

Carilah baris konfigurasi berikut ini:

#Include etc/apache22/extra/httpd-ssl.conf

kemudian hilangkah tanda pagar di depannya, sehingga menjadi:

Include etc/apache22/extra/httpd-ssl.conf

Untuk mempermudah pencarian, editor ee menyediakan fasilitas pencarian yang dapat diakses dengan menekan Ctrl+Y. Selanjutnya akan muncul prompt di bagian bawah dengan tulisan “search for: “. Silakan ketikkan httpd-ssl.conf, maka kursor akan langsung mengarah ke bagian yang mengandung kata tersebut. Sekarang, Apache akan menjalankan konfigurasi pada file httpd-ssl.conf setiap kali dieksekusi.

Tes Instalasi

Sekarang akan dilakukan tes pada konfigurasi Apache yang telah dilakukan. Caranya dengan menggunakan perintah:

# /usr/local/sbin/apachectl restart

Pada file log di /var/log/httpd-error.log harus ada keluaran seperti ini:

# tail /var/log/httpd-error.log

[Tue Aug 08 19:16:41 2006] [notice] Apache/2.2.0 (FreeBSD) mod_ssl/2.2.0 OpenSSL/0.9.7e-p1 DAV/2 configured — resuming normal operations

Sekarang akan dicoba untuk mengakses alamat IP server dengan menggunakan browser, seharusnya keluar halaman pada browser seperti Gambar 4.60.

Bila melihat halaman yang lain atau pesan error lain, silakan periksa log error dan lihat kesalahannya. Pada tahap ini jangan lupa untuk mengaktifkan DNS, dan bila mencoba mengakses dari komputer lain, maka server DNS pada komputer tersebut harus diarahkan ke server ini agar dapat berjalan dengan baik.

all_BSD_Chapter 5

Posted: Mei 29, 2009 in linux's

Domain Name System (DNS)

  1. Konsep DNS

Zaman dahulu kala, ciee, setiap ada host Internet baru akan didaftarkan pada ARPAnet dan disimpan pada file /etc/hosts yang akan mengkonversi antara nama dengan alamat IP (Internet Protocol). Semakin lama, Internet semakin berkembang dan alamat Internet pun bertambah menjadi jutaan, sehingga jika tetap disimpan di file /etc/hosts yang terpusat akan memakan tempat di harddisk. Pasanglah anggapan bahwa kapasitas harddisk di serper itu sangat besar dan banyak. Namun jika ada ribuan juta orang di dunia mengakses satu serper, tentu akan mengakibatkan beban jaringan yang sangat luar biasa.

Akhirnya timbullah suatu ide untuk mendistribusikan database Internet ini. Domain Name System atau DNS konsepnya. Implementasi dari DNS ini yang kebanyakan digunakan adalah BIND, yaitu Berkeley Internet Name Domain. BIND adalah bagian dari BSD. Proses daemon dari BIND disebut dengan named.

  1. Mengenal BIND

Berkeley Internet Name Domain (BIND) adalah nama program server DNS yang umum digunakan di Internet. Sejarah BIND sering diwarnai dengan celah-celah keamanan yang serius. Pernah beberapa kali ada versi BIND yang mampu dieksploitasi sedemikian hingga orang dari luar server bisa masuk ke dalam server sebagai root. Walaupun demikian, dengan konfigurasi yang benar, BIND dapat digunakan sebagai server DNS yang cepat, aman dan tangguh. Serial BIND yang terakhir dirilis adalah BIND seri 9.

  1. Menginstall BIND

Sebelum kita menginstall BIND yang perlu kita perhatikan adalah konfigurasi /etc/rc.conf.

# ee /etc/rc.conf

Perhatikan pada bagian:

hostname=”ns.stiki.ac.id”

Domain yang akan kita buat harus dipakai sebagai nama domain hostname komputer yang bersangkutan.

Selanjutnya

BIND telah ada secara default pada FreeBSD, yang perlu kita lakukan hanyalah mengaktifkannya saja. Untuk itu langkah pertama dalam mengaktifkan BIND adalah memeriksa isi file /etc/resolv.conf.

# ee /etc/resolv.conf

Ganti isinya dengan:

domain stiki.ac.id

nameserver 202.159.121.74

nameserver 203.134.232.3 # ns1.spin.net.id

Masuk ke /etc/namedb/.

# cd /etc/namedb

Jalankan perintah berikut:

# sh make-localhost

akan dihasilkan dua file pada direktori /etc/namedb/master, yaitu file localhost.rev dan localhost_v6.rev.

Langkah selanjutnya adalah mengkonfigurasi BIND untuk domain stiki.ac.id.

  1. Konfigurasi BIND untuk domain STIKI.ac.id

Lakukan konfigurasi pada file named.conf.

# ee /etc/namedb/named.conf

tambahkan baris-baris berikut ini:

options {

allow-transfer {localhost; };

listen-on { 202.159.121.74; };

};

zone “stiki.ac.id” {

type master;

file “stiki.ac.id”;

};

zone “121.159.202.in-addr.arpa” {

type master;

file “stiki.ac.id-rev”;

};

Kemudian buat zone file “stiki.ac.id”.

# ee /etc/namedb/stiki.ac.id

ketik:

$TTL 86400

@ IN SOA ns.stiki.ac.id. admin.stiki.ac.id. (

20060515

3600

7200

604800

86400 )

stiki.ac.id. IN NS ns.stiki.ac.id.

IN A 202.159.121.74

ns.stiki.ac.id. IN A 202.159.121.74

mail.stiki.ac.id. IN A 203.134.232.10

router.stiki.ac.id. IN A 202.159.121.73

linux.stiki.ac.id. IN A 202.159.121.78

sim.stiki.ac.id. IN A 202.159.121.76

mahasiswa.stiki.ac.id. IN A 202.159.121.78

hosting.stiki.ac.id IN A 202.159.121.76

www IN CNAME ns.stiki.ac.id.

mhs IN CNAME ns.stiki.ac.id.

forum IN CNAME ns.stiki.ac.id.

sql IN CNAME ns.stiki.ac.id.

hic IN CNAME ns.stiki.ac.id.

isi IN CNAME ns.stiki.ac.id.

belajar IN CNAME ns.stiki.ac.id.

webmail IN CNAME ns.stiki.ac.id.

kepakelang IN CNAME ns.stiki.ac.id.

radio IN CNAME mail.stiki.ac.id.

stikidb IN CNAME sim.stiki.ac.id.

sis IN CNAME sim.stiki.ac.id.

stiki.ac.id. IN MX 10 mail.stiki.ac.id.

Lantas, buat zona file “stiki.ac.id-rev”.

# ee /etc/namedb/stiki.ac.id-rev

ketik:

$TTL 86400

@ IN SOA ns.stiki.ac.id. admin.stiki.ac.id. (

20060221

3600

7200

604800

86400 )

IN NS 202.159.121.74

202.159.121.73 IN PTR router.stiki.ac.id.

202.159.121.74 IN PTR ns.stiki.ac.id.

202.159.121.75 IN PTR mail.stiki.ac.id.

202.159.121.77 IN PTR dosen.stiki.ac.id.

202.159.121.78 IN PTR linux.stiki.ac.id.

202.159.121.76 IN PTR sim.stiki.ac.id.

Sekarang, jalankan named.

# /etc/rc.d/named forcestart

Jika terdapat pesan kesalahan pada waktu menjalankan named, perbaiki kesalahan yang terjadi, kemudian named dapat dijalankan ulang dengan cara:

# /etc/rc.d/named reload

Agar named tetap dijalankan pada saat komputer booting atau restart, maka lakukan konfigurasi pula pada file /etc/rc.conf.

# ee /etc/rc.conf

dengan menambahkan:

named_enable=”YES”

reboot komputer Anda untuk memastikan semua berjalan dengan baik dan benar.

Catatan: untuk mengecek apakah konfigurasi named kita sudah benar dan apakah sudah bisa diakses dari Internet, saya biasa menggunakan layanan dari www.dnsreport.com yang memberikan laporan lengkap tentang informasi domain yang ingin kita cari serta menampilkan daftar error jika mungkin ada error.

all_BSD_Chapter 4

Posted: Mei 29, 2009 in linux's

Gateway and Router

Apa itu Gateway dan Router?

Jika Anda mempunyai beberapa komputer yang saling terhubung lewat jaringan (ethernet misalnya), Anda dapat menggunakan FreeBSD sebagai pintu gerbang (router/gateway) untuk menyambungkan semua komputer Anda menuju Internet.

Router dan gateway sendiri sebenarnya secara teori mempunyai filosofi arti yang berbeda, gateway sebenarnya mengacu pada alat yang difungsikan untuk menjembatani dua buah jaringan yang mempunyai topologi berbeda, berbeda subnet, dsb, sedangkan router untuk mengatur pengalamatan paket-paket data dalam jaringan yang berbeda sehingga komunikasi dapat terlaksana.

Akan tetapi dalam kenyataan sehari-hari, router dan gateway seringkali hanya ditangani oleh sebuah alat saja. Hal inilah yang menyebabkan router selalu diidentikkan dengan gateway, demikian pula sebaliknya.

Router banyak didistribusikan dalam bentuk paket perangkat keras terpadu bermerek seperti Cisco, Intel, Proteon, Bay Network dan lain-lain dengan harga yang relatif tinggi. Tetapi kita juga dapat membangun sebuah PC Router dengan biaya yang relatif rendah menggunakan FreeBSD.

Konfigurasi Mesin Gateway di FreeBSD

Untuk dapat menjalankan fungsi NAT pada FreeBSD, terlebih dahulu kita harus mempersiapkan kernel FreeBSD agar dapat mendukung. Silakan baca tentang konfigurasi Kernel pada Chapter One. Selanjutnya setelah kernel Anda siap, lanjutkan membaca bahasan berikut.

Fungsi NAT

Dalam lingkungan Linux, NAT lebih dikenal dengan nama IP Masquerading. Antara NAT dan IP Masquerading memiliki konsep yang sama.

Penggunaan NAT merupakan hal yang efektif dalam sebuah jaringan. Misalkan, ada lima buah PC yang membutuhkan akses Internet, maka dibutuhkan paling tidak lima sambungan telepon untuk masing-masing PC tersebut. Tentunya pembiayaan untuk sambungan ini akan menjadi sangat mahal.

Dengan konsep NAT, hanya diperlukan satu buah sambungan telepon saja ke sebuah PC, kemudian empat PC yang lain dihubungkan ke switch. Kemudian switch dihubungkan dengan salah satu NIC (Network Internet Card) komputer yang terhubung dengan Internet. Dimana komputer tersebut difungsikan sebagai gateway dengan sistem FreeBSD yang terinstal didalamnya. NAT secara otomatis akan menterjemahkan alamat IP dari setiap komputer di jaringan lokal menjadi satu alamat IP publik. Gateway juga dapat berfungsi sebagai firewall yang melindungi klien dari akses yang tidak diinginkan.

Untuk mengaktifkan fungsi NAT, bisa menggunakan IPFW (IP Firewall). Namun untuk dapat menggunakan IPFW, kernel FreeBSD harus dikonfigurasi ulang seperti pada pembahasan sebelumnya.

Ada dua cara yang akan dibahas dalam menggunakan NAT, yaitu NATD dan IPNAT. Anda dapat memilih salah satu dari keduanya, saya sendiri lebih familiar menggunakan NATD. Mana yang lebih baik? Sampai saat ini saya juga belum sempat mengorek keterangan lebih lengkap tentang keduanya. Yang jelas keduanya bekerja dengan baik bagi saya.

Konfigurasi NATD

Mengaktifkan NAT dapat menggunakan NATD. Adapun langkah-langkah mengaktifkan NAT pada sistem FreeBSD menggunakan NATD adalah sebagai berikut:

  • Buka file /etc.rc.conf dengan editor ee.

# ee /etc/rc.conf

  • Tambahkan beberapa baris konfigurasi berikut pada file diatas. Letakkan di akhir baris.

# — NAT Configuration –

gateway_enable=”YES”

firewall_enable=”YES”

firewall_type=”OPEN”

natd_enable=”YES”

natd_interface=”rl0″ # Interface yg terhubung dgn Internet

natd_flags=”"

  • Ketikkan perintah berikut ini untuk merasakan efek perubahan yang dilakukan.

# /etc/netstart

  • Jika berhasil, maka pada saat dijalankan perintah ipfw show, akan menampilkan seperti dibawah ini:

# ipfw show

00050 137 13524 divert 8668 ip4 from any to any via rl0

00100 4 208 allow ip from any to any via lo0

00200 0 0 deny ip from any to 127.0.0.0/8

00300 0 0 deny ip from 127.0.0.0/8 to any

65000 131 12932 allow ip from any to any

65535 23 2042 allow ip from any to any

  1. Konfigurasi IPNAT

Fungsi NAT juga dapat dilakukan oleh ipnat pada FreeBSD. Untuk mengaktifkan ipnat, lakukan langkah-langkah berikut:

  • Buka file /etc.rc.conf dengan editor ee.

# ee /etc/rc.conf

  • Konfigurasi file tersebut dengan menambahkan beberapa baris perintah di bawah ini:

gateway_enable=”YES” # Mengaktifkan LAN sebagai gateway

ipnat_enable=”YES” # Menjalankan fungsi NAT

ipnat_rules=”/etc/ipnat.rules” # Aturan ipnat

keluar dari editor ee, dengan menekan Esc dan Enter dua kali.

  • Definisikan aturan ipnat pada file /etc/ipnat.rules. Karena file tersebut tidak ada secara otomatis, maka harus diciptakan terlebih dahulu dengan perintah:

# ee /etc/ipnat.rules

  • Isi file tersebut dengan konfigurasi berikut ini:

map rl0 192.168.182.0/24 -> 202.159.121.78/32 portmap tcp/udp auto

konfigurasi di atas berarti bahwa setiap ada permintaan alamat dari IP 192.168.182.1 – 192.168.182.254, akan diteruskan ke IP 202.159.121.78.

  • Set izin aksesnya menjadi 755

# chmod 755 /etc/ipnat.rules

  • Untuk merasakan efek perubahan yang dilakukan Anda harus merestart komputer.

# reboot

  1. Tools yang Biasa Digunakan pada Mesin Router

Pada saat Anda mengoperasikan sebuah sistem jaringan, kemampuan memonitor kondisi jaringan menjadi sangat penting artinya untuk mengetahui kesehatan sistem jaringan Anda. Pada bagian ini akan diterangkan beberapa perangkat yang dapat digunakan untuk mengamati trafik Internet di jaringan Anda baik yang menuju maupun dari Internet.

Semua program pemantau ini telah disertakan pada ports FreeBSD. Perangkat lunak yang ada di ports tersebut dapat digunakan untuk memonitor paket-paket data yang masuk atau seberapa cepat koneksi yang terjadi antara server Anda dengan ISP tempat Anda berlangganan. Berbagai program ini akan dibahas secara sepintas pada kesempatan ini.

  1. ifstat

Anda bisa menggunakan ifstat untuk mengetahui berapa besar data yang keluar ataupun masuk dari ethernet yang Anda miliki. Berikut ini tampilan ifstat saat dijalankan pada proxy server di STIKI yang menangani jaringan Dosen, Lab Internet, dan Hotspot.

rl0 rl1 rl2 Total

Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out

23.70 6.76 10.71 17.57 0.47 2.08 34.87 26.41

15.98 2.62 16.72 16.02 0.47 1.45 33.17 20.09

13.75 3.04 0.47 11.82 0.47 1.45 14.69 16.31

57.15 4.28 25.67 26.77 0.47 1.45 83.29 32.50

12.67 9.02 10.65 36.34 0.47 1.45 23.78 46.81

68.84 5.03 13.88 71.97 0.47 1.45 83.19 78.45

56.62 10.01 12.30 74.15 0.94 3.14 69.85 87.29

Menginstall ifstat dapat melalui ports FreeBSD. Mari kita cari tahu dimana letak source dari ifstat dengan mengetikkan perintah:

# whereis ifstat

ifstat: /usr/ports/net/ifstat

Kesanalah kita menuju, dan ketikkan make install clean untuk melakukan installasi ifstat pada sistem.

# cd /usr/ports/net/ifstat

# make install clean

Ketika muncul option ifstat seperti pada gambar, centang SNMP jika ingin mengaktifkan dukungan terhadap SNMP.

File yang dibutuhkan dalam installasi ini adalah:

  • ifstat-1.1.tar.gz

  • net-snmp-5.2.2.tar.gz

  • perl-5.8.8.tar.bz2

  • BSDPAN-5.8.8.tar.bz2

  • defined-or-5.8.8.bz2

  • gettext-0.14.5.tar.gz

  • gettext-1.05.tar.gz

  • autoconf-2.59.tar.bz2

  • help2man-1.36.3.tar.gz

  • libtool-1.5.22.tar.gz

  • m4-1.4.4.tar.bz2

  • libiconv-1.9.2.tar.gz

Adapun perintah untuk melihat keseluruhan bandwidth yang digunakan baik masuk maupun keluar dari ethernet serta totalnya, dapat digunakan perintah:

# /usr/local/bin/ifstat -bT

rl0 rl1 rl2 Total

Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out

23.70 6.76 10.71 17.57 0.47 2.08 34.87 26.41

15.98 2.62 16.72 16.02 0.47 1.45 33.17 20.09

13.75 3.04 0.47 11.82 0.47 1.45 14.69 16.31

57.15 4.28 25.67 26.77 0.47 1.45 83.29 32.50

12.67 9.02 10.65 36.34 0.47 1.45 23.78 46.81

68.84 5.03 13.88 71.97 0.47 1.45 83.19 78.45

56.62 10.01 12.30 74.15 0.94 3.14 69.85 87.29

  1. iftop

Dengan program ini kita dapat melihat penggunaan bandwidth per klien yang masuk dan keluar. Asyiknya lagi, program ini menampilkan bandwidth yang digunakan oleh tiap klien dalam bentuk graphic. Klien yang menggunakan bandwidth terbanyak ditempatkan pada posisi teratas. Graphic dalam bentuk diagram menyamping ini menampilkan koneksi klien ke host yang dituju beserta besar bandwidth yang digunakan oleh klien.

Program iftop dapat diinstall dengan perintah:

# cd /usr/ports/net-mgmt/iftop

# make install clean

File yang dibutuhkan dalam installasi ini adalah:

  • iftop-0.17.tar.gz

Untuk menggunakan iftop dan memonitor penggunaan bandwidth klien, kita dapat mengetikkan perintah:

# /usr/local/bin/iftop

# /usr/local/bin/iftop -i rl1

Option –i adalah kepanjangan dari interface, artinya kita ingin melihat penggunaan bandwidth dari klien yang terhubung ke interface rl1.

  1. trafshow

Dengan program ini, kita dapat memonitor paket-paket yang melewati server yang kita miliki maupun paket-paket yang melalui jalur serial atau modem. Dan informasi yang ditampilkan pun lebih mudah untuk kita pahami dan kita mengerti.

Sebelum kita menggunakannya, setidaknya kita perlu menginstall program ini terlebih dahulu. Untuk itu masuk ke direktori /usr/ports/net-mgmt/trafshow/ dan jalankan perintah untuk menginstallnya.

# cd /usr/ports/net/trafshow

# make install clean

File yang dibutuhkan dalam installasi ini adalah:

  • trafshow-5.2.2.tgz

Silakan jalankan program ini untuk memonitor paket-paket data yang lewat dengan perintah:

# /usr/local/bin/trafshow

# /usr/local/bin/trafshow -i rl0

Dimana option –i adalah kepanjangan dari interface atau kartu jaringan yang ingin dimonitor.

  1. tcpdump

Kita dapat menggunakan perintah tcpdump untuk melihat paket-paket tcp baik yang datang maupun yang keluar secara terus-menerus. Juga bisa kita lihat dari mana dan ke mana paket tersebut berlangsung. Program ini akan menampilkan terus-menerus permintaan-permintaan yang ada setiap permintaan terjadi dan terlayani dan untuk keluar dari program ini kita cukup menggunakan kombinasi tombol Ctrl+C.

Untuk menginstall tcpdump, berikut ini langkah-langkahnya:

# cd /usr/ports/net/tcpdump

# make install clean

File yang dibutuhkan dalam installasi ini adalah:

  • tcpdump-3.9.4.tar.gz

  • bison-1.75.tar.bz2

# /usr/sbin/tcpdump -i rl0

  1. netstat

Jika Anda ingin melihat koneksi yang terjadi, dari mana saja dan ke mana saja juga koneksi apa saja yang terjadi, telah terjadi atau belum, masih terjadi ataupun sudah tidak terjadi koneksi lagi, Anda dapat menggunakan program atau perintah netstat. Dengan perintah ini semua informasi yang Anda inginkan akan ditampilkan sesuai dengan atribut yang Anda ikutkan.

Program netstat telah ada secara default pada FreeBSD, kita tidak perlu menginstallnya, hanya cukup menjalankan perintahnya saja.

router# /usr/bin/netstat -ta

Active Internet connections (including servers)

Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp4 0 0 router.netrjs-3 192.168.123.2.2740 ESTABLISHED

tcp4 0 0 *.netrjs-3 *.* LISTEN

tcp4 0 0 *.smux *.* LISTEN

udp4 0 0 *.snmp *.*

div4 0 0 *.natd *.*

icm4 0 0 *.* *.*

Active UNIX domain sockets

Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr

c125eb7c stream 0 0 0 c125ec94 0 0

c125ec94 stream 0 0 0 c125eb7c 0 0

c125ee38 stream 0 0 c1251bb0 0 0 0 /var/run/devd.pipe

c125e690 dgram 0 0 0 c125ed20 0 0

c125ed20 dgram 0 0 c126f550 0 c125e690 0 /var/run/logpriv

c125edac dgram 0 0 c126f660 0 0 0 /var/run/log

all_BSD_Chapter 3

Posted: Mei 23, 2009 in linux's

SSH Server for Remote Machine

  1. Introduction

Untuk memudahkan seorang administrator dalam mengatur dan memonitor komputer server, tanpa harus berada di depan komputer tersebut (yang tentunya akan melelahkan), terdapat beberapa perangkat lunak yang dapat melakukan fungsi remote terhadap server. Antara lain yang dikenal dalam lingkungan Unix dan Linux adalah telnet, rlogin, dan ssh. Namun ssh lah yang handal dalam segi keamanan.

  1. Menjalankan SSHD

Ssh pada FreeBSD telah terinstal secara default. Administrator hanya perlu mengaktifkan layanan ssh tersebut melalui utilitas Sysinstall. Untuk dapat melakukan hal itu, terlebih dahulu login sebagai root, kemudian jalankan Sysinstall dengan mengetikkan perintah berikut:

# sysinstall

Jika sudah, arahkan kursor pada label OK dan tekan Enter. Kemudian keluar dari menu Sysinstall. Reboot komputer untuk mengaktifkan perubahan dengan mengetikkan perintah berikut:

# reboot

Saat Anda menghidupkan ulang komputer, Anda akan diminta untuk menekan Enter untuk mengaktifkan mode fast+insecure startup. Permintaan ini hanya sekali ini saja, sehingga Anda tidak perlu khawatir.

Lantas, pada menu utama Sysinstall pilih Configure kemudian tekan Enter seperti pada gambar 4.28. Kemudian muncul menu konfigurasi FreeBSD (Gambar 3.1), pilih menu Networking dan tekan Enter. Setelah itu, sorot kursor ke bawah sampai menemukan service sshd. Tandai service tersebut dengan menekan Space Bar

Konfigurasi

Setelah server dihidupkan ulang, lakukan konfigurasi pada file /etc/ssh/sshd_config.

# ee /etc/ssh/sshd_config

Kemudian cari baris yang mengandung kata berikut:

#PasswordAuthentication no

dan ubahlah menjadi:

PasswordAuthentication yes

Jika sudah, keluar dan simpan hasil perubahan dengan menekan tombol Esc dan Enter dua kali. Konfigurasi ini dimaksudkan agar klien dapat melakukan ssh ke server berdasarkan autentikasi password.

Setelah itu, restart service sshd untuk mengaktifkan perubahannya dengan mengetikkan perintah berikut ini:

# /etc/rc.d/sshd reload

Untuk melihat apakah apakah SSHD telah berjalan, dapat menggunakan perintah sockstat. Perintah ini sebenarnya adalah untuk melihat aplikasi yang membuka port pada komputer Anda.

# sockstat –l

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS

root sshd 463 3 tcp6 *:22 *:*

root sshd 463 4 tcp4 *:22 *:*

root sendmail 391 4 tcp4 127.0.0.1:25 *:*

root syslogd 260 4 dgram /var/run/log

root syslogd 260 5 dgram /var/run/logpriv

root syslogd 260 6 udp6 *:514 *:*

root syslogd 260 7 udp4 *:514 *:*

root devd 226 4 stream /var/run/devd.pipe

Sekarang, server tersebut sudah dapat dikendalikan dari komputer lain dalam satu jaringan. Atau bila server tersebut memiliki alamat IP publik, maka server itu dapat dikendalikan dari belahan dunia manapun asalkan tersedia koneksi Internet. Untuk dapat mengendalikan server dari jauh, komputer klien harus memiliki software ssh client. Salah satu yang cukup populer adalah putty, berjalan pada platform Windows. Program freeware ini dapat di download melalui alamat website: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe.

Demi alasan keamanan, maka kita perlu untuk mengeset server ssh kita supaya hanya bisa dijalankan oleh user tertentu yang tergabung dalam group wheel misalnya. Untuk keperluan tersebut, perlu kita tambahkan pada file /etc/ssh/sshd_config baris berikut ini:

AllowGroups wheel

Config di atas menandakan bahwa hanya user yang termasuk dalam group wheel saja yang diizinkan untuk mengakses secara remote.

Atau, kita juga bisa mengatur agar hanya user tertentu yang bisa login melalui ssh dengan menambahkan baris berikut:

AllowUsers 1smail bhuedies

Hmm, atau misalnya ada user yang bandel dan menyalahgunakan akses ssh yang diberikan kepadanya misalnya, maka kita dapat membekukan user tersebut dan menolak loginnya ke ssh dengan menambahkan baris berikut:

DenyUsers nakal

Kadangkala, saya mengakses ssh menjadi lambat sekali untuk diautentikasi. Belakangan saya baru tahu bahwa konfigurasi UseDNS seharusnya no.

UseDNS no

Sebagai catatan, baris-baris yang ditambahkan di atas, dapat diletakkan dimanapun sesuka Anda. Untuk alasan kerapihan letakkan saja pada baris paling bawah yaa.

Untuk lebih jelasnya mengenai konfigurasi sshd ini, dapat Anda baca pada:

# man sshd_config