Nginx'te Web Dizinlerini Parolayla Koruma


Web projelerinin yöneticileri çoğu zaman çalışmalarını öyle ya da böyle korumaya ihtiyaç duyarlar. İnsanlar genellikle web sitelerini henüz geliştirilme aşamasındayken şifreyle nasıl koruyacaklarını soruyorlar.

Bu eğitimde, Nginx'i web sunucusu olarak çalıştırırken web dizininin şifreyle nasıl korunacağını basit ama etkili bir teknikle göstereceğiz.

Apache web sunucusu kullanıyorsanız, bir web dizinini şifreyle korumak için kılavuzumuza göz atabilirsiniz:

  1. Apache'de Web Dizinlerini Parolayla Koruyun

Gereksinimler

Bu eğitimdeki adımları tamamlamak için şunlara sahip olmanız gerekir:

  • Nginx web sunucusu kuruldu
  • Sunucuya kök erişimi

Adım 1: Kullanıcı ve Şifre Oluşturun

1. Web dizinimizi şifreyle korumak için, şifrelenmiş kullanıcı adımızı ve şifremizi içerecek dosyayı oluşturmamız gerekecek.

Apache'i kullanırken “htpasswd” yardımcı programını kullanabilirsiniz. Sisteminizde bu yardımcı program yüklüyse, parola dosyasını oluşturmak için bu komutu kullanabilirsiniz:

htpasswd -c /path/to/file/.htpasswd username

Bu komutu çalıştırırken yukarıdaki kullanıcı için bir şifre belirlemeniz istenecek ve bundan sonra belirtilen dizinde .htpasswd dosyası oluşturulacaktır.

2. Eğer bu araç yüklü değilse .htpasswd dosyasını manuel olarak oluşturabilirsiniz. Dosya aşağıdaki sözdizimine sahip olmalıdır:

username:encrypted-password:comment

Kullanacağınız kullanıcı adı size bağlıdır, dilediğinizi seçin.

Daha önemli kısım, o kullanıcı için şifreyi nasıl oluşturacağınızdır.

Adım 2: Şifreli Parola Oluşturun

3. Şifreyi oluşturmak için Perl'ün entegre "crypt" işlevini kullanın.

İşte bu komutun bir örneği:

perl -le 'print crypt("your-password", "salt-hash")'

Gerçek hayattan bir örnek:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Şimdi bir dosya açın ve kullanıcı adınızı ve oluşturulan dizeyi noktalı virgülle ayırarak yerleştirin.

İşte nasıl:

vi /home/tecmint/.htpasswd

Kullanıcı adınızı ve şifrenizi koyun. Benim durumumda şöyle görünüyor:

tecmint:1xV2Rdw7Q6MK.

“Esc” tuşuna ve ardından “:wq” tuşuna basarak dosyayı kaydedin.

3. Adım: Nginx Yapılandırmasını Güncelleyin

4. Şimdi üzerinde çalıştığınız siteyle ilişkili Nginx yapılandırma dosyasını açın ve düzenleyin. Bizim durumumuzda varsayılan dosyayı kullanacağız:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

Örneğimizde, nginx için dizin kökünü şifreyle koruyacağız: /usr/share/nginx/html.

5. Şimdi aşağıdaki iki satırlı bölümü korumak istediğiniz yolun altına ekleyin.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Şimdi dosyayı kaydedin ve Nginx'i şununla yeniden başlatın:

systemctl restart nginx
OR
service nginx restart

6. Şimdi bu IP adresini tarayıcınıza kopyalayıp yapıştırın; sizden şifre istenecektir:

Bu kadar! Ana web dizininiz artık korunuyor. Sitedeki şifre korumasını kaldırmak istediğinizde, .htpasswd dosyasına yeni eklediğiniz iki satırı kaldırmanız veya eklenen kullanıcıyı şifre dosyasından kaldırmak için aşağıdaki komutu kullanmanız yeterlidir.

htpasswd -D /path/to/file/.htpasswd username