Emeğine sağlık

tskkurler okuyorum

Tşklr dostum net bir anlatım saol

ellerine sağlık iStAnBuL-HaCk-

Web serverımız üzerinde çalıştıracağımız programlar: Apache Mysql Server Php Ftp Web Server olarak çalıştıracağımız serverın üzerine freebsd işletim sistemin kurulumun yapılmış olduğunu ve sistemin güncellendiğini varsayıyoruz. Kurulum öncesi birkaç değişiklik: Sistem performansı için bazı değişiklikler yapmamız kurulumları daha da hızlandıracaktır. Bunların başında make. conf dosyasının güncellenmesi. Sistem kurulduğu anda make. conf /etc/default/ dizini altındadır. Make. conf u /etc dizini altına kopyalarak bazı değişiklikler yapabiliriz. #cp /etc/default/make. conf /etc Make. conf dosyası içindeki MASTER_SITE_BACKUP bölümlerini değiştirmemiz dosyaları çekerken bize en yakın yansıdan almamızı sağlayacaktır. Dosyanın ilk hali ve değişiklik yapıldıkdan sonraki ilgili bölümdeki hali aşağıda ki gibidir. #more /etc/make. conf # Port master sites. # # If you want your port fetches to go somewhere else than the default # in case the distfile/patchfile was not found, # uncomment this and change it to a location nearest you. # #MASTER_SITE_BACKUP?= \ # ftp://ftp. freebsd. org/pub/FreeBSD/ports/distfiles/$ / # # If you want your port fetches to check the above site first , uncomment the # line below. You can also change the right side to point to wherever # you want. # #MASTER_SITE_OVERRIDE?= $ Değişikliği yaptıkdan sonra: #more /etc/make. conf # Port master sites. # # If you want your port fetches to go somewhere else than the default # in case the distfile/patchfile was not found, # uncomment this and change it to a location nearest you. # MASTER_SITE_BACKUP?= \ ftp://ftp.tr. freebsd. org/pub/FreeBSD/ports/distfiles/$ / # # If you want your port fetches to check the above site first , uncomment the # line below. You can also change the right side to point to wherever # you want. # MASTER_SITE_OVERRIDE?= $ Make. conf dosyası içinde birde PKG_REGISTER bölümünü aktif hale getirmemiz yüklü olan paketleri gördüğünde sistemin durmasını engelleyecektir. Make. conf dosyası içindeki "FORCE_PKG_REGISTER= YES " bölümünün önündeki diezi kaldırmanız yeterlidir. Apache SSL Desteği ile kurulması Sistem üzerinde ssl desteğine ihtiyac duymaya bilirsiniz. Onun içinde bir alt dizindeki apache13 dizinine girip aşağıdaki komutları vermeniz yeterlidir. #cd /usr/port/www/apache13 #make install Ssl desteği ile kuracaksanız apache nin modssl ile entegre olduğu dizinine geçiyoruz ve artık çok sık kullanacağımız komutumuzu veriyoruz. #cd /usr/ports/www/apache13-modssl #make install clean Eğer apache i ssl desteği vermeden kurmuşsak yapmamız gereken sadece httpd. conf dosyasının sonuna gerekli virtualhost tanımlarının girilmesidir. Portdan kurmuş olduğunuz apache nin configurasyon dosyaları /usr/local/etc/apache altında data dosyaları ise /usr/local/ww/data altında bulunmaktadır. Configurasyon dizinine gecerek httpd. conf üzerinde bazı değişiklikler yapmamız gerekecektir. #vi + /usr/local/etc/apache/httpd. conf <VirtualHost > ServerName sizin_domaininiz.com ServerAlias www. sizin_domaininiz.com DocumentRoot /usr/local/www/sizin_domaininiz_ana_dizini ErrorLog /usr/local/logs/sizin_domaininiz-error_log CustomLog /usr/local/logs/sizin_domaininiz-access_log common RewriteEngine on RewriteCond % ^ RewriteRule. - </VirtualHost> Gerekli tanımları yaptıkdan sonra kaydedip çıkıyoruz ve apache i çalıştırmadan önce yazım hataları olup olmadığını kontrol için test edelim. #apachectl configtest Syntax OK Sorun yok artık çalıştırabiliriz. #apachectl start /usr/local/sbin/apachectl start: httpd started Apache yi çalıştırdığınızda logs dosyasının olmadığı ile ilgili hata alabilirsiniz. Bu durumda #mkdir /usr/local/logs Komutu ile gerekli dizini oluşturunuz. Ssl desteği ile kurmuş olduğumuz Apache için conf ayarları aşağıdaki gibi olmalıdır. Portdan kurmuş olduğunuz apache nin configurasyon dosyaları /usr/local/etc/apache altında data dosyaları ise /usr/local/ww/data altında bulunmaktadır. Configurasyon dizinine gecerek httpd. conf üzerinde bazı değişiklikler yapmamız gerekecektir. #cd /usr/local/etc/apache #vi httpd. conf Httpd. conf dosyası içinde "SSL Engine Switch:" kısmında varsa eğer ssl sertifikanız ile ilgili dosyaların yerini göstermeniz gerekecektir. Önemli olan bölümler aşağıda sıralanmıştır. Bu tanımlamalar httpd. conf dosyasının en sonunda olan; " <VirtualHost _default_:443> </VirtualHost> " parametleri arasında yer almaktadır. Her ip için teker teker bunları tanımlamanız gerekmektedir. Eğer server üzerinde tek bir domain için ssl tanımlaması yapacaksanız ip vermenize gerek yok. default olarak kalabilir. ServerName sizin_domaininiz.com ServerAlias www. sizin_domaininiz.com DocumentRoot /usr/local/www/sizin_domaininiz_ana_dizini ErrorLog /usr/local/logs/sizin_domaininiz-error_log CustomLog /usr/local/logs/sizin_domaininiz-access_log common RewriteEngine on RewriteCond % ^ RewriteRule. - SSLEngine on SSLCertificateFile /etc/ssl/your_domain. crt SSLCertificateKeyFile /etc/ssl/ your_domain. key Yukarda anlattıklarımız ssl üzerinde çalışması içindi. Şimdide server üzerinde 80 portu üzerinden hizmet verecek bir domain tanımlasını yapalım. Onun içinde gerekli örnek tanımlama aşağıdaki gibidir. Ssl ile tanımlamış olduğumuz 443 portu üzerinden çalışacak olan VirtualHost tanımlamasının üzerinde 80 portundan çalışacak olan VirtualHost için şablonların bulunduğu yere kendi domaininiz için aşağıdaki örnekte görüldüğü gibi VirtualHost tanımlamalarımızı girebiliriz. <VirtualHost :80> ServerName sizin_domaininiz.com ServerAlias www. sizin_domaininiz.com DocumentRoot /usr/local/www/sizin_domaininiz_ana_dizini ErrorLog /usr/local/logs/sizin_domaininiz-error_log CustomLog /usr/local/logs/sizin_domaininiz-access_log common RewriteEngine on RewriteCond % ^ RewriteRule. - </VirtualHost> Gerekli tanımlamaları girdikden sonra httpd. conf dosyamızı kaydedip çıkıyoruz. Şimdi apache nin çalışıp çalışmadığını kontrol etme zamanı. Apachectl komutu ile hangi paremetleri kullanabileceğimizi görmek için komutu yalın olarak verelim. #apachectl usage: /usr/local/sbin/apachectl start - start httpd startssl - start httpd with SSL enabled stop - stop httpd restart - restart httpd if running by sending a SIGHUP or start if not running fullstatus - dump a full status screen; requires lynx and mod_status enabled status - dump a short status screen; requires lynx and mod_status enabled graceful - do a graceful restart by sending a SIGUSR1 or start if not running configtest - do a configuration syntax test help - this screen Çalıştırmadan önce yazım hataları olup olmadığını kontrol edelim. #apachectl configtest Syntax OK Yazım hatası yapmamışız. Çalıştırabiliriz. #apachectl startssl /usr/local/sbin/apachectl startssl: httpd started Apache ssl desteği ile çalışmaya başlamıştır. Apache kurulumunu yaptıktan sonra sistem üzerinde kullanacağımız bazı özellikler olacaktır. Bunlardan ihtiyacınız olan birkaç tanesini örnekler ile açıklamaya çalışacağım. Dizine cgi çalıştırma hakkı vermek: Httpd. conf dosyasına virtualhost eklediğiniz bölümün sonuna aşağıdaki satırları eklemeniz o dizinde cgi çalıştırılması için yeterlidir. <Directory "/usr/local/www/sizin_cgi_dizininiz "> Options ExecCGI </Directory> Bu satırları ekledikden sonra Apache yi yeniden çalıştırmayı unutmayınız. Özel Alanlara Erişim Siteniz içinde kullanıcı_adı/şifre ile girilmesini istediğiniz alanlarda olabilir. Bunu Apache ile birlikte gelen. htaccess uygulaması ile yapacağız. Websiteninin içinde ki gizli klasörü ve alt klasörlere erişilmeye çalışıldığında şifre sorması için yapılması gerekenleri adım adım anlatmaya çalışacağım. httpd. conf dosyası içinde gizli klasörüne erişimi şifreli yapmak için aşağıdaki satırları eklememiz gereklidir. <Directory /usr/local/www/data/sizin_site/gizli> AllowOverride AuthConfig </Directory> Httpd. conf dosyasında herhangi bir değişiklik yaptıktan sonra değişikliğin etkin olması için Apache yi yeniden başlatmayı unutmayın. Gizli dizinin bulunduğu dizine giderek bu klasör içinde ". htaccess" dosyasını oluşturmamız gerekmektedir. Bu dosyanın içine aşağıdaki satırları eklemeniz gerekmektedir. AuthName "Ozel bolge!!!" AuthType Basic AuthUserFile /usr/local/www/data/sizin_site/gizli/. htpasswd require valid-user şimdi kullanıcı adlarının ve şifrelerin tutulduğu. htpasswd dosyasını oluşturalım. #htpasswd -c /usr/local/www/data/sizin_site/. htpasswd user1 Bu komut ile user1 kullanıcısını. htpasswd dosyası içinde tanımlayarak bu dizine erişmesine izin vermiş oluyoruz. -c parametresi ile. htpasswd dosyasını ilk defa oluşturduğumuz zaman kullanacağız. . htpasswd dosyamız varsa ve bir kullanıcı daha eklemek istiyorsak aşağıdaki komut yeterlidir. #htpasswd /usr/local/www/data/sizin_site/. htpasswd user2

hariki bir belge hemen bilgisayarima kaydettim. Tesekkurler..

Mysql Server Kurulumu Bu dokümanı hazırladığım sırada mysql-server ın 5.0 versiyonu da çıkmıştı fakat sitede production ortamlarda önerilen versiyon 4.0.20 olduğu için kurulumu o şekilde yapacağız. #cd /usr/ports/databases/mysql40-server Dizin içinde ki Makefile dosyasını kontrol ederek kuracağımız programın versiyonunu görebilmemiz mümkündür. # more Makefile # New ports collection makefile for: MySQL-server # Date created: Sun Mar 3 12:20:35 CET 2002 # Whom: Alex Dupre <sysadmin@alexdupre.com> # # $FreeBSD: ports/databases/mysql40-server/Makefile, v 1.185 2004/05/18 10:59:11 ale Exp $ # PORTNAME?= mysql PORTVERSION= 4.0.20 PORTREVISION?= 0 CATEGORIES= databases Görüldüğü üzere kuracağımız versiyon mysql in kendi sitesinde duyurduğu production versiyon ile aynı. Sistemdeki ports dosyalarını sürekli güncel tuttuğunuzda teknolojinin gerisinde kalmayacaksınız. Kuracağımız mysql-server ın dizinine girdikten sonra kurulması için gerekli komutu verebiliriz. #make install clean Install success full. #/usr/local/etc/rc. d/mysql-server. sh start Komutu ile mysql serverımızı da çalıştırabiliriz. Mysqlserver ımızda kurdukdan sonra ilk yapılması gereken şey mysql root şifresinin değiştirilmesidir. Asla mysql şifrenizi boş bırakmayın. Mysql root şifresini iki şekilde değiştire bilirsiniz. Sistemi ilk kurduğunuzda mysqladmin programı yardımı ile şifre ataması yapabiliriz. #mysqladmin -u root password yenisifre Bu komutu bir sefer verdikden sonra tekrar çalıştıramazsınız. Mysql root şifresini tekrar değiştirmek için mysql veritabanına bağlandıkdan sonra aşağıdaki komutları vererek değiştirebilirsiniz. #mysql -u root -p mysql> UPDATE mysql. user SET Password=PASSWORD WHERE User='root'; mysql> FLUSH PRIVILEGES; Php Kurulumu Webserverımız üzerinde php desteğinine vermek için php nin sitesinden stable olan versiyonunu öğrenip kurabiliriz. Dökümanı hazırladığım sıralarda 4.3.7 versiyonu stable durumda idi. #cd /usr/ports/lang/php4 #make install clean Kurulum bittikden sonra Apache için gerekli olan tanımları httpd. conf dosyasına eklemiş ve bunun ile ilgili bilgiyi ekranınıza yazmış olacaktır. FTP hizmeti Kurmuş olduğumuz web servera hizmet verebilmesi için hemen hemen tüm servisleri yüklemiş durumdayız. Müşterilerimizin web sitelerinin de kullanabilecekleri tüm servisler hazır durumda. Fakat müşterilerimizin dosya transferi yapmaları için birde ftp server programına ihtiyacımız vardır. Bunun için sistem üzerinde bir çok alternatif programlar kurup deneye bilirsiniz. Bu dökümanda anlatacağım sistem ise freebsd nin default ftp hizmetini devreye almak için yapılması gerekenler. Ftp hesabı açacağımız kullanıcıları sistem kullanıcısı olarak tanımlayacağız. Fakat sistem kullanıcısı olarak tanımladığımız kullanıcıların ftp haricinde başka hakları olmaması için kısıtlamalar yapmamız gerekmektedir. Bunun için ilk olarak ftp kullanıcılarına vereceğimiz shell i sistemde kullanılabilir duruma getirmemiz gerekmektedir. shells dosyasını açıp sonuna "/usr/bin/false " satırını ekleyerek sisteme false shell ininde kullanılacağı nı belirtmemiz gerekmektedir. Bunu tek bir komutda yapabiliriz. #echo "/usr/bin/false/" >>/etc/shells Default ftp hizmeti aktif hale getirmek için bir çok yol vardır. Bunlardan en güvenilir ve stable olanı ftpyi direk çalıştırmaktır. Bunun için aşağıdaki komutu vermeniz yeterlidir. #/usr/libexec/ftpd -D Her açılışta ftp nin çalışması için /etc/rc. local dosyasını oluşturup yukardaki komutu bu dosyanın içine yazmanız yeterlidir. #echo "/usr/libexec/ftpd -D " >/etc/rc. local ftp nin çalışıp çalışmadığını test etmek için aşağıdaki komutu verebilirsiniz. Sizden username isteyen ekran geliyorsa ftp hizmetini de serverınız üzerinde verebilirsiniz. bash-2.05b# ftp 0 21 Connected to 0. 220 your_server_name FTP server (Version 6.00LS) ready. Name (0:user): Tebrikler. ftp kullanıcılarının sadece kendi dizinlerinde dolaşmaları ve diğer kullanıcıların dizinlerine geçmelerini engellemek için bir grup oluşturup ftp kullanımı için oluşturduğumuz tüm kullanıcıları bu grup üye yapmak zorundayız. Bunun içinde ftpchroot dosyasına oluşturmuş olduğumuz grup u eklememiz gerekmektedir. Eğer sisteminizde bu dosya yoksa siz oluşturabilirsiniz. #vi /etc/ftpchroot root sshd @ftp Burada ftp kullanıcılarının ftp grubuna üye olacakları göz önüne alınmıştır. Artık bir ftp kullanıcı oluşturup test edebiliriz. #pw useradd user1 -s /usr/bin/false -g ftp -d /usr/local/www/data/user1 -m Not:eğer kullanıcının dizini önceden oluşturduysanız komutun sonundaki "-m" parametresini kullanmaya bilirsiniz. Fakat unutmayınki daha önce oluşturmuş olduğunuz dizinin ownerı olarak user1 kullanıcısını atamazsanız kullanıcı dizine dosya aktaramaz. Dizin üzerinde kullanıcıya tam yetki vermek için #chown -R user1:ftp /usr/local/www/data/user1 Komutunu vermeniz yeterlidir. Oluşturmuş olduğunuz yeni kullanıcının şifresini değiştirerek ftp ile erişmesine izin verebilirsiniz. # passwd user1 Changing local password for user1. New password: Retype new password: passwd: updating the database... passwd: done # Yazar: Hasan Ahlatçı Yazıldığı Tarih: 12.07.2004

harika döküman tşkler

paylaşım için tsk