Messenger Sunucularının Kurulum Dokümanı



Benzer belgeler
Yedek Almak ve Yedekten Geri Dönmek

Clonera Bütünleşik İş Sürekliliği Gereksinimler ve Kurulum Dökümanı

Cyberoam Single Sing On İle

Web Servis-Web Sitesi Bağlantısı

Exchange Server 2013 Kurulum Sonrası Yapılandırmalar

HP PROCURVE SWITCHLERDE 802.1X KİMLİK DOĞRULAMA KONFİGÜRASYONU. Levent Gönenç GÜLSOY

2013 Yıl Sonu İşlemleri

PocketRest Kullanımı

KULLANICI KILAVUZU: UEA FİX KULLANICILARININ SSLVPN ERİŞİMİ İMKB İÇİNDEKİLER

FTP ve Güvenlik Duvarları

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

Bölüm 10: PHP ile Veritabanı Uygulamaları

Opera V2 Kurulum Klavuzu V0.01

Smoothwall URL Filter Kurulumu

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Paralel Hesaplama - Beowulf Cluster

LDAP Administrator ile Active Directory Yonetimi

FortiGate & FortiAP WiFi Controller

Ubuntu Terminal Server Ve Uzak Masaüstü Sunucusu

Yerel Okul Sunucusu Uygulama Yazılımları Prototipi

Layer 2 Güvenlik Yöntemleri(Bölüm1) SAFA Kısıkçılar / İTÜ BİDB 2010

Berqnet Sürüm Notları Sürüm 4.1.0

Paloalto LDAP Yapılandırılması LDAP: Lightweight Directory Access Protocol DAP (Directory Access Protocol) API (Application Programming Interface)

BioAffix Ones Technology nin tescilli markasıdır.

.: Linux Kullanıcıları Derneği. III. Linux ve Özgür Yazılım Şenliği Mayıs Milli Kütüphane Ankara :.

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

LDAP VE WORDPRESS İLE

Oracle 12c Flex Cluster - Flex ASM

AHTAPOT Firewall Builder Kurulumu

FortiGate Active Directory Uygulaması. v4.00-build /08

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

ArcSight Logger Connector ArcSight Logger Connector Yapılandırması

SAMBA Linux Dosya Sunucusu

NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr

LOGO TIGER WINGS KURULUMU VE AYARLARI

PostgreSQL'de Güvenlik

AHTAPOT Merkezi Yönetim Sistemi ile Kurulum Yapılması

Websense Content Gateway HTTPS tarama konfigurasyonu

LOGO DESTEK DOKÜMANI

Active Directory Nedir Ne Değildir?

SSH ile Sistem Yönetimi

SQL Uyarı Programı Kurulum ve Kullanımı

IT HERO. Manage Engine. Servicedesk Plus Enterprise Edition Kurulum İçeriği

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

Open-VPN Kurulumu ve SSH Bağlantı Ayarları (Windows İçin)

1 STUNNEL NEDİR? 2 STUNNEL KURULUMU

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

ETA:MOBİL KURULUM TALİMATI

KABLOLU AĞLAR Switch tarafında 802.1x desteğini etkinleştirmek için aşağıdaki temel yapılandırma yapılır;

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır.

Uzaktan Kurulum Kılavuzu

Açık Kod VPN Çözümleri: OpenVPN. Huzeyfe ÖNAL

ELEKTRONİK SAĞLIK KAYITLARI GÜVENLİĞİNDE IEEE 802.1x STANDARDININ KULLANILMASI

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

DESTEK DOKÜMANI GO WEB MASTER

Module 2 Managing User And Computer accounts

BioAffix Ones Technology nin tescilli markasıdır.

MERAK MAIL SERVER ACTIVE DIRECTORY ENTEGRASYONU

Free Cooling (Tibbo Ethernet Modüllü)

Websense Web Security Gateway V7.X Sürüm Yükseltme

SQL ALWAYS ON SİSTEMİNE YENİ CLUSTER NODE EKLENMESİ

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

BEUN VPN Hizmeti. VPN Nedir?

Ssl Vpn konfigurasyonunda öncelikle Sslvpn yapmasına izin vereceğimiz kullanıcıları oluşturuyoruz.

SQL Server 2014 Kurulum Adımları

Yeni kullanıcı hesabı açmak ya da varolan hesaplar üzerinde düzenlemeler yapmak.

CHAPTER 9. DHCP Server

Useroam Kurulum Rehberi

Kurulumdan sonra direk sunucunuzun ip adresini web tarayıcınıza girerseniz apachenin çalıştığına dair "It works" mesajını görebilirsiniz.

Kets DocPlace LOGO Entegrasyonu

İÇİNDEKİLER VII İÇİNDEKİLER

SSL (GÜVENLİ CİHAZ) SERTİFİKASI İSTEK DOSYASI OLUŞTURMA VE YÜKLEME REHBERİ

Kullanıcı Ayarları. Resim 89. United Security. Kullanici Adi Seviye Etkin. No.

Windows Server 2012 Active Directory Kurulumu

Apache Tomcat Güvenliği

Ubuntu üzerine phpbb forum yazılımının 3.2 sürümünün kurulumu. Ocak, 2017

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

Sophos SSL VPN Ayarları ve SSL VPN Clinet Programı Kurulumu

SQL 2005 SQL STUDIO MANAGER ACP YAZILIMI KURULUM KILAVUZU

Programlama Kılavuzu. IPV Serisi IP Santralleri IPV10 IPV20 IPV50

Yrd. Doç. Dr. A. Burak İNNER

Güvenli Doküman Senkronizasyonu

Vasco Kurulumu ve Active Directory Entegrasyonu

Lisanslama Sistemi ve Set Yükleme İşlemleri

1. Zamanbaz Hakkında Zamanbaz Kurulumu Zamanbaz Sistem Gereksinimleri Zamanbaz Kurulumu... 3

Coslat Monitor (Raporcu)

LOGO için Online Mutabakat Kullanım Kılavuzu

EXCHANGE 2007 TRANSPORT RULE İLE KULLANICI BAZLI MAİL GÖNDERİM KISITLAMASI... 1 LOTUS DOMINO SERVER'DA İNTERNET MAİL ALIM KISITLAMALARI...

Ağ Bağlantısı Hızlı Kurulum Kılavuzu

Web Uygulama Güvenliği Kontrol Listesi 2010

J-Guar Self Servis Kurulumu

Sun Solaris ve RBAC ( Role Based Access Control List)

FortiGate (SSLVPN) Tunnel Mode & Web App. Mode

Hybrid Software Veritabanı ve Sistem 7x24 Destek &Danışmanlık Hizmetleri Veritabanı ve Sistem 7x24 Destek & Danışmanlık Hizmetleri

Useroam Cloud Kurulum Rehberi

Güvenli Kabuk: SSH. Burak DAYIOĞLU, Korhan GÜRLER

Önce domain sunucuyu görebiliyor muyuz, kontrol edelim

Bilgi ve Olay Yönetim Sistemi

Transkript:

Messenger Sunucularının Kurulum Dokümanı GİRİŞ Ejabberd erlang[1] dilinde yazılmış ve o dile ait olan mnesia database i kullanan bir yazılımdır. Erlang dili fault tolerant uygulamalarda kullanılmaktadır. Daha çok telekomunikasyon sektöründe kullanılmakla beraber cluster yapıda çalışan sistemler için uygun bir geliştirme ortamıdır. Erlang ile yazılmış olan Ejabberd[2] jabber [3] protokolu uyumlu bir yazılımdır. Jabber protokolu internet üzerinde mesajlaşmak için kullanılan bir protokoldür. Ejabberd in seçilme nedeni fault tolerant bir yapıyı kullanıcıya sunmasıdır. Bu sayede daha iyi ve güvenli bir cluster yapının kurulabileceği düşünülmüştür. Ejabberd in planlanmış ve kurulmuş yapısı aşağıdaki şekildeki gibidir: 10.0.0.2 Ejabberd in kurulumu, yedek ve geri dönme prosedürleri aşağıda adım adım anlatılmıştır. 1

KURULUM 1)Kaynak dosyasının indirilmesi: Ejabberd din binary doyası /home/messenger/ klasörüne indirilir wget http://process-one.net/en/projects/ejabberd/download/1.1.2/ejabberd-1.1.2_1-linuxinstaller.bin 2)Kurulumun yapılması:./ ejabberd-1.1.2_1-linux-installer.bin komutu ile kurulum başlatılır. 3)Kurulum esnasında cevaplanması gereken sorular: Kurulum için sorulan sorular aşağıdaki gibi cevaplanır. a)kurulum dili olarak İngilizce seçilir. b)lisans sözleşmesi kabul edilir. c)yükleme directorysi olarak önerilen /opt/ejabberd-1.1.2 değiştirilmez. d) ejabberd server domain için messenger1.example.com.tr yazılır. e) Administrator user name için önerilen admin değiştirilmez ve admin için bir şifre girilir. f)cluster[y/n] sorusuna yes denilir. g) Cluster node name için ejabberd1@messenger1.example.com.tr yazılır. Bu işlem tüm nodelar için tekrarlanır. Not:Kurulum esnasında admin adlı kullanıcının şifresini istiyor. Ejabberdi ldap kullanarak çalıştıracagımız için ldapta admin uid li bir kullanıcı acılmalı ve ldap ile uyumlu çalışmaya başladıktan sonra web arayüzünü kullanırken ldap ta açılan hesabın şifresi girilmeli. Messenger1.example.com.tr ve messenger2.example.com.tr nin DNS kayıtları oluşturulmalı. 4)Cookie lerin aynı yapılması: Cluster şeklinde çalışan sunucular birbirleriyle iletişimlerini kurmak için kendi cookielerinin clusterdaki diğer sunucuların cookieleriyle aynı olmasını şart koşarlar. Bunun sebebi tamamen güvenliktir. Root kullanıcısının home directorysinde olan.erlang.cookie dosyasının içeriği clusterdaki diğer sunucuyla aynı olması için iki sunucunun cookie dosyaları eşitlenir. Birinin cookie dosyası diğerine kopyalanır. 6)Cluster şeklinde sunucuların yapılandırılması: 2

./erl -name ejabberd1@messenger1.example.com.tr -kernel inetrc '"/opt/ejabberd- 1.1.2/conf/inetrc"' -s ejabberd -ejabberd config '"/opt/ejabberd-1.1.2/conf/ejabberd.cfg"' log_path '"/opt/ejabberd-1.1.2/logs/ejabberd.log"' -sasl sasl_error_logger '{file,"/opt/ejabberd- 1.1.2/logs/sasl.log"}' Komutu messenger1 serverinda calıstırılır. Bu komut sonucunda bin directorysinde bir database oluşturulur. Bu databaseden bir tane sunucu klonlamak için messenger2 sunucusunda aşağıdaki komut çalıştırılır. extra_db_nodes parametresi ile messenger1 işaret edilir../erl -name ejabberd2@messenger2.example.com.tr -s mnesia -mnesia extra_db_nodes "['ejabberd1@messenger1.example.com.tr']" En son çalıştırılan komut ile messenger2 de erlang shell ine düşülür ve mnesia:change_table_copy_type(schema, node(), disc_copies). Komutuyla messenger2 ye bir database oluşturulur. Bu database bilgilerini messenger1 den almaya başlar. Erlang shellinden çıkmak için q(). Komutu verilir ve Linux shelline düşülür. Bu şekilde yapılandırılmış messenger2 bazı tableları kendi üstünde tutsa da birçok tableları remote olarak messenger1 den aldığı için tek başına çalışamaz. Bunu engellemek için messenger2 nin de bu tableları kendi üstünde tutması sağlanmalıdır../erl -name ejabberd2@messenger2.example.com.tr -kernel inetrc '"/opt/ejabberd- 1.1.2/conf/inetrc"' -s ejabberd -ejabberd config '"/opt/ejabberd-1.1.2/conf/ejabberd.cfg"' log_path '"/opt/ejabberd-1.1.2/logs/ejabberd.log"' -sasl sasl_error_logger '{file,"/opt/ejabberd- 1.1.2/logs/sasl.log"}' İle çalıştırıldıktan sonra web arayuzunden database tablolarını messenger1 deki gibi özelliklere çekilir. Yani disc_copy olanları disc_copy gibi yaparak bunu sağlarız. Bu şekilde yapılmazsa remote tablolarda onemli bilgiler kalır ve kullanıcıları authenticate etmez. 7) Ejabberd.cfg de yapılması gereken değişiklikler: a)@messenger ayarlaması ejabberd.cfg de hosts kısmı messenger yapılır. Clientlarda hesaplar girilirken @ kısmından sonra messenger nin eklenmesi gerekmektedir. Jabber protokolunun gereği olan bu ekleme 3

yapılmazsa kullanıcılar sisteme bağlanamaz. b)ldap yapılandırması Ejabberd in ldap ile çalışmasını saglamak için conf dosyasında değişlikliğe gidilmesi gerekmektedir. Kullanıcıların sunucuya ldap üstünden kayıt olabilmesi için {access, register, [{deny, all}]}. Allowu deny yapılmalıdır. Bu sayede ldap üstünde olan kullanıcılar ejabberd i kullanır. Öbür türlü isteyen kendini sunucuya üye yapar. {auth_method, internal}. İptal edip yerine ldap authentication kodları yazılır. İptal edilmesi istenilen satırın başına % işareti konulur. Ldap ayarları aşağıdaki gibi yapılandırılır. {auth_method, ldap}. {ldap_servers, ["ip_of_the_ldap_server"]}. % List of LDAP servers {ldap_uidattr, "uid"}. % LDAP attribute that holds user ID {ldap_base, "dc=example,dc=com,dc=tr"}. % Search base of LDAP directory {ldap_rootdn, "uid=sorgucu,dc=example,dc=com,dc=tr"}. % LDAP manager {ldap_password, "sorgular"}. % Password to LDAP manager {ldap_filter, "(AccountStatus=enabled)"}. Kullanıcıların diğer üyeleri arama yapıp kendi kullanıcı listelerini eklemeleri için vcard yapılandırılması gerekmektedir. Bu yapılandırmaya göre kullanıcılar arama yapabilmektedir. Mod_vcard içinde {mod_vcard_ldap, [{ldap_rootdn, "uid=sorgucu,dc=example,dc=com,dc=tr"}, {ldap_password, "sorgular"}, {ldap_base, " dc=example,dc=com,dc=tr"}, {ldap_filter, "(AccountStatus=enabled)"}, {ldap_uidattr, "uid"}, {ldap_vcard_map, [ % just use user's part of JID as his nickname {"GIVEN", "%s", ["givenname"]}, {"FAMILY", "%s", ["sn"]}, {"FN", "%s, %s", ["givenname","sn"]}, 4

{"EMAIL", "%s", ["mail"]}]}, %% Search form {ldap_search_fields, [{"Absicilno", "uid"}, {"Ad", "givenname"}, {"Soyad", "sn"}, {"E-posta", "mail"}, {"Takmaad", "nickname"}]}, {ldap_search_reported, [{"Ad,Soyad", "FN"}, %{"Takmaad", "NICKNAME"}, {"E-posta Adresi", "EMAIL"}]}]}, Eklemesi yapılıp vcard formatı ayarlanır. 8) TLS (transport layer security) bağlantısını sağlama: Jabber protokoluyle iletişim kuran ejabberd şifreli bağlantı yapılmadan kullanılırsa güvenlik yönünden büyük bir zaafiyet yaratacağı için ejabberd in mutlaka sertifikalı tls bağlantısı üzerinde çalışması gerekmektedir. Bu sayede kullanıcıların özel konuşmaları network içinde clear text olarak dolaşmaz. Şirket kullanıcılarının bu servisi özel konuşmalarında güvenle kullanmaları için kullanıcılara tls bağlantısı sağlanması gerekir. Tls baglantısı için sertfika uretitmek için openssl genrsa 1024 > host.key chmod 400 host.key openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > host.cert İstenilen bilgiler girilir openssl x509 -noout -fingerprint -text < host.cert > host.info cat host.cert host.key > host.pem && rm host.key ile host.pem hazırlanır. scp host.pem root@10.0.0.4:/opt/ejabberd-1.1.2/conf/host.pem bu dosya diğer sunucuya aktarılır. 5

Artık sunucunun ssl baglantısı yapması için ejabberd.conf dosyasından ayarlama yapılmalıdır. Bu ayar iki sunucuda da yapılmalıdır. {5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper}, starttls, {certfile, "/opt/ejabberd-1.1.2/conf/sertifika/host.pem"}]}, 9) Backup ve Restore durumları: Backup ve restore prosedürü gelecekte onemli olabilecek konulardan biri oldugu için bu yazıya bu konularıda koydum. Tüm sunucuların database ini almaya gerek yoktur yapı itibariyle. Zaten tum databaseler birbirlerini replike ediyor. Bir tanesini almak yeterlidir. İlk olarak backup alınması için seçilen sunucudan web arayuzuile backup alınır. 1.Senaryo: Nodelardan biri çöktü. Çöken node a ejabberd kurulur ve database i masterdan alması için işlem yapılır. Zaten çöken bir sunucunun üstünden alınmış olan backup kurulum süresince geçecek zaman sonucu eskiyecektir. Çalışan masterdan alınması daha uygundur. Bu sayede son model bir database e sahip olur. 2.Senaryo: Master çöktü MAsterin backupı devamlı alınması gerekmektedir. Buna gore mastera backup donulur ve digger nodelardaki databaseler silinip mastera uyumlu hale getirilir. 10) Bakım gibi durumlarda sunucunun durdurulması: Bakım ve bunun gibi işler için sunucunun durdurulması gerekebilir. Hangi node da çalışma yapılacaksa o node da /opt/ejabberd-1.1.2/bin/start ile web arayüzüne bağlanılır ve Nodes seçilir. Running nodes kısmından hangi nodeun üstünden arayüz çalıştırıldıysa o nodeun çalışan ejabberd ı seçilir ve en alttaki menüdeki restart ve stop dan başlatırlır veya durdurulur. 11) Ejabberd ı çalıştırma komutları: İlk verilen çalışma komutlarında erlang shelli açık durumda kalmaktadır. Bunu engellemek için noinput ve detached parametleri eklenmesi gerekir. Erlang için tuning yapılması gerekmektedir. Aşağıdaki değerler export edilir. Çalıştırma komutundan once export ERL_MAX_PORTS=32000 export ERL_MAX_ETS_TABLES=20000 Bu değerler değişkenlere atanır. Daha sonar aşağıdaki komutlar verilir. 6

Messenger1 için:./erl -noinput -detached -name ejabberd1@messenger1.example.com.tr -kernel inetrc '"/opt/ejabberd-1.1.2/conf/inetrc"' -s ejabberd -ejabberd config '"/opt/ejabberd- 1.1.2/conf/ejabberd.cfg"' log_path '"/opt/ejabberd-1.1.2/logs/ejabberd.log"' -sasl sasl_error_logger '{file,"/opt/ejabberd-1.1.2/logs/sasl.log"}' Messenger2 için:./erl -noinput -detached -name ejabberd2@messenger2.example.com.tr -kernel inetrc '"/opt/ejabberd-1.1.2/conf/inetrc"' -s ejabberd -ejabberd config '"/opt/ejabberd- 1.1.2/conf/ejabberd.cfg"' log_path '"/opt/ejabberd-1.1.2/logs/ejabberd.log"' -sasl sasl_error_logger '{file,"/opt/ejabberd-1.1.2/logs/sasl.log"}' 12)Sistem güvenliği, kullanılan portlar: Sistem güvenliği için tüm gereksiz portlar kapatılmıştır. Bu iki sunucunun internete çıkışları da yoktur. Clientların kullandığı port 5222 dir. Sunucular kendi aralarında ise 5269 dan konuşmaktadır. Firewall ın arkasında kaldıklarından bu sunucuların açık portlarına erişim imkanı yoktur. Sadece admin networkünden erişilebilmektedir. Sunucu ve clientlar arasında kriptolu iletişim sağlanmış olup bu sayede mail şifrelerinin ve mesajların network üstünden dinlenmesi engellenmiştir. Referanslar: [1] http://video.google.com/videoplay?docid=-5830318882717959520 [2] http://ejabberd.jabber.ru/ [3] http://www.jabber.org/ 7