Ubuntu sunucu ilk kurulum: Yeni kurulmuş bir Ubuntu sunucuda başlamak için 9 adım

Test ortamıDebian ailesiUbuntu 24.04.5 LTSroot · normal kullanıcı hesabı
Ubuntu sunucu ilk kurulum işlemleri kontrol edildi

Yeni bir sunucu aldığınızda, üzerine hizmet kurmadan önce Ubuntu sunucu ilk kurulumunu bir kez yaparsınız. DigitalOcean'da oluşturulan bir Ubuntu 24.04 sunucuya root olarak bağlanıp paket güncellemesinden sudo kullanıcısına, anahtarla girişe, güvenlik duvarına, saat dilimine, otomatik güvenlik güncellemelerine ve swap'e kadar sırayla ayarladık ve yeniden başlattıktan sonra da ayarların yerinde kaldığını doğruladık.

Aşağıdaki sonuç kutuları, komutların bu sırayla çalıştırılmasının çıktısıdır. Sunucu IP'si 203.0.113.10 örnek bir değerdir ve yeni oluşturulan normal kullanıcının adı deploy olarak belirlendi.

🎯 Önemli noktalar
Paket güncellemesi ve yeniden başlatma gerekip gerekmediğinin kontrolü
sudo grubuna eklenen normal kullanıcı deploy
deploy (anahtarla giriş doğrulandı), ardından root (giriş engellendi)
ufw ile yalnızca SSH, 80 ve 443 portlarına izin
Saat dilimi değişikliği ve otomatik güvenlik güncellemelerinin kontrolü
2GB swap dosyası ve yeniden başlatma sonrası ayarların korunması
Ön koşullar
Önce okuyunssh-keygenssh Komut
Bağlantıroot ile bağlanabilen SSH anahtarı ve Ubuntu 24.04 sunucu

1️⃣ Ubuntu paket güncellemesi

Yeni oluşturulan bir sunucuda da kurulmayı bekleyen güncellemeler vardır. Paket listesini yeniden indirdikten sonra, gerçekten bir şey kurmadan önce neyin değişeceğini kontrol edin.

🔲 apt-get update

export DEBIAN_FRONTEND=noninteractive

Aşağıdaki apt-get komutları bu değer önce ayarlandıktan sonra çalıştırıldı. Bu değer ayarlanınca paket kurulumu sırasında ayar soran pencereler açılmaz ve varsayılan yanıtlar uygulanır.

apt-get update
Hit:1 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:2 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Hit:3 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Hit:4 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Hit:5 http://security.ubuntu.com/ubuntu noble-security InRelease
Reading package lists...

🔲 apt-get -s upgrade

apt-get -s upgrade
Calculating upgrade...
The following upgrades have been deferred due to phasing:
  libsqlite3-0
The following packages will be upgraded:
  apt apt-transport-https apt-utils bind9-dnsutils bind9-host bind9-libs
  cloud-init distro-info-data gir1.2-glib-2.0 git git-man libapt-pkg6.0t64
  libbrotli1 libglib2.0-0t64 libglib2.0-bin libglib2.0-data liblzma5
  libmspack0t64 libpcre2-8-0 python3-jwt python3-twisted tmux
  ubuntu-pro-client ubuntu-pro-client-l10n xz-utils zlib1g
26 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

-s seçeneği, hiçbir şey kurmadan yalnızca sonucu hesaplayan deneme çalıştırmasıdır. Bu sunucuda 26 paket yükseltilecekti ve libsqlite3-0 [deferred due to phasing] olarak bu yükseltmenin dışında kaldı. Paket sayısı, sunucunun oluşturulduğu zamana ve kullanılan imaja göre sunucudan sunucuya değişir.

🔲 apt-get -y upgrade

apt-get -y upgrade
26 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 15.4 MB of archives.
After this operation, 398 kB of additional disk space will be used.

Kurulum bittikten sonra yeniden başlatılan hizmetlerin listesi gelir.

Running kernel seems to be up-to-date.

Restarting services...
 /etc/needrestart/restart.d/systemd-manager
 systemctl restart cron.service fwupd.service multipathd.service packagekit.service polkit.service ssh.service systemd-journald.service systemd-networkd.service systemd-resolved.service systemd-timesyncd.service systemd-udevd.service udisks2.service

Service restarts being deferred:
 systemctl restart ModemManager.service
 /etc/needrestart/restart.d/dbus.service
 systemctl restart systemd-logind.service
 systemctl restart unattended-upgrades.service

Yeniden başlatma gerektiren bir güncelleme kurulduğunda /var/run/reboot-required dosyası oluşur. Bu sefer [Running kernel seems to be up-to-date.] çıktı ve dosya da oluşmadı, bu yüzden yeniden başlatmadan sonraki adıma geçtik.

2️⃣ Ubuntu kullanıcı ekleme ve sudo yetkisi

Günlük işler normal kullanıcıyla yapılır, yalnızca yönetim komutları sudo ile çalıştırılır. sudo, yetkiyi root parolası yerine kendi parolanızla yükselttiği için hangi komutu kimin çalıştırdığı kayıt altında kalır.

🔲 adduser deploy

adduser deploy
info: Adding user `deploy' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `deploy' (1000) ...
info: Adding new user `deploy' (1000) with group `deploy (1000)' ...
info: Creating home directory `/home/deploy' ...
info: Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for deploy
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y
info: Adding new user `deploy' to supplemental / extra groups `users' ...
info: Adding user `deploy' to group `users' ...

adduser, useradd komutunu saran bir araçtır; ev klasörünü ve grubu oluşturduktan sonra parolayı ve kullanıcı bilgilerini sırayla sorar. Parola yazarken ekranda görünmez, ad ve telefon numarası gibi bilgileri Enter ile boş bırakabilirsiniz.

🔲 usermod -aG sudo deploy

usermod -aG sudo deploy
groups deploy
deploy : deploy sudo users

🔲 su

sudo grubundaki kullanıcılar yönetim komutlarını sudo ile çalıştırabilir. su ile deploy hesabına geçip yetkileri kontrol edin.

su - deploy
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
whoami
deploy
sudo whoami
[sudo] password for deploy: 
root
exit

sudo eklendiğinde deploy'un parolası sorulur ve doğruysa komut root yetkisiyle çalışır.

3️⃣ Yeni kullanıcı için SSH anahtarını kaydetme

Başlangıçta yalnızca root için SSH anahtarı kayıtlı olduğundan deploy ile anahtarla giriş yapılamaz. root'un authorized_keys dosyasını deploy'un ev klasörüne kopyalayın.

🔲 install -o deploy -g deploy

install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/.ssh/authorized_keys /home/deploy/.ssh/authorized_keys
ls -la /home/deploy/.ssh
total 12
drwx------ 2 deploy deploy 4096 Nov  5 11:48 .
drwxr-x--- 3 deploy deploy 4096 Nov  5 11:48 ..
-rw------- 1 deploy deploy  100 Nov  5 11:48 authorized_keys

install, klasör oluşturmayı, kopyalamayı ve sahip ile izinleri belirlemeyi tek seferde yapar. sshd girişi kabul etmeden önce kullanıcı dosyalarının izinlerini ve sahibini denetlediği için (StrictModes) .ssh klasörünü 700, authorized_keys dosyasını 600 yapın.

🔲 ssh deploy@203.0.113.10

Şu an açık olan root penceresini kapatmayın; önce yeni bir terminal penceresinde deploy olarak bağlanabildiğinizi kontrol edin.

ssh deploy@203.0.113.10
whoami
deploy
🧭 Bağlantının kilitlenmediği ayar sırası
Açıklama diyagramı
🧭 Adımlar
🔑① Anahtarı kopyalaroot anahtarı deploy'a
➜
🪟② Yeni pencerede kontrolroot penceresi açık kalır
➜
⛔③ root girişini engellePermitRootLogin no
➜
🪟④ Yeni pencerede kontroldeploy bağlantısı aynen
✅⑤ SSH'ye izin verufw allow OpenSSH
➜
🧱⑥ ufw'yi açYalnızca izin verilen portlar açık
➜
🪟⑦ Yeni pencerede kontrolBağlantı aynen
root'un authorized_keys dosyasını deploy'un ev klasörüne kopyalayın.
Şu an açık olan root penceresini kapatmayın; yeni bir terminal penceresinde deploy olarak anahtarla giriş yapılabildiğini kontrol edin.
deploy bağlantısı doğrulandıktan sonra root girişini engelleyin. Yeni pencerede bağlanamazsanız açık bıraktığınız pencerede değişikliği geri alın.
SSH ayarlarını yeniden okuttuktan sonra yeni pencerede deploy bağlantısının hâlâ çalıştığını kontrol edin.
Güvenlik duvarını açmadan önce SSH'ye izin veren kuralı ekleyin.
Açıldığı anda izin verilmeyen bağlantılar engellendiği için SSH izin kuralının önceden eklenmiş olması gerekir.
Güvenlik duvarını açtıktan sonra yeni pencerede deploy olarak yeniden bağlanabildiğinizi kontrol edin.

4️⃣ SSH root girişini engelleme

Ubuntu 24.04'te sshd_config dosyasının en üstündeki Include satırı önce /etc/ssh/sshd_config.d/ klasöründeki dosyaları yükler ve aynı ayar için ilk okunan değer uygulanır. Bu yüzden ayarı değiştirmeden önce şu an uygulanan değeri ve o değerin bulunduğu dosyayı kontrol edin.

/etc/ssh└─ sshd_config  en üstte: Include /etc/ssh/sshd_config.d/*.conf   ├─ ① sshd_config.d/50-cloud-init.conf         PasswordAuthentication no   ├─ ② sshd_config.d/60-cloudimg-settings.conf  PasswordAuthentication no   └─ ③ sshd_config 42. satır                    PermitRootLogin yes → no

🔲 sshd -T

sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
permitrootlogin yes
passwordauthentication no
sudo grep -rn 'PasswordAuthentication' /etc/ssh/sshd_config.d/
/etc/ssh/sshd_config.d/60-cloudimg-settings.conf:1:PasswordAuthentication no
/etc/ssh/sshd_config.d/50-cloud-init.conf:1:PasswordAuthentication no

Parolayla giriş sshd_config.d içindeki iki dosyada zaten kapalıdır; değiştirilecek tek şey ana dosyadaki root girişi satırıdır.

🔲 sed -i PermitRootLogin

sudo grep -n '^PermitRootLogin' /etc/ssh/sshd_config
42:PermitRootLogin yes
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo grep -n '^PermitRootLogin' /etc/ssh/sshd_config
42:PermitRootLogin no

🔲 systemctl reload ssh

sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
permitrootlogin no
passwordauthentication no

sshd -t ayar sözdizimini denetler, hiçbir şey çıkmazsa hata yoktur. Yeniden okuttuktan sonra yeni pencerede deploy bağlantısının hâlâ çalıştığını doğrulayın, ardından root olarak bağlanıp reddedildiğini görün.

ssh root@203.0.113.10
root@203.0.113.10: Permission denied (publickey).

Anahtar doğru olsa da root olarak girilemez; yönetim işleri deploy olarak bağlanıp sudo ile yapılır.

5️⃣ Ubuntu güvenlik duvarı ufw

ufw, Ubuntu'nun varsayılan güvenlik duvarı aracıdır ama başlangıçta kapalıdır. Açıldığı anda izin verilmeyen bağlantılar engellendiği için önce SSH izin kuralını ekleyin ve en son açın.

sudo ufw status verbose
Status: inactive

🔲 ufw allow OpenSSH

sudo ufw app list
Available applications:
  OpenSSH
sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)
sudo ufw allow 80/tcp
Rules updated
Rules updated (v6)
sudo ufw allow 443/tcp
Rules updated
Rules updated (v6)
sudo ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp

OpenSSH, 22 numaralı portu açan bir profildir; 80 ve 443 ise web sunucusunun kullandığı portlardır. Kurallar IPv4 ve IPv6 için birlikte eklenir.

🔲 ufw enable

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere                  
80/tcp                     ALLOW IN    Anywhere                  
443/tcp                    ALLOW IN    Anywhere                  
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)             
80/tcp (v6)                ALLOW IN    Anywhere (v6)             
443/tcp (v6)               ALLOW IN    Anywhere (v6)             

Gelen bağlantılar varsayılan olarak engellenir, yalnızca izin verilen üç port açık olur ve güvenlik duvarı açılışta da etkinleşir. Açtıktan sonra yeni pencerede deploy olarak yeniden bağlanıp kural numaralarını kontrol edin.

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] OpenSSH                    ALLOW IN    Anywhere                  
[ 2] 80/tcp                     ALLOW IN    Anywhere                  
[ 3] 443/tcp                    ALLOW IN    Anywhere                  
[ 4] OpenSSH (v6)               ALLOW IN    Anywhere (v6)             
[ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)             
[ 6] 443/tcp (v6)               ALLOW IN    Anywhere (v6)             

6️⃣ Ubuntu saat dilimi ayarı

Başlangıçtaki saat dilimi Etc/UTC'dir. Günlüklerin ve zamanlanmış işlerin saatini sunucunun bölgesine uydurmak için Singapur bölgesinde oluşturulan bu sunucu Asia/Singapore olarak ayarlandı.

timedatectl
               Local time: Thu 2026-11-05 12:00:31 UTC
           Universal time: Thu 2026-11-05 12:00:31 UTC
                 RTC time: Thu 2026-11-05 12:00:31
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

🔲 timedatectl list-timezones

timedatectl list-timezones | grep Singapore
Asia/Singapore

🔲 timedatectl set-timezone

sudo timedatectl set-timezone Asia/Singapore
timedatectl
               Local time: Thu 2026-11-05 20:00:32 +08
           Universal time: Thu 2026-11-05 12:00:32 UTC
                 RTC time: Thu 2026-11-05 12:00:32
                Time zone: Asia/Singapore (+08, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Yalnızca Local time ve Time zone satırları değişir; saat eşitlemesi (NTP) ve UTC saati aynı kalır.

7️⃣ unattended upgrades otomatik güvenlik güncellemeleri

Ubuntu güvenlik güncellemelerini unattended-upgrades paketiyle otomatik kurar ve bu paket baştan kurulu ve açıktır. Bu yüzden bu adımda açık olup olmadığını ve neyi otomatik kurduğunu kontrol edersiniz.

🔲 dpkg-query -W

dpkg-query -W unattended-upgrades
unattended-upgrades	2.9.1+nmu4ubuntu1
systemctl is-enabled unattended-upgrades apt-daily.timer apt-daily-upgrade.timer
enabled
enabled
enabled

🔲 cat 20auto-upgrades

cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

İki değerdeki 1 günde bir kez demektir; 0 yapılırsa otomatik güncellemeler kapanır. Neyin kurulacağını 50unattended-upgrades dosyası belirler.

grep -vE '^[[:space:]]*(//|$)' /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
	"${distro_id}:${distro_codename}";
	"${distro_id}:${distro_codename}-security";
	"${distro_id}ESMApps:${distro_codename}-apps-security";
	"${distro_id}ESM:${distro_codename}-infra-security";
};
Unattended-Upgrade::Package-Blacklist {
};
Unattended-Upgrade::DevRelease "auto";

İzin verilen kaynaklarda -security var ama -updates yok; bu yüzden normal güncellemeler otomatik kurulmaz, yalnızca güvenlik güncellemeleri kurulur. Normal güncellemeleri de otomatik almak için bu dosyada -updates satırının yorum işaretini kaldırın.

🔲 unattended-upgrade

sudo unattended-upgrade --dry-run --debug
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=noble, o=Ubuntu,a=noble-security, o=UbuntuESMApps,a=noble-apps-security, o=UbuntuESM,a=noble-infra-security

Aynı çalıştırmanın son iki satırı.

No packages found that can be upgraded unattended and no pending auto-removals
The list of kept packages can't be calculated in dry-run mode.

--dry-run hiçbir şey kurmadan yalnızca otomatik güncellemenin yapacağı işi hesaplar. Paket güncellemeleri zaten yapıldığı için otomatik kurulacak paket olmadığını gösterdi. Gerçek çalıştırmaların kayıtları /var/log/unattended-upgrades/ klasöründe tutulur.

sudo ls -l /var/log/unattended-upgrades/
total 32
-rw-r--r-- 1 root root     0 Nov  5 20:00 unattended-upgrades-dpkg.log
-rw-r--r-- 1 root root     0 Nov  5 17:34 unattended-upgrades-shutdown.log
-rw-r--r-- 1 root root 29093 Nov  5 20:04 unattended-upgrades.log

8️⃣ Ubuntu swap bellek ayarı

Bu sunucunun belleği 1GB ve başlangıçta swap 0'dır. Uygulama kurmadan önce 2GB'lık bir swap dosyası oluşturun ve yeniden başlatmadan sonra da açılması için /etc/fstab dosyasına kaydedin.

free -h
               total        used        free      shared  buff/cache   available
Mem:           961Mi       328Mi       161Mi       4.0Mi       631Mi       633Mi
Swap:             0B          0B          0B
df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        24G  2.0G   22G   9% /

🔲 fallocate -l 2G /swapfile

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
ls -lh /swapfile
-rw------- 1 root root 2.0G Nov  5 20:04 /swapfile

🔲 mkswap /swapfile

sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=0b43ccd8-5b4a-4048-9b84-eee12667b387

🔲 swapon /swapfile

sudo swapon /swapfile
swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2
free -h
               total        used        free      shared  buff/cache   available
Mem:           961Mi       328Mi       160Mi       4.0Mi       632Mi       632Mi
Swap:          2.0Gi          0B       2.0Gi

🔲 tee -a /etc/fstab

swapon yalnızca şu an açar; yeniden başlatmadan sonra da açık olması için fstab dosyasına bir satır ekleyin.

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
/swapfile none swap sw 0 0

9️⃣ Ubuntu sunucu ilk kurulum kontrolü

Ayarların yeniden başlatmadan sonra da korunduğunu doğruladığınızda Ubuntu ilk kurulumu tamamlanır.

🔲 systemctl reboot

sudo systemctl reboot

🔲 uptime -p

Yeniden başlattıktan sonra deploy olarak yeniden bağlanın.

uptime -p
up 2 minutes
swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2
sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
permitrootlogin no
passwordauthentication no
sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere                  
80/tcp                     ALLOW IN    Anywhere                  
443/tcp                    ALLOW IN    Anywhere                  
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)             
80/tcp (v6)                ALLOW IN    Anywhere (v6)             
443/tcp (v6)               ALLOW IN    Anywhere (v6)             
timedatectl | head -n 4
               Local time: Thu 2026-11-05 20:06:35 +08
           Universal time: Thu 2026-11-05 12:06:35 UTC
                 RTC time: Thu 2026-11-05 12:06:35
                Time zone: Asia/Singapore (+08, +0800)
systemctl is-active unattended-upgrades ssh.socket
active
active

Swap, SSH ayarları, güvenlik duvarı, saat dilimi ve otomatik güncellemeler yeniden başlatmadan öncekiyle aynı. Bu sunucuya sırada PM2 ve Nginx ile bir Node.js uygulaması kurulacak.

🔢 SSS & önerilen içerikler

Olduğu gibi bırakabilirsiniz. [deferred due to phasing] ile dışarıda kalan paket, aşamalı dağıtımdaki bir güncellemedir. Ubuntu bazı güncellemeleri önce yalnızca sunucuların bir kısmına gönderir, sorun çıkmazsa dağıtımı tüm sunuculara genişletir. Güvenlik güncellemeleri aşamalı dağıtılmaz ve dışarıda kalan paket, dağıtım genişlediğinde bir sonraki yükseltmede birlikte kurulur.

Otomatik güncelleme işi günde bir kez çalışır; apt-daily.timer ve apt-daily-upgrade.timer adlı iki zamanlayıcı onu belirli bir saatten rastgele gecikmeyle başlatır. Bu sunucuda apt-daily-upgrade.timer'ın bir sonraki çalışması ertesi gün 06:27:59 (+08) olarak ayarlanmıştı. Sunucu kapalıyken bu saat kaçırılırsa iş bir sonraki açılışta hemen çalışabilir, bu yüzden açılıştan hemen sonra apt işleri bir süre bekleyebilir.

Varsayılan ayarlarda yeniden başlatmaz. 50unattended-upgrades dosyasındaki Automatic-Reboot varsayılan değeri false'tur ve bu sunucunun ayarlarında da o satır açık değildir. Yeniden başlatma gerektiren bir güncelleme kurulunca /var/run/reboot-required dosyası oluşur; o dosya varken sunucuyu kendiniz yeniden başlatın.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 5   +   6   =