Bagaimana cara saya mengatur dan mengamankan Server LAMP produksi dengan benar?

8

Sangat sulit untuk menemukan informasi yang komprehensif tentang hal ini. Entah saya menemukan tutorial singkat tentang cara Anda melakukan instalasi, sesederhana "apt-get install apache2", atau tutorial yang sudah ketinggalan zaman. Jadi saya berharap bisa mendapatkan informasi profesional dari sesama anggota komunitas Ubuntu: D

Saya telah melakukan Ubuntu Server 11.04 normal dengan LAMP, SAMBA dan SSH diinstal melalui instalasi sistem. Tapi saya mengalami beberapa masalah dalam menyiapkan host virtual dan membuat sistem cukup aman untuk mengekspos server ke web.

Saya agak mengikuti tutorial ini sejauh ini.

Saya memiliki 3 situs di / etc / apache2 / sites-available yang semuanya terlihat seperti ini kecuali untuk nama situs yang berbeda:

<VirtualHost example.com>
   ServerAdmin webmaster@localhost
   ServerAlias www.edunder.se
   DocumentRoot /var/www/sites/example
   CustomLog /var/log/apache2/www.example.com-access.log combined
</VirtualHost>

Dan saya telah mengaktifkannya dengan perintah a2ensite jadi saya memiliki tautan simbolik di / etc / apache2 / sites-enabled .

Saya / etc / hosts file yang memiliki garis-garis ini:

127.0.0.1 localhost
127.0.1.1 Ubuntu.lan Ubuntu
127.0.0.1 localhost.localdomain localhost example.com www.example.com
127.0.0.1 localhost.localdomain localhost example2.com www.example2.com
127.0.0.1 localhost.localdomain localhost example3.com www.example3.com

Dan saya hanya dapat mengakses salah satunya dari browser (saya telah menginstal lynx di server untuk tujuan pengujian) jadi saya kira saya belum mengaturnya dengan benar :)

Bagaimana cara saya melanjutkan untuk mendapatkan pengaturan yang aman dan tepat? Saya juga menggunakan MySQL dan saya pikir tutorial ini akan cukup untuk mengatur SSH dengan aman. Tolong bantu saya memahami konfigurasi Apache lebih baik karena saya baru mengatur server saya sendiri (saya baru saja menjalankan XAMPP sebelumnya) dan mohon saran tentang bagaimana saya harus menyiapkan firewall juga: D

Niklas
sumber
1
Anda mungkin juga bertanya di serverfault.com, StackExchange untuk mengatur dan memelihara server dan sistem.
Kris Harper
2
Jawaban yang benar untuk ini dapat mengisi buku. Saya akan menyarankan untuk membagi pertanyaan Anda menjadi beberapa mengenai konfigurasi host virtual dan keamanan. Jawaban yang bagus untuk pertanyaan terkait keamanan berhubungan dengan pengetahuan yang baik tentang penyerang Anda, pengguna Anda dan beberapa lainnya.
qbi
Terima kasih, saya akan memeriksa serverfault jika saya dapat menemukan jawaban yang bagus! :)
Niklas

Jawaban:

1

Anda perlu memberi tahu Apache bahwa itu harus menggunakan hosting virtual berbasis nama alih-alih berbasis IP. Jadi tambahkan berikut ini ke /etc/apache2/apache2.conf Anda untuk mendefinisikan:

NameVirtualHost ip.address:port

Dan setiap host virtual harus mendefinisikan port:

<VirtualHost example.com:80>

sumber
0

Saya pikir Anda perlu menambahkan IP publik Anda juga jika Anda ingin komputer lain dapat terhubung. Saat ini, hanya loopback Anda yang disebutkan di / etc / hosts. Mereka juga harus memasukkan IP lain.

Jo-Erlend Schinstad
sumber
Apakah kamu yakin Bukankah itu cukup jika saya hanya mendapatkan Domain Name Server saya untuk menunjuk ke IP saya dan kemudian membiarkan router mengarahkan lalu lintas ke server? Saya memiliki DHCP jadi saya menggunakan layanan DynDNS untuk meneruskan lalu lintas ke IP saya.
Niklas