Ubuntu Server 22.04'ü kurduktan sonra, sistemin güvenliğini yapılandırmak ve kullanım kolaylığı sağlamak için birkaç adım atılmalıdır.
Adım 1 - Bir Root hesabı ile yetkilendirme yapın
Bir bulut sunucusunda temiz bir sunucu kuracağız ve hesaptan sadece 'root' olacak. Sunucuyu oluştururken seçebileceğiniz iki seçenek vardır:
- SSH anahtarı ile;
- kullanıcı adı ve şifre ile.
"root" kullanıcısı normal kullanıcılardan daha fazla ayrıcalığa sahiptir. Bazı komutları root olarak kullanmak arızalara neden olabilir. Genellikle yapılandırma dosyasında değişiklikler, hizmetleri yeniden başlatma, portları açma ve diğerleri. Bu nedenle yeni bir kullanıcı oluşturmalı ve sudo kullanarak komutları çalıştırmalısınız. Risk kesinlikle azalacaktır. Kullanıcı üzerindeki ayrıcalıklar ve kısıtlamalar usermod komutu kullanılarak root tarafından verilir.
Sunucuya bağlantı aşağıdaki gibidir:
ssh root@ip_address
Bundan sonra, ya bir parola gereklidir ya da .ssh dizininde ilgili bir anahtar dosyası bulunmalıdır. Sunucunun gerçekliğini kabul edin. SSH anahtarıyla bağlanmak bir parola gerektirebilir ve girilmesi gerekir.
Bir sonraki adımda, belirli ayrıcalıklar ve kullanım kısıtlamaları ile kullanılmak üzere bir sistem kullanıcısı oluşturun.
Adım 2 - Yeni bir sistem kullanıcısı ekleyin
İlk kez root olarak yetkilendirme yapıldığında, komut kullanılarak sisteme yeni bir kullanıcı eklenmelidir:
useradd -m test_user
test_user'ı kendi takdirinize göre değiştirin. m anahtarı test_user kullanıcısı için ev dizininde bir klasör oluşturur ve kullanıcıyı sahibi yapar.
Kullanıcı için bir parola belirlenmelidir:
passwd test_user
Yeni bir parola girin ve onaylayın, karmaşık bir parola kullanmalı ve bunu notlarınıza yazmalısınız. sudo komutunu kullanırken bir parola gerekecektir.
Adım 3 - Yönetici ayrıcalıklarının verilmesi
Kullanıcıyı oluşturduktan sonra sudo grubuna eklemelisiniz. Şu komutu kullanın:
usermod -aG sudo test_server
"a" tuşu bir eklemeyi, "G" tuşu bir grubu, ardından grubun adını ve eklenecek kullanıcıyı belirtir.
Bir kullanıcı oluşturulduğunda, hiçbir erişim hakkı veya ayrıcalık yoktur. Normal zamanlarda, belirli bir hizmetin veya birden fazla hizmetin yapılandırma dosyasında değişiklik yaparak sunucu yeniden başlatılmalıdır.
Adım 4 - Temel güvenlik duvarının ilk yapılandırması
Ufw bir güvenlik duvarı aracıdır ve yüklenen her paket ufw kuralına eklenir. SSH bağlantımız da ilgili ufw kuralından geçer. Uygulamaların durumunu kontrol etmek aşağıdaki gibi yapılır:
ufw status
Çıktı, ufw'ye eklenen açık portların ve uygulamaların bir listesidir.
Aşağıdaki komut, şu anda ufw ile sürekli olarak çalışan uygulamaların bir listesini çıkarır.
ufw app list
#Çıktı
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Bağlanırken herhangi bir sorun olmadığından emin olmak için aşağıdaki komutu çalıştırarak OpenSSH bağlantısına izin verin:
ufw allow OpenSSH
Güvenlik duvarını açın ve kabul edin:
ufw enable
Uygulamanın durumunu ve SSH bağlantısının hala geçerli olup olmadığını kontrol edin:
ufw status
#Çıktı
Status: active
To Action From
__ ________ _________
OpenSSH ALLOW Anywhere
ufw artık OpenSSH dışındaki tüm harici bağlantıları engelliyor.
Adım 5 - Bir kullanıcıya uzaktan bağlanma izni
Bir komut satırı açın ve bir komut girin:
ssh test_server@ip_address
Hesap oluştururken parolanızı girmeniz gerekir. Komutu sudo kullanarak gerçekleştirelim (bkz. şekil 1), örneğin:
sudo apt install neovim
Bir kullanıcı oluşturulduktan sonra, varsayılan olarak kabuk kullanılır. Bash'e geçmeniz gerekiyorsa şu komutu çalıştırabilirsiniz
sudo chsh -s /bin/bash test_server
test_user olarak yeniden kimlik doğrulaması yapın ve komut istemini kontrol edin:
echo $0
#Çıktı -bash
SSH anahtarı ile root'a bağlanırken
Kullanıcının kök dizini .ssh dizinini içerir, dizin SSH anahtarlarından sorumlu olan authorized_keys dosyasını içerir, dosyayı kopyalayıp kullanıcının /home/test_server/.ssh/ dizinine yapıştırmalısınız.
Dizin yolunu, dosya sahibini ve izinleri değiştirmek için rsync kullanmak daha uygundur:
rsync --archive --chown=test_server:test_server ~/.ssh /home/test_server
Bağlantıyı kuracağız:
ssh test_server@ip_addres
Bağlantı başarılı olacaktır, geriye kalan tek şey sistemde kendi yararınıza çalışmaktır!
Sonuçlar
- Ufw, güvenli sunucu bağlantıları için bir yardımcıdır;
- SSH anahtarı, benzersiz bir anahtar olmadan sunucuya bağlantıya izin vermeyecektir;
- Bir sudo kullanıcısı olarak bu, root olarak çalıştırılan komutlara kıyasla sunucu hatası riskini azaltır.