{"id":31243,"date":"2025-10-07T18:41:19","date_gmt":"2025-10-07T15:41:19","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31243"},"modified":"2025-10-07T18:41:19","modified_gmt":"2025-10-07T15:41:19","slug":"mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/","title":{"rendered":"MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>MongoDB, modern uygulamalar i\u00e7in tasarlanm\u0131\u015f pop\u00fcler, a\u00e7\u0131k kaynakl\u0131 bir NoSQL veritaban\u0131d\u0131r. Esnek \u015femas\u0131, y\u00fcksek performans\u0131 ve \u00f6l\u00e7eklenebilirli\u011fi sayesinde geli\u015ftiriciler ve kurulu\u015flar aras\u0131nda h\u0131zla benimsenmi\u015ftir. \u00c7o\u011fu durumda, MongoDB sunucusu bir sunucuda \u00e7al\u0131\u015f\u0131rken, bu sunucuya ba\u015fka makinelerden, \u00f6rne\u011fin uygulama sunucular\u0131ndan, geli\u015ftirme ortamlar\u0131ndan veya y\u00f6netim ara\u00e7lar\u0131ndan eri\u015filmesi gerekir. Bu, &#8220;uzaktan eri\u015fim&#8221; olarak bilinir ve do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131, hem i\u015flevsellik hem de g\u00fcvenlik a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir.<\/p>\n<p>Bu kapsaml\u0131 teknik makalede, Ubuntu 18.04 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan bir MongoDB \u00f6rne\u011fine g\u00fcvenli uzaktan eri\u015fimi ad\u0131m ad\u0131m nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 anlataca\u011f\u0131z. Konfig\u00fcrasyon s\u00fcrecinde g\u00fcvenlik duvar\u0131 ayarlar\u0131, MongoDB yap\u0131land\u0131rma dosyas\u0131 de\u011fi\u015fiklikleri ve kullan\u0131c\u0131 kimlik do\u011frulamas\u0131n\u0131n etkinle\u015ftirilmesi gibi temel ad\u0131mlar\u0131 ele alaca\u011f\u0131z. Amac\u0131m\u0131z, hem geli\u015ftirme hem de \u00fcretim ortamlar\u0131 i\u00e7in sa\u011flam ve g\u00fcvenli bir uzaktan eri\u015fim \u00e7\u00f6z\u00fcm\u00fc sunmakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu makaledeki ad\u0131mlar\u0131 takip etmeden \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu:<\/strong> MongoDB&#8217;nin kurulu oldu\u011fu bir Ubuntu 18.04 sunucusu. (Bu makale 18.04 i\u00e7in yaz\u0131lm\u0131\u015f olsa da, genel ad\u0131mlar Ubuntu&#8217;nun di\u011fer LTS s\u00fcr\u00fcmleri i\u00e7in de b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ge\u00e7erlidir.)<br \/>\n*   <strong>MongoDB Kurulu ve \u00c7al\u0131\u015f\u0131r Durumda:<\/strong> Sunucunuzda MongoDB&#8217;nin kurulu ve arka planda \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 gerekmektedir. Kurulum talimatlar\u0131 i\u00e7in MongoDB&#8217;nin resmi belgelerine ba\u015fvurabilirsiniz. Servisin durumunu <code>sudo systemctl status mongod<\/code> komutuyla kontrol edebilirsiniz.<br \/>\n*   <strong><code>sudo<\/code> Yetkileri:<\/strong> Yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenlemek ve sistem servislerini y\u00f6netmek i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131.<br \/>\n*   <strong>Temel Linux Komut Sat\u0131r\u0131 Bilgisi:<\/strong> Dosya d\u00fczenleme, servis y\u00f6netimi ve a\u011f komutlar\u0131 gibi temel Linux komutlar\u0131na a\u015final\u0131k.<br \/>\n*   <strong>UFW (Uncomplicated Firewall):<\/strong> Ubuntu&#8217;da varsay\u0131lan olarak gelen veya kolayca kurulabilen bir g\u00fcvenlik duvar\u0131 arac\u0131.<\/p>\n<h3>MongoDB&#8217;nin Varsay\u0131lan Yap\u0131land\u0131rmas\u0131n\u0131 Anlama<\/h3>\n<p>MongoDB&#8217;nin varsay\u0131lan kurulumunda, g\u00fcvenlik amac\u0131yla yaln\u0131zca yerel makineden (localhost veya 127.0.0.1) ba\u011flant\u0131lar\u0131 dinleyecek \u015fekilde yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r. Bu, <code>mongod.conf<\/code> dosyas\u0131ndaki <code>bindIp<\/code> ayar\u0131 ile kontrol edilir. Bu ayar, MongoDB&#8217;nin hangi IP adresleri \u00fczerinden gelen ba\u011flant\u0131lar\u0131 kabul edece\u011fini belirler. Varsay\u0131lan olarak, bu ayar genellikle <code>bindIp: 127.0.0.1<\/code> veya <code>bindIp: localhost<\/code> \u015feklindedir.<\/p>\n<p>Bu varsay\u0131lan davran\u0131\u015f, sunucunun d\u0131\u015f d\u00fcnyadan gelebilecek potansiyel g\u00fcvenlik tehditlerine kar\u015f\u0131 korunmas\u0131n\u0131 sa\u011flar. Ancak, uzaktan eri\u015fim sa\u011flamak istedi\u011fimizde bu ayar\u0131 de\u011fi\u015ftirmemiz gerekecektir. Yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/mongod.conf<\/code> konumunda bulunur.<\/p>\n<h3>Ad\u0131m 1: G\u00fcvenlik Duvar\u0131n\u0131 Yap\u0131land\u0131rma (UFW)<\/h3>\n<p>Uzaktan eri\u015fimi etkinle\u015ftirmenin ilk ve en \u00f6nemli ad\u0131m\u0131, sunucunuzun g\u00fcvenlik duvar\u0131n\u0131 yap\u0131land\u0131rmakt\u0131r. G\u00fcvenlik duvar\u0131, sunucunuza hangi a\u011f trafi\u011finin girip \u00e7\u0131kabilece\u011fini kontrol eden bir yaz\u0131l\u0131md\u0131r. Ubuntu&#8217;da bu genellikle UFW (Uncomplicated Firewall) ile yap\u0131l\u0131r.<\/p>\n<h4>UFW Durumunu Kontrol Etme<\/h4>\n<p>\u00d6ncelikle UFW&#8217;nin etkin olup olmad\u0131\u011f\u0131n\u0131 ve mevcut kurallar\u0131n\u0131 kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status verbose<\/code><\/pre>\n<p>E\u011fer UFW etkin de\u011filse, \u00e7\u0131kt\u0131da &#8220;Status: inactive&#8221; yaz\u0131s\u0131n\u0131 g\u00f6receksiniz. E\u011fer etkinse, mevcut kurallar\u0131 listeleyecektir.<\/p>\n<h4>UFW&#8217;yi Etkinle\u015ftirme (Gerekliyse)<\/h4>\n<p>E\u011fer UFW etkin de\u011filse, \u00f6ncelikle SSH ba\u011flant\u0131n\u0131z\u0131n kesilmemesi i\u00e7in SSH portunu (varsay\u0131lan 22) a\u00e7arak etkinle\u015ftirmeniz \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow ssh\nsudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n<p><code>sudo ufw enable<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda bir uyar\u0131 alabilirsiniz. Bu uyar\u0131, UFW&#8217;nin etkinle\u015ftirilmesinin mevcut ba\u011flant\u0131lar\u0131 kesebilece\u011fi ve SSH ba\u011flant\u0131n\u0131z\u0131n kopmas\u0131na neden olabilece\u011fiyle ilgilidir. <code>sudo ufw allow ssh<\/code> komutu bu riski minimize eder.<\/p>\n<h4>MongoDB Portunu A\u00e7ma<\/h4>\n<p>MongoDB&#8217;nin varsay\u0131lan portu 27017&#8217;dir. Bu porta d\u0131\u015far\u0131dan eri\u015fime izin vermek i\u00e7in UFW&#8217;ye bir kural eklememiz gerekiyor. Bu kural\u0131 eklerken g\u00fcvenlik d\u00fczeyini g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131y\u0131z:<\/p>\n<p>*   <strong>T\u00fcm IP Adreslerinden \u0130zin Verme (Daha Az G\u00fcvenli):<\/strong> Bu y\u00f6ntem, herhangi bir IP adresinden 27017 portuna eri\u015fime izin verir. Yaln\u0131zca test ortamlar\u0131 veya \u00f6zel a\u011flarda kullan\u0131lmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 27017\/tcp<\/code><\/pre>\n<p>*   <strong>Belirli Bir IP Adresinden \u0130zin Verme (Daha G\u00fcvenli):<\/strong> Bu, yaln\u0131zca belirli bir istemci makinesinin IP adresinden MongoDB&#8217;ye eri\u015fim sa\u011flamak i\u00e7in en g\u00fcvenli y\u00f6ntemdir. <code>YOUR_CLIENT_IP<\/code> yerine istemci makinenizin ger\u00e7ek IP adresini yaz\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from YOUR_CLIENT_IP to any port 27017<\/code><\/pre>\n<p>*   <strong>Belirli Bir Alt A\u011fdan \u0130zin Verme (Orta D\u00fczey G\u00fcvenli):<\/strong> E\u011fer birden fazla istemci makinesi ayn\u0131 alt a\u011fdaysa, t\u00fcm alt a\u011fa eri\u015fim izni verebilirsiniz. <code>YOUR_SUBNET<\/code> yerine alt a\u011f\u0131n\u0131z\u0131 (\u00f6rne\u011fin, 192.168.1.0\/24) yaz\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from YOUR_SUBNET to any port 27017<\/code><\/pre>\n<p>G\u00fcvenlik a\u00e7\u0131s\u0131ndan, m\u00fcmk\u00fcn oldu\u011funca belirli IP adreslerinden eri\u015fime izin vermek her zaman tercih edilmelidir.<\/p>\n<h4>UFW Kurallar\u0131n\u0131 Yeniden Y\u00fckleme ve Do\u011frulama<\/h4>\n<p>Yeni kural\u0131 ekledikten sonra, UFW&#8217;nin kurallar\u0131 yeniden y\u00fcklemesine gerek yoktur, \u00e7\u00fcnk\u00fc <code>allow<\/code> komutlar\u0131 an\u0131nda uygulan\u0131r. Ancak, kurallar\u0131 do\u011frulaman\u0131z \u00f6nemlidir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status verbose<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da 27017 portuna izin veren kural\u0131 g\u00f6rmelisiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">To                         Action      From\n--                         ------      ----\n27017\/tcp                  ALLOW       Anywhere\n22\/tcp                     ALLOW       Anywhere<\/code><\/pre>\n<p>Veya belirli bir IP i\u00e7in:<\/p>\n<pre><code class=\"language-\">To                         Action      From\n--                         ------      ----\n27017\/tcp                  ALLOW       YOUR_CLIENT_IP\n22\/tcp                     ALLOW       Anywhere<\/code><\/pre>\n<h3>Ad\u0131m 2: MongoDB Yap\u0131land\u0131rmas\u0131n\u0131 D\u00fczenleme<\/h3>\n<p>G\u00fcvenlik duvar\u0131n\u0131 yap\u0131land\u0131rd\u0131ktan sonra, MongoDB&#8217;nin d\u0131\u015f ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flamak i\u00e7in <code>mongod.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlememiz gerekiyor.<\/p>\n<h4><code>mongod.conf<\/code> Dosyas\u0131n\u0131 Bulma ve Yedekleme<\/h4>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemeden \u00f6nce her zaman bir yedek almak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/mongod.conf \/etc\/mongod.conf.bak<\/code><\/pre>\n<p>\u015eimdi dosyay\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n (\u00f6rne\u011fin <code>nano<\/code> veya <code>vim<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mongod.conf<\/code><\/pre>\n<h4><code>bindIp<\/code> Ayar\u0131n\u0131 De\u011fi\u015ftirme<\/h4>\n<p><code>mongod.conf<\/code> dosyas\u0131nda <code>net:<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulun. Bu b\u00f6l\u00fcm\u00fcn alt\u0131nda <code>bindIp<\/code> ayar\u0131n\u0131 aray\u0131n. Varsay\u0131lan olarak \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<pre><code class=\"language-yaml\"># network interfaces\nnet:\n  port: 27017\n  bindIp: 127.0.0.1  # Listen to local interface only, comment out to listen on all interfaces.<\/code><\/pre>\n<p>Uzaktan eri\u015fime izin vermek i\u00e7in bu ayar\u0131 de\u011fi\u015ftirmemiz gerekiyor:<\/p>\n<p>*   <strong>T\u00fcm A\u011f Aray\u00fczlerinden Dinleme (\u00d6nerilen Y\u00f6ntem &#8211; G\u00fcvenlik Duvar\u0131 ile Birlikte):<\/strong><br \/>\n    <code>bindIp<\/code> de\u011ferini <code>0.0.0.0<\/code> olarak de\u011fi\u015ftirmek, MongoDB&#8217;nin sunucudaki t\u00fcm mevcut a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flar. Bu, en yayg\u0131n ve esnek yakla\u015f\u0131md\u0131r. Ancak, bu ayar\u0131 kullan\u0131rken <strong>mutlaka<\/strong> g\u00fcvenlik duvar\u0131n\u0131z\u0131n (UFW) do\u011fru \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z. Aksi takdirde, veritaban\u0131n\u0131z internete tamamen a\u00e7\u0131k kalabilir.<\/p>\n<pre><code class=\"language-yaml\"># network interfaces\n    net:\n      port: 27017\n      bindIp: 0.0.0.0<\/code><\/pre>\n<p>    Alternatif olarak, <code>bindIp<\/code> sat\u0131r\u0131n\u0131 tamamen yorum sat\u0131r\u0131 haline getirebilirsiniz. MongoDB&#8217;nin \u00e7o\u011fu s\u00fcr\u00fcm\u00fcnde bu da t\u00fcm aray\u00fczlerden dinlemesini sa\u011flar, ancak <code>0.0.0.0<\/code> a\u00e7\u0131k\u00e7a belirtmek daha anla\u015f\u0131l\u0131rd\u0131r.<\/p>\n<p>*   <strong>Belirli IP Adreslerinden Dinleme (Daha K\u0131s\u0131tl\u0131):<\/strong><br \/>\n    E\u011fer MongoDB&#8217;nin yaln\u0131zca belirli IP adreslerinden (\u00f6rne\u011fin, yerel IP ve belirli bir istemci IP&#8217;si) ba\u011flant\u0131lar\u0131 dinlemesini istiyorsan\u0131z, bu IP adreslerini virg\u00fclle ay\u0131rarak listeleyebilirsiniz. \u00d6rne\u011fin, sunucunuzun dahili IP adresi 192.168.1.100 ise ve istemci IP&#8217;si 192.168.1.200 ise:<\/p>\n<pre><code class=\"language-yaml\"># network interfaces\n    net:\n      port: 27017\n      bindIp: 127.0.0.1,192.168.1.100,192.168.1.200<\/code><\/pre>\n<p>    Bu y\u00f6ntem, hem <code>bindIp<\/code> hem de UFW kurallar\u0131 arac\u0131l\u0131\u011f\u0131yla iki katmanl\u0131 bir g\u00fcvenlik sa\u011flar. Ancak, <code>0.0.0.0<\/code> ile UFW&#8217;yi kullanmak genellikle daha pratiktir, \u00e7\u00fcnk\u00fc istemci IP&#8217;leri de\u011fi\u015fti\u011finde yaln\u0131zca UFW kurallar\u0131n\u0131 g\u00fcncellemeniz yeterli olur.<\/p>\n<p>Bu makalede, g\u00fcvenlik duvar\u0131 kurallar\u0131 ile birlikte <code>bindIp: 0.0.0.0<\/code> kullan\u0131m\u0131n\u0131 temel alaca\u011f\u0131z, \u00e7\u00fcnk\u00fc bu en yayg\u0131n ve y\u00f6netilebilir yakla\u015f\u0131md\u0131r.<\/p>\n<h4>De\u011fi\u015fiklikleri Kaydetme ve \u00c7\u0131kma<\/h4>\n<p>Nano kullan\u0131yorsan\u0131z, <code>Ctrl+O<\/code> tu\u015flar\u0131na basarak de\u011fi\u015fiklikleri kaydedin, ard\u0131ndan <code>Enter<\/code> tu\u015funa bas\u0131n ve <code>Ctrl+X<\/code> ile \u00e7\u0131k\u0131n.<\/p>\n<h4>MongoDB Servisini Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda yap\u0131lan de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in MongoDB servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongod<\/code><\/pre>\n<h4>MongoDB Servisinin Durumunu Kontrol Etme<\/h4>\n<p>Servisin ba\u015far\u0131yla yeniden ba\u015flat\u0131ld\u0131\u011f\u0131ndan ve yeni yap\u0131land\u0131rmay\u0131 kulland\u0131\u011f\u0131ndan emin olmak i\u00e7in durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mongod<\/code><\/pre>\n<p>Ayr\u0131ca, MongoDB&#8217;nin art\u0131k do\u011fru IP adreslerini dinledi\u011fini <code>netstat<\/code> komutuyla do\u011frulayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo netstat -tulnp | grep mongod<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da 27017 portunun <code>0.0.0.0<\/code> veya belirtti\u011finiz IP adresleri \u00fczerinde dinlendi\u011fini g\u00f6rmelisiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      12345\/mongod<\/code><\/pre>\n<h3>Ad\u0131m 3: MongoDB Kullan\u0131c\u0131 Kimlik Do\u011frulamas\u0131n\u0131 Etkinle\u015ftirme ve Y\u00f6netme<\/h3>\n<p>MongoDB&#8217;ye uzaktan eri\u015fimi etkinle\u015ftirmek, veritaban\u0131n\u0131z\u0131 potansiyel g\u00fcvenlik risklerine maruz b\u0131rak\u0131r. Bu riski en aza indirgemek i\u00e7in <strong>kimlik do\u011frulamas\u0131n\u0131 etkinle\u015ftirmek ve kullan\u0131c\u0131lar olu\u015fturmak kesinlikle zorunludur.<\/strong> Kimlik do\u011frulamas\u0131 olmadan, MongoDB sunucunuzdaki herhangi bir ki\u015fi, do\u011fru IP adresinden ba\u011flanarak t\u00fcm verilerinize tam eri\u015fim sa\u011flayabilir.<\/p>\n<h4>Kimlik Do\u011frulaman\u0131n \u00d6nemi<\/h4>\n<p>Kimlik do\u011frulama, yaln\u0131zca yetkili kullan\u0131c\u0131lar\u0131n veritaban\u0131na eri\u015fmesine izin veren bir g\u00fcvenlik mekanizmas\u0131d\u0131r. MongoDB&#8217;de bu, kullan\u0131c\u0131 ad\u0131 ve parola tabanl\u0131 bir sistemle sa\u011flan\u0131r. Kimlik do\u011frulamas\u0131 etkinle\u015ftirildi\u011finde, veritaban\u0131na ba\u011flanmaya \u00e7al\u0131\u015fan her istemcinin ge\u00e7erli bir kullan\u0131c\u0131 ad\u0131 ve parola sa\u011flamas\u0131 gerekir.<\/p>\n<h4><code>mongod.conf<\/code> Dosyas\u0131nda Kimlik Do\u011frulamay\u0131 Etkinle\u015ftirme<\/h4>\n<p>Tekrar <code>mongod.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mongod.conf<\/code><\/pre>\n<p><code>security:<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulun. E\u011fer yoksa, dosyan\u0131n sonuna ekleyebilirsiniz. <code>authorization: enabled<\/code> sat\u0131r\u0131n\u0131 etkinle\u015ftirin (veya ekleyin):<\/p>\n<pre><code class=\"language-yaml\"># security:\nsecurity:\n  authorization: enabled<\/code><\/pre>\n<p><code>security:<\/code> sat\u0131r\u0131n\u0131n yorum sat\u0131r\u0131 olmad\u0131\u011f\u0131n\u0131 ve <code>authorization: enabled<\/code> sat\u0131r\u0131n\u0131n do\u011fru girintilendi\u011fini kontrol edin.<\/p>\n<h4>MongoDB Servisini Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma de\u011fi\u015fikli\u011finin etkili olmas\u0131 i\u00e7in MongoDB servisini tekrar yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongod<\/code><\/pre>\n<p>Bu noktadan sonra, MongoDB&#8217;ye kimlik bilgileri olmadan ba\u011flanmaya \u00e7al\u0131\u015f\u0131rsan\u0131z eri\u015fim reddedilecektir.<\/p>\n<h4>Y\u00f6netici Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>Kimlik do\u011frulama etkinle\u015ftirildi\u011finde, hen\u00fcz hi\u00e7bir kullan\u0131c\u0131 olu\u015fturulmad\u0131\u011f\u0131 i\u00e7in MongoDB&#8217;ye ba\u011flanmak m\u00fcmk\u00fcn olmayacakt\u0131r. Bu durum, MongoDB&#8217;nin yerel host&#8217;tan (127.0.0.1) ba\u011flan\u0131ld\u0131\u011f\u0131nda ge\u00e7ici olarak kimlik do\u011frulamas\u0131 yapmadan y\u00f6netici kullan\u0131c\u0131 olu\u015fturmaya izin veren \u00f6zel bir modda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Sunucuya SSH ile ba\u011flan\u0131n ve yerel olarak MongoDB kabu\u011funa girin:<\/p>\n<pre><code class=\"language-bash\">mongo<\/code><\/pre>\n<p>Bu komut sizi kimlik do\u011frulamas\u0131 olmadan yerel olarak ba\u011flamal\u0131d\u0131r. \u015eimdi <code>admin<\/code> veritaban\u0131na ge\u00e7in ve bir y\u00f6netici kullan\u0131c\u0131s\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-javascript\">use admin\ndb.createUser(\n  {\n    user: \"adminUser\",\n    pwd: \"your_very_strong_password\",\n    roles: [\n      { role: \"userAdminAnyDatabase\", db: \"admin\" },\n      { role: \"readWriteAnyDatabase\", db: \"admin\" }\n    ]\n  }\n)<\/code><\/pre>\n<p><strong>\u00d6NEML\u0130:<\/strong> <code>your_very_strong_password<\/code> yerine g\u00fc\u00e7l\u00fc ve tahmin edilemez bir parola kullan\u0131n.<\/p>\n<p>*   <code>userAdminAnyDatabase<\/code> rol\u00fc, <code>admin<\/code> veritaban\u0131ndaki kullan\u0131c\u0131lar\u0131 y\u00f6netme yetkisi verir.<br \/>\n*   <code>readWriteAnyDatabase<\/code> rol\u00fc, t\u00fcm veritabanlar\u0131nda okuma ve yazma yetkisi verir. Bu roller, y\u00f6netici kullan\u0131c\u0131 i\u00e7in uygun yetkilerdir.<\/p>\n<p>Kullan\u0131c\u0131y\u0131 olu\u015fturduktan sonra <code>exit<\/code> komutuyla MongoDB kabu\u011fundan \u00e7\u0131k\u0131n.<\/p>\n<h4>Olu\u015fturulan Y\u00f6netici Kullan\u0131c\u0131 ile Kimlik Do\u011frulama<\/h4>\n<p>\u015eimdi olu\u015fturdu\u011funuz y\u00f6netici kullan\u0131c\u0131s\u0131yla kimlik do\u011frulamas\u0131 yaparak MongoDB&#8217;ye ba\u011flanmay\u0131 deneyin:<\/p>\n<pre><code class=\"language-bash\">mongo -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<p>Parola istendi\u011finde, az \u00f6nce olu\u015fturdu\u011funuz parolay\u0131 girin. Ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011flan\u0131rsan\u0131z, MongoDB kabu\u011funa gireceksiniz. Ba\u011flant\u0131 kurduktan sonra <code>show dbs<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak veritabanlar\u0131n\u0131 listeleyebilirsiniz.<\/p>\n<h4>Di\u011fer Veritabanlar\u0131 \u0130\u00e7in Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>Uygulama veya di\u011fer hizmetler i\u00e7in, y\u00f6netici kullan\u0131c\u0131s\u0131ndan farkl\u0131 ve daha k\u0131s\u0131tl\u0131 yetkilere sahip kullan\u0131c\u0131lar olu\u015fturman\u0131z \u00f6nerilir (least privilege principle &#8211; en az ayr\u0131cal\u0131k prensibi). \u00d6rne\u011fin, <code>myApplicationDB<\/code> adl\u0131 bir veritaban\u0131na yaln\u0131zca okuma\/yazma eri\u015fimi olan bir kullan\u0131c\u0131 olu\u015ftural\u0131m:<\/p>\n<p>\u00d6nce y\u00f6netici kullan\u0131c\u0131n\u0131zla ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">mongo -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<p>Parolay\u0131 girin. Ard\u0131ndan, <code>myApplicationDB<\/code> veritaban\u0131na ge\u00e7in ve bir kullan\u0131c\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-javascript\">use myApplicationDB\ndb.createUser(\n  {\n    user: \"appUser\",\n    pwd: \"another_very_strong_password\",\n    roles: [ { role: \"readWrite\", db: \"myApplicationDB\" } ]\n  }\n)<\/code><\/pre>\n<p>Bu <code>appUser<\/code> kullan\u0131c\u0131s\u0131, yaln\u0131zca <code>myApplicationDB<\/code> veritaban\u0131nda okuma ve yazma i\u015flemlerini ger\u00e7ekle\u015ftirebilir. Di\u011fer veritabanlar\u0131na eri\u015fimi yoktur. Bu, g\u00fcvenlik i\u00e7in \u00e7ok \u00f6nemlidir.<\/p>\n<h3>Ad\u0131m 4: Uzaktan Ba\u011flant\u0131y\u0131 Test Etme<\/h3>\n<p>T\u00fcm yap\u0131land\u0131rmalar\u0131 tamamlad\u0131ktan sonra, bir istemci makinesinden MongoDB sunucunuza uzaktan ba\u011flanmay\u0131 test etme zaman\u0131.<\/p>\n<h4>MongoDB Shell ile Uzaktan Ba\u011flant\u0131<\/h4>\n<p>\u0130stemci makinenizde (MongoDB Shell&#8217;in kurulu oldu\u011fu bir makine), a\u015fa\u011f\u0131daki komutu kullanarak ba\u011flanmay\u0131 deneyin:<\/p>\n<pre><code class=\"language-bash\">mongo --host YOUR_SERVER_IP --port 27017 -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<p>*   <code>YOUR_SERVER_IP<\/code>: MongoDB sunucunuzun genel veya \u00f6zel IP adresi.<br \/>\n*   <code>adminUser<\/code>: Olu\u015fturdu\u011funuz y\u00f6netici kullan\u0131c\u0131 ad\u0131.<br \/>\n*   <code>--authenticationDatabase admin<\/code>: Kullan\u0131c\u0131n\u0131n <code>admin<\/code> veritaban\u0131nda tan\u0131mland\u0131\u011f\u0131n\u0131 belirtir.<\/p>\n<p>Parola istendi\u011finde y\u00f6netici parolan\u0131z\u0131 girin. Ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011flan\u0131rsan\u0131z, uzaktan eri\u015fim yap\u0131land\u0131rman\u0131z do\u011fru \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<p>Uygulama kullan\u0131c\u0131s\u0131 ile ba\u011flanmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">mongo --host YOUR_SERVER_IP --port 27017 -u appUser -p --authenticationDatabase myApplicationDB<\/code><\/pre>\n<p>Burada <code>myApplicationDB<\/code> yerine uygulaman\u0131z\u0131n kullanaca\u011f\u0131 veritaban\u0131 ad\u0131n\u0131 yaz\u0131n.<\/p>\n<h4>Programatik Olarak Ba\u011flant\u0131 (\u00d6rnek Python)<\/h4>\n<p>\u00c7o\u011fu zaman, bir uygulama sunucusundan veya geli\u015ftirme ortam\u0131ndan programatik olarak ba\u011flanman\u0131z gerekecektir. \u0130\u015fte Python&#8217;\u0131n <code>pymongo<\/code> s\u00fcr\u00fcc\u00fcs\u00fc ile basit bir \u00f6rnek:<\/p>\n<p>\u00d6nce <code>pymongo<\/code>&#8216;yu y\u00fckleyin (e\u011fer y\u00fckl\u00fc de\u011filse):<\/p>\n<pre><code class=\"language-bash\">pip install pymongo<\/code><\/pre>\n<p>Ard\u0131ndan, Python kodunuzda a\u015fa\u011f\u0131daki gibi ba\u011flanabilirsiniz:<\/p>\n<pre><code class=\"language-python\">from pymongo import MongoClient\nfrom pymongo.errors import ConnectionFailure, OperationFailure\n\n<h2>MongoDB sunucunuzun IP adresi ve portu<\/h2>\nMONGO_HOST = 'YOUR_SERVER_IP'\nMONGO_PORT = 27017\n\n<h2>Y\u00f6netici kullan\u0131c\u0131s\u0131 ile ba\u011flant\u0131 \u00f6rne\u011fi<\/h2>\nADMIN_USER = 'adminUser'\nADMIN_PASS = 'your_very_strong_password'\nADMIN_AUTH_DB = 'admin'\n\n<h2>Uygulama kullan\u0131c\u0131s\u0131 ile ba\u011flant\u0131 \u00f6rne\u011fi<\/h2>\nAPP_USER = 'appUser'\nAPP_PASS = 'another_very_strong_password'\nAPP_DB_NAME = 'myApplicationDB' # Ba\u011flanmak istedi\u011finiz veritaban\u0131\nAPP_AUTH_DB = 'myApplicationDB' # Kullan\u0131c\u0131n\u0131n tan\u0131mland\u0131\u011f\u0131 veritaban\u0131 (genellikle ayn\u0131d\u0131r)\n\ntry:\n    # Y\u00f6netici kullan\u0131c\u0131s\u0131 ile ba\u011flanma\n    print(f\"Admin kullan\u0131c\u0131s\u0131 ile {MONGO_HOST}:{MONGO_PORT} adresine ba\u011flan\u0131l\u0131yor...\")\n    client_admin = MongoClient(\n        host=MONGO_HOST,\n        port=MONGO_PORT,\n        username=ADMIN_USER,\n        password=ADMIN_PASS,\n        authSource=ADMIN_AUTH_DB # Kullan\u0131c\u0131n\u0131n tan\u0131mland\u0131\u011f\u0131 veritaban\u0131\n    )\n    # Ba\u011flant\u0131y\u0131 test et\n    client_admin.admin.command('ping')\n    print(\"Admin ba\u011flant\u0131s\u0131 ba\u015far\u0131l\u0131!\")\n    # Veritabanlar\u0131n\u0131 listele (yetkili oldu\u011fu i\u00e7in)\n    print(\"Mevcut veritabanlar\u0131:\", client_admin.list_database_names())\n    client_admin.close()\n\n    print(f\"\\nUygulama kullan\u0131c\u0131s\u0131 ile {APP_DB_NAME} veritaban\u0131na ba\u011flan\u0131l\u0131yor...\")\n    # Uygulama kullan\u0131c\u0131s\u0131 ile belirli bir veritaban\u0131na ba\u011flanma\n    client_app = MongoClient(\n        host=MONGO_HOST,\n        port=MONGO_PORT,\n        username=APP_USER,\n        password=APP_PASS,\n        authSource=APP_AUTH_DB # Kullan\u0131c\u0131n\u0131n tan\u0131mland\u0131\u011f\u0131 veritaban\u0131\n    )\n    # Belirli veritaban\u0131na eri\u015fim\n    db = client_app[APP_DB_NAME]\n    # Koleksiyonlar\u0131 listele (yetkili oldu\u011fu i\u00e7in)\n    print(f\"{APP_DB_NAME} veritaban\u0131ndaki koleksiyonlar:\", db.list_collection_names())\n    client_app.close()\n\n    print(\"\\nT\u00fcm ba\u011flant\u0131 testleri ba\u015far\u0131l\u0131.\")\n\nexcept ConnectionFailure as e:\n    print(f\"Ba\u011flant\u0131 hatas\u0131: {e}\")\n    print(\"L\u00fctfen IP adresini, portu ve g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 kontrol edin.\")\nexcept OperationFailure as e:\n    print(f\"Kimlik do\u011frulama veya i\u015flem hatas\u0131: {e}\")\n    print(\"L\u00fctfen kullan\u0131c\u0131 ad\u0131, parola ve yetkilendirme veritaban\u0131 bilgilerini kontrol edin.\")\nexcept Exception as e:\n    print(f\"Beklenmeyen bir hata olu\u015ftu: {e}\")<\/code><\/pre>\n<p>Bu \u00f6rnek, hem y\u00f6netici hem de uygulama kullan\u0131c\u0131s\u0131 ile nas\u0131l ba\u011flant\u0131 kurulaca\u011f\u0131n\u0131 g\u00f6sterir. <code>authSource<\/code> parametresi, kullan\u0131c\u0131n\u0131n hangi veritaban\u0131nda tan\u0131mland\u0131\u011f\u0131n\u0131 belirtmek i\u00e7in \u00f6nemlidir.<\/p>\n<h3>G\u00fcvenlik \u00d6nemleri ve En \u0130yi Uygulamalar<\/h3>\n<p>MongoDB&#8217;ye uzaktan eri\u015fimi yap\u0131land\u0131r\u0131rken g\u00fcvenli\u011fi her zaman \u00f6n planda tutmak \u00e7ok \u00f6nemlidir. A\u015fa\u011f\u0131daki en iyi uygulamalar\u0131 takip etmek, veritaban\u0131n\u0131z\u0131 olas\u0131 tehditlere kar\u015f\u0131 koruman\u0131za yard\u0131mc\u0131 olacakt\u0131r:<\/p>\n<h4>G\u00fc\u00e7l\u00fc Parolalar Kullan\u0131n<\/h4>\n<p>T\u00fcm MongoDB kullan\u0131c\u0131lar\u0131 i\u00e7in karma\u015f\u0131k, benzersiz ve uzun parolalar kullan\u0131n. Parolalar b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf, rakam ve \u00f6zel karakterler i\u00e7ermelidir. Asla varsay\u0131lan veya kolay tahmin edilebilir parolalar kullanmay\u0131n.<\/p>\n<h4>En Az Ayr\u0131cal\u0131k Prensibi (Least Privilege Principle)<\/h4>\n<p>Her kullan\u0131c\u0131ya veya uygulamaya yaln\u0131zca i\u015flerini yapmak i\u00e7in kesinlikle ihtiya\u00e7 duyduklar\u0131 minimum yetkileri verin. \u00d6rne\u011fin, bir uygulaman\u0131n yaln\u0131zca belirli bir veritaban\u0131nda okuma ve yazma eri\u015fimine ihtiyac\u0131 varsa, ona yaln\u0131zca bu yetkileri veren bir rol atay\u0131n. Asla bir uygulamaya gereksiz yere y\u00f6netici yetkileri vermeyin.<\/p>\n<h4>A\u011f G\u00fcvenli\u011fi (Firewall)<\/h4>\n<p>*   <strong>Sadece Gerekli IP&#8217;lere Eri\u015fim \u0130zni Verin:<\/strong> G\u00fcvenlik duvar\u0131n\u0131z\u0131 (UFW) yaln\u0131zca MongoDB&#8217;ye eri\u015fmesi gereken belirli IP adreslerinden veya IP aral\u0131klar\u0131ndan gelen ba\u011flant\u0131lara izin verecek \u015fekilde yap\u0131land\u0131r\u0131n. <code>0.0.0.0<\/code> kullanmaktan ka\u00e7\u0131n\u0131n, e\u011fer yapabiliyorsan\u0131z. E\u011fer <code>0.0.0.0<\/code> kullan\u0131yorsan\u0131z, UFW kurallar\u0131n\u0131z\u0131n son derece k\u0131s\u0131tlay\u0131c\u0131 oldu\u011fundan emin olun.<br \/>\n*   <strong>VPN veya SSH T\u00fcnelleme Kullanmay\u0131 D\u00fc\u015f\u00fcn\u00fcn:<\/strong> Daha y\u00fcksek g\u00fcvenlik gerektiren ortamlar i\u00e7in, MongoDB&#8217;ye do\u011frudan eri\u015fmek yerine bir VPN (Virtual Private Network) veya SSH t\u00fcnelleme \u00fczerinden ba\u011flanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Bu, t\u00fcm trafi\u011fi \u015fifreler ve yaln\u0131zca VPN veya SSH t\u00fcneli \u00fczerinden gelen ba\u011flant\u0131lara izin verir.<\/p>\n<h4>TLS\/SSL \u015eifrelemesi<\/h4>\n<p>Veritaban\u0131 sunucusu ile istemci aras\u0131ndaki t\u00fcm veri ileti\u015fimini \u015fifrelemek i\u00e7in TLS\/SSL kullan\u0131n. Bu, a\u011fdaki verilerin dinlenmesini veya de\u011fi\u015ftirilmesini \u00f6nler. MongoDB, TLS\/SSL&#8217;yi destekler ve \u00fcretim ortamlar\u0131nda kullan\u0131lmas\u0131 \u015fiddetle tavsiye edilir. Bu makalenin kapsam\u0131 d\u0131\u015f\u0131nda olsa da, g\u00fcvenli bir da\u011f\u0131t\u0131m i\u00e7in ara\u015ft\u0131r\u0131lmas\u0131 gereken kritik bir konudur.<\/p>\n<h4>D\u00fczenli G\u00fcncellemeler<\/h4>\n<p>MongoDB sunucunuzu ve Ubuntu i\u015fletim sisteminizi d\u00fczenli olarak g\u00fcncelleyin. Yaz\u0131l\u0131m g\u00fcncellemeleri genellikle g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatan yamalar i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade<\/code><\/pre>\n<h4>Log Kay\u0131tlar\u0131n\u0131 \u0130zleme<\/h4>\n<p>MongoDB&#8217;nin log dosyalar\u0131n\u0131 (<code>\/var\/log\/mongodb\/mongod.log<\/code>) d\u00fczenli olarak izleyin. Anormal ba\u011flant\u0131 giri\u015fimleri, kimlik do\u011frulama hatalar\u0131 veya di\u011fer \u015f\u00fcpheli aktiviteler g\u00fcvenlik sorunlar\u0131n\u0131n erken g\u00f6stergeleri olabilir.<\/p>\n<h4>Yedekleme Stratejisi<\/h4>\n<p>Verilerinizin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in d\u00fczenli ve g\u00fcvenilir bir yedekleme stratejisi uygulay\u0131n. <code>mongodump<\/code> gibi ara\u00e7lar\u0131 kullanarak veritaban\u0131n\u0131z\u0131n yedeklerini al\u0131n ve bu yedekleri g\u00fcvenli bir yerde saklay\u0131n.<\/p>\n<h3>Sorun Giderme (Troubleshooting)<\/h3>\n<p>Uzaktan eri\u015fim yap\u0131land\u0131r\u0131l\u0131rken kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Ba\u011flant\u0131 Reddedildi (Connection Refused)<\/h4>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131 (UFW):<\/strong> \u0130stemci makinenizin IP adresinin veya t\u00fcm 27017 portunun UFW taraf\u0131ndan engellenmedi\u011finden emin olun. <code>sudo ufw status verbose<\/code> komutuyla kontrol edin ve gerekirse kural ekleyin.<br \/>\n*   <strong><code>bindIp<\/code> Ayar\u0131:<\/strong> <code>mongod.conf<\/code> dosyas\u0131ndaki <code>bindIp<\/code> ayar\u0131n\u0131n <code>0.0.0.0<\/code> veya istemci IP&#8217;sini i\u00e7erecek \u015fekilde do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>MongoDB Servisi \u00c7al\u0131\u015f\u0131yor mu?:<\/strong> <code>sudo systemctl status mongod<\/code> komutuyla MongoDB servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin. \u00c7al\u0131\u015fm\u0131yorsa, <code>sudo systemctl start mongod<\/code> ile ba\u015flat\u0131n.<br \/>\n*   <strong>Yanl\u0131\u015f Port:<\/strong> \u0130stemcinizin do\u011fru porta (varsay\u0131lan 27017) ba\u011fland\u0131\u011f\u0131ndan emin olun.<\/p>\n<h4>Kimlik Do\u011frulama Hatas\u0131 (Authentication Failed)<\/h4>\n<p>*   <strong>Kullan\u0131c\u0131 Ad\u0131\/Parola:<\/strong> Kullan\u0131c\u0131 ad\u0131n\u0131n ve parolan\u0131n do\u011fru oldu\u011fundan emin olun. Parolalar b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harfe duyarl\u0131d\u0131r.<br \/>\n*   <strong><code>authenticationDatabase<\/code>:<\/strong> <code>mongo<\/code> kabu\u011fu veya uygulama s\u00fcr\u00fcc\u00fcs\u00fc ile ba\u011flan\u0131rken <code>--authenticationDatabase<\/code> parametresinin do\u011fru veritaban\u0131n\u0131 i\u015faret etti\u011finden emin olun (yani, kullan\u0131c\u0131n\u0131n olu\u015fturuldu\u011fu veritaban\u0131).<br \/>\n*   <strong>Kullan\u0131c\u0131n\u0131n Rolleri:<\/strong> Kullan\u0131c\u0131n\u0131n ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 veritaban\u0131 i\u00e7in gerekli rollere sahip oldu\u011fundan emin olun. \u00d6rne\u011fin, bir veritaban\u0131na yazmak istiyorsa <code>readWrite<\/code> rol\u00fcne sahip olmal\u0131d\u0131r.<br \/>\n*   <strong>Kimlik Do\u011frulama Etkinle\u015ftirildi mi?:<\/strong> <code>mongod.conf<\/code> dosyas\u0131nda <code>authorization: enabled<\/code> ayar\u0131n\u0131n do\u011fru yap\u0131ld\u0131\u011f\u0131ndan emin olun.<\/p>\n<h4><code>mongod<\/code> Servisi Ba\u015flam\u0131yor<\/h4>\n<p>*   <strong><code>mongod.conf<\/code> Dosyas\u0131nda Syntax Hatas\u0131:<\/strong> <code>sudo systemctl status mongod<\/code> veya <code>sudo journalctl -xe<\/code> komutlar\u0131n\u0131 kullanarak MongoDB loglar\u0131n\u0131 kontrol edin. Yap\u0131land\u0131rma dosyas\u0131nda bir yaz\u0131m hatas\u0131 veya yanl\u0131\u015f girinti olabilir. \u00d6zellikle YAML format\u0131n\u0131n girintilemeye duyarl\u0131 oldu\u011funu unutmay\u0131n.<br \/>\n*   <strong>Log Dosyalar\u0131n\u0131 Kontrol Edin:<\/strong> MongoDB&#8217;nin log dosyas\u0131 (<code>\/var\/log\/mongodb\/mongod.log<\/code>) ba\u015flatma sorunlar\u0131 hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgi sa\u011flayacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 18.04 \u00fczerinde \u00e7al\u0131\u015fan bir MongoDB sunucusuna g\u00fcvenli uzaktan eri\u015fimi ad\u0131m ad\u0131m nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 ayarlayarak, MongoDB yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenleyerek ve en \u00f6nemlisi kullan\u0131c\u0131 kimlik do\u011frulamas\u0131n\u0131 etkinle\u015ftirerek, veritaban\u0131n\u0131za d\u0131\u015far\u0131dan g\u00fcvenli bir \u015fekilde eri\u015fim sa\u011flayabilirsiniz.<\/p>\n<p>Unutmay\u0131n ki g\u00fcvenlik, s\u00fcrekli bir s\u00fcre\u00e7tir. Veritaban\u0131 sisteminizi d\u00fczenli olarak izlemeli, g\u00fcncellemeleri uygulamal\u0131 ve g\u00fcvenlik en iyi uygulamalar\u0131n\u0131 takip etmelisiniz. Bu ad\u0131mlar\u0131 dikkatlice uygulayarak ve g\u00fcvenlik \u00f6nlemlerini g\u00f6z ard\u0131 etmeyerek, MongoDB veritaban\u0131n\u0131z\u0131 uzaktan eri\u015fime a\u00e7arken verilerinizin g\u00fcvenli\u011fini sa\u011flayabilirsiniz. Bu yap\u0131land\u0131rma, geli\u015ftirme, test ve hatta \u00fcretim ortamlar\u0131nda sa\u011flam bir temel olu\u015fturacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131\nMongoDB, modern uygulamalar i\u00e7in tasarlanm\u0131\u015f pop\u00fcler, a\u00e7\u0131k kaynakl\u0131 bir N","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-31243","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MongoDB&#039;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MongoDB&#039;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"MongoDB&#039;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131 MongoDB, modern uygulamalar i\u00e7in tasarlanm\u0131\u015f pop\u00fcler, a\u00e7\u0131k kaynakl\u0131 bir N\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-07T15:41:19+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2025-10-07T15:41:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\"},\"wordCount\":2962,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\",\"name\":\"MongoDB'ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-07T15:41:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MongoDB'ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"MongoDB'ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131","og_description":"MongoDB'ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131 MongoDB, modern uygulamalar i\u00e7in tasarlanm\u0131\u015f pop\u00fcler, a\u00e7\u0131k kaynakl\u0131 bir N","og_url":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-07T15:41:19+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131","datePublished":"2025-10-07T15:41:19+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/"},"wordCount":2962,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/","name":"MongoDB'ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-07T15:41:19+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbye-ubuntu-18-04-uzerinden-uzaktan-erisim-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MongoDB&#8217;ye Ubuntu 18.04 \u00dczerinden Uzaktan Eri\u015fim Yap\u0131land\u0131rmas\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31243"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31243\/revisions"}],"predecessor-version":[{"id":31244,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31243\/revisions\/31244"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}