Yazılar

Konsolda çok satırlı dosyayı tek satıra dönüştürmek.

Aşağıdaki komutla birden fazla satır veri olan dosyanızı tek satır haline çevirebilirsiniz.

tr -d ‘\n’ < dosyaniz.txt

Iptables Geoip Eklentisinin Kurulumu ve Kullanımı

Belli bir ülkeden gelen ip trafiğini kısıtlamak veya engellemek için kullanabileceğiniz bir iptables eklentisidir.Eklenti standart Linux distrolarında eklenmiş,hazır halde değildir.Ayrıca bu eklentiyi kullanabilmeniz için güncel bir geoip veritabanına ihtiyaç duyarsınız.Bu veritabanını da maxmind.com’a üyelik yaparak ücretsiz kullanabileceksiniz.

Debian veya Ubuntu türevleri için öncelikle gerekli paketleri sisteminize kurun.

apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config

Redhat ve Centos için ise;

yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS

Daha sonrasında addons paketini proje sitesinden indirelim.(Not: Dkms modulu olarak veya src paketi olarak da debian/ubuntu depolarından indirebilirsiniz.)

Örneğin (sizin için uygun versiyon işletim sisteminizin kerneline göre farklılık gösterebilir.)

wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.3.tar.xz

Sıkıştırılmaz paketi açıp  paketi derliyoruz.

# tar xf xtables-addons-2.3.tar.xz
# cd xtables-addons-2.3
# ./configure
# make
# make install

Kullanacağımız eklenti maxmind’ın eski yapıdaki (Geoip Legacy Databases) veritabanını destekliyor.Öyle görünüyor ki maxmind eski yapıdaki veritabanın da indirme linkini kaldırmış.Yine de Geoip2 veritabanını bir script yazarak eski yapıya dönüştürmek mümkün görünüyor.Nette biraz araştırınca şöyle bir websitesiyle karşılaşıyoruz.

https://mailfud.org/geoip-legacy/

Websitesin sahibi, güncel v2 db yi alıp eski tip db ye sadece çevirmekle kalmamış aynı zamanda bunu sık sık güncelliyor da.

Iptables için uygun olan geoip db linki aşağıdadır.

https://mailfud.org/geoip-legacy/GeoIP-legacy.csv.gz

Linkten dosyayı download ettikten sonra sunucunzda bir yere gz dosyayı açın.

Açılan dosyayı önceden derlenmiş kodda hazır halde olan xt_geoip_build aracı ile iptables’a uygun hale getiriyoruz.

./xt_geoip_build GeoIP-legacy.csv

Ardından gerekli klasörü oluşturup bu db yi içine kopyalıyoruz.

mkdir -p /usr/share/xt_geoip/

cp -r {BE,LE} /usr/share/xt_geoip/

Artık dilediğimiz geoip tabanlı iptables kurallarını yazabiliriz.Son olarak dilerseniz ülke kodlarına https://en.wikipedia.org/wiki/ISO_3166-1 sayfasından bakabilirsiniz.

Örnek olarak Hindistan ve USA ‘dan gelen tüm istekleri engelleyebiliriz.

iptables -I INPUT -m geoip –src-cc IN,US -j DROP

Veya sadece TR dışındaki tüm talepleri engelleyebiliriz.

iptables -I INPUT -m geoip ! –src-cc TR -j DROP

Bir başka örnek ise sadece tcp port 587 e gelen istekleri Türkiye içi ağlarla sınırlandırabiliriz.

iptables -A INPUT -p tcp -m geoip ! –src-cc TR –dport 587 -j DROP

Uygulama Alananları ve Karşılaşabileceğiniz Problemler…

Bu eklentilerin kurulumunu Ubuntu 16.04 ve Ubuntu 14.04 de gerçekleştirdim.Esasen 14.04 de gerekliydi ve hem kaynaktan derleme hem de dkms şeklinde linux çekirdeğine ilavede sorun yaşadım.Sorun yaşamamın sebebini xtables-addons paketindeki başka eklentilerin kullanmakta olduğum kernel ile uyumsuz olduğunu (daha açık olarak belirtmek gerekirse Linux 3.16 da bu bazı eklentilerin desteğinin yeni başladığını) okudum.O yüzden bazı eklentileri mconfig dosyasından iptal ettip.Çünkü bana özellikle geoip modulu gerekiyordu.

Örnek mconfig dosyam aşağıdadır.Karşılıkları boş olanlar sistemde derlenemedi malesef.

# -*- Makefile -*-
#
build_ACCOUNT=m
build_CHAOS=
build_DELUDE=m
build_DHCPMAC=m
build_DNETMAP=m
build_ECHO=m
build_IPMARK=m
build_LOGMARK=m
build_RAWNAT=m
build_STEAL=m
build_SYSRQ=m
build_TARPIT=
build_condition=m
build_fuzzy=m
build_geoip=m
build_gradm=m
build_iface=m
build_ipp2p=m
build_ipv4options=m
build_length2=m
build_lscan=m
build_pknock=
build_psd=m
build_quota2=m

Ancak Ubuntu 16.04 de bunlara hiç gerek duymadan dkms ile tümünü kernele eklemeyi başardım.

Geoip & Iptables kullanmaktaki amacım,mail sunucunun (postfix) email kullanıcı şifre doğrulaması yapılan portlarını kısıtlamak idi.

Tcp Port 25 i sadece email sunucularından gelen isteklere yanıt verir hale getirirken port 587 (submission) ve port 465’i (smtps) sadece TR içinde izin vermek amaç..

Her ne kadar “en mantıklı/iyi çözüm” olmasa da sunucuları brute force ataklarından ve şifresini çaldıran eposta kullanıcılarının başıma açtığı dertlerden kurtardı.

Linux üç monitor 2 ekran kartı kurulumu

Pcnizde kullanmak istediğiniz 3 monitor var ve bunu ekran kartınıza bağlayıp kullanmak istiyorsunuz.O iş kadar kolay değil.Neden mi?Açıklayalım.

Piyasada satılan ucuz veya orta karar ekran kartları en fazla 2 monitor destekler.Nvidia veya Amd Ati olması önemli değil.Örneğin Ekran kartınızda 1 tane vga 1 tane hdmi ve 1 tane de dvi bağlantısı var.Bunların ikisi aktiftir.Üçüncüsünde güç bulunmaz,monitor taksanız da görüntü alamazsınız.Neticede 3 ekran girişinin olması çeşitlilik yaratmak için. (BKZ Active Power)

Elbette 3 monitor bağlayabileceğiniz ekran kartları da var.Bunlar iki grup.Genelde daha üst seviye,daha yeni veya özellikle bu iş için yapılmış bazı serilen var.Mesela Amd Ati’nin 5770 – 5780 serisi.Bu kartlarda özellikle DP (Display Port) bağlantısı dikkat çekiyor.Sizin anlayacağınız eğer bir ekran kartında DP varsa ikiden fazla monitor desteklemesi büyük olasılıkla mümkün.

Diğer grup ise profesyonel kartlar.CAD uygulamalarıi,mimari,3D işleriyle uğraşanların bir pc parası kadar para saydıkları ekran kartlarından bahsediyorum.Gpro,Firepro,Quadro bunlara örnek.Bunlar 500,600 dolardan 3000-4000 dolara kadar değişen fiyatlarda bulunabiliyor.

Bizim senaryomuzda ise o kadar bütçe yok.Hatta yakınından bile geçmez.Konfigurasyon aşağıda;

1 Viewsonic 2349 23″ monitor.1920x1080px,Viewsonic 2245 22″ 1680×1050,Viewsonic 2035 20″ 1680×1050

2 Zotac 8400GS 512M Pci-E 16x Ekran Kartı,Zotac 7200GS 256M Pci-E 16x Ekran Kartı ve şu bitcoin minerların kullandığı pci-e x16 -x1 pc dönüştürücü.Başta bu dönüştürüc cihaz ile ilgili kuşkularım vardı ama aldıktan sonra bunların yersiz olduğunu anladım.Göreceğiniz gibi kullanılan malzemenin normal anakart-ekran kartı parçalarından pek bir farkı yok.Türkiyedeki alışveriş sitelerinde 80-90 TL civarında.Çinde çok daha ucuz tabi.Aşağıda fotoğrafta görebilirsiniz.

pci-express-x1-x16-usb-30-extender

Yaklaşık beş gün cebelleştikten sonra sonunda bir X configurasyonu çıkardım.Bu kadar uzun sürmesinin sebebi elbette konu hakkında pek bir fikrimin olmayışı (oyun fian hiç ilgim yoktur ekran kartlarına)  ve Nvidia konfigurasyon aracının salaklıklarını geç farketmiş olmam.Üçüncü sebep de bu X (Xorg) ile uğraşmayı sevmiyor(dum)um.Eski günlerden (Mandrake,Redhat 9 vs zamanları ) kalma bir antipatim var.

Benim amacım 3 monitorü 3 ayrı alan olarak tanımlayıp,hepsini tek bir masaüstünde birleştirmekti.İşte bu da final conf dosyası içeriği.Mantık olarak 3 monitoru de 3 ayrı Xscreen’e tanımladım ve Xineramayı aktif ettim.

 

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 361.42  (buildd@lgw01-18)  Tue Apr  5 14:33:28 UTC 2016

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 304.131  (buildmeister@swio-display-x64-rhel04-16)  Sun Nov  8 22:48:17 PST 2015

Section “ServerLayout”

# Removed Option “Xinerama” “0”
# Removed Option “Xinerama” “0”
Identifier     “Layout0”
Screen      0  “Screen0” 0 0
Screen      1  “Screen1” RightOf “Screen0”
Screen      2  “Screen2” LeftOf “Screen0”
InputDevice    “Keyboard0” “CoreKeyboard”
InputDevice    “Mouse0” “CorePointer”
Option         “Xinerama” “1”
EndSection

Section “Files”
EndSection

Section “InputDevice”

# generated from default
Identifier     “Mouse0”
Driver         “mouse”
Option         “Protocol” “auto”
Option         “Device” “/dev/psaux”
Option         “Emulate3Buttons” “no”
Option         “ZAxisMapping” “4 5”
EndSection

Section “InputDevice”

# generated from default
Identifier     “Keyboard0”
Driver         “kbd”
EndSection

Section “Monitor”
Identifier     “Monitor0”
VendorName     “Unknown”
ModelName      “ViewSonic VA2349 Series”
HorizSync       24.0 – 82.0
VertRefresh     50.0 – 75.0
Option         “DPMS”
EndSection

Section “Monitor”
Identifier     “Monitor1”
VendorName     “Unknown”
ModelName      “ViewSonic VX2035wm”
HorizSync       30.0 – 82.0
VertRefresh     50.0 – 75.0
EndSection

Section “Monitor”
Identifier     “Monitor2”
VendorName     “Unknown”
ModelName      “ViewSonic VX2245wm”
HorizSync       30.0 – 82.0
VertRefresh     50.0 – 75.0
EndSection

Section “Device”
Identifier     “Device0”
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
BoardName      “GeForce 8400 GS”
BusID          “PCI:1:0:0”
Screen          0
EndSection

Section “Device”
Identifier     “Device1”
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
BoardName      “GeForce 7300 SE/7200 GS”
BusID          “PCI:2:0:0”
EndSection

Section “Device”
Identifier     “Device2”
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
BoardName      “GeForce 8400 GS”
BusID          “PCI:1:0:0”
Screen          1
EndSection

Section “Screen”

# Removed Option “MetaModes” “GPU-0.DFP-1: 1680×1050+0+0, GPU-0.DFP-0: 1920×1080+1680+0, GPU-1.DFP-0: 1680×1050+3600+0”
# Removed Option “MultiGPU” “On”
# Removed Option “BaseMosaic” “On”
# Removed Option “nvidiaXineramaInfoOrder” “DFP-1”
# Removed Option “metamodes” “DVI-I-0: nvidia-auto-select +3600+0, DVI-I-1: nvidia-auto-select +1680+0, HDMI-0: nvidia-auto-select +0+0”
# Removed Option “MultiGPU” “On”
# Removed Option “metamodes” “nvidia-auto-select +0+0”
# Removed Option “metamodes” “DVI-I-1: nvidia-auto-select +1680+0, HDMI-0: nvidia-auto-select +0+0”
Identifier     “Screen0”
Device         “Device0”
Monitor        “Monitor0”
DefaultDepth    24
Option         “Stereo” “0”
#   Option         “nvidiaXineramaInfoOrder” “DFP-0”
Option         “metamodes” “DVI-I-1: nvidia-auto-select +0+0”
Option         “SLI” “Off”
Option         “MultiGPU” “Off”
Option         “BaseMosaic” “off”
SubSection     “Display”
Depth       24
EndSubSection
EndSection

Section “Screen”

# Removed Option “metamodes” “1680×1050 +0+0”
Identifier     “Screen1”
Device         “Device1”
Monitor        “Monitor1”
DefaultDepth    24
Option         “Stereo” “0”
Option         “metamodes” “nvidia-auto-select +0+0”
Option         “SLI” “Off”
Option         “MultiGPU” “Off”
Option         “BaseMosaic” “off”
SubSection     “Display”
Depth       24
EndSubSection
EndSection

Section “Screen”

# Removed Option “metamodes” “1680×1050 +0+0”
# Removed Option “metamodes” “nvidia-auto-select +0+0”
Identifier     “Screen2”
Device         “Device2”
Monitor        “Monitor2”
DefaultDepth    24
Option         “Stereo” “0”
Option         “metamodes” “HDMI-0: nvidia-auto-select +0+0”
Option         “SLI” “Off”
Option         “MultiGPU” “Off”
Option         “BaseMosaic” “off”
SubSection     “Display”
Depth       24
EndSubSection
EndSection

Section “Extensions”
Option         “Composite” “Disable”
EndSection

 

Eğer işi nvidia aracına bırakırsanız twinview + Xinerema gibi bir konfigurasyon yaparak çileden çıkartıyor.Twinview Nvidia’nın geliştirdiği bir çoklu monitor destekleyen bir özellik.Tek bir cümleyle özetleyeyim.İlk iki monitorunuzu tek masaüstü (tek x screen) yaparak 3.monitorunuze yeni bir x screen’e atıyor.Bu durumda iki monitorunuz de tastamam çalışıp tek masaüstü görüntüsü verirken,3.monitor üvey evlat muamelesi görerek kapkara bir şekilde öylecene duruyor.yor.Aslında bu şekilde de bir şekilde 3 aktif monitorunuz var.Ancak programları çalıştırırken Screen 1 yani 0.1 de çalışmasının gerektiğini belirtmelisiniz vs vs.Pek kullanışlı sayılmaz.

Önemli Notlar;

Bu işi sadece bir tek nvidia driver versiyonunda (nvidia-304) yapabildim.Diğerlerinde ya işlere ters gitti ya da doğru driver değildi.Aşağıdaki ekran görüntüsünde detaylarını görebilirsiniz.

Son not; Bu çalışmayı Ubuntu 16.04 de yaptım ama sonuç olarak bu X (Xorg) ve nvidia driver meselesi.O yüzden diğer centos,fedora,debian gibi dağıtımlarda bunun çalışacağını düşünüyorum.

Yukarıdaki konfigurasyonda malesef compizi çalıştıramadım.Nette okuduğum onlarca makalede benzer şeyler yazıyor.gnome-flashback paketini kurup eski metacity-gnome-masaüstünü kullanabiliyorsunuz.Çok keyifsiz bir durum.Unitye alıştıktan sonra eskiye dönmek hayli sıkıcı.En azından durum şimdilik böyle.

Xinerama nispeten eski ve performans kayıplarına sebep oluyor.Donanımların getirdiği twinview gibi çözümler performansta fark yaratıyor.

 

 

Postfix NDR spam backscatter engelleme

emailbackscatterBackscatter Nedir?

Her SMTP sunucusu alıcısına iletemediği epostaları (bounce ) bir başka bildirimle göndericiye iletmek zorundadır.Bu bir standarttır.Gönderici gönderdiği epostayı alıcısına ulaşmadığını bu bildirim mesajıyla farkeder.Bu bildirimin adı non delivery reports veya kısa ndr,diğer başka bir tanımı da DSN yani Delivery Status Notification ‘dur.

Bu tasarlanan,iyiye hizmet eden bilişimin eskide kalmış bir hikayesi.Gerçek dünyada ise durum şöyle;

Bu raporlama sisteminin kötü amaçla kullanılabileceğini farkeden aşırı zeki spamcı milleti çaktırmadan  milyonlarca spam gönderebilmekte.Nasıl mı?

Bilindiği gibi epostada bir envelope sender aynı zamanda authenticated sender olmak zorunda değil.Yani eski mektup gönderdiğimiz günlere dönecek olursak.Göndereceğim zarfın üzerine kendi adımı yazmak zorunluluğum yok.

Backscatter epostanın envelope sender bölümüne istenilen email adresini yazılır.Alıcı kısmında da karşı tarafta bulunmayan bir eposta adresi belirtildiğinde gönderilen epostayı  alıcı smtp sunucusu red edecektir.Peki bu durumda NDR nereye gönderilecek?Elbette envelope sender kısmındaki kurbanımızın eposta adresine.Karda yürü ama izini belli etme.

Çözüm

Sanıyorum ki binlerce dolar ödenen o pek gözde,pek güzide eposta sistemleri kendi içinde bir mekanizmayla bu işi çözmüşlerdir.

Ama binlerce dolarım yok,aynı zamanda hosting işindeyim diyorsanız hayat size biraz daha zor.Zira elimizde kullanabildiğimiz en modern,gelişmiş ve güvenli smtp postfix.Postfixin resmi sayfasında backscatter engelleme ile ilgili bir takım çözüm önerileri var.Tembellik etmedim okudum.Neticede sunucunuzda bir veya birkaç hosting koşuyorsa kabul edilebilir bir çözüm sunulmuş.Ancak bu çözüm,paylaşımlı bir hosting sunucusu yönetiyorsanız ve şöyle 50-100 ve üzeri hosting barındırılıyorsa hiçbir işe yaramaz.

Yine gerçek dünyadan bir örnek vermek gerekirse;zaten yukarda sözünü ettiğimiz raporlama sistemi kanımca pek bir işe yaramıyor.Çünkü kimse pc başında karşısına çıkan hata mesajlarını okumuyor.O yüzden kökten çözüm olarak  NDR’ı komple kapatma yolunu seçebilirsiniz.

Bunun için postfix’in master.cf dosyasını açın.

ve aşağıdaki satırı;

bounce    unix  –    –    n    –    0    bounce

şu şekilde değiştirin;

bounce    unix  –    –    n    –    0    discard

dosyayı kaydedip kapattıktan sonra postfix servisini restart edin.Hepsi bu kadar.

 

Linux Plesk 9.5 Call to undefined function hatası

parallelsCall to undefined function get_failure_redirect_url() in /usr/local/psa/admin/auto_prepend/auth.php3 on line 179

Tarayıcınızdan Linux Plesk 9.5 web sunucunuza 8443 veya 8880 portundan panele giriş esnasında yukarıdaki gibi bir hata mesajı ile karşılaşmanız durumunda yapmanız gereken mikro güncellemeleri ( MU Micro Updates ) çalıştırmak olacaktır.

Favori ssh istemcinizle sunucuya root olarak ssh bağlantısı kurun.Komut satırında;

/usr/local/psa/admin/bin/autoinstaller –select-product-id plesk –select-release-current –reinstall-patch –install-component base

komutunu çalıştırın.Script biraz bekleyip sistemde kurulu paket bilgisini aldıktan sonra mikro güncellemeleri uygulayacak,ve sorunsuz olarak plesk arayüzüne giriş yapabiliyor olacaksınız.

Plesk 9.5 ‘in kurulabildiği her Linux distrosunda bu script bu path de olmayabilir.Sizin ihtiyacınız olan uygun versiyonda bir plesk autoinstaller dır.Bu sebeple bu scripti /root/parallels klasörü altında da bulmanız olasıdır.

Linux-Destek Hosting Paketleri

Aşağıdaki micrositede Linux hosting ,wordpress ve opencart hosting paketlerini,bayi paketlerini ve vds sunucuların özelliklerini ve fiyatlarını görebilirsiniz.

Screenshot from 2015-07-23 15:28:50

Linux “Ghost” Uzaktan Kod Çalıştırma Güvenlik Açığı

tux18727 Ocakta haberi duyurulan ve ciddi risk taşıyan GNU C Library (glibc) zaafiyetinden faydalanarak sunucunun kontrolü kötü niyetli kişiler tarafından ele geçirilebiliyor.

Söz konusu açık, glibc 2.18 öncesi versiyonları etkiliyor.2.18 ve sonrasında şu anda böyle bir risk bulunmadığı ifade ediliyor.

Pek çok linux dağıtımı var ancak genel olarak hepsi ya Redhat ya da Debian türevi.Ubuntu’ya da sayacak olursak hemen hemen her linux sunucu bu tehdit altında.

Aşağıdaki adreslerde ,konuyla ilgili açıklama ve güncelleme için gerekli bilgiler yer alıyor.

Ubuntu

http://www.ubuntu.com/usn/usn-2485-1/

Debian

https://www.debian.org/security/2015/dsa-3142

Redhat

https://access.redhat.com/security/cve/CVE-2015-0235

 

Web Sunucu Güvenliği İpuçları-II

Php destekli bir apache web sunucunda kapatılması gerekli php fonksiyonları

mail,system, dl, array_compare, array_user_key_compare, passthru, cat, popen, proc_close, proc_get_status, proc_nice, proc_open,escapeshellcmd,escapeshellarg, show_source, posix_mkfifo, ini_restore, mysql_list_dbs, get_current_user, getmyuid,pconnect, link, symlink, fin, exec, fileread, shell_exec, pcntl_exec, leak, apache_child_terminate, chown, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, fpassthru, execute, shell, chgrp, stream_select, passthru, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual, eval, allow_url_fopen, pconnect, p_connect,posix_getpwuid,fileowner,symlink,readlink

Debian,Ubuntu root şifresi resetleme,ekran görüntülü anlatım

Debian tabanlı sistemlerde kullanılan açılış yöneticisi olan grub’ı kullanarak root şifresini resetleme

horde sevmeyenlere linux plesk 9.5 afterlogic webmail lite kurulumu

sunucunuza ssh üzerinden login olun.psa-horde paketinin kurulu olduğu dizine geçin;

cd /usr/share/psa-horde/

Bu dizine afterlogic webmail lite uygulamasını indirin;

wget http://www.afterlogic.com/download/webmail_php.zip

Sıkıştırılmış dosyayı açın;

unzip webmail_php.zip

dizinin içine girin;

cd webmail

bu aşamada webmail için gerekli mysql veritabanını oluşturuyoruz;

mysqladmin -uadmin create alwebmaildb -p$(cat /etc/psa/.psa.shadow)

mysql -uadmin -p$(cat /etc/psa/.psa.shadow)

bu komutla mysql konsola girdikten sonra aşağıdaki cümleleri sırasıyla yazın.

CREATE USER ‘afterlogic’@’localhost’ IDENTIFIED BY ‘sizinşifreniz’;

GRANT USAGE ON * . * TO ‘afterlogic’@’localhost’ IDENTIFIED BY ‘sizinşifreniz’ WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

GRANT ALL PRIVILEGES ON `afterlogic` . * TO ‘afterlogic’@’localhost’;

FLUSH PRIVILEGES;

mysqlden çıktıktan sonra (quit yazarak veya ctrl+c),kurulumda sorun çıkmaması için ufak bir dosya hatasını gideriyoruz;

cd /usr/share/psa-horde/webmail/install/steps/
chmod 644 root compatibility.php

diğer gerekli yazma izinleri (webmailin bulunduğu alanda php scriptlerini Apache çalıştırıyorsa;

cd /usr/share/psa-horde/webmail/
chown apache.apache data/ -R

Browserınızın adres satırına kurulum url adresi olarak aşağıdaki satıra kendi alanadınızın adını yazın.

http://webmail.sizinalanadiniz.com/webmail/install/

web tabanlı kurulum.sırasıyla aşağıdaki aşamaları geçin;

  • klasörlere yazma izinleri,çeşitli php modul kontrolü vs vs
  • webmail veritabanı oluşturulması için sql bilgileri girişi (yukarıda oluşturmuştuk..
  • smtp /pop / imap test
  • mailadm yönetici şifre oluşturma

aşamaları tamamladıktan sonra kurulum sizden install dizinini silmenizi isteyecektir;

 

cd /usr/share/psa-horde/webmail/

rm -rf install/

artık horde webmaili kullanmayacaksanız index.php nin adını değiştirip,yeni index.php nizi oluşturun.

cd /usr/share/psa-horde/

mv index.php index.old.horde

içine şunları yazın.

nano index.php

<?php
header(‘Location: ./webmail/index.php’);
?>