Aralık 2021

Proxmox VE standart kurulumda ön tanımlı olarak LVM-Thin kullanan local-lvm adında bir volüm oluşturmakta. Bu volüm neden olduğunu bilmiyorum ancak benim sistemimde sorun yarattı. Backup ve snaphot alma işlemlerini bu volümde yapmak istediğimde çok yavaş olduğunu ve işlem sırasında diğer tüm sanal makinelerin kilitlendiğini farkettim. 
 
Bu nedenle sanal makine kurulumlarımda local-lvm yerine local depolama alanını kullanmak istedim. Ön tanımlı olarak bu depolama alanı diskin kapasitesinin çok azına sahip. local-lvm depolama volümünü silerek boşalan alanı local alanına kaydırmak istedim. Bu işlemi şöyle yapıyoruz:

Öncelikle Verimerkezi'ne tıklıyoruz ve menüden Depolama sekmesine geçiyoruz. local-lvm üzerine tıklayıp yukarıdan Kaldır butonuna basıyoruz. Emin olmamakla beraber bu işlem volümü silmeyip sadece unmount ediyor olmalı. Bu işlemden sonra sunucu Shell sekmesine tıklayıp terminalden sırası ile şu komutları veriyoruz:
# lvremove /dev/pve/data
# lvresize -l +100%FREE /dev/pve/root
# resize2fs /dev/mapper/pve-root

Soldaki menüden local depolama alanına tıklayarak Özet sekmesine tıklayın. Disk alanı arttı ise işlem başarılı demektir..

Kaynaklar:


https://blog.jarmosz.uk/posts/removing-local-lvm-on-proxmox-5/

Bu dökümanda FreeBSD 13 sistemimiz üzerinde kurulu Apache sunucumuzu php-fpm kullanarak PHP çalıştırır hale getireceğiz. Malum bu işi yapmanın diğer yolu; Apache'yi PHP modülü ile kullanmak. Bu dökümanda daha performanslı çalıştığı söylenen php-fpm ile Apache ve PHP'yi birbiri ile bağlayacağız.
 
Öncelikle Apache ve PHP paketlerini uygun modüller ve ayarlarla kurmamız lazım. Kurulumu ports ile yapıyorsanız ön tanımlı ayarlarda ihtiyacınız olan seçenekler seçili halde oluyor. Apache ve PHP için ön tanımlı değerlerle devam edebilirsiniz. Kurulumlar yapıldıktan sonra düzenleyeceğimiz ilk dosya httpd.conf olacak. Dosyayı açarak aşağıdaki satırları bulun ve örneğe göre düzenleyin. FreeBSD'de ports üzerinden kurulmuş Apache 2.4 için httpd.conf dosyasının yolu;
 

 

 Gerekli modülleri aktif hale getirmiş olduk. Modüllerle ilgili yaptığımız ayarın geçerli hale gelmesi için Apache servislerini yeniden başlatalım:

 PHP-FPM

PHP-FPM (FastCGI Process Manager), ağır yüklü siteler için yararlı olabilen bazı ek özelliklere sahip alternatif bir PHP FastCGI uygulamasıdır. Yazının giriş bölümünde de bahsettiğimiz Apache web sunucusunun PHP modülü ile kullanımı aşağıda şematize edilmiştir.

İstemci (browser), sunucudan bir PHP sayfası talep ettiğinde Apache bu sayfayı PHP modülüne yorumlatıp sonucu istemciye gönderir. Burada PHP yorumlama işinin Apache servisi içinde yapıldığına dikkat edin. PHP-FPM kullandığımızda ise aşağıda bulunan yapı oluşacaktır.


Gördüğünüz gibi Apache bu sefer PHP kodlarının yorumlanmasını kendi içerisindeki PHP modülü yerine, bağımsız bir servis olarak çalışan FPM uygulamasına yaptırıyor. İşin mantığı genel olarak bu. Şimdi gerekli düzenlemeleri yapalım. PHP-FPM bir servis olarak çalışıyor demiştik. Öncelikle bu servisi çalıştırabilmek için /etc/rc.conf içerisine gerekli satırı ekleyelim:

ve servisi çalıştıralım:

Ön tanımlı olarak php-fpm, arka planda 9000 numaralı TCP portunu dinleyecek ve yalnızca yerel makineden gelecek bağlantı isteklerini kabul edecek şekilde ayarlıdır. Eğer php-fpm servisini başka bir makinede çalıştırmayı planlamıyorsanız TCP yerine Unix soketi dinlemek daha hızlı ve daha güvenli bir yol olacaktır. Bu şekilde yapılandırmak için /usr/local/etc/php-fpm.d/www.conf dosyasını açalım ve aşağıdaki şekilde düzenleyelim:
Bu değişikliklerin etkili olabilmesi için php-fpm servisini yeniden başlatmak gerektiğini unutmayın. Aynı durum PHP ile ilgili yapacağınız tüm değişimlerde geçerli. mod_php kullandığınız zamanlarda Apache servisini yeniden başlatmak PHP ayarlarında yaptığınız değişimleri etkin hale getiriyordu ancak şu anda bu işi php-fpm servisi yaptığı için PHP ve php-fpm üzerinde yaptığımız tüm değişikliklerde php-fpm servisini yeniden başlatmayı unutmayalım.

Son olarak Apache üzerinde küçük bir ayar yapmamız lazım. /usr/local/etc/apache24/Includes/php-fpm.conf dosyasını açalım ve şu içeriği ekleyelim:

Tüm ayarlamaları yaptık. Apache servisini yeniden başlatalım:
Yaptığımız konfigürasyonu test edebiliriz. Web sunucumuzda bir php dosyası oluşturup <?php phpinfo();?> kodlarını bu sayfamıza yerleştirelim. Sayfayı ziyaret edelim:


Server API satırında FPM/FastCGI görüyorsanız tebrikler, sunucunuzda Apache+PHP-FPM yapılandırmasını doğru şekilde yapmışsınız..

 MariaDB veya MySQL üzerinde bulunan veritabanınızı başka bir sunucuya aktarmak mı istiyorsunuz? Bunu basitçe halletmeniz mümkün. 

Öncelikle veritabanını aktarmak istediğimiz sunucumuzda yeni sunucumuzun bağlanabileceği ve backup alabilmesi için select komutu çalıştırma yetkisi bulunan bir kullanıcıya ihtiyacımız var. Veritabanını taşımak istediğiniz sunucuya bağlanın ve mysql komut satırına geçin. Şu komutları verelim:

mysql> CREATE USER 'kullanici_adi'@'yedek__alinacak_sunucu_ipsi' IDENTIFIED BY 'sifre';
mysql> GRANT SELECT, LOCK TABLES ON testdb.* TO 'kullanici_adi'@'yedek_alinacak_mysqlin_ipsi';

İlk satırdaki komut veritabanını yedeklemek için kullanacağımız hesabı tanımlarken, ikinci satır ise bu kullanıcıya testdb veritabanı üzerinde SELECT yetkileri tanımaktadır.Şimdi veritabanını restore etmek istediğimiz sunucuya geçip komut satırından şu komutu verelim:

# mysqldump -h yedek_alinacak_sunucunun_ipsi -u kullanici_adi -psifre testdb > testdb.sql

Bu komut; veritabanının yedeğini alacağımız sunucuya bağlanıp, testdb veritabanını mysqldump komutu ile bulunduğumuz dizine testdb.sql adıyla yedekleyecektir.

Bir sonraki işimiz aldığımız bu yedeği restore etmek. Bunun için öncelikle mysql istemcisine girerek testdb veritabanını yeni sunucumuzda oluşturalım:

# mysql -u root -p
Enter password:

mysql> create database testdb;
mysql> quit;

Sonrasında dump ettiğimiz veritabanını oluşturduğumuz boş veritabanına kaydedelim. Bunun için kullanacağımız komut:

# mysql -u root -psifre  testdb < testdb.sql

İşte hepsi bu kadar.. Eski sunucunuzda bulunan veritabanınızı manuel restore uygulayarak yeni sunucunuza taşıdınız..


Let's Encrypt Internet Security Research Group ("ISRG") tarafından geliştirilen ve Linux Foundation tarafından desteklenen Security Research Group tarafından ilk olarak 2015 yılında üretilmiş bir açık sertifika otoritesidir. Tüm amaç kamu yararı için ücretsiz, otomatize ve açık bir sertifika doğrulama sistemidir.

Let's Encrypt web sunucuların HTTP yerine HTTPS kullanılmasını yaygınlaştırmak üzere SSL/TLS sertifikaların ücretsiz olarak üretilmesi ve dağıtılması amacıyla kurulmuştur. Sektörün önde gelen şirketleri Cisco, Mozilla ve Electronic rontier Foundation firmaları tarafından finanse edilmektedir ve bu servis sponsorlar desteği ile devamlılığını sağlamaktadır.

Let's Encrypt ile ücretsiz olarak SSL sertifikaları üretilebilmekte. Ubuntu 20.04 Server üzerinde bu sertifikanın üretilmesi ile ilgili basamakları bu dökümanda bulabilirsiniz.

Öncelikle depolarımızı güncelleyelim,

sudo  apt-get update

Sonrasında gerekli uygulamaları yükleyelim,

$ sudo apt-get install letsencrypt

Bu aşamada Let's Encrypt üzerinden sertifika oluşturmak için gerekli uygulamalar sistemimizde yüklü halde. Let's Encrypt sertifika oluşturmak için domainin yöneticisi olduğunuzu ispat etmenizi istiyor. Wildcard tipinde sertifika oluşturmak için "DNS Challenge" yöntemini kullanmaz zorunlu. Sertifikaları oluşturmak için şu komutu kullanıyoruz,

$ sudo certbot certonly --manual --preferred-challenges=dns --email mailadresiniz@domain.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d domain.com -d *.domain.com

Parametreler şöyle,

  • certonly: Bir sertifika oluştur veya yenile ama yükleme
  • manual: Sertifikayı etkileşimli olarak oluştur
  • preferred-challenges: Etki alanı sahipliğini doğrulamak için DNS Challange kullan
  • server: Sertifika oluşturmak için kullanılacak sunucu adresi
  • agree-tos: ACME sunucusunun üyelik şartlarını kabul et
  • d: Sertifika oluşturulacak domain adı

Komutu verdiğimizde şu çıktılar üretilecektir,

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for domain.com
dns-01 challenge for domain.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.domain.com with the following value:

T6LEeoXaGoxB3vcoG0ZhmlniM3VBV3BKA2se9E637UY

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Bu aşamada çıktıda belirtilen DNS TXT kaydını DNS sunucularına girmemiz gerekiyor. Tinydns DNS sunucusu için yukarıda verilen anahtara uygun girdi şu şekilde olmalı,

'_acme-challenge.domain.com:Qz8v7yHVUdUnB3N5O-qmqZPySrs82NCJXkxpOGmbpYE:3600

DNS sunuculara gerekli kaydı girdikten sonra enter tuşuna basarak işleme devam ediyoruz (işlemin zaman aşımına uğramaması için kaydı hızlı girmek gerekiyor). Eğer her şey yolunda gitmiş ise şu ekran çıktılarını görmemiz gerekiyor,

Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/domain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/domain.com/privkey.pem
   Your cert will expire on 2022-01-17. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew" 
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Sertifikalarımızı certbot ile bir kez daha görüntüleyelim,

$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: domain.com
    Domains: domain.com *.domain.com
    Expiry Date: 2022-01-17 08:01:37+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/domain.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/domain.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Evet gördüğünüz üzere sertifikamız ve private key başarı ile oluşturulmuş durumda.. Şimdi yapmamız gereken son bir işlem var. Let's Encrypt sertfikaları 90 gün için oluşturduğu için sertifikas süresi sona erdiğinde yenilenmesi için bir cron işi girmemiz lazım.

$ sudo crontab -e

Komutu ile açtığımız alana şu kaydı ekliyoruz,

0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log

Evet tüm aşamaları tamamladık. Artık Let's Encrypt üzerinden ücretsiz olarak SSL sertifikamızı kullanabiliriz..

Proxmox VE (Virtual Environment) bilindiği üzere; Debian tabanlı, açık kaynak kodlu  Hypervizor Tip 1 (Bare Metal) bir sanallaştırma aracı. Bu araç ile ilgili detaylı bilgi için Proxmox VE adresini ziyaret edebilirsiniz.

Bu dökümanda kurulumunu yaptığımız Proxmox VE tarafından bize gönderilecek e-posta mesajlarının harici bir e-posta sunucusuna yönlendirilmesini sağlayacağız. Proxmox VE Postfix mail sunucusu ile gelmekte. Bu nedenle yapacağımız işlemler Postfix ayarlamak olacak bir anlamda. Öncelikle Proxmox VE sunucumuzun terminaline ister web arayüzü üzerinden ister SSH ile bağlanalım ve gereken libsasl2-modules paketini kuralım:

apt-get install libsasl2-modules

Şimdi yoksa /etc/postfix/sasl_passwd dosyasını oluşturalım ve içerisine mail sunucumuza ait bilgileri girelim:

nano /etc/postfix/sasl_passwd

İlgili satırları bu dosyanın içerisine ekleyelim:

[server_adresi_veya_ip]:587 mailadresiniz@domain.com:şifreniz

Şimdi Postifix sunucumuzun ayarlarını yapalım. /etc/postfix/main.cf dosyasını açalım:

nano  /etc/postfix/main.cf

Dosyaya şu satırları ekleyelim:

relayhost = [server_adresi_veya_ip]:587
smtp_use_tls = no
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

Gerekli yetkiyi verip maps dosyasını oluşturalım:

chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd

Postfix servisini yeniden başlatalım:

systemctl restart postfix.service

Ve test etmek için şu komut ile mail göndermeyi deneyelim:

echo "Test mail from postfix" | mail -s "Test Postfix" test@test.com

Şu komut ile Proxmox VE için de test yapabiliriz:

echo "test" | /usr/bin/pvemailforward

Postalar başarı ile size ulaştı ise tebrikler, Proxmox VE sunucunuzdan gelecek e-posta bildirimlerini almaya başlayabilirsiniz..

Author Name

İletişim Formu

Ad

E-posta *

Mesaj *

Blogger tarafından desteklenmektedir.