Cara melindungi situs kami menggunakan .htpasswd + Contoh

Untuk berbagai alasan, akan sangat berguna untuk memiliki akses terkontrol ke direktori tertentu di server web atau hanya ke konten halaman atau blog kita melalui layanan otentikasi berdasarkan nama pengguna dan kata sandi. Saya berbicara tentang sesuatu seperti jendela biasa yang muncul ketika kita ingin memasuki situs web dengan layanan terbatas.

Ada beberapa cara untuk menghasilkan jendela dengan bentuk otentikasi tetapi solusi yang menarik di tingkat server disediakan htpasswd. Ini adalah utilitas yang fungsinya untuk menyimpan password dalam bentuk terenkripsi untuk digunakan oleh Apache dalam layanan otentikasi. Penggunaannya akan memungkinkan kami untuk menampilkan direktori atau file tertentu melalui http hanya untuk pengguna yang diidentifikasi dan tanpa harus tersedia secara bebas untuk semua orang.

Saya mengerti bahwa ini bukanlah subjek yang terlalu mencolok tetapi dapat berguna bagi sebagian orang. Agar tidak membunuh mereka dengan kebosanan, saya akan menggunakan gambar untuk membuatnya lebih didaktik.

Pertimbangan sebelumnya: Saya akan menggunakan Ubuntu Server 12.04.1 y Apache 2.2.22 dalam lingkungan yang terkendali.

Kita mulai.

Seperti yang mungkin sudah diketahui beberapa orang, secara default situs Apache yang tersedia disimpan di direktori / var / www / dan untuk contoh ini saya akan membuat direktori dengan template HTML dan mencoba melindunginya dengan .htpasswd.

Direktori yang akan dilindungi adalah / var / www / contoh / di mana saya telah menempatkan halaman berikutnya.

Di server

Di browser

1. Kami akan membuat .htpasswd.

Tempat di mana ia akan ditempatkan memiliki kepentingan yang relevan dan menempatkannya di luar direktori publik bisa jadi lebih dari yang disarankan. Dalam kasus saya, saya akan menempatkannya di folder pribadi saya (yang bukan direktori Apache publik) dan dengan nama .htpasswd (Secara apriori tidak perlu disebut demikian, tetapi yang tersembunyi selalu baik).

Untuk pengguna yang baru mengenal Linux. Untuk menyembunyikan direktori atau file, Anda hanya perlu memulai namanya dengan titik (.).

Dengan perintah berikut saya membuat file .htpasswd untuk pengguna web yang saya beri nama sebagai: "Luke".

# htpasswd -c /home/krel/.htpasswd Luke

Ini akan meminta kami untuk memberikan kata sandi dua kali, dalam kasus saya, saya telah meletakkan "skywalker" (tanpa tanda kutip). Dalam lingkungan yang tidak terkontrol, kita harus membuat kata sandi yang lebih kuat. Enkripsi default di Linux adalah MD5 tetapi di Unix ini adalah implementasi standar crypt () dan untuk kata sandi dengan kurang dari 8 karakter itu bisa rentan. Sekarang saya ragu apakah itu sama di BSD.

Perintah memiliki struktur ini:

  • -c → untuk membuat file
  • /home/krel/.htpasswd → jalur absolut file.
  • Luke → nama pengguna (bisa apa saja yang Anda inginkan)

Demikian pula, saya tidak memaksa siapa pun untuk menggunakan terminal ketika ada layanan di Internet untuk itu:
http://www.web2generators.com/apache/htpasswd_generator

http://www.htaccesstools.com/htpasswd-generator/

Hasilnya disalin dalam file teks dan dengan nama .htpasswd jika Anda mau. Mengenai metode ini, jangan berhenti membaca apa yang saya komentari di paragraf berikutnya.

Dalam kasus kami, kami akan melihat file telah dibuat di tempat yang kami harapkan /home/krel/.htpasswd. Pada gambar saya telah menyoroti bahwa dengan metode ini file tersebut milik grup dan pengguna apache, yang di Ubuntu disebut www-data. Ini penting karena jika kita telah membuat .htpasswd dengan cara lain, kita harus memastikan bahwa ia memiliki 644 izin.

Nah, sekarang kita akan lihat seperti apa nyali mereka:

Seperti yang Anda lihat, ada pengguna (Luke) tetapi kata sandinya dienkripsi.

Dengan cara ini kami telah membuat dan mendesain .htpasswd untuk pengguna Luke, pada akhirnya itu tidak lebih dari sebuah wadah untuk kata sandi. "Semua dengan satu perintah" akan menjadi slogan yang bagus.

2. Konfigurasi Apache untuk menggunakan dan mengizinkan layanan tersebut di situs.

# nano /etc/apache2/sites-available/default

Jika Anda memiliki beberapa host, mereka harus bekerja pada masing-masing, dalam kasus saya, saya hanya memiliki satu yang datang secara default. Jangan lupa bahwa selalu bagus untuk membuat cadangan file itu.

File itu memiliki struktur default:

ServerAdmin webmaster @ localhost

..................

..................

Tepat di dalam judul Virtualhost itulah penggunaan .htpasswd akan ditentukan untuk mengakses direktori tertentu. Kami melakukannya karena gambar di bawah ini muncul dan sesuai dengan contoh kami:

Baik. Saya menjelaskan barisnya:

Anda harus meletakkan direktori untuk dilindungi.

Dasar AuthType

Ini adalah jenis pengguna dan kata sandi yang dinegosiasikan dengan browser, dalam hal ini adalah Dasar, tanpa enkripsi.

Ada jenis negosiasi lain: Digest, ini jika mengenkripsi nama pengguna dan kata sandi, namun kata terakhir adalah browser memiliki apakah itu mendukung layanan tersebut. Digest dapat dikatakan bahwa ini adalah implementasi yang sedikit lebih kuat terhadap sniffer. Saya mengundang Anda untuk mempelajari ini.

AuthName "Ketuk pintu sebelum masuk."

Ini adalah pesan yang akan ditampilkan kepada pengguna di browser dengan formulir login dan bisa menjadi yang kita inginkan.

AuthUserFile /var/www/.pass/.htpasswd

Letakkan file .htpasswd. Untuk alasan itu adalah bahwa saya mengatakan bahwa tidak perlu menamainya .htpasswd, cukup dengan meletakkan jalurnya akan berfungsi sama.

Memerlukan valid-user

Baris itu dirancang untuk banyak pengguna dengan kata sandi individual. Jika itu adalah satu pengguna, itu dapat diringkas sebagai varian berikut.

Wajibkan pengguna el_que_sea

Dalam contoh saya bisa jadi: Wajibkan pengguna Luke

Dan akhirnya kami melampirkan semuanya dengan

Kami memulai ulang apache:

# service apache2 restart

Mari mencoba.

Jika kita tidak mengotentikasi dengan benar kita akan mendapatkan Error 401.

Di sisi berlawanan, jika kita memasukkan nama pengguna dan kata sandi yang benar, itu akan membiarkan kita lewat tanpa ketidaknyamanan yang besar.

Tips tambahan.

  • Untuk menambahkan lebih banyak pengguna ke file htpasswd yang sudah dibuat, Anda dapat menggunakan perintah ini

htpasswd -mb /home/krel/.htpasswd Kata Sandi Pengguna

Jika Anda telah menyetel "Wajibkan pengguna" dan bukan "Wajibkan pengguna yang valid", Anda harus menambahkan pengguna baru diikuti dengan yang sebelumnya dan dipisahkan dengan spasi. Contoh:

Wajibkan pengguna Luke Anakin

  • Gunakan grup pengguna

Jika alih-alih pengguna individu kami lebih suka atau perlu bekerja dengan grup di situs web berikut, mereka menjelaskannya dengan sangat rinci dan itu adalah artikel yang sangat bagus.
http://www.juanfelipe.net/node/23

  • Kami juga dapat mengatur jenis enkripsi lain, misalnya: SHA

htpasswd -sb /home/krel/.htpasswd Kata Sandi Pengguna

Berikut adalah gambar bagaimana registrasi kata sandi SHA akan tercermin di .htpasswd. Keduanya adalah "skywalker".

Pelajari lebih lanjut.

htpasswd - -membantu

Jika Anda ingin mendalami topik ini lebih dalam, RTFM selalu bagus!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

Saya juga menemukan skrip PHP ini penasaran dari halaman Universitas Granada untuk membuat generator htaccess dan htpasswd. Saya belum bisa mempraktikkannya tapi saya mengundang Anda untuk "mengorek dengan kecerdasan."

Template HTML yang saya dapatkan dari halaman ini jika ada yang tertarik.
http://www.templatemo.com/

Semoga Anda menyukai presentasi htpasswd ini.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   krel dijo

    Sekarang membaca posting lagi saya menyadari bahwa saya telah membuat kekacauan kecil. Ketika saya menjelaskan baris dalam konfigurasi situs, di AuthUserFile saya meletakkan /var/www/.pass/.htpasswd padahal seharusnya:
    /home/krel/.htpasswd.

    Pada gambar itu baik-baik saja tetapi itu luput dari saya, itu adalah saya sebelumnya membuat artikel dengan rute itu, tetapi pada menit terakhir saya mengubahnya dan sepertinya saya melewatkan memperbaikinya.

    Sebelumnya saya minta maaf.

  2.   Fernando dijo

    Ada alternatif untuk nautilus ??

    1.    krel dijo

      Apa yang Anda tanyakan menurut saya berjalan sebaliknya tetapi saya tetap menjawab Anda.
      Saya percaya dengan Cryptkeeper akan berguna untuk melindungi direktori dan hal-hal seperti itu.

      Jika saya jujur ​​jika sesuatu yang saya benci tentang gnome adalah nautilus. Dolphin (KDE) jauh lebih kuat justru untuk hal-hal ini melindungi, mengenkripsi dengan gpg, dll ...

  3.   DMoZ dijo

    Krel, terima kasih atas tutorial lengkap yang Anda bawa ke sini dan terutama karena topiknya tidak begitu umum ...

    Bersulang !!! ...

  4.   Juan Carlos dijo

    Halo semuanya berjalan dengan baik tetapi .. ketika saya menutup tab chrome dan membuka yang lain, saya menulis alamat dan tidak meminta kata sandi ...

  5.   sobat dijo

    siapa bilang itu tidak mencolok.
    Itu hanya apa yang saya cari, dan menjelaskan dengan lebih baik tidak mungkin
    terima kasih banyak.
    salam

  6.   basco7 dijo

    Halo, saya berterima kasih banyak atas informasinya, terutama bagian dari menambahkan banyak pengguna di .htpasswd.

    Tuhan memberkati Anda!

  7.   Mohtadi dijo

    Selamat, ini adalah artikel yang sangat bagus, jelas dan mudah dicerna. Terima kasih banyak

  8.   eduardo dijo

    Ini memberi saya kesalahan 500 ketika saya memasukkan nama pengguna dan kata sandi

    Dasar AuthType
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Wajibkan pengguna Akira

  9.   eduardo dijo

    Betapa hebatnya hal itu terjadi pada saya karena berkomentar tanpa melihat perodna komentar lain.
    Bekerja dengan sangat baik

  10.   Senior Tidur dijo

    Hai, tutorial yang bagus, tetapi apakah ada alternatif untuk "htpasswd"? Saya bertanya mengapa saya menggunakan linux mint 17.3 dan saya tidak memiliki perintah… apakah saya harus menginstalnya?

  11.   Senior Tidur dijo

    Oke, saya menemukannya… Saya harus menginstalnya dengan sudo apt-get install apache2-utils

  12.   Fernando Montila dijo

    Halo, tutorial yang luar biasa, saya melakukannya persis seperti yang ditunjukkan di sini, satu-satunya hal adalah alih-alih menjalankan apa yang ditunjukkan pada poin 2:

    nano / etc / apache2 / sites-available / default

    Itu berhasil untuk saya dengan

    nano /etc/Apache2/sites-enabled/000-default.conf

  13.   Jorge Rodrigo Torrez Aramayo dijo

    Salam, ini tidak berfungsi untuk saya 🙁 folder saya tidak muncul di server saya, yaitu, saya melindungi folder / var / 222 / html / konten saya, dan ketika saya masuk dari browser, folder konten tidak muncul. Tolong