Pasang Apache di Ubuntu 18.04 Bionic Beaver Linux

Pasang Apache di Ubuntu 18.04 Bionic Beaver Linux

Objektif

Ketahui bagaimana memasang Apache di Ubuntu 18.04, Cara Mengkonfigurasi Hos Maya, Menyediakan Firewall dan Gunakan Sijil SSL untuk Sambungan Selamat

Keperluan

  • Keizinan akar

Konvensyen

  • # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
    secara langsung sebagai pengguna akar atau dengan menggunakan sudo perintah
  • $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pengenalan

Pelayan Web Apache tidak memerlukan persembahan besar: Perisian Sumber Terbuka, yang dikeluarkan oleh Yayasan Apache, adalah salah satu pelayan web yang paling banyak digunakan di dunia. Dalam tutorial ini, kami akan melihat cara memasangnya, menyesuaikan konfigurasi firewall untuk membolehkan trafik HTTP dan HTTPS, dan persediaan tuan rumah maya di Ubuntu 18.04.

Pemasangan

Memasang pelayan web Apache di Ubuntu 18.04 Bionic Beaver adalah proses yang sangat mudah:

$ sudo apt-get update & & apt-get install Apache2

Skrip pemasangan ubuntu akan menjaga permulaan dan membolehkan apache2 perkhidmatan di boot.

Persediaan Firewall

Untuk mengakses kandungan lalai yang disampaikan oleh Apache, pada mesin yang sama pelayan sedang berjalan, kita hanya perlu menyalakan pelayar web dan menavigasi ke localhost di bar alamat. Sekiranya semua persediaan dengan betul, halaman harus mengalu -alukan kami dengan "ia berfungsi!"Mesej:

Halaman selamat datang apache

Sekiranya firewall didayakan pada sistem kami (seperti yang sepatutnya), untuk menjadikan kandungan dapat diakses dari luar mesin kami, kami perlu membenarkan trafik masuk di port 80. Perintah untuk dijalankan bergantung pada pengurus firewall yang digunakan. Contohnya, semasa menggunakan ufw (Lalai Ubuntu), kita mesti lari:

$ sudo ufw membenarkan http

Begitu juga, jika menggunakan Firewalld, kita boleh lari:

$ sudo firewall-cmd --permanent --add-service = http && firewall-cmd-reload

Perhatikan bahawa arahan di atas akan memberi kesan kepada zon firewalld lalai. Sekiranya kita mahu beroperasi pada yang lain, kita mesti menentukannya dengan --Kawasan pilihan.



Mengkonfigurasi tuan rumah maya

Pelayan Web Apache mempunyai keupayaan untuk menjalankan lebih dari satu laman web di mesin yang sama. Setiap laman web (tuan rumah maya dalam terminologi Apache) yang harus disampaikan mesti mempunyai konfigurasi sendiri. Tuan rumah maya boleh menjadi IP atau dinamakan berdasarkan.

Dalam tutorial ini, kami akan memberi tumpuan kepada jenis kedua, kerana ia lebih mudah untuk persediaan dan tidak memerlukan banyak alamat IP (tuan rumah maya berasaskan nama membolehkan banyak laman web untuk berkongsi alamat yang sama).

Tuan rumah maya lalai

Di Ubuntu, tuan rumah maya lalai ditakrifkan ke dalam /etc/apache2/tapak yang tersedia direktori, di dalam 000-lalai.Conf fail. Mari kita melihatnya:

 [… .] ServerAdmin Webmaster@localhost Documentroot/var/www/html [.. .] Errorlog $ apache_log_dir/ralat.log customlog $ APACHE_LOG_DIR/akses.log digabungkan [.. .]  
Salinan

The Arahan pada baris 1 digunakan untuk mengumpulkan tetapan yang digunakan oleh Apache untuk tuan rumah maya tertentu. Perkara pertama yang kita lihat ditakrifkan di dalamnya, adalah *: 80 arahan. Ini menunjukkan alamat IP dan port yang digunakan oleh tuan rumah maya.

Pelbagai tuan rumah maya boleh ditakrifkan dalam fail yang sama atau dengan mengikuti skim "satu definisi tuan rumah maya setiap fail". Dalam kedua -dua kes, definisi pertama dianggap sebagai lalai, jika tidak ada hos maya lain yang dipadankan dengan permintaan klien.

The ServerAdmin Arahan pada baris 3is pilihan, dan ia digunakan untuk menentukan alamat kenalan yang akan ditunjukkan oleh pelayan web dalam hal mesej ralat. Biasanya kami ingin memberikan alamat e -mel yang sah sebagai hujah arahan ini, kerana pelayan web akan menggunakan Mailto: di atasnya, untuk menghubungi pentadbir lebih mudah.

Documentroot pada baris 4is wajib dan penting untuk konfigurasi tuan rumah maya. Hujah untuk arahan ini mestilah laluan sistem fail yang sah. Direktori yang disediakan akan dianggap sebagai direktori akar tuan rumah maya, dan tidak boleh mengandungi '/'. Dalam kes ini, direktori root dokumen itu /var/www/html. Sekiranya kita melihat kandungannya, kita melihat bahawa ia mengandungi indeks.html halaman yang digunakan sebagai halaman selamat datang pelayan yang kita lihat sebelumnya.

Dua arahan terakhir pada baris 8 - 9 yang dibekalkan dalam virtualhost ini adalah Errorlog dan CustomLog. Dengan menggunakan yang pertama, kami menetapkan fail yang mana pelayan akan log kesilapan yang berlaku. Yang kedua, sebaliknya digunakan untuk log permintaan yang dihantar ke pelayan dalam format yang ditentukan (anda boleh menggunakan ini sebagai rujukan untuk pengetahuan yang mendalam mengenai format log).



Buat tuan rumah maya baru

Kami melihat bagaimana VirtualHost lalai ditakrifkan; Sekarang katakan kami ingin melayani laman web lain menggunakan webserver kami: Kami mesti menentukan tuan rumah maya baru untuk dapat mencapai matlamat kami.

Seperti yang dikatakan di atas, fail tuan rumah maya mesti ditakrifkan di dalam /etc/apache2/tapak yang tersedia Direktori (sekurang-kurangnya dalam pengagihan berasaskan Debian): Oleh itu, kami akan membuat fail kami di sana. Sebelum melakukan itu, kami ingin membuat direktori untuk digunakan sebagai kami root dokumen, dan buat halaman asas untuk dipaparkan apabila kami sampai ke laman web:

$ sudo mkdir/var/www/contoh && echo "Selamat datang ke contoh!">/var/www/contoh/indeks.html 

Kami kini boleh meneruskan mengkonfigurasi tuan rumah maya kami:

 Documentroot/var/www/Contoh ServerName www.Contoh.tempatan 

Ini adalah konfigurasi minimum yang diperlukan untuk menjalankan tuan rumah maya. Di sini kita dapat melihat arahan baru, Nama pelayan: Inilah yang mentakrifkan tuan rumah maya kami. Mari simpan fail ini sebagai Contoh.Conf. Untuk mengaktifkan Virtualhost kami, kami menggunakan a2ensite Perintah: Semua arahan ini adalah membuat symlink fail ke dalam /etc/apache2/enabled tapak Direktori:

Contoh $ sudo a2ensite.Conf

Selepas itu, kita mesti memuatkan semula konfigurasi pelayan:

$ sudo Systemctl Reload Apache2.perkhidmatan

Kami menentukan virtualhost kami, namun kerana ini adalah ujian dan kami tidak mempunyai Kemasukan DNS dikaitkan dengannya, untuk mengesahkan bahawa konfigurasi berfungsi, kita mesti menambah entri di /etc/hos fail mesin yang kami cuba sampai ke laman web ini.

$ sudo echo "192.168.122.241 www.Contoh.Tempatan ">> /etc /hos

Tanpa garis ini, (dan tanpa entri DNS) mustahil untuk mengaitkan alamat pelayan dengan nama VirtualHost kami, dan menggunakan IP pelayan secara langsung, sebaliknya akan "mencetuskan" host maya lalai.

Dari mesin pelanggan, jika kita sekarang menavigasi ke "www.Contoh.Tempatan ”kita harus melihat halaman minimum yang kita sediakan di atas:

Contoh Indeks VirtualHost

Menyediakan SSL

SSL, pendek untuk Lapisan soket selamat Ini teknologi yang membolehkan kami menyulitkan data yang terlibat dalam hubungan antara klien dan pelayan. Apabila sijil SSL digunakan, https (Protokol Pemindahan Teks Hyper Secure) Menggantikan HTTP dalam URL.

Sijil SSL dikeluarkan oleh pihak berkuasa sijil, yang, sebagai pihak ketiga yang dipercayai, memastikan seseorang benar -benar yang mendakwa berada di internet. Sijil SSL boleh menjadi sangat mahal, namun terdapat dua alternatif utama untuk mendapatkan sijil: Buat sijil yang ditandatangani sendiri atau dapatkannya dari Mari enkripsi.

Menjana sijil SSL yang ditandatangani sendiri

Walaupun menghasilkan sijil yang ditandatangani sendiri, ia bukan tugas yang sukar dan boleh berguna apabila anda hanya ingin mencapai enkripsi, ia tidak boleh digunakan dalam konteks di mana sijil itu sendiri mesti ditandatangani oleh pihak ketiga yang dipercayai. Kami boleh menjana sijil ditandatangani sendiri dengan menggunakan OpenSSL Utiliti:

$ sudo openssl req -x509 \ -days 365 \ -sha256 \ -newkey rsa: 2048 \ -nodes \ -keyout contoh.Kunci \ -out Contoh -Cert.PEM 

Mari lihat apa arahan ini. Pilihan pertama yang kita hadapi, -x509, mengubah tingkah laku perintah supaya ia menghasilkan sijil yang ditandatangani sendiri dan bukannya permintaan sijil.

Dengan -hari, Kami menetapkan kesahihan, dalam beberapa hari, untuk sijil. Pilihan yang disediakan seterusnya adalah -Newkey: dengan itu kita membuat kunci baru, dalam hal ini RSA kunci, dengan saiz 2048 bit. Untuk kes ujian kami, kami tidak mahu menyulitkan fail kunci peribadi, jadi kami menggunakan -nod. Sekiranya pilihan ini ditinggalkan, fail di mana kunci disimpan akan dilindungi oleh kata laluan, yang akan diminta untuk memasukkan setiap kali pelayan web dimulakan.

Dengan -keyout dan -keluar Kami menentukan fail untuk menulis kunci yang dihasilkan dan sijil. Semasa melancarkan arahan, kami akan diminta untuk menjawab beberapa soalan, dan kemudian kunci dan sijil akan dijana.

Anda akan diminta memasukkan maklumat yang akan dimasukkan ke dalam permintaan sijil anda. Apa yang hendak anda masukkan adalah apa yang disebut nama terkenal atau DN. Terdapat beberapa bidang tetapi anda boleh meninggalkan beberapa kosong untuk beberapa bidang akan ada nilai lalai, jika anda memasukkan '.', medan akan dibiarkan kosong. ----- Nama Negara (2 Kod Surat) [AU]: Nama Negeri atau Provinsi (Nama Penuh) [Some-State]: Nama Lokasi (misalnya, City) []: Nama Organisasi Milan (misalnya, Syarikat) [Internet Widgits Pty Ltd] : Kerosakan inc. Nama Unit Organisasi (misalnya, Seksyen) []: Nama Biasa (e.g. pelayan fqdn atau nama anda) []: www.Contoh.Alamat E -mel Tempatan []: 

Langkah seterusnya adalah menyalin kunci dan sijil yang dihasilkan kami /etc/ssl/swasta dan /etc/ssl/ssl-certs Direktori masing -masing:

$ sudo mv contoh contoh.PEM/etc/ssl/certs

Sijil ini awam, jadi tidak memerlukan kebenaran khas. Sekarang, kunci:

Contoh $ sudo mv.kunci/etc/ssl/swasta

Penting bahawa kita menyesuaikan kebenaran fail utama. Sekiranya kita memeriksa /etc/ssl/swasta folder, kita dapat melihat bahawa ia adalah milik akar pengguna dan SSL-CERT kumpulan, dan ia mempunyai 710 Sebagai kebenaran, yang bermaksud bahawa walaupun pemilik mempunyai keistimewaan penuh di atasnya, pemilik kumpulan hanya boleh mengaksesnya dan menyenaraikan kandungannya, dan tidak ada kebenaran yang dibenarkan untuk orang lain:

$ ls -ld/etc/ssl/private drwx-x --- 2 root ssl-cert 4096 16 Mac 11:57/etc/ssl/swasta 

Mari kita ubah keizinan fail utama kami dengan sewajarnya, memberikan keizinan membaca dan menulis pemilik, dan keistimewaan baca sahaja untuk kumpulan:

$ sudo chown root: ssl-cert/etc/ssl/swasta/contoh.Kunci $ sudo chmod 640/etc/ssl/swasta/contoh.kunci 

Untuk menggunakan sijil kami, kami kini perlu membolehkan modul SSL Apache. Kami melakukannya dengan menggunakan A2enmod Perintah:

$ sudo a2enmod ssl

Kami hampir di sana. Kini sudah tiba masanya untuk mengubah suai tuan rumah maya kami dan menetapkannya dengan cara ini:

 Documentroot/var/www/Contoh ServerName www.Contoh.Local # Dayakan SSL Engine SSLengine pada SSLCertificateFile/etc/ssl/certs/Contoh-CERT.PEM SSLCertificateKeyFile/etc/ssl/swasta/contoh.kunci 
Salinan

Pelabuhan 443 Pada baris 1is port yang digunakan untuk HTTPS (sebagai ganti port 80 yang digunakan untuk http). Kami juga menambah Sslengine on Arahan pada baris 6, yang cukup jelas.

Akhirnya pada baris 8 - 9 kami telah menetapkan laluan untuk sijil dan fail utama kami, menggunakan SSLCertificateFile dan SSLCertificateKeyFile arahan.

Sekarang, ikuti pemotongan untuk membuka port firewall yang digunakan pada permulaan tutorial, tetapi kali ini untuk membenarkan https perkhidmatan:

$ sudo ufw membenarkan https

Akhirnya, muat semula konfigurasi Apache:

$ sudo Systemctl Reload Apache2

Semua selesai. Sekarang, jika dari pelanggan, kami menavigasi https: // www.Contoh.tempatan alamat, kita harus melihat pelayan web memberi amaran kepada kami bahawa sijil yang digunakan tidak selamat (kerana ia dipercayai sendiri). Ini, namun tanda persediaan kami berfungsi dan lalu lintas antara klien dan pelayan akan disulitkan (anda perlu menambah pengecualian untuk sijil menggunakannya).

Alert Pelayar SSL

Menyiapkan Let's Encrypt

Alternatif kepada sijil komersil dan ditandatangani sendiri yang diwakili oleh "Let's Encrypt". Mari enkripsi adalah pihak berkuasa sijil percuma, automatik dan terbuka; Matlamatnya adalah untuk memungkinkan untuk mendapatkan sijil secara automatik yang dipercayai oleh penyemak imbas tanpa campur tangan manusia.

Ini dapat dicapai dengan menggunakan Acme protokol dan a Ejen Pengurusan Sijil yang berjalan di pelayan.

Untuk mendapatkan sijil kita mesti menunjukkan kita mempunyai kawalan ke atas domain yang kita mahu menggunakan sijil untuk. Sekiranya kami tidak mempunyai akses shell pada pelayan, kami harus menghubungi penyedia perkhidmatan kami untuk mengaktifkan mari menyulitkan bagi pihak kami, tetapi mungkin terdapat bahagian khusus dalam panel konfigurasi perkhidmatan.

Jika, sebaliknya, kita mempunyai akses shell ke pelayan yang dipersoalkan, pertama sekali kita mesti memasang Certbot Pelanggan ACME. Memasang Certbot di Ubuntu 18.04 Ini hanya masalah berlari:

$ sudo apt-get update &&p-get Install Certbot Python-CertBot-APACHE

Pakej certbot dilengkapi dengan a pemasa sistem unit yang akan menjalankan Certbot dua kali sehari untuk memastikan sijil terkini. Mendapatkan sijil agak mudah:

$ sudo certbot --apache -m -d 

Jelas untuk ini berfungsi domain mesti menunjuk dengan betul ke IP pelayan yang boleh diakses awam kami. Certbot akan meminta anda untuk beberapa soalan untuk mengubah konfigurasi, dan jika semuanya berjalan lancar, sijil dan kunci harus disimpan ke dalam /etc/letsencrypt/live/ direktori. Hanya tweak fail hos maya anda untuk menunjuk kepada mereka dan anda sudah selesai!

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Pasang Arch Linux di Workstation VMware
  • Ubuntu 20.04: WordPress dengan pemasangan nginx
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Dayakan/lumpuhkan Firewall di Manjaro Linux
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Ubuntu 20.04 WordPress dengan pemasangan Apache
  • Setup Server FTP di Linux
  • Cara Menyiapkan VSFTPD di Debian