apache kullanıcıya özel dosya alanı nasıl ?

Başlatan reddecks, 26 Temmuz 2010 - 12:51:29

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

reddecks

apache'ye eklediğim her kullanıcıya ait özel bir dosya alanı yani klasor oluşturabilirmiyim? sadece kendi görecek ?

ve o dosyanın boyutunu ayarlayabilirmiyim? yani dosyaya kısıtlı alan
windows tembelliği linux araştırmayı öğretir ....

andirinli

kullanıcı limitleme quota paketi ile yapılır. fakat sistem kullanıcıları için geçerli olan birşey bu. apache yapılandırmasında kullanıcıya özel bir limitlendirme yok diye hatırlıyorum. (belki yeni çıkmış olabilir haberim yok.)
Kasa : RAIDMAX AEOLUS-ATX-WB
PowerSupply :CODEGEN SX500
Anakart : GIGABYTE  GA-970A-DS3
İşlemci :AMD Desktop FX-Series X8120 3.1
Bellek : 4 x 4 GB CORSAIR 1600Mhz, DDR3 CL9 Vegeance
Ekran Kartı : MSI R7 370 GAMING 2G AMD Radeon R7 370 2GB GDDR5 256 Bit
HDD : 4 x Sandisk SSD Plus 480GB
Monitör : 2 x DELL S2240T Dokunmatik

reddecks

ben oluşturacağım  özel klasore limit koymak istiyorum mesela her özel kullanıcı dosyası 1 gb oolsun. uploadı 1 gb dan sonra dosya kabul etmesin.

windows tembelliği linux araştırmayı öğretir ....

Tuxie

mod_cband modülü ile trafik kota gibi değerleri ayarlayabiliyoruz diye biliyorum belki işinize yarar.

sem

Apache ile kimlik denetimi yapmak mümkün... Apache de kimlik denetimini yetkilendirme olarak kullanıcı IP'si, erişmeye çalıştığı içerik gibi bir kaç kıstasa göre yapılıyor.  Benim de pratik olarak bir deneyemim yok... Fakat anahtar kelimleri vereyim size siz araştırırsınız... Authname, AuthType ve Require...  Ayrıca Apache'nin kendi bünyesinde bulunan mod_auth modülü de işinize yarayacak bilgiler arasında.

Ayrıca şuraya da bir bakın derim... Mutlaka işinize yarayacaktır diye düşünüyorum... Dediğim gibi pratik olarak bir bilgim yok.. Ancak bu kadarını diyebiliyorum Apache ile ile ilgili olarak... Belgeler yetersiz kalırsa "Apache Kimlik Denetimi" ya da yukarda verdiğim modülleri aratırsanız yine yeterli belge bulabilirsiniz diye düşünüyorum...


Bunların yanında ayrıca bir tavsiye vereyim... Eğer ki PHP bilginiz varsa _SESSION  süper globalini kullanarak ya da kurabiye (cookie) kullanara kimlik denetinimi ve dosya boyutu kontorlü yapabilirsiniz... PHP ile dediğim gibi kimlik denetimi yapabildiği gibi dosyalarla ilgilide güzel ve işinize yarar fonksiyonları içeriyor (dosya boyutu, dosya adresi ya da sistem komutlarını çalıştırarak dosya sahibini öğrenmek gibi)... Bunu da alternatif olarak düşünebilirsiniz.... Kolay gelsin...


//Reklam yazısı gibi olmuş biraz =) Sonradan okuyunca fark ettim =)=) Kolay gelsin tekrardan...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

reddecks

a) wget http://guvenlihost.com/dosya/mod-cband.zip
b) unzip mod-cband.zip
c) cd mod-cband
ç) sh configure; make; make install

(Son komuttan sonra "checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables"  hatasını alıyorsak aşağıdaki komutu uygulayacağız)
d) chmod 777 /usr/bin/gcc
Ardından tekrar
ç) sh configure; make; make install
komutla eklentimizi derlemiş olduk
e) chmod 000  /usr/bin/gcc
bu komut ile güvenlik önlemimizi tekrar aktif ediyoruz

f) echo 'CBandScoreFlushPeriod 1' >> /etc/httpd/conf/httpd.conf
h) echo 'CBandRandomPulse On' >> /etc/httpd/conf/httpd.conf
Bu iki komut ile modülümüzü aktifleştirmiş olduk

Şimdi hangi sitemize istiyorsak onun httpd.conf dosyasına aşağıdaki kodları ekleyeceğiz.
DirectAdmin için diyelim ki kullanıcı adı sforum olan siteyi limitlemek istiyoruz:
/usr/local/directadmin/data/users/sforum/httpd.conf dosyasını açıp aşağıdaki satırları satırından önce ekliyoruz.

CBandSpeed 5120 10 50
CBandRemoteSpeed 128kb/s 3 6

Burada
5120 = site başına toplam çekilecek kbit miktarı. (5120kbit = 5mbit = 640KB/saniye)
10 = saniyede maksimum 10 ip bağlantısı (burası önemli!)
50 = siteyle iletişim kuran toplam ip bağlantısı
128kb/s = ip başına saniyede 32KB bağlantı hızı
3 = saniyede ip başına bağlantı limiti
6 = ip'nin siteden aynı anda çekebileceği dosya/bağlantı sayısı

Ayarlarımızı yaptıktan sonra /usr/local/directadmin/data/users/sforum/httpd.conf dosyası şöyle görünmeli::



ServerName www.sforum.org
ServerAlias www.sforum.org sforum.org
ServerAdmin webmaster@halkintakimi.net
DocumentRoot /home/sforum/domains/sforum.org/public_html
UseCanonicalName OFF
SuexecUserGroup sforum sforum
CustomLog /var/log/httpd/domains/sforum.org.bytes bytes
CustomLog /var/log/httpd/domains/sforum.org.log combined
ErrorLog /var/log/httpd/domains/halkintakimi.net.error.log

Options +Includes -Indexes
php_admin_flag engine ON

php_admin_flag safe_mode OFF

php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f sforum@sforum.org'
php_admin_value open_basedir /home/sforum/:/tmp:/usr/local/lib/php/

CBandSpeed 5120 10 50
CBandRemoteSpeed 128kb/s 3 6



(Son komuttan sonra "checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables"  hatasını alıyorsak aşağıdaki komutu uygulayacağız)

bu hatayı alıyorum ardından aşağıdaki kodu uyguladığımda

d) chmod 777 /usr/bin/gcc

dosya yok diyor ? gcc dosyası
windows tembelliği linux araştırmayı öğretir ....

Tuxie

apt-get install libapache2-mod-cband  şu komutla da kurulabilir.
       Normalde yükleme işlemi bittikten sonra mod_cband modulü kendisini apache 'ye ekliyor. Eklemediği taktir de asağıdaki yönergeleri uygulamanız yeterli olacaktır.

updatedb

locate mod_cband.so
ile modülümüzün nereye yüklendiğine bakıyoruz.
vim /etc/httpd/conf/httpd.conf dosyasında bulunan LoadModule satırlarının olduğu yere LoadModule cband_module modülün bulunduğu dizin
/etc/init.d/httpd restart ile fedora web sunucumuzu restart ediyoruz.
/etc/init.d/apache2 restart debian web sunucumuzu restart ediyoruz.

Konfigürasyon dosyası :
Şimdi sıra geldi mod_cband.conf dosyasındakı ayarları anlatmaya.

mod_cband direktifleri
Aktarım Hizları

kbps : 1024 bit per second
mbps : 1024*1024 bits per second
gbps : 1024*1024*1024 bits per second
Not : Ön tanımlı olarak kbps kullanılıyor.

Kota

K : 1024 bytes
M : 1024*1024 bytes
G : 1024*1024*1024 bytes
Not : Ön tanımlı K kullanılıyor.

Zaman Periyodları

S : saniye
M : dakika
H : saat
D : gün
W: hafta
Not : Ön tanımlı olarak Saniye kullanılır.

CBandDefaultExceededURL : Transfer limitini geçtiğiniz zaman sizi başka bir url adresine yönlendirir. Eğer bir url adresi belirtmez isek sayfada 503 hatası görürüz.
Kullanımı : CBandDefaultExceededURL URL
Örnek Kullanımı : http://www.murat.ws/bandwith.php

CbandDefaultExceededCode : Url adresi belirtmez isek belirlediğimiz http kodu çıkar.
Kullanımı : CBandDefaultExceededCode HTTP_CODE
Örnek Kullanımı : CBandDefaultExceededCode 509

CbandScoreFlushPeriod : Ön tanımlı değer olarak 1 kullanılır.
Örnek Kullanımı : CBandScoreFlushPeriod 1

CbandSpeed : Virtual hostlarda maksimum kesin hızları ayarlamak için kullanılan parametredir.
Kbps : maksimum transfer hızı
Rps : saniyedeki maksimum istek
Max_conn : Eş zamanlı yapılan maksimum bağlantılar
Kullanımı : kbps rps max_conn
Örnek Kullanımı : CBandSpeed 1024 20 50

CbandRemoteSpeed : Karşi ağdan gelen istemcileri sınırlamak için kullanacağımız parametredir.
Kullanımı : CBandRemoteSpeed kbps rps max_conn
Örnek Kullanımı : CBandRemoteSpeed 40kb/s 6 6 burada denilmek istenen, maksimum 40Kbps/s hız ile en fazla 6 istek ve 6 bağlantı kurabilir.

CbandClassRemoteSpeed : Karşi ağdan gelen istemcileri ip adreslerine göre kısıtlamak için kullanacağımız parametredir.
Kullanımı : CBandClassRemoteSpeed class_name kbps rps
class_name : Karşı ağdan gelen istemci ip adresi
Örnek Kullanımı :

<CBandClass googlebot_class>
CBandClassDst 66.249.64/24
CBandClassDst 66.249.65/24
CBandClassDst 66.249.79/24
</CBandClass>

CBandClassRemoteSpeed googlebot_class 20kb/s 2 3
Yukarıda ki örnekte, googlebot_class adı altında verilen ip adreslerini sınırlandırmıs bulunmaktayız.Bu verilmiş olan ip adresleri en fazla 3 bağlantı açabilir, 2 istekte bulunabilir ve saniyede maksimum 20 kb/s veri çekebilir.

CbandLimit : Bandwith 'nize kota koymak için kullanılır.
Kullanımı : CBandLimit limit
Limit : Belirlediğiniz kota miktari
Birimleri : K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
Örnek Kullanımı : CBandLimit 10M (Toplam bandwith 10 megabyte olduğu zaman trafiği keser ve CbandDefaultExceededCode ile sayfa parametlerini devreye sokar. )

CbandPeriod : Bandwith kullanımlarını verdiğimiz zaman periyodlarında temizlenmesini sağlayan parametredir.
Kullanımı : CBandPeriod period
Kullanım Alanı : <Virtualhost>
Zaman dilimleri :
S : Saniye
M : Dakika
H : Saat
D : Gun
W : Hafta

Örnek Kullanımı : CBandPeriod 1W (1 hafta sonra bandwith istatistiklerini silecektir.)

User Direktifleri : Su anda anlamsiz gelebilir.Asagidaki ornekle daha iyi anliyacaksiniz.

CbandUser : Tanimlamalarımızı kullanıcı bazlı yapmak için bu parametre kullanılabilir.
Kullanımı : <CBandUser user_name>
Örnek Kullanımı : <CBandUser murat_ugur>

CbandUserSpeed : Tanımladığımız cband kullanıcısı için maksimum hız tanımladığımız parametredir.
Kullanımı : CBandUserSpeed kbps rps max_conn
Kullanım Alanı : <CbandUser>
Örnek Kullanımı : CBandUserSpeed 100kb/s 10 5

CbandUserLimit : Cband olarak tanımladığımız kullanıcıya kota koymak için kullanılıyor.
Kullanım Alanı : <CbandUser>
Kullanımı : CBandUserLimit limit
Kullandığı Birimleri : K, M, G, Ki, Mi, Gi
Örnek Kullanımı : CBandUserLimit 10M

CbandUserScoreboard : Cband kullanıcısının scoreboard dosyasıdır.
Kullanım Alanı : <CbandUser>
Örnek Kullanımı : CBandUserScoreboard /var/www/fedoraturkiye.com/scoreboard/

CbandUserPeriod : Cband olarak tanımlanan kullacının bandwith kullanım oranlarının zaman periyodlari halinde temizlenmesi için kullanılan parametredir.
Kullanım Alanı : <CbandUser>
Kullanımı : CBandUserPeriod period
Örnek Kullanımı : CBandUserPeriod 14D

Şimdi sizlere bu cbandUser ne işe yarar biraz açıklayayım. Kısaba bu komutla grublandırma yapabiliyoruz. Her virtualhosta tek tek cband parametlerini yazarak vakit kaybetmektense bir tane cbanduser tanımlayarak bu durumu tek parametreye indirebiliriz. Şimdi aşağıdaki örnekle daha iyi anaşılır olacaktır.

<CBandUser forumlar>
    # 200MB bandwidth limit for user 'forumlar'
    CBandUserLimit 200000

    # redirect to http://www.fedoraturkiye.com/bandwidth_exceeded.html
    # when the limit has been reached
    CBandUserExceededURL http://www.fedoraturkiye.com/bandwidth_exceeded.html

    # user's scoreboard file
    CBandUserScoreboard /var/www/scoreboard

    # a period of time after which the scoreboard will be cleared (5 weeks)
    # (only in >=0.9.5-rc2)
    CBandUserPeriod 5W
</CBandUser>

<VirtualHost *:80>
    ServerName www.murat.ws    # Specify virtualhost's owner
    CBandUser forumlar
</VirtualHost>

<VirtualHost *:80>
    ServerName www.fedoraturkiye.com    # Specify virtualhost's owner
    CBandUser forumlar
</VirtualHost>

Yukarıdaki örnekte bir kullanıcı belirleyip 2 tane virtualhosta kullandık.

Yani forumlar tanımının parametleri 2 tane virtualhostta geçerli kılındı.

Ayrıca CbandClass komutunu da grup olarak kullanabilirsiniz.

# define 'class_1'
<CBandClass class_1>
    CBandClassDst 217.172.231.67
    CBandClassDst 127/8
    CBandClassDst 192.168.0.0/24
    CBandClassDst 10.0.0.20
</CBandClass>

# define 'class_2'
<CBandClass class_2>
    CBandClassDst 192.168.100.100
    CBandClassDst 153.19/16
</CBandClass>

<CBandUser forumlar>
    CBandUserLimit 1000000
    CBandUserExceededURL http://www.fedoraturkiye.com/bandwidth_exceeded.html
    CBandUserScoreboard /var/www/scoreboard

    # 500MB limit for 'class_2'
    CBandUserClassLimit class_2 500000
</CBandUser>

<VirtualHost *:80>
    ...
    CBandUser forumlar
    # 1GB limit for 'class_1'
    CBandClassLimit class_1 1000000

    # a period of time after which the scoreboard will be cleared (120 seconds)
    # (only in >=0.9.5-rc2)
    CBandPeriod 120S
</VirtualHost>

NOT : mod_cband performansi icin asagida gerekli olan 2 adet satiri apache 'nin global konfigurasyon kismina eklememiz lazim.(vim httpd.conf)

CBandScoreFlushPeriod 1
CBandRandomPulse On
NOT : Cband web arayüzünden bakmak için ; httpd.conf ve apache2.conf dosyalarına aşağıdaki direktifleri eklemeniz lazım.

* Eğer tüm tanımlı cbandleri görmek istiyorsanız aşağıdaki şekilde apache 'ye eklemeniz yeterli olacaktır.

Örnek Kullanım : http://cband.fedoraturkiye.com/cband-status

<Location /cband-status>
SetHandler cband-status
Order allow,deny
Allow from 127.0.0.1/32 #izin vermek istediğiniz ip adresi
</Location>

Eklediğiniz virtualhosta göre izleme yapmak için,

Örnek Kullanımı : http://cband.fedoratürkiye.com/cband-status-me

<Location /cband-status-me>
SetHandler cband-status-me
Order allow,deny
Allow from 127.0.0.1/32 #izin vermek istediğiniz ip adresi
</Location>

           

sem

@reddecks, ben de farklı kaynaklardan kurmayı denedim hatalar oluşmuştu ve örneğin MySQL in sitesinde gcc sorunu ile ilgili bir hata bildirimi açılmış. Daha sonra şuradaki anlatım ile bütün hepsini kurdum ve hepsi çalıştı...  Hala daha kullanırım hiç sorun çıkartmadı umarım size de çıkartmaz...
http://forum.ubuntu-tr.net/index.php/topic,14457.0.html
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

reddecks

#8
Alıntı yapılan: Tuxie - 26 Temmuz 2010 - 16:57:43
apt-get install libapache2-mod-cband  şu komutla da kurulabilir.
       Normalde yükleme işlemi bittikten sonra mod_cband modulü kendisini apache 'ye ekliyor. Eklemediği taktir de asağıdaki yönergeleri uygulamanız yeterli olacaktır.






root@server:/home/reddecks#  apt-get install libapache2-mod-cband
Paket listeleri okunuyor... Bitti
BaÄımlılık aÄacı inÅa ediliyor.
Durum bilgisi okunuyor... Bitti
E: libapache2-mod-cband paketi bulunamadı
bu hatayı alıyorum
windows tembelliği linux araştırmayı öğretir ....

heartsmagic

Yeni sürümlerde yok ne yazık ki bu paket. Ya elle kendin derleyeceksin ya da eski sürümlerden birini çekeceksin:
http://packages.ubuntu.com/dapper-backports/libapache2-mod-cband
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.