1. Pembatasan quota hardisk/storage file sistem.
2. Pembatasan resource memory, CPU, access dsb.
Untuk pembatasan quota hardisk/storage file sistem bisa kita lakukan sbb:
Recompile kernel anda dengan menyertakan
option
options QUOTA
Aktifkan quota startup lewat /etc/rc.conf
dengan menambahkan:
enable_quotas="YES"
Aktifkan quota juga lewat /etc/fstab
untuk file sistem:budsz:~/public_html$ df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 295M 47M 225M 17% /
/dev/ad0s1g 2.9G 190M 2.5G 7% /home
/dev/ad0s1e 4.3G 3.1G 851M 79% /usr
/dev/ad0s1f 386M 65M 290M 18% /var
procfs 4.0K 4.0K 0B 100% /proc
Sekarang kita akan mengaktifkan quota untuk /home
saja, lazimnya spt hostingan untuk meng-quota real/virtual user. Untuk mengaktifkannya bisa kita sunting file /etc/fstab
:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1g /home ufs rw 2 2
menjadi:/dev/ad0s1g /home ufs rw,userquota,groupquota 2 2
Dengan option userquota,groupquota
kita bisa mengatur masing2 quota
berdasarkan user dan group. Untuk meng-quota user/group bisa kita gunakan perintah edquota(8) misalnya:# edquota -u nama_user
# edquota -g nama_group
Sample output-nya sbb:# edquota -u budsz
# edquota -u test
Quotas for user budsz:
/home/budsz: kbytes in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 0, hard = 0)
Jika semuanya benar maka di dalam direktori /home akan terbentuk dua
file yaitu quota.user
dan quota.group
. Untuk 50 satuanya adalah
`kilobytes' dan `jumlah block', 0 (nol) berarti unlimit. Untuk "soft"
adalah batas tidak mutlak quota yg diperbolehkan, untuk "hard" adalah
batas mutlak yang diperbolehkan, artinya jika kita ngeset quota "soft"
50 kbytes dan "hard" 75 kbytes, kita masih diberi kelonggaran sebesar
75 kbytes - 50 kbytes = 25 kbytes, jika "hard" 75 kbytes sudah
tercapai maka tidak ada maaf lagi :-), biasanya setelah "soft" tercapai
sistem akan memberikan warning. Hal ini sama juga dengan satuan inodes.Dengan satuan kbytes saya pikir sudah cukup, jadi inodes cukup diisi 0 (nol) saja baik soft/hard-nya.
Untuk menampilkan laporan quota yg ada pada sistem bisa menggunakan perintah repquota(8).
Untuk pembatasan penggunaan resource CPU, memory, akses dsb kita bisa menggunakan fasilitas yang sudah disediakan via
/etc/login.conf
. Jika
kita perhatikan file /etc/login.conf
ada beberapa option yg bisa kita
pelajari terlebih dahulu.# cat /etc/login.conf
default:\
:passwd_format=md5:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin ~/bin:\
:nologin=/var/run/nologin:\
:cputime=unlimited:\
:datasize=unlimited:\
:stacksize=unlimited:\
:memorylocked=unlimited:\
:memoryuse=unlimited:\
:filesize=unlimited:\
:coredumpsize=unlimited:\
:openfiles=unlimited:\
:maxproc=unlimited:\
:sbsize=unlimited:\
:vmemoryuse=unlimited:\
:priority=0:\
:ignoretime@:\
:umask=022:
Diatas adalah contoh isi dari file /etc/login.conf
, aturan penulisan dipisahkan dengan "tanda kutip dua"
untuk masing2 keyword dan isinya, selanjutnya backslash (\) digunakan meneruskan perintah sesudahnya, hal
ini ditujukan untuk memperpendek penulisan konfigurasi melebar ke kanan. Saya akan menjelaskan beberapa
keyword diatas bedasarkan bahasa saya sendiri :-).default
adalah login class yang digunakan untuk assign aturan selanjutnya. Untuk login class ini bebas anda
tentukan sendiri asalkan nanti match dengan login kelas yang ada tentukan di file /etc/master.passwd
.
default
spt arti dari kata ini merupakan standar login class yang digunakan oleh sistem.passwd
_format adalah tipe encrypt password yang dipilih untuk login user.welcome
adalah ucapan selamat datang dari sistem kepada user yg telah berhasil login, standart yang dipake adalah
/etc/motd
.setenv
adalah setting variable yg digunakan di lingkungan user, dalam hal ini path direktori email, mode FTP yg
digunakan dsb.path
adalah mengarahkan letak dari file-file binary yg bisa diexecute oleh user.nologin
digunakan untuk sistem yg tidak memerlukan login shell biasanya untuk user yg ngehandle aplikasi daemon.cputime
adalah jumlah waktu maksimum CPU yg dikonsumsi oleh proses user.maxproc
adalah jumlah maksimal proses user yg diijinkan oleh sistem.Untuk keterangan lainnya bisa anda baca manual pagenya di login.conf(5) dan beberapa referensi handbook di https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/security-resourcelimits.html#resource-limits.
Anda bisa memambahkan beberapa login class di
/etc/login.conf
sesuai dengan yang anda butuhkan. Tetapi
untuk default
class jangan sekali-kali anda hapus karena itu akan diperlukan untuk user sistem yg ada
secara default. Salah satu kasus jika anda create user baru, dan beberapa login class untuk keperluan
system (daemon, dialer dsb). Untuk itu silahkan anda tambahkan dengan format sbb:login_class:\
:foo_1:\
:foo_2:\
:foo_3:\
:end_of_foo:
Contoh lain misalnya saya ingin mengijinkan user budsz
untuk running proses baik foreground/background sebanyak 10 proses saja. Maka bisa implementasikan sbb:budszproc:\
:maxproc=10:\
:tc=default:
Kita buat login class budszproc
di /etc/login.conf
dan membatasi proses maksimum 10 (maxproc) proses saja
dan tc
adalah keyword yg digunakan untuk forward option2 lainnya ke login class default
dengan kata lain macproc
menggunakan yg ada di login class budszproc
dan option lainnya menggunakan option yg ada di
login class default
. Jangan lupa nge-build ulang /etc/login.conf.db
karena secara default sistem tidak
akan membaca /etc/login.conf
tetapi /etc/login.conf.db
.Setelah kita mendefinisikan login class selanjutnya kita mengedit
/etc/master.passwd
, saya merekomendasikan
menggunakan chpass(1):# chpass budsz
Login: budsz
Password: $1$FjFYsW2C$vaOT8pWHHCyEpgtXccld/1
Uid [#]: 1000
Gid [# or name]: 100
Change [month day year]:
Expire [month day year]:
Class: budszproc
Home directory: /home/budsz
Shell: /bin/sh
Full Name: Budi Yanto
Office Location:
Office Phone:
Home Phone:
Other information:
Tinggal tambahkan login class yg sudah kita definisikan di field Class:
. Kalo mau edit sendiri
/etc/master.passwd
juga boleh2 aja deh. Misalnya begini:# grep budsz /etc/master.passwd
budsz:$1$FjFYsW2C$vaOT8pWHHCyEpgtXccld/1:1000:100: :0:0:Budi Yanto:/home/budsz:/bin/sh
Nah tinggal tambah login classnya di field ke 5, terus kita build /etc/master.passwd
via pwd_mkdb(8)# pwd_mkdb /etc/master.passwd
Tidak ada komentar:
Posting Komentar