Rabu, 27 April 2011

File Transfer Protocol


FTP (singkatan dari File Transfer Protocol) adalah sebuah protokol Internet yang berjalan di dalam lapisan aplikasi yang merupakan standar untuk pentransferan berkas (file) komputer antar mesin-mesin dalam sebuah internetwork.
FTP merupakan salah satu protokol Internet yang paling awal dikembangkan, dan masih digunakan hingga saat ini untuk melakukan pengunduhan (download) dan penggugahan (upload) berkas-berkas komputer antara klien FTP dan server FTP. Sebuah Klien FTP merupakan aplikasi yang dapat mengeluarkan perintah-perintah FTP ke sebuah server FTP, sementara server FTP adalah sebuah Windows Service atau daemon yang berjalan di atas sebuah komputer yang merespons perintah-perintah dari sebuah klien FTP. Perintah-perintah FTP dapat digunakan untuk mengubah direktori, mengubah modus transfer antara biner dan ASCII, menggugah berkas komputer ke server FTP, serta mengunduh berkas dari server FTP.
Sebuah server FTP diakses dengan menggunakan Universal Resource Identifier (URI) dengan menggunakan format ftp://namaserver. Klien FTP dapat menghubungi server FTP dengan membuka URI tersebut.
FTP menggunakan protokol Transmission Control Protocol (TCP) untuk komunikasi data antara klien dan server, sehingga di antara kedua komponen tersebut akan dibuatlah sebuah sesi komunikasi sebelum transfer data dimulai. Sebelum membuat koneksi, port TCP nomor 21 di sisi server akan "mendengarkan" percobaan koneksi dari sebuah klien FTP dan kemudian akan digunakan sebagai port pengatur (control port) untuk (1) membuat sebuah koneksi antara klien dan server, (2) untuk mengizinkan klien untuk mengirimkan sebuah perintah FTP kepada server dan juga (3) mengembalikan respons server ke perintah tersebut. Sekali koneksi kontrol telah dibuat, maka server akan mulai membuka port TCP nomor 20 untuk membentuk sebuah koneksi baru dengan klien untuk mentransfer data aktual yang sedang dipertukarkan saat melakukan pengunduhan dan penggugahan.
FTP hanya menggunakan metode autentikasi standar, yakni menggunakan username dan password yang dikirim dalam bentuk tidak terenkripsi. Pengguna terdaftar dapat menggunakan username dan password-nya untuk mengakses, men-download, dan meng-upload berkas-berkas yang ia kehendaki. Umumnya, para pengguna terdaftar memiliki akses penuh terhadap beberapa direktori, sehingga mereka dapat membuat berkas, membuat direktori, dan bahkan menghapus berkas. Pengguna yang belum terdaftar dapat juga menggunakan metode anonymous login, yakni dengan menggunakan nama pengguna anonymous dan password yang diisi dengan menggunakan alamat e-mail.

Konfigurasi FTP server publik dengan proftpd :
Pertama-tama Install software proftpd, dengan ./configure && make && make install (apabila lewat source)
Apabila sudah terinstall, biasanya file konfigurasi ada di /etc atau /usr/local/etc dengan nama proftpd.conf. Buka file tersebut dengan teks editor
ServerType standalone # kita ingin proftpd berjalan secara stand alone, tanpa inetd
DefaultServer on
ScoreboardFile /var/run/proftpd.scoreboard
Port 21 # Port Standar dari FTP
Umask 022 # Merupakan representasi lain sari chmod 644, jadi user lain hanya bisa membaca file saja
User nobody
Group nogroup #untuk keamanan, maka FTP servis ini berjalan bukan daru user maupn group manapun
#Untuk FTP Server Publik (Anonymous)
<Anonymous /data/ftp>
User ftp
Group ftp
UserAlias anonymous ftp # user ftp = anonymuus – definisi seperti definisi variabel di bahasa pemrograman
MaxClients 10 #jumlah klien maksimum anonymous yang login
HideUser root # Agar klien tidak dapat membuka file yang dimilki root
<Limit WRITE>
AllowAll
</Limit>
<Limit READ DIRS>
IgnoreHidden on #Membatasi agar user lain tidak bisa membuka file hidden
</Limit>
</Anonymous>
Dengan konfigurasi seperti diatas, FTP Publik ini oleh user Anonymous hanya bisa dibaca. Ia tidak bisa meng-upload file atau menghapus file di dalam file ini.

Rabu, 13 April 2011

Network File Manager

Sistem berkas jaringan (Inggris: network file system disingkat NFS) adalah sebuah kumpulan protokol yang digunakan untuk mengakses beberapa sistem berkas melalui jaringan. Spesifikasi NFS didefinisikan dalam RFC 1094, dan saat ini telah mencapai versi 3 yang didefinisikan dalam RFC 1813.
NFS merupakan sebuah sistem berkas terdistribusi yang dikembangkan oleh Sun Microsystems Inc. pada awal dekade 1980-an yang menjadi standar de facto dalam urusan sistem berkas terdistribusi. NFS didesain sedemikian rupa untuk mengizinkan pengeksporan sistem berkas terhadap jaringan yang heterogen (yang terdiri dari sistem-sistem operasi yang berbeda dan platform yang juga berbeda). Teknologi NFS ini dilisensikan kepada lebih dari 200 vendor komputer dan jaringan, dan telah dibuat implementasinya pada banyak platform dan sistem operasi, termasuk di antaranya adalah UNIX, GNU/Linux, Microsoft Windows, dan lingkungan mainframe.
NFS dapat mengizinkan klien-klien untuk menemukan dan mengakses berkas yang disimpan di dalam server jaringan jarak jauh. Memang, desain awal spesifikasi NFS dikhususkan untuk penggunaan dalam jaringan lokal (LAN) dan tidak dioptimalkan untuk penggunaan dalam WAN. Tapi, versi NFS 3 yang digunakan saat ini dapat digunakan dalam jaringan WAN, sebaik ketika ia bekerja di dalam LAN. Fitur-fitur yang dimiliki oleh NFS versi 3 adalah sebagai berikut:
§  Mendukung ukuran berkas hingga satuan Terabyte, dengan menggunakan indikator ukuran berkas hingga 64-bit (pada versi sebelumnya, hanya mengimplementasikan indikator ukuran berkas hingga 32-bit saja, sehingga total ukuran berkas maksimum adalah 4 gigabyte).
§  Ukuran maksimum paket data yang didukung adalah 64 Kilobyte (pada versi sebelumnya, hanya mencapai 8 KB untuk tiap paketnya, sehingga lebih lama dalam melakukan transfer data dari satu host ke host lainnya yang menjalankan NFS).
§  Dapat memilih apakah hendak menggunakan protokol lapisan transport UDP atau TCP (pada versi sebelumnya, NFS hanya menggunakan protokol lapisan transport UDP sehingga kurang bagus diimplementasikan dalam jaringan WAN)
§  Server dapat melakukan penge-cache-an terhadap request yang dilakukan oleh klien.
NFS menggunakan arsitektur protokol jaringan berlapis (layered protocol) yang dibuat berdasarkan model referensi jaringan OSI, seperti yang ditunjukkan dalam tabel berikut.
Lapisan OSI
Protokol NFS
Physical Layer
Apa saja (yang digunakan secara umum adalah Ethernet)
Data-link Layer
Apa saja (yang digunakan secara umum adalah Ethernet)
Network Layer
Transport Layer
Session Layer
Remote Procedure Call (RPC) Protocol
Presentation Layer
Application Layer
Network File System (NFS) dan Network Information System (NIS)
NFS diimplementasikan sebagai sebuah sistem client/server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan di atas workstation. NFS Server akan menggunakan protokol NFS untuk mengekspor sistem berkas yang dimilikinya kepada klien NFS agar dapat dibaca ole klien, seolah-olah sistem berkas remote tersebut merupakan sistem berkas yang dimiliki oleh klien secara lokal.
NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP dengan port number 2049 untuk komunikasi antara klien dan server di dalam jaringan. Klien NFS selanjutnya akan mengimpor sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas lokal kepada klien. Mesin-mesin yang menjalankan perangkat lunak NFS server dapat saling berhubungan dengan perangkat lunak NFS server untuk membaca, menulis, memodifikasi, menghapus berkas dan direktori yang berada di dalam server dengan menggunakan request RPC seperti halnya READ, WRITE, CREATE, dan MKDIR. Berkas dan direktori remote akan seolah-olah terlihat sebagai berkas lokal bagi pengguna. Sebelum dapat mengakses berkas remote di dalam struktur direktori dalam sistem berkas UNIX dari dalam NFS Server, administrator harus melakukan mounting terlebih dahulu bagian dari sistem berkas UNIX lokal yang akan dibuat dapat diakses oleh klien dan menetapkan izin akses terhadap berkas atau direktori.
NFS umumnya digunakan dalam platform-platform UNIX, sementara Windows menggunakan protokol berbagi-berkas yang disebut sebagai Server Message Block (SMB), sehingga dua sistem tersebut aslinya tidak kompatibel satu sama lainnya. Agar dapat saling mendukung, dalam sistem UNIX harus diinstalasikan klien protokol SMB semacam SAMBA atau menginstalasikan klien protokol NFS dalam sistem operasi UNIX, yang dapat diperoleh dari beberapa vendor. Microsoft menyediakan Windows Services for Unix (SFU) yang dapat digunakan dalam sistem operasi Windows 2000 Server, dan Windows Server 2003 sebagai perangkat lunak klien protokol NFS, sehingga menjadikan sistem Windows dapat berinteroperasi dengan sistem NFS dalam sistem operasi UNIX. Selain SFU, beberapa vendor lainnya juga membuat implementasi NFS dalam platform Windows, seperti halnya NetManage dengan ChameleonNFS, Hummingbird International dengan NFS Maestro, dan masih banyak lainnya.

·         Konfigurasi pada server

Skenario

Dalam skenario ini kita akan menempelkan harddisk yang ada di linuxconfig.org (IP address 10.1.1.200) ke client IP address 10.1.1.100).

Persyaratan

Install NFS
apt-get install nfs-common nfs-kernel-server
Pastikan mesin kita mendukung NFS ketik
$ cat /proc/filesystems 
keluar
nodev     nfs
nodev     nfs4
nodev     nfsd

NFS daemon harusnya mendengerkan port 2049 dan portmap pada port 111. 
more /etc/services | grep 111
keluar
sunrpc                    111/tcp                   portmapper            # RPC 4.0 portmapper
sunrpc                    111/udp                 portmapper
more /etc/services | grep 2049
keluar
nfs                          2049/tcp                                # Network File System
nfs                          2049/udp                                              # Network File System

Cara lain untuk cek menggunakan
rpcinfo -p  
keluar
  program vers proto   port
   100000    2   tcp    111  portmapper
   100000    2   udp    111  portmapper
   100024    1   udp  56835  status
   100024    1   tcp  53408  status
   100021    1   udp  50903  nlockmgr
   100021    3   udp  50903  nlockmgr
   100021    4   udp  50903  nlockmgr
   100021    1   tcp  36404  nlockmgr
   100021    3   tcp  36404  nlockmgr
   100021    4   tcp  36404  nlockmgr
   100003    2   udp   2049  nfs
   100003    3   udp   2049  nfs
   100003    4   udp   2049  nfs
   100003    2   tcp   2049  nfs
   100003    3   tcp   2049  nfs
   100003    4   tcp   2049  nfs

Server /etc/exports file

Kita perlu mendefinisikan folder yang ingin di share
vi /etc/exports
misalnya
/home/nfs/ 10.1.1.100(rw,sync)  - /home/nfs utk IP 10.1.1.100 read, write permissions & synchronized mode
/home/nfs/ 10.1.1.0/24(ro,sync) - /home/nfs utk IP 10.1.1.0 netmask 255.255.255.0 read only permissions and synchronized mode
/home/nfs/ 10.1.1.100(rw,sync) 10.1.1.10(ro,sync)            export /home/nfs directory for host with IP 10.1.1.100 with read, write permissions, synchronized mode, and also export /home/nfs directory for hosts with IP 10.1.1.10 with read only permissions and synchronized mode
/home/nfs/ 10.1.1.100(rw,sync,no_root_squash)                export /home/nfs directory for host with IP 10.1.1.100 with read, write permissions, synchronized mode and the remote root user will be treated as a root and will be able to change any file and directory.
/home/nfs/ *(ro,sync)            export /home/nfs directory for any host with a read only permission and synchronized mode
/home/nfs/ *.linuxconfig.org(ro,sync)  export /home/nfs directory for any host within linuxconfig.org domain with a read only permission and synchronized mode
/home/nfs/ foobar(rw,sync)   export /home/nfs directory for hostname foobar with read, write permissions and synchronized mode
contoh
/home/backup *(ro,sync,subtree_check)
/home/backup/public *(rw,sync,subtree_check)
/home/library *(ro,sync,subtree_check)
/home/media *(ro,sync,subtree_check)

Restart NFS daemon

Setelah /etc/exports file di edit, kita dapat me-restart NFS daemon.
/etc/init.d/nfs-kernel-server restart 
Redhat users
/etc/init.d/nfs restart 
Jika ingin menambahkan NFS /etc/exports file, kita perlu mengedit & merestart kembali, atau menggunakan perintah
exportfs -ra 

·         Konfigurasi Client
Install paket
apt-get install nfs-common nfs-kernel-server
Cara mount
mount ip-address-server:/folder/share /folder/lokal
mount -t nfs ip-address-server:/folder/share /folder/lokal
mount.nfs ip-address-server:/folder/share /folder/lokal

contoh yang agak rumit

Ø  Asumsi Server NFS 192.168.0.1
Ø  Nama Folder /album /iso /media /library /backup /repository /public

mkdir /mnt/album
mkdir /mnt/iso
mkdir /mnt/media
mkdir /mnt/library
mkdir /mnt/backup
mkdir /mnt/repository
mkdir /mnt/public
mount -t nfs 192.168.0.1:/nfs/album /mnt/album
mount -t nfs 192.168.0.1:/nfs/iso /mnt/iso
mount -t nfs 192.168.0.1:/nfs/media /mnt/media
mount -t nfs 192.168.0.1:/nfs/library /mnt/library
mount -t nfs 192.168.0.1:/nfs/backup /mnt/backup
mount -t nfs 192.168.0.1:/nfs/repository /mnt/repository
mount -t nfs 192.168.0.1:/nfs/Public /mnt/public

Pranala Menarik

Ø  NFS: Mempersiapkan Ubuntu Untuk NFS
Ø  NFS: Konfigurasi Server
Ø  NFS: Konfigurasi Client
Ø  NFS: Penggunaan nfswatch