FreeBSD 11 ile Kendi Posta Sunucunuzu Oluşturma

Kendi e-posta sunucunuzu çalıştırmak oldukça faydalı olabilir. Verilerinizden siz sorumlusunuz. Ayrıca teslimat seçeneklerinizle daha fazla esneklik sağlar. Ancak, bazı zorluklar vardır. Sunucunuzu güvenlik açıklarına kadar açma ve sunucunuzu spam göndericilerin kullanması için potansiyel bir geçiş yapma riskiyle karşı karşıyasınız.

Yoldan çekilince, kendi posta sunucumuzu çalıştırmaya başlayalım.

genel bakış

Yüklemek için FreeBSD temel sistemine dahil olmayan üç yazılım parçası vardır:

  • OpenSMTPd
  • güvercinlik
  • spamd

OpenSMTPd bir posta aktarım aracısı (MTA) ve posta dağıtım aracısıdır (MDA). Bu, SMTPprotokol üzerinden diğer posta sunucularıyla iletişim kurabileceği ve ayrıca tek tek kullanıcıların posta kutularına posta teslim etmeyi de yönetebileceği anlamına gelir . OpenSMTPd'yi harici sunucularla iletişim kurabilmesi (spamd aracılığıyla filtrelenmiş) ve yerel kullanıcılara posta gönderebilmesinin yanı sıra kullanıcıdan kullanıcıya yerel posta teslim edebilmesi için ayarlayacağız.

Dovecot, yerel posta kutularını okuyan ve bunları IMAP veya POP3 üzerinden kullanıcılara sunan bir MDA'dır. Bu içeriğin sunulması için yerel kullanıcıların posta kutularını kullanır.

Spamd bir posta filtreleme hizmetidir. Postaları spamd yoluyla yönlendirebiliriz ve postaları çeşitli kara listelere, beyaz listelere ve gri listeye göre filtreleyecektir.

Bu posta sunucusu için genel fikir birkaç farklı yol gerektirir:

Outside world -> Firewall -> spamd -> OpenSMTPD -> User mail boxes
Outside world -> Firewall (spamd-whitelist) -> OpenSMTPD -> User mailboxes
Outside world -> Firewall (IMAP/POP3) -> Dovecot
Outside world -> Firewall (SMTPD submission)

Bu eğitimde, güvenlik duvarımız için OpenBSD PF'nin FreeBSD sürümünü kullanacağız. ipfwYapılandırmanın çok benzer olduğu yerlerde de kullanabilirsiniz .

Not: Vultr, varsayılan olarak, her yerde SMTP sunucuları tarafından kullanılan 25 numaralı bağlantı noktasını engeller. Tamamen işlevsel bir e-posta sunucusu çalıştırmak istiyorsanız, o bağlantı noktasını açmanız gerekir.

İlk kurulum

İlk olarak, gerekli programları kurmamız gerekiyor.

Sudo erişimi ayarlanmış bir kullanıcı olarak çalıştığınızı varsayarsak, aşağıdaki komutları çalıştırabiliriz. Bağlantı noktası veya paket kullanıp kullanmadığınıza bağlı olarak değişir.

Paketler (önerilir)

Bu yardımcı programlarda yerleşik olarak belirli bir işlevsellik gerekmedikçe, paketler aracılığıyla yüklenmesi önerilir. Daha kolaydır, daha az sunucu zamanı ve kaynağı alır ve sezgisel, kullanıcı dostu bir arayüz sağlar.

sudo pkg install opensmtpd dovecot spamd

Aşağıdaki makekomutlar size birçok derleme seçeneği sunar, varsayılanlar iyi çalışır. Ne yaptığınızı tam olarak bilmiyorsanız bunları değiştirmeyin.

sudo portsnap fetch update   # or run portsnap fetch extract if using ports for the first time
cd /usr/ports/mail/opensmtpd  
make install  # Installs openSMTPd
make clean
cd /usr/ports/mail/dovecot
make install  # Installs dovecot
make clean
cd /usr/ports/mail/spamd
make install  # Installs spamd
make clean

Aşağıdaki satırları eklememiz gerekecek /etc/rc.conf:

pf_enable="YES"
pf_rules="/usr/local/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"

obspamd_enable="YES"
obspamd_flags="-v"
obspamlogd_enable="YES"

dovecot_enable="YES"

Güvenlik Duvarı Kurulumu

PF'yi yapılandırmak için aşağıdakileri oluşturabiliriz /usr/local/etc/pf.conf:

## Set public interface ##
ext_if="vtnet0"

## set and drop IP ranges on the public interface ##
martians = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \
          10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \
          0.0.0.0/8, 240.0.0.0/4 }"

table <spamd> persist
table <spamd-white> persist

# Whitelisted webmail services
table <webmail> persist file "/usr/local/etc/pf.webmail.ip.conf"

## Skip loop back interface - Skip all PF processing on interface ##
set skip on lo

## Sets the interface for which PF should gather statistics such as bytes in/out and packets passed/blocked ##
set loginterface $ext_if

# Deal with attacks based on incorrect handling of packet fragments 
scrub in all


# Pass spamd whitelist
pass quick log on $ext_if inet proto tcp from <spamd-white> to $ext_if port smtp \
    -> 127.0.0.1 port 25
# Pass webmail servers
rdr pass quick log on $ext_if inet proto tcp from <gmail> to $ext_if port smtp \
    -> 127.0.0.1 port 25
# pass submission messages.
pass quick log on $ext_if inet proto tcp from any to $ext_if port submission modulate state
# Pass unknown mail to spamd
rdr pass log on $ext_if inet proto tcp from {!<spamd-white> <spamd>} to $ext_if port smtp \
    -> 127.0.0.1 port 8025 

## Blocking spoofed packets
antispoof quick for $ext_if

## Set default policy ##
block return in log all
block out all

# Drop all Non-Routable Addresses 
block drop in quick on $ext_if from $martians to any
block drop out quick on $ext_if from any to $martians

pass in inet proto tcp to $ext_if port ssh

# Allow Ping-Pong stuff. Be a good sysadmin 
pass inet proto icmp icmp-type echoreq

# Open up imap/pop3 support
pass quick on $ext_if proto tcp from any to any port {imap, imaps, pop3, pop3s} modulate state


# Allow outgoing traffic
pass out on $ext_if proto tcp from any to any modulate state
pass out on $ext_if proto udp from any to any keep state

Bu, çalışan bir PF yapılandırmasıdır. Nispeten basittir, ancak açıklanması gereken birkaç tuhaflık vardır.

İlk olarak, cihazımızın daha sonra kullanması $ext_ifiçin değişkenimizi tanımlarız vtnet0. Harici arabirime bırakılması gereken geçersiz IP adresleri de tanımlıyoruz.

Ayrıca iki tablo tanımlarız spamdve spamd-white- bu iki tablo varsayılan yapılandırmasında spamd tarafından oluşturulur. Ayrıca, webmailbazı büyük web posta sağlayıcılarına izin vermek için kullanacağımız adlı bir tablo tanımlarız .

Bir tabloyu görüntülemek için, tablodaki pfctl -t tablename -T showöğeleri listelemek üzere komutu kullanabilirsiniz .

Birkaç KM kuralı belirledik: yerel arayüzde işlemeyi atla, harici arayüzde istatistikleri etkinleştir ve gelen paketleri fırçala.

Sonraki, trafiğimizi spamd veya OpenSMTPd'ye göndermeyi yönettiğimiz daha önemli bölümlerden biridir.

Öncelikle bir yönlendirme kuralı (burada sözdizimini not edin, FreeBSD 11 daha eski stil PF sözdizimini (OpenBSD 4.6 öncesi) kullanır, bu nedenle sözdizimi garip görünebilir. spamdTabloda listelenen bir ana bilgisayardan smtp'de bir şey alırsak veya spamd-whitetablo, önümüzdeki üç kural passthrough kurallar yüzden aslında posta alabilecek şekilde olan bu bağlantıları ile ilgilenir. spamd cini, üzerine bağlantı yönlendirmek. Biz listelenen IP'lerinizdeki mesajlar geçmesine spamd-whiteve webmailüzerine düz tablolar Ayrıca, gönderim portundaki ( 587) mesajları kabul ediyoruz .

Ardından, varsayılan politikamızı belirlemek ve SSH ve ICMP iletilerini kabul etmek için birkaç temizlik kuralı vardır.

Dovecot'a erişmek için harici arayüzümüze IMAP ve POP3'ü geçiyoruz.

Son olarak tüm giden trafiğe izin veriyoruz. Ekstra güvenlik eklemek isterseniz, geçtiğiniz bağlantı noktalarını sınırlandırabilirsiniz, ancak tek kullanımlık bir sunucu için her şeyi geçmek bir sorun değildir.

PF'yi başlat:

sudo service pf start

Güvenlik duvarı kurulumumuza göre artık posta sunucusu yapılandırmamıza geçebiliriz.

OpenSMTPd

OpenSMTPd'nin çok basit ve okunması kolay bir yapılandırma sözdizimi vardır. Aşağıda görebileceğiniz gibi, tüm bir çalışma yapılandırması 14 satıra sığabilir:

#This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.

ext_if=vtnet0

# If you edit the file, you have to run "smtpctl update table aliases"
table aliases   file:/etc/mail/aliases
table domains   file:/etc/mail/domains

# Keys
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
# If you want to listen on multiple subdomains (e.g. mail.davidlenfesty) you have to add more lines
# of keys, and more lines of listeners

# Listen for local SMTP connections
listen on localhost hostname mail.example.com

# listen for filtered spamd connections
listen on lo0 port 10026

# Listen for submissions
listen on $ext_if port 587 tls-require auth pki mail.example.com tag SUBMITTED

# Accept mail from external sources.
accept from any for domain <domains> alias <aliases> deliver to maildir "~/mail"

accept for local alias <aliases> deliver to maildir "~/mail"
accept from local for any relay tls
accept tagged SUBMITTED for any relay tls

İlk olarak, harici arayüzümüzü ve birkaç tabloyu, takma adları ve alanları tanımlarız. Ardından, altındaki postaları işlemek istediğimiz alan adları için SSL anahtarına ve sertifikasına geçiyoruz.

Bir sonraki bölümde, dinlemek istediğimiz arayüzleri ve portları tanımlayacağız. İlk olarak, alan adımız ve mail.example.comyerel bağlantılar için localhost'u dinliyoruz . Sonra spamd filtrelenmiş mesajlarımızı dinler ve harici arayüzde mesaj göndeririz. Son olarak, gönderimleri dinliyoruz, bunlar limanda gerçekleşiyor 587ve güvenlik nedenleriyle kimlik doğrulamalarını istiyoruz.

Son olarak acceptayarlarımız. Ana dizinimize biçiminde teslim etmek için, tablonuzdaki domainstakma adlar için tablonuzda tanımlanan alanlarımızdan herhangi birine yönelik herhangi bir mesajı kabul ediyoruz . Ardından, yerel posta kutuları için tüm yerel bağlantıları kabul ediyoruz ve e-posta gönderebilmemiz için mesajlarımızı yayıyoruz. Son olarak, gönderilen iletilerimizi aktarmaya kabul ediyoruz. Gönderme limanımız için kimlik doğrulamasına gerek duymazsak, bu büyük bir güvenlik tehlikesi olurdu. Bu, sunucumuzun spam geçişi olarak kullanılmasına izin verir.aliasesmaildir

Takma adlar

FreeBSD, varsayılan bir takma ad dosyasıyla /etc/mail/aliasesşu biçimde gönderilir:

vuser1:  user1
vuser2:  user1
vuser3:  user1
vuser4:  user2

Bu, farklı posta kutularını ve bu tanımlanmış posta kutularına gönderilen mesajları nereye iletmek istediğimizi tanımlar. Kullanıcılarımızı yerel sistem kullanıcıları veya yönlendirilecek harici posta kutuları olarak tanımlayabiliriz. Varsayılan FreeBSD dosyası oldukça açıklayıcı olduğundan referans için bu dosyaya başvurabilirsiniz.

Alanlar

FreeBSD varsayılan bir etki alanı dosyası sağlamaz, ancak bu inanılmaz derecede basittir:

# Domains
example.com
mail.example.com
smtp.example.com

Bu, yalnızca yeni bir satırda dinlemek istediğiniz her alanın bulunduğu düz bir metin dosyasıdır. #Sembolünü kullanarak yorum yapabilirsiniz . Bu dosya, daha az yapılandırma satırı kullanabilmeniz için basitçe bulunur.

SSL Sertifikaları

Posta sunucunuzla iletişiminizi güvenli hale getirmenin iki yolu vardır: otomatik olarak imzalanan ve imzalanan sertifikalar. Sertifikalarınızı kendiniz imzalamak kesinlikle mümkündür, ancak Let's Encrypt gibi hizmetler ücretsiz ve inanılmaz derecede kolay imzalama sağlar.

İlk önce certbot programını kurmalıyız.

sudo pkg install py-certbot

Alternatif olarak, bağlantı noktaları ile kurulabilir:

cd /usr/ports/security/py-certbot
make install
make clean

Ardından, sertifikanızı almak 80için harici arayüzünüzde bağlantı noktasını açtığınızdan emin olmanız gerekir . Aşağıdaki satırları filtreleme kurallarınızda bir yere ekleyin /usr/local/etc/pf.conf:

pass quick on $ext_if from any to any port http

Sonra pfctl -f /usr/local/etc/pf.confkural kümesini yeniden yüklemek için çalıştırın .

Ardından, sertifika almak istediğiniz tüm alanlar için komutu çalıştırabilirsiniz:

certbot certonly --standalone -d mail.example.com

certbot renewSertifikalarınızın süresinin dolmamasını sağlamak için 6 ayda bir çalıştırılacak bir crontab girişi ayarlamanız önerilir .

Ardından, ilgili her etki alanı için satırları doğru anahtar dosyasını gösterecek şekilde değiştirebilirsiniz:

pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"

Menkul kıymetleri düzenleyin:

sudo chmod 700 /usr/local/etc/letsencrypt/archive/mail.example.com/*

Not: Bunu her orijinal anahtar dosyası için yapmanız gerekir, aksi takdirde OpenSMTPd bunları açmaz.

Şimdi hizmeti başlatabiliriz:

sudo service smtpd start

Spamd yapılandırması

Burada, Internet'ten aldığımız spam miktarını azaltmak için OpenBSD'nin spamd arka plan programını kullanıyoruz. Temel olarak, bu, çeşitli spam kaynaklarından kötü olarak bilinen IP'lerin yanı sıra (varsayılan olarak) gelen "gri listeleme" gelen bağlantıları filtreler. Spamd ayrıca kara listeye alınan ve gri listeye alınan bağlantıları "kekeleyerek" spam gönderenin zamanını boşa harcamayı dener.

Bir bağlantıyı gri listeye almak, herhangi bir kara listede veya beyaz listede bulunmayan yeni bir IP adresi bağlandığında yapılır. Yeni adres bağlandığında, spamd iletiyi hatalı bir hata iletisiyle bırakır, ardından geçici bir listeye ekler. Spam gönderenlere iletilen iletiler için ödeme yapıldığından, bir hatayı yeniden denemezler, ancak meşru bir hizmet nispeten kısa süre içinde yeniden dener.

Bağlamak için aşağıdakileri çalıştırmanız gerekir fdescfs:

mount -t fdescfs null /dev/fd

Ardından bu satırı şu adrese eklemeniz gerekir /etc/fstab:

fdescfs     /dev/fd     fdescfs rw      0       0

Varsayılan yapılandırma dosyası (içinde bulundu /usr/local/etc/spamd/spamd.conf.sample) iyi çalışır. Yeni kaynaklar eklemek veya kullandığınız kaynakları değiştirmek için düzenleyebilirsiniz:

sudo cp /usr/local/etc/spamd/spamd.conf.sample /usr/local/etc/spamd/spamd.conf

Hizmeti aşağıdakilerle başlatabiliriz:

sudo service obspamd start

Bu noktada spamd kurulur.

Webmail Hizmetlerini Etkinleştirme

Gri liste yaklaşımıyla ilgili bir sorun, büyük posta hizmetlerinin genellikle birçok farklı makaradan biri aracılığıyla posta göndermesi ve her seferinde aynı sunucunun mesajı göndermesinin garanti edilmemesidir. Bunun bir çözümü, çeşitli web posta hizmetleri tarafından kullanılan IP aralıklarını beyaz listeye almaktır. Web posta tablosunun PF yapılandırmasında kullanıldığı şey budur. Bu strateji, bir spam göndericinin kullandığı bir IP adresi eklerseniz geri tepebilir, ancak tabloya koyduğunuz aralıklara dikkat ettiğiniz sürece iyi olacaksınız.

Web postası tablosuna bir e-posta aralığı eklemek için aşağıdaki komutu çalıştırabilirsiniz:

pfctl -t webmail -T add 192.0.2.0/24

güvercinlik

Kullanıcıların postalarına SSH yoluyla giriş yapmadan erişmelerini istiyorsanız, IMAP ve / veya POP3'ü destekleyen bir MDA'ya ihtiyacınız olacaktır. Çok popüler bir program, oldukça basit bir konfigürasyon ve güçlü özelliklere sahip Dovecot'tur.

Varsayılan yapılandırmayı kopyalayabiliriz:

cd /usr/local/etc/dovecot
cp -R example-config/* ./

Yapılandırma birkaç farklı dosyadan oluşur. Yapılandırmanız ve dovecot varsayılanları arasındaki farkları görmek için aşağıdaki komutu çalıştırın:

sudo doveconf -n

Aşağıdakiler basit, çalışan bir yapılandırmadır:

# 2.3.2.1 (0719df592): /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 11.2-RELEASE amd64  
# Hostname: mail.example.com
hostname = mail.example.com
mail_location = maildir:~/mail
namespace inbox {
  inbox = yes
  location = 
  mailbox Archive {
    auto = create
    special_use = \Archive
  }
  mailbox Archives {
    auto = create
    special_use = \Archive
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = create
    autoexpunge = 60 days
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Mail" {
    auto = no
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Spam {
    auto = no
    special_use = \Junk
  }
  mailbox Trash {
    auto = no
    autoexpunge = 90 days
    special_use = \Trash
  }
  prefix = 
  separator = /
}
passdb {
  args = imap
  driver = pam
}
ssl = required
ssl_cert = </usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_dh = </usr/local/etc/dovecot/dh.pem
ssl_key = </usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem
userdb {
  driver = passwd
}

Çoğu yapılandırma dosyası conf.d

Önemli olanlardır 10-auth.conf, 10-mail.confve 10-ssl.conf.

Kullandığınız farklı posta kutularını yapılandırabilirsiniz 15-mailboxes.conf. Yukarıda gördüğünüz, birçok sistem için iyi bir yapılandırmadır, ancak kilometreniz değişebilir. Mümkün olduğu kadar çok farklı müşteri ile bu konuda oynamak tavsiye edilir.

Kimlik Doğrulama

Varsayılan ayarların çoğu doğrudur. Kimlik doğrulaması için sistem kullanıcılarını kullanmak istiyorsanız, düzenlemeniz gerekir 10-auth.conf.

Aşağıdaki satırı uncomment edin:

! dahil auth-system.conf.ext

Şifreleme

Diffie-Hellman parametrelerini üretmeliyiz:

sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem

Not: Bu işlem uzun zaman alacaktır. Beklediğinizden çok daha uzun.

Şimdi Dovecot'u başlatabiliriz:

sudo service dovecot start

Sonuç

Bu noktada işlevsel, güvenli ve nispeten spam içermeyen bir posta sunucumuz var.

Buradan dikkat edilmesi gereken bazı şeyler, sezgisel olarak spam'den kurtulmak için SpamAssassin kullanmanın yanı sıra güvendiğiniz kaynakların ortaya koyduğu daha fazla spamd kara listesi bulmaktır.


Tags: #BSD #Email

Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun