Favorilere Ekle

openSUSE Leap 15 Minimal Üzerinde Apache, MariaDB, PHP7 (LAMP) Web Server (Web Sunucusu) + phpMyAdmin + FTP Server (FTP Sunucusu), Firewall (Güvenlik Duvarı) Kurulumu

MuMMy tarafından 10 ay önce oluşturuldu - 13 Ocak 2024 Cumartesi 20:32

Cevaplar

MuMMy
- 10 ay önce - Son Düzenleme: 10 ay önce
Bu yazımda, openSUSE Leap 15 Minimal üzerinde Apache, MariaDB, PHP7 (LAMP) Web Server (Web Sunucusu) + phpMyAdmin + FTP Server (FTP Sunucusu), Firewall (Güvenlik Duvarı) kurulumunun nasıl yapılacağını anlatacağım.
Başlamadan önce, eğer yeni bir kurulum yaptıysanız, varsayılan root şifrenizi değiştirmenizi öneriyorum.
sudo passwd root
Konsol editörü olarak ise "nano" öneriyorum.
sudo zypper nano

Yazılımı Güncelleme

Yazılımı yüklemeye geçerken depoyu (repository) ve yazılım paketlerini güncelliyoruz.
sudo zypper update

Apache Web Sunucusunu Kurma

Aşağıdaki komutu kullanarak sisteme Apache'yi yüklüyoruz.
sudo zypper install apache2
Apache varsayılan olarak kurulumdan sonra otomatik olarak başlamayacaktır. Şu komutla Apache'yi başlatıyoruz:
sudo systemctl start apache2
Ve sistemin önyüklemesi sırasında otomatik başlatmayı açmak için bu komutu kullanıyoruz:
sudo systemctl enable apache2
Durum kontrolü için bu komut kullanılabilir:
systemctl status apache2
Çıktı:
● apache2.service - The Apache Webserver
    Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; vendor preset: disabled)
    Active: active (running) since Fri 2024-01-12 20:34:29 GMT; 1min 23s ago
  Main PID: 2368 (httpd-prefork)
    Status: "Processing requests..."
      Tasks: 6
    CGroup: /system.slice/apache2.service
            ├─ 2368 /usr/sbin/httpd-prefork -DSYSCONFIG -C "PidFile /run/httpd.pid" -C "Include /etc/apache2/sysconfig.d//loadmodule.conf" -C "Include /etc/apache2/sysconfig.d//global.conf" -f /etc/apache2/httpd.conf -c "Include /etc/a>
            ├─ 2375 /usr/sbin/httpd-prefork -DSYSCONFIG -C "PidFile /run/httpd.pid" -C "Include /etc/apache2/sysconfig.d//loadmodule.conf" -C "Include /etc/apache2/sysconfig.d//global.conf" -f /etc/apache2/httpd.conf -c "Include /etc/a>
            ├─ 2376 /usr/sbin/httpd-prefork -DSYSCONFIG -C "PidFile /run/httpd.pid" -C "Include /etc/apache2/sysconfig.d//loadmodule.conf" -C "Include /etc/apache2/sysconfig.d//global.conf" -f /etc/apache2/httpd.conf -c "Include /etc/a>
            ├─ 2377 /usr/sbin/httpd-prefork -DSYSCONFIG -C "PidFile /run/httpd.pid" -C "Include /etc/apache2/sysconfig.d//loadmodule.conf" -C "Include /etc/apache2/sysconfig.d//global.conf" -f /etc/apache2/httpd.conf -c "Include /etc/a>
            ├─ 2378 /usr/sbin/httpd-prefork -DSYSCONFIG -C "PidFile /run/httpd.pid" -C "Include /etc/apache2/sysconfig.d//loadmodule.conf" -C "Include /etc/apache2/sysconfig.d//global.conf" -f /etc/apache2/httpd.conf -c "Include /etc/a>
            └─ 2379 /usr/sbin/httpd-prefork -DSYSCONFIG -C "PidFile /run/httpd.pid" -C "Include /etc/apache2/sysconfig.d//loadmodule.conf" -C "Include /etc/apache2/sysconfig.d//global.conf" -f /etc/apache2/httpd.conf -c "Include /etc/a>
Jan 12 20:34:28 *.*.* systemd: Starting The Apache Webserver...
Jan 12 20:34:29 *.*.* start_apache2: AH00557: httpd-prefork: apr_sockaddr_info_get() failed for *.*.*
Jan 12 20:34:29 *.*.* start_apache2: AH00558: httpd-prefork: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Jan 12 20:34:29 *.*.* systemd: Started The Apache Webserver.
Versiyon kontrolü için:
sudo httpd -v
Çıktı:
Server version: Apache/2.4.51 (Linux/SUSE)
Server built:  2023-10-30 11:36:45.000000000 +0000
Şimdi test için bir index.html dosyasını oluşturuyoruz.
sudo nano /srv/www/htdocs/index.html
Aşağıdaki yazıyı dosyaya ekleyip kaydediyoruz.
<html>
<body>
<h1>Merhaba Dünya!</h1>
</body>
</html>
Şimdi tarayıcının adres çubuğuna sunucunun IP adresini yazıyoruz (eğer kendi makinemize kuruyorsak "localhost" yazabiliriz). Eğer her şey yolundaysa, "Merhaba Dünya!" mesajını görmeliyiz.
Son olarak "wwwrun"u (apache kullanıcısı) document root sahibi yapıyoruz.
sudo chown wwwrun /srv/www/htdocs/ -R

Güvenlik Duvarı Kurulumu

Şimdi güvenlik duvarını kuruyoruz.
sudo zypper install SuSEfirewall2
SuSE güvenlik duvarı varsayılan olarak 80 numaralı bağlantı noktasına (port) genel erişimi yasaklar. Genel erişime izin vermek için güvenlik duvarı yapılandırma dosyasını düzenlememiz gerekir.
sudo nano /etc/sysconfig/SuSEfirewall2
Aşağıdaki satırı buluyoruz. CTRL + W ile arama yapabiliriz.
FW_SERVICES_EXT_TCP=""
Bağlantı noktası 80'e genel erişim izni vermek için bunu aşağıdaki şekilde değiştiriyoruz. Ayrıca yazının ilerleyen kısımlarında ftp sunucusu kuracağımız için buraya ftp izinlerini de ekliyoruz. Eğer ftp sunucusu kurmayacak olsaydık " ftp ssh" kısmını eklememize gerek kalmayacaktı.
FW_SERVICES_EXT_TCP="80 ftp ssh"
Güvenlik duvarını yeniden başlatıyoruz.
sudo systemctl restart SuSEfirewall2

MariaDB kurulumu

Aşağıdaki komutu kullanarak MariaDB sunucusunu ve istemcisini kuruyoruz.
sudo zypper install mariadb mariadb-client mariadb-tools
Varsayılan olarak MariaDB kurulduktan sonra otomatik olarak başlamayacaktır. Şununla başlatabiliriz:
sudo systemctl start mysql
Önyükleme esnasında otomatik başlatmayı etkinleştiriyoruz:
sudo systemctl enable mysql
Durumunu kontrol ediyoruz:
systemctl status mysql
Çıktı:
● mariadb.service - MariaDB database server
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
    Active: active (running) since Fri 2024-01-12 21:45:45 GMT; 3s ago
      Docs: man:mysqld(8)
            mariadb.com/kb/en/library/systemd/
  Main PID: 3409 (mysqld)
    Status: "Taking your SQL requests now..."
      Tasks: 16 (limit: 9362)
    CGroup: /system.slice/mariadb.service
            └─ 3409 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql
Jan 12 21:45:45 *.*.* mysql-systemd-helper: The second is mysql@localhost, it has no password either, but
Jan 12 21:45:45 *.*.* mysql-systemd-helper: you need to be the system 'mysql' user to connect.
Jan 12 21:45:45 *.*.* mysql-systemd-helper: After connecting you can set the password, if you would need to be
Jan 12 21:45:45 *.*.* mysql-systemd-helper: able to connect as any of these users with a password and without sudo
Jan 12 21:45:45 *.*.* mysql-systemd-helper: See the MariaDB Knowledgebase at mariadb.com/kb
Jan 12 21:45:45 *.*.* mysql-systemd-helper: Please report any problems at mariadb.org/jira
Jan 12 21:45:45 *.*.* mysql-systemd-helper: The latest information about MariaDB is available at mariadb.org/.
Jan 12 21:45:45 *.*.* mysql-systemd-helper: Consider joining MariaDB's strong and vibrant community:
Jan 12 21:45:45 *.*.* mysql-systemd-helper: mariadb.org/get-involved/
Jan 12 21:45:45 *.*.* systemd: Started MariaDB database server.
MariaDB sürümünü kontrol etmek için:
mysql --version
Çıktı:
mysql  Ver 15.1 Distrib 10.6.15-MariaDB, for Linux (x86_64) using  EditLine wrapper
Artık sistemdeki herhangi bir kullanıcı aşağıdaki komutla MariaDB'de root olarak oturum açabilir:
mysql -u root
Erişimi kısıtlamak için MariaDB root kullanıcısı için bir şifre belirlememiz gerekiyor. Aşağıdaki komutu çalıştırıyoruz:
sudo mysql_secure_installation
Çıktı:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):  ***BURADA ENTER TUŞUNA BASIYORUZ***
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication y ***BURADA Y ARDINDAN ENTER TUŞUNA BASIYORUZ***
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? y ***BURADA Y ARDINDAN ENTER TUŞUNA BASIYORUZ***
New password: ***BURADA PAROLAMIZI BELİRLİYORUZ VE ENTER TUŞUNA BASIYORUZ***
Re-enter new password: ***BURADA PAROLAMIZI TEKRAR GİRİYORUZ VE ENTER TUŞUNA BASIYORUZ***
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? y ***BURADA Y ARDINDAN ENTER TUŞUNA BASIYORUZ***
... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? y ***BURADA Y ARDINDAN ENTER TUŞUNA BASIYORUZ***
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? y ***BURADA Y ARDINDAN ENTER TUŞUNA BASIYORUZ***
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? y ***BURADA Y ARDINDAN ENTER TUŞUNA BASIYORUZ***
... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

PHP7 kurulumu

Gerekli PHP7 ve PHP7 uzantılarını kurmak için aşağıdaki komutu giriyoruz:
sudo zypper install php7 php7-mysql apache2-mod_php7
Daha sonra PHP modülünü etkinleştiriyoruz ve Apache web sunucusunu yeniden başlatıyoruz.
sudo a2enmod php7
sudo systemctl restart apache2
Test için belge kökünde bir "test.php" dosyası oluşturuyoruz.
sudo nano /srv/www/htdocs/test.php
Aşağıdaki PHP kodunu dosyaya yazıyoruz:
<?php phpinfo(); ?>
Şimdi tarayıcının adres çubuğuna "sunucu-ip-adresi/test.php" adresini giriyoruz. "sunucu-ip-adresi"ni gerçek IP adresimizle değiştiriyoruz. Eğer yerel bilgisayarımızda kurulum yapıyor olsaydık, "127.0.0.1/test.php" veya "localhost/test.php" yazabilirdik. Her şey normalse tarayıcıda PHP bilgilerini görmeliyiz.

phpMyAdmin Yükleme

phpMyAdmin web tabanlı bir MySQL/MariaDB yönetim aracıdır.
MariaDB'yi komut satırından yönetmek istemediğimiz için aşağıdaki komutla phpMyAdmin'i kuruyoruz.
sudo zypper install phpMyAdmin
Zypper paket yöneticisi gerekli PHP7 uzantılarını bizim için otomatik olarak yükleyecektir. Kurulum bittikten sonra PHP7 uzantılarını etkinleştirmek için Apache'yi yeniden başlatıyoruz.
sudo systemctl restart apache2
Daha sonra phpMyAdmin web arayüzünü şu adresten ziyaret edebiliriz:
your-server-ip/phpMyAdmin
(127.0.0.1/phpMyAdmin)
(localhost/phpMyAdmin)
Şimdi oluşturduğumuz MariaDB root şifresiyle giriş yapabiliriz.

OpenSUSE'de FTP Sunucusu Kurulumu

vsftpd (Very Secure File Transport Protocol Daemon), Unix/Linux sistemleri için güvenli, hızlı bir FTP sunucusudur. GPL kapsamında lisanslanmıştır ve CentOS, Fedora, RHEL, Ubuntu, Slackware ve NimbleX için varsayılan FTP sunucusudur.
vsftpd paketini kurmak için aşağıdaki komutu giriyoruz:
sudo zypper in vsftpd
Vsftpd hizmetini başlatıyoruz ve her yeniden başlatmada otomatik olarak başlamasını sağlıyoruz:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
ftp-k adında bir grup oluşturuyoruz:
sudo groupadd ftp-k
/srv/www/htdocs/ dizini için "kul" adında bir kullanıcı oluşturuyoruz ve kullanıcıyı ftp-k grubuna atıyoruz:
sudo useradd -g ftp-k -d /srv/www/htdocs/ kul
Yeni kullanıcı için şifremizi (ftp şifremiz) belirliyoruz:
sudo passwd kul
Ftp ana dizinini /srv/www/htdocs/ ftp kullanıcılarının erişebileceği hale getiriyoruz:
sudo chmod 750 /srv/www/htdocs/
sudo chown kul:ftp-k /srv/www/htdocs/
Upload işlemleri sırasında sıkıntı yaşanması durumunda (örn. wordpress) tekrar sahibi wwwrun yapabiliriz:
sudo chown wwwrun /srv/www/htdocs/ -R
Şimdi ayarlamaları yapmak için vsftpd.conf dosyasını açıyoruz:
sudo nano /etc/vsftpd.conf
Değişiklikleri aşağıda gösterildiği gibi yapıyoruz:
write_enable=YES
ftpd_banner=FTP Sunucusu
ls_recurse_enable=YES
local_enable=YES
anonymous_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
use_localtime=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Değişikliklerin etkili olması için vsftpd hizmetini yeniden başlatıyoruz.
sudo systemctl restart vsftpd
Daha sonra yeni bir "/etc/vsftpd.chroot_list" dosyası oluşturuyoruz ve FTP sunucusuna erişim vermek istediğimiz kullanıcıyı (kul) dosyaya yazıyoruz:
sudo nano /etc/vsftpd.chroot_list
kul
FTP hizmetini yeniden başlatıyoruz:
sudo systemctl restart vsftpd
Okuduğunuz için teşekkürler, yardımcı olabildiysem ne mutlu bana...
Yanıtla
0
0

Bu içerik için bir tepkiniz var mı?

0
0
0
0
0
0
0
0
Teknoloji konusundaki bazı benzer içerikler
İlginizi çekebilecek diğer içerikler
© 2019 - 2024 SoruDenizi v1.4.1
Giriş Yap

Üye Ol
En az 3 en çok 23 karakter, sadece harf ve rakam içerebilir. Boş bırakılamaz En az 6, en çok 36 karakter olmalıdır. Boş bırakılamaz

Kullanıcı Sözleşmesi'ni kabul ediyorum
Şifremi Unuttum
Şifre yenileme bağlantısı e-postanıza gönderilecektir.

Reklamlar Görüntülenemiyor 😞
Hoşgeldiniz, bir reklam engelleyici kullanıyorsunuz gibi görünüyor. Sorun değil. Kim kullanmaz ki?
Reklam engelleyici kullanma hakkınıza saygı duyuyoruz ancak reklam gelirleri olmadan bu siteyi harika tutmaya devam edemeyeceğimizi bilmenizi istiyoruz.
Anlıyorum; reklam engelleyicimi devre dışı bıraktım.
Soru Denizi, ziyaretçilerine daha iyi bir deneyim sağlamak amacıyla çerez (cookie) teknolojisini kullanmaktadır.
Detaylı Bilgi
Tamam