Ubuntu 20.04’te MongoDB için Uzaktan Erişim Nasıl Yapılandırılır
MongoDB kurulumunuza internetten erişilemez. MongoDB’yi aynı sunucuda çalışan uygulamalarla yalnızca yerel olarak kullanmayı düşünüyorsanız, bu önerilen ve güvenli ayardır. Ancak MongoDB sunucunuza uzak bir lokasyondan bağlanabilmek istiyorsanız, yeni bir UFW kuralı ekleyerek veritabanının dinlediği porta gelen bağlantılara izin vermelisiniz.
Komutla MongoDB kurulumunuzun hangi bağlantı noktasını dinlediğini kontrol ederek başlayın lsof
. Bu komut genellikle bir sistemdeki her açık dosyanın bulunduğu bir liste döndürür, ancak -i
seçenekle birleştirildiğinde yalnızca ağla ilgili dosyaları veya veri akışlarını listeler.
Aşağıdaki komut, tarafından üretilen çıktıyı şu adlı bir dizgiyi arayan lsof -i
bir komuta yönlendirecektir :grep
mongo
sudo lsof -i | grep mongo
Bu örnek çıktı, MongoDB’nin varsayılan bağlantı noktasındaki bağlantıları dinlediğini gösterir 27017
:
Outputmongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
Çoğu durumda MongoDB’ye yalnızca, bir uygulamayı barındıran başka bir sunucu veya uzak bir MongoDB örneğini yönetmek için kullanılan yerel bir makine gibi belirli güvenilir konumlardan erişilmelidir. Bunu yapılandırmanın bir yolu, MongoDB sunucunuzda, diğer güvenilir makinenin IP adresine açıkça izin verirken MongoDB’nin varsayılan bağlantı noktasına erişimi açan aşağıdaki komutu çalıştırmaktır.
trusted_machine_ip
MongoDB bulut sunucunuza erişmek için kullanacağınız güvenilir uzak bilgisayarın IP adresini değiştirdiğinizden emin olarak aşağıdaki komutu çalıştırın .
Not : Güvenilen makinenin IP adresinden emin değilseniz aşağıdaki curl
komutu çalıştırabilirsiniz. Bu icanhazip.com
, komutu çalıştırdığınız makinenin IP adresini döndürecek olan web sitesine erişecektir:
curl -4 icanhazip.com
Ayrıca, önceki komutun çıktısı MongoDB kurulumunuzun varsayılan olmayan bir bağlantı noktasını dinlediğini gösteriyorsa, bu komut yerine o bağlantı noktası numarasını 27017
kullanın:
sudo ufw allow from trusted_machine_ip to any port 27017
Gelecekte, başka bir makineden MongoDB’ye erişmek isterseniz, bu komutu trusted_machine_ip
.
Güvenlik duvarı ayarlarındaki değişikliği şu şekilde doğrulayabilirsiniz ufw
:
sudo ufw status
27017
Çıktı , uzak sunucudan bağlantı noktasına giden trafiğe artık izin verildiğini gösterecektir :
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW trusted_machine_ip
OpenSSH (v6) ALLOW Anywhere (v6)
Ardından, uzaktaki makinenizden erişebilmek için MongoDB’yi sunucunun genel IP adresine bağlayacaksınız.
Adım 2 — Genel bir bindIP yapılandırması
Bu noktada, bağlantı noktası açık olsa bile, MongoDB şu anda 127.0.0.1
yerel geridöngü ağ arabirimi olan . Bu, MongoDB’nin yalnızca kurulu olduğu sunucudan kaynaklanan bağlantıları kabul edebileceği anlamına gelir.
/etc/mongod.conf
Uzak bağlantılara izin vermek için, MongoDB’yi güvenilir uzak bilgisayarınız tarafından erişilebilen bir IP adresine ek olarak bağlamak için MongoDB yapılandırma dosyasını — — düzenlemeniz gerekir . Bu şekilde, MongoDB kurulumunuz uzak makinelerden MongoDB sunucunuza yapılan bağlantıları dinleyebilecektir.
MongoDB yapılandırma dosyasını tercih ettiğiniz metin düzenleyicide açın. Aşağıdaki örnek şunları kullanır nano
:
sudo nano /etc/mongod.conf
network interfaces
Bölümü ve ardından değeri bulun bindIp
:/etc/mongod.conf
. . .
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
. . .
Bu satıra bir virgül ve ardından MongoDB sunucunuzun genel IP adresini ekleyin:/etc/mongod.conf
. . .
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,mongodb_server_ip
. . .
Lütfen bunun güvenilir uzak makinenizin IP adresi değil , MongoDB’yi kurduğunuz sunucunun IP adresi olması gerektiğini unutmayın .
Dosyayı kaydedip kapatın. Kullandıysanız , ardından nano
düğmelerine basarak yapın .CTRL + X
Y
ENTER
Ardından, bu değişikliğin yürürlüğe girmesi için MongoDB’yi yeniden başlatın:
sudo systemctl restart mongod
Bunu takiben, MongoDB kurulumunuz, bağlantı noktasına erişmesine izin verdiğiniz makinelerden uzak bağlantıları kabul edebilecektir 27017
. Son adım olarak, 1. Adımda güvenlik duvarı üzerinden izin verdiğiniz güvenilir makinenin, sunucunuzda çalışan MongoDB bulut sunucusuna erişip erişemeyeceğini test edebilirsiniz.
Adım 3 — Uzaktan Bağlantıyı Test Etme
MongoDB kurulumunuzu, genel olarak yönlendirilebilen IP adresinden kaynaklanan bağlantıları dinleyecek şekilde yapılandırdığınıza ve uzak makinenize sunucunuzun güvenlik duvarı üzerinden Mongo’nun varsayılan bağlantı noktasına erişim izni verdiğinize göre, uzak makinenin bağlanabildiğini test edebilirsiniz.
Not : Önkoşullar bölümünde bahsedildiği gibi, bu eğitimde uzaktaki makinenizin Ubuntu 20.04 çalıştıran başka bir sunucu olduğu varsayılmaktadır. 1. ve 2. Adımlarda özetlenen uzak bağlantıları etkinleştirme prosedürü, uzak makinenizin çalıştırdığı işletim sisteminden bağımsız olarak çalışmalıdır, ancak bu Adımda açıklanan test yöntemleri evrensel olarak işletim sistemlerinde çalışmaz.
Güvenilir bilgisayarınızın MongoDB bulut sunucusuna bağlanabildiğini test etmenin bir yolu, nc
komutu kullanmaktır. netcat’innc
kısaltması olan , TCP veya UDP ile ağ bağlantıları kurmak için kullanılan bir yardımcı programdır. Hem IP adresi hem de port numarası belirtmenize izin verdiği için, bu gibi durumlarda test yapmak için kullanışlıdır.
İlk olarak, SSH kullanarak güvenilir sunucunuza giriş yapın:
ssh kerim@trusted_machine_ip
Ardından, seçeneği nc
içeren aşağıdaki komutu çalıştırın . -z
Bu nc
, herhangi bir veri göndermeden yalnızca hedef sunucuda dinleyen bir arka plan programı için taramayı sınırlar. MongoDB’nin bir hizmet arka plan programı olarak çalıştığını önkoşul yükleme öğreticisinden hatırlayın, bu seçeneği bağlantı testi için kullanışlı hale getirir. Ayrıca v
, komutun ayrıntı düzeyini artıran ve netcat’in başka türlü yapmayacağı bazı çıktıları döndürmesine neden olan seçeneği de içerir.
Aşağıdaki nc
komutu , MongoDB’yi kurduğunuz sunucunun IP adresiyle değiştirdiğinizden emin olarak güvenilir uzak sunucunuzdan çalıştırın:mongodb_server_ip
nc -zv mongodb_server_ip 27017
Güvenilir sunucu MongoDB arka plan programına erişebiliyorsa, çıktısı bağlantının başarılı olduğunu gösterecektir:
OutputConnection to mongodb_server_ip 27017 port [tcp/*] succeeded!
mongo
Uzak sunucunuzda kurulu uyumlu bir Shell sürümüne sahip olduğunuzu varsayarsak , bu noktada ana sunucuda kurulu MongoDB bulut sunucusuna doğrudan bağlanabilirsiniz.
Bağlanmanın bir yolu, şöyle bir bağlantı dizgisi URI kullanmaktır :
mongo "mongodb://mongo_server_ip:27017"
veya
mongo "mongodb://username@mongo_server_ip:27017"
Kabuk sizden otomatik olarak kullanıcının şifresini girmenizi isteyecektir.