freebsd basic setting

6

Click here to load reader

Upload: telkom-institute-of-management

Post on 20-Jun-2015

700 views

Category:

Education


4 download

DESCRIPTION

a tutorial guide explaining how to install FreeBSD as a server, an experience at IMTelkom (http://www.imtelkom.ac.id)

TRANSCRIPT

Page 1: FreeBSD Basic Setting

Standar Instalasi FreeBSD @ Institut Manajemen Telkom (http://www.imtelkom.ac.id)

Maintenance FreeBSD – Standard

Beberapa aplikasi yang digunakan untuk maintenance system :

1. program status : ps – kill # ps ax

akan menampilkan semua aplikasi yang aktif dengan process ID-nya masing2

# ps ax | grep http

473 ?? Ss 0:06.44 /usr/local/sbin/httpd -DSSL

33640 ?? I 0:00.04 /usr/local/sbin/httpd -DSSL

33641 ?? I 0:00.04 /usr/local/sbin/httpd -DSSL

akan menampilkan status aplikasi HTTP, apakah aktif atau tidak. Jika aktif akan ditampilkan "process ID"-nya (pada contoh diatas ada 1 process ID untuk

daemon-nya, yaitu 473, dan 2 process ID untuk child process, yaitu 33640 dan 33641) yang kemudian bisa dimatikan dengan command "kill process_ID"

# kill –HUP 1234

akan me-restart aplikasi dgn process ID = 1234 (agar aplikasi tersebut membaca kembali file2 setting) 2. system resource maintenance : top – sysctl

# top –bt

48 processes: 48 sleeping

Mem: 323M Active, 33M Inact, 85M Wired, 19M Cache, 57M Buf, 996K Free

Swap: 8192M Total, 131M Used, 8061M Free, 1% Inuse

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND

6337 squid 96 0 335M 305M select 93:35 4.93% 4.93% squid

37337 root 96 0 5132K 2752K select 1:42 0.20% 0.20% mpd

307 root 96 0 1324K 252K select 0:05 0.10% 0.10% syslogd

532 mysql 20 0 57356K 2796K kserel 75:17 0.00% 0.00% mysqld

top akan menampilkan setiap aplikasi yg aktif dan tingkat konsumsinya terhadap prosesor dan memory. Normalnya suatu aplikasi mengkonsumsi prosesor kurang

dari 20% (pada contoh diatas squid hanya menggunakan 4.93%) # sysctl -a | grep file

kern.maxfiles: 4096

kern.openfiles: 2293

kern.maxfilesperproc: 3686

# sysctl -a | grep nmbcluster

kern.ipc.nmbclusters: 32768

sysctl akan menampilkan resource yg tersedia dan yg telah terpakai di system

3. file maintenance : secure copy – copy – move – remove – change owner/mode cp [-r] /source_path/source_file /target_path/target_file # cp /home/manager/myfile.dat /root/yourfile.dat

duplikasi file "myfile.dat" di /home/manager menjadi "yourfile.dat" di "/root" parameter "–r" berarti recursive (copy dilakukan pada semua file dan folder)

Page 2: FreeBSD Basic Setting

Standar Instalasi FreeBSD @ Institut Manajemen Telkom (http://www.imtelkom.ac.id)

mv /source_path/source_file /target_path/target_file # mv /home/manager/myfile.dat /root/yourfile.dat

memindahkan file "myfile.dat" di /home/manager ke "yourfile.dat" di "/root" parameter "–r" berarti recursive (move dilakukan pada semua file dan folder)

rm [-r] /path/file # rm /home/manager/myfile.dat

menghapus file "myfile.dat" di /home/manager parameter "–r" berarti recursive (remove dilakukan pada semua file dan folder)

find /path –name "filename" –print > list.txt rm -r < `cat list.txt` # rm –r < /home/manager/myfile.dat

menghapus semua file "filename" di /path (sangat bermanfaat untuk menghapus WS_FTP.LOG dan Thumbs.db)

scp [user@source_server]:/source_path/source_file [user@target_server]:/target_path/target_file # scp manager@www:/home/manager/myfile.dat /root/yourfile.dat

akan menduplikasi file "myfile.dat" di home directory manager di server www menjadi "yourfile.dat" di localhost pada folder "/root" catatan: scp (secure copy) menggunakan port 22 (SSH) sehingga semua transaksi akan di-enkripsi.

chown [-R] user:group /path/file # chown manager:wheel /home/manager/myfile.dat

mengubah kepemilikan file "myfile.dat" di /home/manager menjadi milik manager

dengan group wheel parameter "–R" berarti recursive (chown dilakukan pada semua file dan folder)

chmod [-R] xyz /path/file dimana x,y,z adalah mode Read-Write-eXecute (dengan bobot R=4, W=2, X=1) dan x adalah mode akses untuk pemilik, y adalah mode akses untuk bukan pemilik

tapi masih dalam 1 group dengan pemilik, y adalah mode akses untuk diluar pemilik dan juga diluar group pemilik (biasa disebut dengan istilah “world”) misal : x=4 berarti R--, x=6 berarti RW-, x=7 berarti RWX # chmod 740 /home/manager/myfile.dat

mengubah mode akses file "myfile.dat" di /home/manager menjadi : 7 RWX, berarti manager dapat membaca, menulis, dan mengeksekusi file tsb 4 R, berarti user non manager tapi dalam group wheel hanya bisa membaca

0 berarti user lain (dan juga group lain) tidak boleh mengakses file tsb parameter "–R" berarti recursive (chown dilakukan pada semua file dan folder)

4. disk maintenance : disk usage – disk free – file system check # du /etc

106 /etc/defaults

menampilkan jumlah inode (usage) dari setiap file atau folder yg ada di /etc

Page 3: FreeBSD Basic Setting

Standar Instalasi FreeBSD @ Institut Manajemen Telkom (http://www.imtelkom.ac.id)

# df –k

/dev/ad8s1a 4058062 60984 3672434 2% /

/dev/ad8s1h 3008718 508994 2259028 18% /data/log

/dev/ad8s1f 507630 21702 445318 5% /data/mysql

/dev/ad8s1e 63214 4386 53772 8% /data/web

/dev/ad8s1d 4058062 1462086 2271332 39% /usr

/dev/ad8s1g 55854154 50582926 802896 98% /webcache

menampilkan penggunaan hard disk (dalam kilobyte) untuk setiap mount point

jika ada error di suatu mount point, seperti : - aplikasi df melaporkan usage suatu mount point lebih dari 100% - kernel panic, dimana kernel tidak dapat mounting suatu mount point

- server mati tanpa melalui proses shutdown (karena listrik mati) maka lakukan file system check (seperti aplikasi chkdsk (check disk) di windows) : # fsck –y

<selanjutnya kernel FreeBSD akan memeriksa setiap mount point, dan jika

ada error akan langsung diperbaiki>

Setelah melakukan file system check sebaiknya server di-restart dengan perintah # reboot

5. mencari file atau folder : locate – find

# locate index.html

mencari file atau folder yang memiliki frase "index.html" catatan: locate menggunakan daftar file yg diupdate setiap Senin, untuk

mengupdate-nya sendiri bisa dilakukan dengan command /usr/libexec/locate.updatedb

# find /usr -name "index.html" -print

sama seperti locate yaitu mencari file atau folder yang memiliki frase "index.html", bedanya "find" benar2 mencarinya satu demi satu (tidak memiliki database tersendiri) dan dapat dispesifikkan untuk mencari hanya pada folder /usr

6. traffic maintenance : netstat – trafshow – sockstat # netstat –n –i | grep ng

untuk melihat jumlah koneksi VPN yang aktif # netstat –r

untuk melihat table routing

# netstat –m

untuk melihat statistic penggunaan memory buffer untuk keperluan network # netstat –i

untuk melihat statistic paket di setiap interface (dan setiap protocol) # trafshow

From Address To Address Prot Bytes

=========================================================================

h614287.serverkompete..https 222.124.158.130..52994 tcp 1500

222.124.158.130..52994 h614287.serverkompete..https tcp 138

222.124.158.130..56960 64.38.4.83..http tcp 64

Page 4: FreeBSD Basic Setting

Standar Instalasi FreeBSD @ Institut Manajemen Telkom (http://www.imtelkom.ac.id)

trafshow (show traffic) digunakan untuk melihat trafik di ethernet card dengan

fungsi yang serupa dengan command “netstat –n” namun dengan beberapa kelebihan. Trafshow merupakan aplikasi 3rd party yg harus diinstall melalui port (tidak ada konfigurasi yg perlu di-setting) : # cd /usr/ports/net/trafshow

# make install clean

# sockstat

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS

www httpd 40840 3 tcp4 10.14.203.100:80 *:*

www httpd 40840 4 tcp46 *:443 *:*

manager sshd 39500 3 stream -> ??

manager sshd 39500 5 tcp4 10.14.203.100:22 10.14.203.105:1044

root sshd 39497 4 stream -> ??

root sshd 39497 5 tcp4 10.14.203.100:22 10.14.203.105:1044

www httpd 38161 3 tcp4 10.14.203.100:80 *:*

www httpd 38161 4 tcp46 *:443 *:*

sockstat (socket statistic) digunakan untuk melihat socket yg sedang aktif

7. cron tabel : crontab cron adalah aplikasi scheduler yg akan menjalankan suatu aplikasi pada waktu

tertentu yg telah dispesifikasikan # crontab -l

akan menampilkan daftar aplikasi yg akan dijalankan

contoh isi crontab untuk menjalankan aplikasi /root/update.sh : 30 23 * * * /root/update.sh dijalankan setiap jam 23:30

*/5 * * * * /root/update.sh dijalankan setiap 5 menit sekali

0 */2 * * * /root/update.sh dijalankan setiap 2 jam sekali

0 0 1 * * /root/update.sh dijalankan setiap tanggal 1 jam 0:0

0 0 * * 1 /root/update.sh dijalankan setiap hari senin

# crontab -e

akan mengedit daftar aplikasi yg akan dijalankan

8. automatic scp : kekurangan dari scp (secure copy) adalah user harus memasukkan password

account di remote server setiap kali melakukan scp. Agar password tidak perlu di-input setiap kali scp dijalankan (terutama jika scp akan dijalankan via crontab), ada beberapa langkah yg harus dilakukan. Untuk automatic SCP dari server A ke server B :

a. login ke server A sebagai user biasa (bukan root) dan jalankan : $ ssh-keygen -b 512 -t dsa

aplikasi ssh-keygen akan membuat 2 file : private key (dengan nama "id_dsa")

dan public key (dengan nama "id_dsa.pub") sepanjang 512 byte dengan enkripsi DSA di folder /home/user/.ssh Tips: jangan mengisi passphrase

b. login ke server tujuan sebagai user biasa (bukan root) dan buat file /home/user/.ssh/authorized_keys dengan mode 600

c. copy isi dari file "id_dsa.pub" (pastikan hanya ada tepat 1 baris) ke file "authorized_keys"

Page 5: FreeBSD Basic Setting

Standar Instalasi FreeBSD @ Institut Manajemen Telkom (http://www.imtelkom.ac.id)

9. manajemen user

membuat user # adduser

Username: manager

Full name: Manager Sisfo

Uid (Leave empty for default):

Login group [manager]: wheel

Login group is wheel. Invite manager into other groups? []:

Login class [default]:

Shell (sh csh tcsh nologin) [sh]:

Home directory [/home/manager]:

Use password-based authentication? [yes]:

Use an empty password? (yes/no) [no]:

Use a random password? (yes/no) [no]:

Enter password: masukkan password

Enter password again: masukkan kembali password untuk konfirmasi

Tips: - Full name akan digunakan saat user mengirim email via shell

- user pada mail server tidak perlu menggunakan Shell (pilih "nologin"), dan juga tidak perlu memiliki home directory (pilih /nonexistent)

- Home directory dapat diubah-ubah sesuai peruntukan user Untuk kasus dimana user yg ditambahkan sangat banyak (bulk), seperti pada

pembuatan mail server berbasis NIX account untuk pertama kalinya, admin dapat menggunakan file yg berisi daftar user (jumlah entry dalam file tsb harus tepat 10 field per row dimana setiap field dipisahkan dgn tanda ':') : # cat staf.dat

user1::::::nama_lengkap:::password1

user2::::::nama_lengkap:::password2

# adduser -D -f pegawai.txt -g staf -d /nonexistent -s nologin

menghapus user # rmuser [user]

# rmuser -y -f pegawai.txt menghapus user secara bulk

mengedit informasi user # passwd [user] mengubah password untuk user

# chfn [user] mengubah full name dari user

10. manual aplikasi suatu aplikasi dapat dilihat manualnya dengan : # man squid

11. melihat dan mengedit file text

untuk melihat suatu file text dapat dilakukan dengan : # cat fileteks.txt melihat semua isi file "fileteks.txt"

# head fileteks.txt melihat bagian awal dari file "fileteks.txt"

# tail fileteks.txt melihat bagian akhir dari file "fileteks.txt"

Page 6: FreeBSD Basic Setting

Standar Instalasi FreeBSD @ Institut Manajemen Telkom (http://www.imtelkom.ac.id)

jika file text tersebut selalu bertambah (misal: log-nya apache, log-nya sendmail,

dan log-nya squid), kita bisa melihat perubahannya secara real time dengan : # tail –f /var/log/maillog melihat transaksi email secara real time

Sementara untuk mengedit suatu file text, dapat menggunakan berbagai aplikasi bawaan dari FreeBSD seperti “vi” atau “edit”. Namun tersedia banyak pilihan text

editor sesuai selera user yang bisa diinstall via port di /usr/ports/editors/. 12. mounting file system

untuk menambah suatu file system diluar dari file system yg telah ada : # mount –t [type_file_system] /dev/[nama_device] /mnt

Contoh : # mount –t msdos /dev/ad0 /mnt mounting USB flash disk

# mount –t cd9660 /dev/acd0 /cdrom mounting CDROM

13. setting proxy

jika server berada di belakang proxy dan diperlukan untuk melakukan download dari internet, bisa digunakan aplikasi wget (harus diinstall via port atau 3rd party application) atau cukup men-set proxy agar query HTTP dikirim ke proxy server : # setenv http_proxy http://10.1.1.2:8080

Jika ingin menggunakan wget (dalam kasus download lewat scheduler cron): # cd /usr/ports/ftp/wget

# make install clean

……… < tunggu sampai selesai > ………

# cat /root/.wgetrc jika root yg akan melakukan download

http_proxy=http://10.1.1.2:8080/

Penggunaan proxy ini sangat memudahkan admin saat meng-install port (3rd party software) karena semua file yg dibutuhkan oleh suatu port akan di-download

langsung dari internet