Ubuntu kurulumu Türkçe (Apache/MySQL sunucu kurulum)

By LovelessGent
Nis 1st, 2012
0 Comments
1398 Views

Ubuntu kurulumu Türkçe anlatım belgesinde, sıfır bir sisteme nasıl Ubuntu 10.04 Sunucu Sürümü yükleneceği, sunucunun uzaktan nasıl yönetilebileceği ve LAMP olarak yapılandırılmasının nasıl yapıldıgı anlatıldıktan sonra, e-posta alıp gönderme işlevlerini yerine getirmesi için kurulması gereken yazılımların nasıl kurulup ayarlanacağı tarif edilecektir. Posta aktarma vekili (MTA) olarak Postfix, POP3 ve IMAP sunucusu olarak Dovecot ve alan adları ve kullanıcıları tutmak icin de MySQL veritabanı seçilmiştir. Ubuntu kurulumu, Posta kullanıcılarının hizmeti web arayüzünden kullanabilmelerine olanak tanıyan yazılımlardan biri olan SquirrelMail’in kurulumu ve konfigurasyonu ile anlatım tamamlanacaktır. Kurulumda sadece OpenSSH paketi yüklenmiş. Gerekli olan tüm diğer kurulumlar başka bir bilgisayar uzerinden SSH aracılığı ile yapılmıştır. Siz yerelde de aynı işlemleri gerceklestirebilirsiniz. O sartlarda SSH anahtarı olusturmak kişisel tercihinize kalmıştır.

Ubuntu kurulumu Türkçe

İlk olarak programların ne işe yaradıklarından bahsedelim. Apache ve PHP’yi muhtemelen daha once duymuşuzdur. Duymamış olabileceklerimizi kısaca açıklayalım.

Postfix nedir?
Postfix internet uzerinden e-posta alip gonderme islemini gerceklestiren yazilimdir. Alinan e-postalari kullanicilarin e-posta kutularina gonderme ve  gonderilen e-postalari da karsi tarafa iletme gorevlerini yerine getirir.

Dovecot nedir?
Dovecot e-posta kullanicilarinin, postalarini internet uzerinden POP3 ve IMAP protokolleri ile erisebilmesini saglayan e-posta sunucusudur.

MySQL nedir?
MySQL uzerinde cok sayida veritabani ve tablolar olusturabileceginiz bir veritabani programidir.

SquirrelMail nedir?
Kullanicilarin, e-postalarina bir web arayuzunden erismelerine imkan veren yazilimdir.

Ubuntu kurulumu

Ubuntu’nun alternatif download sayfasından 11.10 64 bit sunucu versiyonun kalıbı indirilip bir CD’ye yazilir (Ubuntu kurulumu için gerekli). Daha sonra bilgisayar CD’den baslatilacak sekilde ayarlanir.

1) Bizi karsilayan ilk ekran dil secimi ekranidir. Bu ekranda hangi dilde kurulum yapmak istiyorsak o dili secerek ilerliyoruz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 1

2) Daha sonra secenekler ekrani gelir (“Ubuntu kurulumu“).

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 2

3) “Sunucu Kur” dedikten sonra karsimiza cikan asagidaki ekran bolge secim ekranidir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 3

4) Ardindan klavye dili ayarlanir. Burada otomatik secim ya da elle secim yapabilirsiniz. Tercih size kalmis.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 4

5) Makinaya bir isim verilir.*

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 5

6) Zaman dilimi secilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 6

7) Disk bicimlendirme icin kilavuz yardimi kullanilarak LVM secilir.**

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 7

8 ) Bolumlenecek disk secilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 8

9) Degisiklikler diske yazilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 9

10) Disk boyutu belirlenir.**

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 10

11) Yeni yaptigimiz degisiklikler tekrardan diske yazilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 11

12) Sistem kendini yuklemeye baslar.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 12

13) Kullanici adi ve soyadi belirlenir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 13

14) Kullanicinin giris yapmak icin kullanacagi isim secilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 14

15) Kullanici sifresi belirlenir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 15

16) Kullanici dizini sifrelenir.***

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 16

17) Kurulum devam eder.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 17

18) Guvenlik guncellestirmeleri acilir. Eger cok kritik bir yazilim kullaniyor ve gelen guncellestirmelerin sisteminizin calismasini etkileyecegini dusunuyorsaniz, guncellestirmeleri elle yapmayi da secebilirsiniz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 18

19) OpenSSH paketi secilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 19

20) GRUB yukleme secenegi ayarlanir.****

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 20

21) Son islemler gerceklestirilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 21

22) Kurulum tamamlanir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 22

23) Sisteme giris yapilir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 23

Sisteme giris yaparken yazdiginiz sifre terminal ekraninda gozukmez.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 24

24) Ilk giris yaptiginizda suna benzer bir ekranla karsilasirsiniz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 25

25) Ilk isimiz bilgisayarimizin IP adresini kontrol edip bir kenara not etmektir. Bunun icin asagidaki komut verilir.

1
ifconfig

Bizi asagidaki gibi bir ekran karsilar. Bu ekranda IP adresimizi gorebiliriz [Ubuntu kurulumu].

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 26

26) Ikinci yapmamiz gereken is guncelleme olup olmadigini kontrol etmek, eger varsa gerekli guncellemeleri yapmaktir. Bunun icin su komutlar verilir.

1
2
sudo apt-get update
sudo apt-get upgrade

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 27

Guncellemeler bittikten sonra sistemi asagidaki komutla yeniden baslatmanizi oneririm. Tekrar acildiktan sonra normalde herhangi bir guncelleme olmamasi gerekiyor.

1
sudo shutdown -r now

Simdi sunucumuzun anahtar izini ogrenelim ki uzaktan bir bilgisayardan SSH ile erismek zorunda kaldigimizda baglandigimiz sunucunun dogru sunucu olup olmadigini anlayabilelim.

1
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub

Ustteki komutu verdigimizde ekrana asagidaki gibi bir dizinin yazdirilmasi gerekir. Asagidakine benzeyen kisimi IP adresimizi not ettigimiz yere not ediyoruz.

1
2b:d1:e1:a7:0a:d1:6c:29:2d:df:99:a4:17:21:c0:96

Kurulu isini tamamladik. Artik bu makinaya uzaktan erisebiliriz. Sunucuyu acik birakip istedigimiz herhangi bir makinaya gidiyoruz ve terminalinden, sunucumuza girmek icin kullanacagimiz bir SSH anahtari olusturuyoruz.

1
ssh-keygen -t rsa

Eger bir SSH anahtariniz varsa tekrar olusturmaniza gerek yok. Ilk kez olusturacaklar passphrase soruldugunda oldukca guclu ve tahmin edilemeyecek uzunlukta bir kod yazip bunu IP adreslerini not ettikleri kagida not ettikten sonra kaybetmeyecekleri bir yere koysalar iyi ederler. SSH anahtarimizi olusturduktan sonra sunucumuza yuklemeliyiz ki bundan sonra sunucuya, tanitilan makinadan yaptigimiz baglantilarda sifre girmemize gerek kalmasin.

1
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Yukaridaki komutta [email protected] kismini kendi kullaniciniz ve IP adresiniz ile degistirmelisiniz. Eger anahtarlari varsayilan dizinlerde saklamadiysaniz dizinleri de duzeltmelisiniz. Bu komutu girdigimizde sunucunun, kurulum yaptigimizda aldigimiz anahtar izini gorecegiz. Eger not aldigimiz ile tutuyorsa guvenlice kendi sunucumuza baglanmisiz demektir. Bize daha once belirledigimiz passphrase’i soracak. Bir defaya mahsus olarak giriyoruz. Bundan sonra SSH anahtarini tanittigimiz herhangi bir bilgisayardan sunucumuza sifre girmeye gerek kalmaksizin baglanabilecegiz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 28

Hostname’i kurulum sirasinda ayarlamistik ama ne olur ne olmaz diyerek bir kez daha yazalim. Hostname ag uzerinde bilgisayariniza verdiginiz isimdir. Terminalden asagidaki komutlari vererek hostname’inizi gorebilirsiniz.

1
2
hostname
hostname -f

Ikinci komut FQDN olarak adlandirilan tam erisim adresinizi gostermektedir. Ornegin isimi titania olan ve ornek.com altinda yapilandirilmis bir sistem sirasiyla bu komutlar icin su ciktilari vermelidir.

1
2
titania
titania.ornek.com

Eger buna benzer bir cikti almiyorsaniz hostname’inizi ayarlamaniz gerekmektedir. Bir sistemin hostname’inin uzerinde sunulan servislerle hicbir ilgisi yoktur. Bu sadece bilgisayariniza verdiginiz essiz bir isimdir. Dolayisiyla istediginiz isimi vermekte ozgursunuz. Genellikle sunucu yoneticileri gezegenlerin ya da mitolojik karakterlerin adlarini kullanirlar. Hostname’inizi ayarlamak icin su komutlari vermelisiniz (Ubuntu kurulumu).

1
2
3
sudo su
echo "titania" > /etc/hostname
hostname -F /etc/hostname

Burada titania’yi kendi vermek istediginiz isim ile degistirebilirsiniz. Bu islemden sonra eger mevcutsa /etc/default/dhcpcd dosyasinda #SET_HOSTNAME=’yes’ olacak sekilde bir ayar yapmalisiniz. Eger mevcut degilse olusturmaniza gerek yok.

Simdi /etc/hosts dosyanizi asagidakine benzer olacak sekilde duzenlemelisiniz. Ben burada verilecek isim degerini titania ve ornek.com, IP adresini ise 192.168.1.9 degerleri uzerinden gosterecegim. Siz kendinize gore uyarlamalisiniz. Ubuntu kurulumu Hostname’de oldugu gibi FQDN isminizi de istediginiz gibi secebilirsiniz. www.ornek.com adresli siteyi sunmak icin FQDN adinizin .ornek.com ile bitmesine gerek yok. ubuntuneguzel.com ile de bitebilir. Yine de sunmak istediginiz adresle iliskili olacak sekilde secmeniz ileride baska bir sistem yoneticisi icin isleri kolaylastiracaktir.

/etc/hosts dosyasi ornek gorunumu su sekilde olmalidir.

1
2
127.0.0.1    localhost.localdomain    localhost
192.168.1.9          titania.ornek.com          titania

Eger IPv6 ISP’niz tarafindan destekleniyor ise IPv6 adresinizi de hosts dosyaniza ekleyebilirsiniz. O takdirde gorunum su sekilde olacaktir.

1
2
3
127.0.0.1                                  localhost.localdomain localhost
192.168.1.9                                        titania.ornek.com         titania
1245:4d03::a356:b145:c287:d987    titania.ornek.com         titania

Burada belirttiginiz IP adresinin DNS’te bir A ya da AAAA kaydina sahip olmasi gerekmektedir. A IPv4 icin kullanilirken, AAAA IPv6 icin kullanilmaktadir. Iki kayit tipi de ayni isi gorurler. Bu dokumanda nasil DNS kaydi eklenecegi gibi DNS ile alakali ayarlar anlatilmamistir.

Ubuntu kurulumu / Türkçe Apache Kurulumu

Sirasiyla asagidaki komutlar verilir ve dosyalardaki ilgili degisiklikler yapilir.

1
2
sudo apt-get install apache2
sudo nano /etc/apache2/ports.conf

Acilan dosyada NameVirtualHost un yanindaki * silinerek IP adresi yazilir.

1
sudo nano /etc/apache2/sites-available/default

Acilan dosyada NameVirtualHost un yanindaki * silinerek IP adresi yazilir

1
sudo nano /etc/apache2/sites-available/ornek.com

Komutu verilerek ornek.com alan adi icin Apache yapilandirma dosyasi olusturulur. Dosya icerigi suna benzer olacak sekilde doldurulur.

1
2
3
4
5
6
7
8
<VirtualHost 192.168.1.9:80>
ServerAdmin [email protected]
ServerName ornek.com
ServerAlias www.ornek.com
DocumentRoot /srv/www/ornek.com/public_html/
ErrorLog /srv/www/ornek.com/logs/error.log
CustomLog /srv/www/ornek.com/logs/access.log combined
</VirtualHost>

Ben bu rehberde dosyalarin /srv/www/site_adi/* altinda tutulmasini istedigim icin gerekli yollari bu sekilde belirledim ama siz istediginiz gibi tanimlayabilirsiniz. Eger tanimladiginiz dizinler mevcut degils, siteyi aktif hale getirmeden o dizinleri yaratmalisiniz. Aksi taktirde Apache hata verecektir. Benim yukarida ayarladigim adreslerdeki dizinleri su komutlar olusturur.

1
2
sudo mkdir -p /srv/www/ornek.com/public_html/
sudo mkdir  /srv/www/ornek.com/logs/

Simdi Apache sunucumuzu yeniden baslatabiliriz.

1
sudo service apache2 restart

Eger DNS kayitlarinizi ayarladiysaniz ornek.com adresi su anda internet uzerinden erisilebilinir durumdadir. Eger deneminizi yerel ag uzerinde gerceklestiriyorsaniz http://IP_adresi uzerinden Apache’nin calisip calismadigini gorebilirsiniz. Eger calisiyorsa “It Works” yazan bir web sayfasi goreceksiniz.

Ubuntu kurulumu / Türkçe MySQL kurulumu

1
sudo apt-get install mysql-server

Yukaridaki komut ile ilgili paketler depodan indirilerek kurulur. Ilk gelen ekranda sizden bir sifre belirlemeniz istenir. Oldukca guclu bir sifre yazip bunu da artik yanimizda olan not defterimize kaydediyoruz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 29

Simdiki ekranda ise sizden girmis oldugunuz sifreyi dogrulamanizi istiyor. Dolayisiyla yazim hatalarina karsi bir onlem alinmis oluyor.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 30

Butun yukleme islemleri bittikten sonra asagidaki komutu calistirip, belirlediginiz sifreyi girin.

1
sudo mysql_secure_installation

Ilk geren soru sifrenizi degistirmek isteyip istemediginizi soruyor. N diyerek devam ediyoruz. Ikinci soru anonim kullanicinin silinmesini isteyip istemediginizi soruyor. Y diyerek anonim kullaniciyi silelim ki herkes veritabanimiza ulasamasin. Ucuncu soru root kullanicisinin sadece lokalden erisime acilmasi ile ilgili. Bu soruyu Y olarak cevapliyoruz. Boylece uzaktaki bir makinadan biri root olarak giris yapamasin. Sonraki soru test veritabanini silmek isteyip istemediginizi soruyor. Y dedikten sonra bir uyari verecek. Sorun degil devam edin. Besinci ve son soru yaptiginiz degisiklikleri etkinlestirmek isteyip istemediginiz. Bu soruya da Y diyerek MySQL kurulumunu bitiriyoruz.

Simdi deneme amacli bir veritabani yaratalim. MySQL komut satirina dusmek icin asagidaki komutu girin. Size sifre soracaktir. Sifrenizi girdikten sonra MySQL komut satirina ulasmis olacaksiniz.

1
mysql -u root -p

Simdi sirayla asagidaki kodlari girelim.

1
2
3
CREATE DATABASE deneme;
GRANT ALL ON deneme.* TO 'kullanici' IDENTIFIED BY 'sifre';
FLUSH PRIVILEGES;

Bu islemlerin sonucunda eger bir hata yapmadiysaniz “Query OK” yazisini gorursunuz. Cikmak icin asagidaki komut yazilir.

1
quit

Ubuntu kurulumu / Türkçe PHP Kurulumu

Asagidaki komut ile gerekli paketler yuklenir.

1
sudo apt-get install php5 php-pear

Simdi asagidaki komutla PHP ayar dosyasini acip bazi ayarlari yapacagiz.

1
sudo nano /etc/php5/apache2/php.ini

Bu dosyada tavsiye edilen ayarlar aksi gerekceleriniz olmadikca su sekildedir.

1
2
3
4
5
6
7
max_execution_time = 30
memory_limit = 128M
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
register_globals = Off

memory_limit onemli bir parametre oldugundan sunucunuzun yeteneklerine gore ayarlamakta fayda var. nano’da bu degiskenleri CTRL+W kombinasyonuyla metin icinde aratabilirsiniz.

Simdi asagidaki komutlari sirasiyla verelim ve MySQL-PHP iletisimi icin gerekli paketi, PHP’nin daha guvenli olmasini saglayan suhosin paketini kuralim. Son olarak Apache’yi yeniden baslattik.

1
2
3
sudo apt-get install php5-mysql
sudo apt-get install php5-suhosin
sudo service apache2 restart

PHP kurulumunuzu denemek isterseniz;

/var/www dizini altina info.php adinda bir dosya yaratip icine asagidaki satiri yazdiktan sonra http://IPadresi/info.php adresinden ulasmayi deneyebilirsiniz.

1
<?php phpinfo()?>

Eger bir bilgi sayfasi goruyorsaniz PHP kurulumuz gerceklestirilmis demektir.

Sunucuzda hangi portlarin acik oldugunu gormek icin asagidaki komutu kullanabilirsiniz. Su asamada 80 ve 22 disinda acik bir port olmamalidir.

1
netstat -tapln

Tebrikler LAMP sunucunuz oldu.

Ubuntu kurulumu Türkçe / E-Posta Sunucu

1
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server dovecot-common dovecot-imapd dovecot-pop3d  libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet mailutils

Bu komut Postfix mail sunucu, Dovecot IMAP/POP sunucu, MySQL sunucu ve kimlik dogrulama ile ilgili cesitli servisleri yukleyecek. Eger MySQL’i daha onceden yuklemessiniz, ki biz yukledik, tekrardan yuklenmeyecektir.

Simdi karsimiza soyle bir ekran gelecek. Bu ekranda Tamam diyoruz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 31

Simdiki ekranda Internet Site deyip kuruluma devam ediyoruz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 32

Bu gelen ekranda FQDN ismimizi girecegiz. Yani titania.ornek.com Siz bunu kendi ayarladiginiz isime gore degistireceksiniz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 33

Kurulum islemlerini boylece tamamlamis olduk.

Sanal Alan Adlari ve Kullanicilar Icin MySQL’in Yapilandirilmasi

1
mysql -u root -p

komutunu verip root sifremizi girdikten sonra MySQL komut satirina dusuyoruz. Simdi bir mail veritabani yaratacagiz.

1
2
CREATE DATABASE mail;
USE mail;

mail veritabanimizi yarattiktan sonra bu veritabanini kontrol eden mail_admin kullanicisini olusturalim ve gerekli izinleri verelim. Sirayla asagidaki komutlari giriyoruz.

1
2
3
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'buraya_admin_icin_sifre_yazilacak';
GRANT SELECT, INSERT, UPDATE, DELTE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'buraya_admin_icin_sifre_yazilacak';
FLUSH PRIVILEGES;

Simdi alan adlari icin kullanacagimiz tabloyu olusturalim {Ubuntu kurulumu}.

1
CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY (domain) );

Forwarding tablosunu yaratiyoruz.

1
CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );

Kullanicilarin tutuldugu tablo icin;

1
CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20), NOT NULL, PRIMARY KEY (EMAIL) );

MySQL komut arayuzunden cikmak icin quit komutunu veriyoruz.

1
quit

/etc/mysql/my.cbf dosyasinda bind-address = 127.0.0.1 seklinde bir ayar olduguna emin olalim. Bu Postfix’in veritabanimiz ile iletisime gecebilmesi icin es gecilmemesi gereken bir adim.

MySQL’i yeniden baslatalim.

1
sudo service mysql restart

Postfix’i MySQL ile Calisacak Sekilde Ayarlamak

Oncelikle Postfix’in MySQL uzerinden hangi domainleri host ettigimiz bilgisine ulasmasi icin gereken belgeyi yaratalin.

1
sudo nano /etc/postfix/mysql-virtual_domains.cf
1
2
3
4
5
user = mail_admin
password = buraya_mail_admin_sifesini_girecegiz
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain='%s'
hosts = 127.0.0.1

Simdi posta yonlendirme icin gerekli belgeyi yaratalim.

1
sudo nano /etc/postfix/mysql-virtual_forwardings.cf
1
2
3
4
5
user = mail_admin
password = buraya_mail_admin_sifesini_girecegiz
dbname = mail
query = SELECT destination FROM forwardings WHERE source='%s'
hosts = 127.0.0.1

Simdi de kullanicilar icin gereken belgeyi yaratiyoruz.

1
sudo nano /etc/postfix/mysql-virtual_mailboxes.cf
1
2
3
4
user = mail_admin
password = buraya_mail_admin_sifesini_girecegiz
dbname = mail
query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'

Son olarak da kullanicilar ile postalari iliskilendirmek icin kullanilan dosyayi olusturacagiz

1
sudo nano /etc/postfix/mysql-virtual_email2email.cf
1
2
3
4
5
user = mail_admin
password = buraya_mail_admin_sifesini_girecegiz
dbname = mail
query = SELECT email FROM users WHERE email='%s'
hosts = 127.0.0.1

Simdi bu yarattigimiz dosyalara su komutlar ile gerekli izinleri verelim.

1
2
sudo chmod o= /etc/postfix/mysql-virtual_*.cf
sudo chgrp postfix /etc/postfix/mysql-virtual_*.cf

Postalari kontrol edip sanal kullanicilarimiza dagitacak posta kullanicisini olusturalim.

1
2
sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m

Simdi Postfix ayarlarini yapacagiz. Burasi biraz uzun. dolayisiyla yazarken dikkatli olmamiz gerekiyor. titania.ornek.com’u kendi FQDN degerimizle degistirmeliyiz. Komutlarin hepsi “postconf – e” ile baslayan birer satirdan ibaret. Alt satira inmis komutlar ekrana sigmadigindan alt satira inmis gozukuyor. Lutfen yazarken sudo’ya gelmeden once enter’a basmayin. Yani birden cok satirdan olustugunu gordugunuz satirlarin basinda sudo yoksa bosluk kullanmalisiniz.*****

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo postconf -e 'myhostname = titania.ornek.com'
sudo postconf -e 'mydestination = titania.ornek.com, localhost, localhost.localdomain'
sudo postconf -e 'mynetworks = 127.0.0.0/8'
sudo postconf -e 'message_size_limit = 30720000'
sudo postconf -e 'virtual_alias_domains ='
sudo postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'
sudo postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'
sudo postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'
sudo postconf -e 'virtual_mailbox_base = /home/vmail'
sudo postconf -e 'virtual_uid_maps = static:5000'
sudo postconf -e 'virtual_gid_maps = static:5000'
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'broken_sasl_auth_clients = yes'
sudo postconf -e 'smtpd_sasl_authenticated_header = yes'
sudo postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert'
sudo postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key'
sudo postconf -e 'virtual_create_maildirsize = yes'
sudo postconf -e 'virtual_maildir_extended = yes'
sudo postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'
sudo postconf -e virtual_transport=dovecot
sudo postconf -e dovecot_destination_recipient_limit=1

Postfix icin gerekli sertifikalari olusturalim.

1
cd /etc/postfix
1
sudo openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509
1
2
3
4
5
6
7
Country Name (2 letter code) [AU]:TR
State or Province Name (full name) [Some-State]:Ege
Locality Name (eg, city) []:Izmir
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ubuntu-TR Forum
Organizational Unit Name (eg, section) []:E-posta Sunucusu
Common Name (eg, YOUR name) []:titania.ornek.com
Email Address []:[email protected]

Seklinde bir sertifika olusturacagiz. Ilgili kisimlari size uyan degerlerle degistirebilirsiniz. Simdi izinleri yeniden yazalim.

1
sudo chmod o= /etc/postfix/smtpd.key

saslauthd’yi MySQL Kullanacak Sekilde Ayarlamak

Once dizinimizi olusturalim.

1
sudo mkdir -p /var/spool/postfix/var/run/saslauthd

Simdi yapilandirma dosyasinin bir yedegini alalim.

1
sudo cp -a /etc/default/saslauthd /etc/default/saslauthd.bak

Simdi yapilandirma dosyasini duzenleyelim. Asagida verilen degerleri parametrelerin karsisina yazmali ve o parametrelerin basinda # isareti olmadigina emin olmalisiniz.

1
sudo nano /etc/default/saslauthd
1
2
3
4
5
6
7
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Asagidaki dosyada mail_admin sifresini kendi sifreniz ile degistirmelisiniz.

1
sudo nano /etc/pam.d/smtp
1
2
auth    required   pam_mysql.so user=mail_admin passwd=BENI_DEGISTIR host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mail_admin passwd=BENI_DEGISTIR host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
1
sudo nano /etc/postfix/sasl/smtpd.conf
1
2
3
4
5
6
7
8
9
pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: BENI_DEGISTIR
sql_database: mail
sql_select: select password from users where email = '%u'

Izinleri duzenleyelim

1
2
sudo chmod o= /etc/pam.d/smtp
sudo chmod o= /etc/postfix/sasl/smtpd.conf

Postfix kullanicisi icin gereken islemleri yapalim.

1
2
3
sudo adduser postfix sasl
sudo service postfix restart
sudo service saslauthd restart

Dovecot Yapilandirmasi

Asagida acacagimiz dosyanin sonuna gelip altta verilen satirlari ekliyoruz. Dosyanin formatina sadik kalacak sekilde eklemeliyiz.

1
sudo nano /etc/postfix/master.cf
1
2
dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Simdi dovecot yapilandirma dosyasinin bir yedegini aliyoruz.

1
sudo cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak

Yedegini aldigimiza gore dosyanin orijinalini silebiliriz.

1
sudo rm /etc/dovecot/dovecot.conf

Simdi ayni dosyayi kendi sistemimize gore tekrar yaratacagiz. ornek.com ile olan yerleri kendinize gore degistirin.

1
sudo nano /etc/dovecot/dovecot.conf
1
2
3
protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {
separator = .
prefix = INBOX.
inbox = yes
}

protocol lda {
log_path = /home/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = [email protected]
mail_plugins = sieve
global_script_path = /home/vmail/globalsieverc
}

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}

auth default {
user = root

passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}

userdb static {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}

socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}

client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
Bu islemden sonra sirada Dovecot icin MySQL ayarlarini yapmak var. Once bir yedek alalim.

1
sudo cp -a /etc/dovecot/dovecot-sql.conf /etc/dovecot/dovecot-sql.conf.bak

Simdi ustte yaptigimiz gibi orijinal dosyayi silip tekrar yeniden olusturalim ve icerigini su sekilde degistirelim.

1
sudo rm /etc/dovecot/dovecot-sql.conf
1
sudo nano /etc/dovecot/dovecot-sql.conf
1
2
3
4
driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail_admin password=BENI_DEGISTIR
default_pass_scheme = CRYPT
password_query = SELECT email as user, password FROM users WHERE email='%u';

Dovecot yapilandirmasi bitti. Yeniden baslatabiliriz.

1
sudo service dovecot restart

Simdi Dovecot hata vermis mi kontrol etmek icin log dosyasini kontrol edelim.

1
sudo tail -n 2 /var/log/mail.log
1
2
Jul  9 17:22:48 titania dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Jul  9 17:22:49 titania dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mail)

benzeri iki satir gorduyseniz sorun yok demektir. izinleri ayarlayalim tekrar.

1
2
sudo chgrp vmail /etc/dovecot/dovecot.conf
sudo chmod g+r /etc/dovecot/dovecot.conf

Simdi POP3 sunucumuzu test edebiliriz.

1
telnet localhost pop3

Bize soyle bir cikti dondurecek

1
2
3
4
5
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.

quit yazarak baglantiyi kapatiyoruz.

1
2
3
quit
+OK Logging out
Connection closed by foreign host.

Posta Lakaplari

ornek.com’u kendi isminizle degistirmeniz gerekiyor.

1
sudo nano /etc/aliases
1
2
postmaster: root
root: [email protected]

Simdi yeniden baslatalim

1
2
sudo newaliases
sudo service postfix restart

Postfix’i Test Etme

1
telnet localhost 25
1
2
3
4
5
6
telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 titania.ornek.com ESMTP Postfix (Ubuntu)

Simdi selam verelim.

1
ehlo localhost

Bize asagidakine benzer bir cikti dondurecek.

1
2
3
4
5
6
7
8
9
10
11
250-titania.ornek.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

quit yazarak baglantiyi kapatiyoruz. Her sey yolunda gozukuyor.

1
2
3
quit
221 2.0.0 Bye
Connection closed by foreign host.

ONEMLI: Bu kisimda tekrar bir hatirlatma yapalim. Bu rehber DNS kayitlarinin nasil ve nerede olusturulacagini icermemektedir. Dolayisiyla DNS ayarlarinizi yapmak icin baska bir kaynaga bakmalisiniz. MX kayit turu diye adlandirilan DNS kaydi olmaksizin sadece yerel aginizda posta gonderebilirsiniz. Internet uzerinden posta gondermek icin MX kaydi olusturmalisiniz. MX kayitlarinizi yaptiginizi varsayarak devam ediyorum.

Kullanici Olusturma

1
mysql -u root -p

Asagidaki kayitlardaki ornek.com’u e-posta adresini ve sifreyi kendinize gore degistirmelisiniz.

1
2
INSERT INTO domains (domain) VALUES ('ornek.com');
INSERT INTO users (email, password) VALUES ([email protected]', ENCRYPT('COKGIZLISIFRE'));
1
quit

Az once [email protected] kullanicisini olusturduk.  Kullaniciyi aktif hale getirmek icin bir adet posta yollamaliyiz.

1
mailx [email protected]

CC: diye soracak enter ile gecebilirsiniz. Subject: Istediginiz bir konuyu yazip enter’a basin. Simdi mesajin icerigini yazip CTRL+D yaparsaniz mail gonderilecektir. Hemen kontrol edelim.

1
sudo tail -n 5 /var/log/mail.log

Asagidakine benzer bir cikti gormelisiniz.

1
2
3
4
5
Jul  9 17:32:12 titania postfix/pickup[2513]: E740A5EF6A: uid=1000 from=<siradan>
Jul  9 17:32:12 titania postfix/cleanup[2524]: E740A5EF6A: message-id=<[email protected]>
Jul  9 17:32:12 titania postfix/qmgr[2514]: E740A5EF6A: from=<[email protected]>, size=374, nrcpt=1 (queue active)
Jul  9 17:32:13 titania postfix/pipe[2530]: E740A5EF6A: to=<[email protected]>, relay=dovecot, delay=0.27, delays=0.12/0.03/0/0.12, dsn=2.0.0, status=sent (delivered via dovecot service)
Jul  9 17:32:13 titania postfix/qmgr[2514]: E740A5EF6A: removed

Bir de Dovecot ne yapmis ona bakalim.

1
sudo tail -n 2 /home/vmail/dovecot-deliver.log
1
2011-07-09 17:32:13 deliver([email protected]): Info: msgid=<[email protected]>: saved mail to INBOX

Eger buna benzer bir cikti aldiysaniz sorun yok. Simdi az once gonderdigimiz postayi okumayi deneyelim bakalim gercekten gitmis mi? Normal kullanici olarak gidemedigimiz icin root olmaliyiz.

1
sudo su

Simdi dizinimizi postalarin tutuldugu dizin olarak degistiriyoruz.

1
cd /home/vmail/ornek.com/admin/Maildir
1
find

find komutu bize asagidakine benzer bir cikti vermeli.

1
2
3
4
5
6
7
8
9
.
./dovecot.index.log
./dovecot-uidvalidity
./dovecot-uidvalidity.4e1803fd
./dovecot-uidlist
./cur
./new
./new/1310196733.M114018P2531.titania,S=435,W=447
./tmp

Simdi isi biraz daha gorsellestirelim ve komut satirindan calisan bir e-posta programi kuralim.

1
apt-get install mutt

(sudo yazmadik cunku hala root’uz)

mutt kurulduktan sonra postamizi okumak icin su komutu veriyoruz;

1
mutt -f .

Bize dizin yaratilsin mi diye bir soru soracaktir. Isimiz icin gerekli degil. Hayir diyebiliriz. Sirayla suna benzer iki adet ekranla karsilasacaksiniz.

Birinci ekran mutt programini ilk actiginiz zaman karsilasacaginiz ekrandir ve asagidaki gibidir.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 34

Simdiki ekran ise gonderilen postayi okumaki icin enter’a bastigimizda gorecegimiz ekran.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 35

Boylelikle eger DNS kayitlarinizi duzgun olusturduysaniz artik calisan bir eposta sunucuya sahipsiniz.

Ek olarak “catchall mail” olarak tabir edilen ve ornek.com domaini altinda daha once yaratilmis olsun olmasin butun kullanicilara gonderilen bir posta hesabi nasil yaratiliyor onu gosterecegim. Yani ornegin biz su anda sadece [email protected] hesabini yarattik. Lakin bize posta gondermek isteyen biri yanlislikla [email protected] adresine gonderirse sunucumuz kendisine oyle bir posta hesabi olmadigini soyleyecektir. Iste bunu engellemek icin @ornek.com’a gelen butun mailleri [email protected]‘a yonlendirebiliriz. Eger posta sunucunuzda birden cok kisiye hesap vereceksiniz bunu yapmamaniz gerekiyor. Cunku gecerli kullanicilara gelen postalar da bu adrese dusecektir. tek bir kisinin kullandigi sunucularda ise bir sorun olmayacaktir.

Once MySQL komut penceresine duselim.

1
mysql -u root -p

Simdi sirayla asagidaki komutlari veriyoruz.

1
2
3
USE mail;
INSERT INTO forwardings (source, destination) VALUES ([email protected]', [email protected]');
quit

Tebrikler! Ubuntu uzerinde saglikli sekilde calisan Apache, MySQL, PHP, Postfix ve Dovecot yazilimlarina sahipsiniz. Rehberi olustururken anlatmayi tasarladigim programlardan geriye tek bir tane kaliyor SquirrelMail.

Ubuntu kurulumu Türkçe / SquirrelMail Kurulumu

Depodan SquirrelMail icin gerekli paketler su komutla kurulur.

1
sudo apt-get install squirrelmail

Yapilandirma icin su komut verilir.

1
sudo squirrelmail-configure

Bizi asagidaki gibi bir ekran karsilar.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 36

Dilimize cevirirsek;

1.  Kurum Tercihleri
2.  Sunucu Ayarlari
3.  Klasor Varsayilanlari
4.  Genel Secenekler
5.  Temalar
6.  Adres Defterleri
7.  Gunun Mesaji
8.  Eklentiler
9.  Veritabani
10. Diller

1 komutunu verdigimizde su ekrani goruruz.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 37

Eger degistirmek istedigimiz bir kisim varsa ilgili numaraya basip gelen kisimdan yeni degerini verebiliriz. Mesala Organization Name’i degistirelim. 1 tusuna basiyoruz. Karsimiza soyle bir ekran gelecek.

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 38

Bu ekranda iki noktadan sonra imlecimizin bulundugu yere Ornek Sirket yazip enter’a basiyoruz. Simdi Organization Name’in degistigini gorebiliriz. R tusu ile ana menuye donelim. 2 numarali menuye gidip

1
2
A.  Update IMAP Settings   : localhost:143 (other)
B.  Update SMTP Settings   : localhost:25

ayarlarinin bu sekilde olduguna emin olalim. Daha sonra R tusu ile geri donelim. S ile yaptigimiz degisiklikleri kaydettikten sonra Q tusu ile yapilandirmadan cikalim.

Simdi Apache’yi SquirrelMail’i sunacak sekilde ayarlamamiz gerekiyor. Ornek dosyayi kopyalayalim.

1
sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail

Simdi sayfayi aktive edelim.

1
a2ensite squirrelmail

Asagidaki komutla Apache’yi yeniden baslattiktan sonra http://IP_adresimiz/squirrelmail e gidersek web arayuzumuze ulasmis olacagiz.

1
sudo service apache2 restart

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 39

Ubuntu kurulumu şimdi giris yapip daha once gonderdigimiz postayi web arayuzunden de okuyabiliriz. Giris yaparken posta adresimizi @ isaretinden sonraki kisim ile birlikte yazmamiz gerekiyor cunku domainlerimizi MySQL uzerinde yaratmistik. Yani hangi domain’e ulasacagini bilmeli SquirrelMail [Ubuntu kurulumu].

eBedava ubuntu kurulumu Türkçe resimli anlatım - Aşama 40

Boylece bu rehberin sonuna geldik. Isinize yaramasi dilegiyle. Bu makale aşağıda ki terimlerin gereksinimlerini karşılamak için hazırlanmıştır;

Ubuntu kurulumu
mysql kurulumu
postfix kurulumu
squirrelmail kurulumu
dovecot kurulumu
ubuntu server kurulumu
ubuntu kurulumu resimli
ubuntu kurulumu resimli anlatım
ubuntu 10.10 kurulumu
usb ubuntu kurulumu
ubuntu usb kurulumu
mysql kurulumu resimli
mysql server kurulumu
linux ubuntu kurulumu
php apache mysql kurulumu
windows 7 mysql kurulumu
ubuntu vmware kurulumu
vmware Ubuntu kurulumu
ubuntu java kurulumu
ubuntu apache kurulumu
ubuntu 10.04 kurulumu
mysql kurulumu resimli anlatım
ubuntu webmin kurulumu
ubuntu 10.10 kurulumu resimli anlatım
ubuntu lamp kurulumu
ubuntu server kurulumu resimli
freebsd mysql kurulumu
ubuntu kde kurulumu
ubuntu mail server kurulumu
Apache
Postfix
Dovecot

Ubuntu kurulumu Türkçe (Apache/MySQL sunucu kurulum)

* Hostname: Makinanizi agda tanimlamak icin verdiginiz isimdir. Istediginiz herhangi bir isimi kullanabilirsiniz, bu windows 8 sunucularda da aynı olabilmekte..
** LVM (Logical Volume Manager): Sisteminizde dinamik olarak boyutlandirma yapmaniza izin veren bir yontemdir.  Ornegimizde 10.5 GB kapasiteli bir diskin 8 GB’ini kullanacak sekilde ayarlayip, 2GB’i daha sonradan ihtiyac olursa kullanmak uzere su anda baska bir sistemin deposu olarak kullaniyorum. LVM ile bicimlendirme yapmak zorunda degilsiniz fakat ogrenmenizi tavsiye ederim.

*** Sisteminize baska birinin erisimi ya da dosyalarinizin biri tarafindan calinmasi halinde, saldirganin belgelerinizi okuyamamasi icin dosyalariniz sifrelemeniz onerilir.
**** GRUB bir acilis yukleyicisidir. Eger makinanizda baska isletim sistemlerini acan herhangi bir acilis yukleyici varsa bu asamada GRUB’i yuklememeyi secebilirsiniz. [“Ubuntu kurulumu“] Eger sabit diskinizde kurulu olacak olan sistem sadece su anda kurulumunu yaptiginiz Ubuntu olacak ise diskinizin bilgisayar acilirken ilk bakilan yeri olan MBR (Master Boot Record) kismina GRUB’i yukleyerek Ubuntu’yu acmak icin nereye bakmasi gerektigini soylemis olursunuz.
***** Burada yaptigimiz ayarlarin Ubuntu kurulumu detaylarini Postfix dokumanlarindan ogrenebilirsiniz.

 

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Connect with Facebook