Kategori arşivi: Centos 7

Centos 7 Sunucularda Tarih ve Saat Nasıl Değiştirilir?

Sunucular için tarih ve saat çok önemli her ihtiyacımız olduğunda bunlar üzerinden gerek logları gerekse servislerin durumlarını kontrol ederiz. Bu sebeple güncel ve doğru zaman dilimi ayarlamamız gerekiyor.

Mevcut zaman ile ilgili bilgileri sorgulama

timedatectl

Bu sorgulama sonucunda bize mevcut makinede aktif olarak kullanılan zaman dilimini gösterecek.

      Local time: Fri 2022-11-18 19:20:52 UTC
  Universal time: Fri 2022-11-18 19:20:52 UTC
        RTC time: Fri 2022-11-18 19:20:51
       Time zone: Etc/UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Sunucu ön tanımlı olarak UTC ben ise bu makinede Türkiye saatini ayarlamak istiyorum, ama adı ne olarak geçiyor emin olamadım diyorsanız aşağıdaki komutla sistemdeki mevcut zaman dilimlerini sıralayabilirsiniz.

timedatectl list-timezones

Sorguladığımda karşıma Türkiye için kullanmak amaçlı zaman dilimi Europe/Istanbul olarak karşıma çıktı, hemen geçerli zaman dilimini değiştiriyorum.

timedatectl set-timezone Europe/Istanbul

Güncellediğimiz zaman dilimini kontrol etmek amacıyla tekrar timedatectl komutunu verdiğimizde ise değişikliğimizin geçerli olduğunu görüyoruz.

      Local time: Fri 2022-11-18 22:23:58 +03
  Universal time: Fri 2022-11-18 19:23:58 UTC
        RTC time: Fri 2022-11-18 19:23:58
       Time zone: Europe/Istanbul (+03, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Centos 7 Üzerine Zesle Kontrol Panel (ZesleCP) Nasıl Kurulur?

Plesk, Cpanel veya DirectAdmin gibi paneller dışında alternatif arıyorsanız ZesleCP karşınızda. Diğer paneller gibi tüm ihtiyaçlarınızı karşılamak için size hafif, hızlı ve güvenli bir web kontrol paneli sunar. Yaptığınız işe odaklanabilmeniz amacıyla oldukça sade ve anlaşılır bir arayüze sahiptir. Yapılacak işler olabildiğince basite indirgenmiştir, oraya buraya tıklama zahmetine girmezsiniz. İsterseniz aylık 2.5$ gibi bir ücret karşılığında 15 alan adı için kullanabilirsiniz.

Geliştirici ekibin yapmış olduğu betik aracılığı ile kolay bir şekilde kurabilirsiniz. Kuruluma başlamadan önce lütfen yum update komutu verin ve sistemin güncel olduğuna emin olun.

cd /home && sudo curl -o latest -L http://release.zeslecp.com/latest && sudo sh latest

Kurulum sisteminizin özelliklerine göre 5-8 dakika arasında sürecek ve bittikten sonra sizi terminalde aşağıdaki bilgiler karşılayacak.

zeslecp ilk kurulum, zesle cp hızlı kurulum

Size vermiş olduğu kolay erişim bağlantısından direk olarak panelinize giriş yapabilirsiniz. Bu link siz kullandıktan sonra geçerliliğini yitireceği için herhangi bir sorun teşkil etmez. İleride tekrar giriş yapmak isterseniz zesle login demeniz yeterlidir. Tıpkı Plesk’te olduğu gibi kolay bir oturum açma mekanizması var.

Ardından ZesleCP‘nin resmi sitesinden hesap açıyoruz ve 15 günlük deneme lisansı istiyoruz. Anında hesabınıza bir adet deneme lisansı tanımlanıyor.

zeslecp lisans anahtarı girişi, zeslecp lisanslama, zeslecp trial license

“Apply License” dediğiniz andan itibaren artık kontrol paneliniz hazır bir şekilde sizi bekliyor olacak, 15 günlük deneme lisansınızın tadını doyasıya bir şekilde çıkartabilirsiniz.

zeslecp kontrol paneli, zeslecp nasıl kurulu, zeslecp kurulum adımları

Kullandığınız 15 günlük deneme lisansı bittikten sonra ZesleCP sitesinden tekrar lisans talep edebilirsiniz.

CentOS 7’de Composer Nasıl Kurulur?

Composer PHP için bir bağımlılık yöneticisidir. Composer, projenizde sizin için gerekli olan tüm PHP paketlerini çekecek ve sizin için yönetecektir. Tüm modern PHP frameworklerin de ve Laravel, Symfony, Drupal ve Magento 2 gibi platformlarda kullanılır.

Composer kurulumuna geçmeden önce sistemimizde php kurulu olması gerekmektedir.

Eğer kurulu değilse CentOS 7’de PHP 7 Nasıl Kurulur? makalemize göz atabilirsiniz.

Ardından sistemimize Composer için gerekli olan php paketlerini dahil ediyoruz.

sudo yum install php-cli php-zip wget unzip

PHP CLI yüklendikten hemen sonra, Composer kurulumunu aşağıdaki komut ile başlatıyoruz

php -r "copy('<https://getcomposer.org/installer>', 'composer-setup.php');"

Dizinde composer-setup.php adında bir dosya oluştuğunu gözlemlemelisiniz.

Kurulum işlemini başlatalım, kurulum /usr/local/bin dizinine gerçekleştirilecektir.

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

CentOS 7’de SELinux Nasıl Devre Dışı Bırakılır?

SELinux (Security Enhanced Linux), yöneticilerin ve kullanıcıların erişim kontrolleri üzerinde daha fazla kontrol olanağı sağlayan bir Linux çekirdek güvenlik modülüdür. SELinux ilke kurallarına dayalı olarak erişime izin verir veya engeller.

SELinux ilke kuralları, süreçlerin ve sistemdeki kullanıcıların birbirleriyle nasıl etkileşimde bulunduğunu, süreçlerin ve kullanıcıların dosyalarla nasıl etkileşimde bulunması gerektiğini belirler.

Sistemde SELinux durumunu sestatus ile kontrol edebilirsiniz. Tahmini çıktımız aşağıdaki gibi olacaktır.

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      30

Mevcut durumu enabled olduğunu ve çalıştığını görüyoruz bunu disabled olarak ayarlamamız gerekiyor bunun için ise aşağıdaki komutu çalıştırmanız yeterli

sudo sed -i 's/enforcing/disabled/g' /etc/selinux/config

Değişikliklerin geçerli olması için sistemi yeniden başlatıyoruz.

sudo shutdown -r now

Ardından mevcut durumuna tekrar sestatus komutu ile bakıyoruz.

SELinux status:                 disabled

CentOS 7’de Redis Nasıl Kurulur

Redis bir veri yapısı sunucusudur. Açık kaynak, bellek kullanımlı, anahtar-değer deposudur. Redis “Uzak Sözlük Sunucusu” anlamına gelmektedir. 

Kurulum için kullanacağımız dosyalar remi deposunda yer almaktadır aşağıdaki adımlar ile remi deposunu sistemimize dahil ediyoruz

sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi

Ardından bizim için gerekli olan redis paketini sisteme dahil ediyoruz

sudo apt install redis

Servislerini çalıştırıyoruz ve sistem başlangıcına gereken eklemeleri yapıyoruz

sudo systemctl start redis
sudo systemctl enable redis

Sunucuda IPv6 çalışmıyorsa Redis servisi start komutu ile birlikte hata verecektir. Lütfen başlatmadan önce IPv6 çalışır durumda olduğundan emin olun.

Çalıştığından emin olmak isterseniz redis-cli komutunu kullanınız. Yeni açılan redis konsolunda ping komutunu giriniz.
Çıktı olarak size PONG dönmesi gerekmektedir. 

Redis kullanımı için resmi dokümantasyonu ziyaret etmeyi unutmayın.


Redis Nedir?

CentOS 7’de Yarn Nasıl Kurulur?

Yarn, npm paketlerini kurmak, güncellemek, yapılandırmak ve kaldırma işlemlerini otomatikleştirmenize yardımcı olan npm ile uyumlu bir JavaScript paket yöneticisidir.

Bu paket yöneticisini kullanabilmemiz için sistemimizde nodejs kurulu olması gerekmektedir bunuda yapabilmemiz için depoları sistemimize dahil ediyoruz.

curl --silent --location <https://rpm.nodesource.com/setup_8.x> | sudo bash -

NodeJS kurulumunu yapıyoruz

sudo yum install nodejs

Ardından yarn için gereken depoları sisteme dahil ediyoruz

curl --silent --location <https://dl.yarnpkg.com/rpm/yarn.repo> | sudo tee /etc/yum.repos.d/yarn.repo

Kurulum için GPG anahtarına ihtiyacımız var bunun için ise aşağıdaki komutu kullanıyoruz

sudo rpm --import <https://dl.yarnpkg.com/rpm/pubkey.gpg>

Sistemimize Yarn’ı dahil ediliyoruz

sudo yum install yarn

CentOS 7’de FirewallD Nasıl Durdurulur ve Devre Dışı Bırakılır

CentOS 7’de iptables yerine FirewallD güvenlik duvarı yönetiminde kullanılmaktadır.

Mevcut güvenlik duvarı durumunu görüntülemek için aşağıdaki komutumuzu kullanıyoruz

sudo firewall-cmd --state

Çıktısı running olarak karşımıza çıkıyor. Yani güvenlik duvarımız aktif bir şekilde çalışmakta.

Güvenlik duvarı servisini durdurmak için aşağıdaki komutumuzu kullanıyoruz.

sudo systemctl stop firewalld

Hemen ardından sistem başlangıcından kopartıyoruz ve yeniden başladığında çalışmamasını sağlıyoruz

sudo systemctl disable firewalld

Önlem olarak güvenlik duvarının başka servisler tarafından başlatılmasının da önüne geçmemiz gerekiyor bunun için ise aşağıdaki komutu kullanıyoruz.

sudo systemctl mask --now firewalld

Ben bunu sildim ama bana lazım oldu tekrar kurmam gerekli diyorsanız. CentOS 7’de FirewallD Nasıl Kurulur? adlı makaleme göz atabilirsiniz.

CentOS 7’de FirewallD Nasıl Kurulur?

FirewallD, sistemin iptables kurallarını yöneten ve üzerinde çalışmak için bir ara birim sağlayan güvenlik duvarı çözümüdür.

Düzgün yapılandırılmış bir güvenlik duvarı, genel sistem güvenliğinin en önemli yönlerinden biridir.

Güvenlik duvarımız için FirewallD kurulumunu yapıyoruz

sudo yum install firewalld

Mevcut güvenlik duvarının durumuna bakıyoruz

sudo firewall-cmd --state

Servisleri başlatıyoruz ve sistem başlangıcına ekliyoruz

sudo systemctl start firewalld
sudo systemctl enable firewalld

Web sunucumuz için gerekli olan 80 ve 443 portlarımızı açıyoruz.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https

Geçerli olması için yeniden yükleme komutumuzu veriyoruz

sudo firewall-cmd --reload

CentOS 7’de Git Nasıl Kurulur?

Git, yüz binlerce projede kullanılan en popüler sürüm kontrol sistemidir. Kod değişikliklerimizi takip etmemize, önceki sürümlere geri dönmenize, birden çok dalda aynı anda çalışmanıza ve diğer geliştiricilerle işbirliği yapmanıza olanak tanır.

Kurulum için bize gerekli olan repoyu sistemimize /etc/yum.repos.d/ yoluna ekliyoruz.

nano /etc/yum.repos.d/git-main.repo

İçerisine aşağıdaki satırları ekliyoruz

[git-main]
name=Wandisco GIT Repository
baseurl=http://opensource.wandisco.com/centos/7/git/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco

Gerekli olan GPG Anahtarını sistemimize ekliyoruz

sudo rpm --import <http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco>

Git’i sistemimize kuruyoruz

sudo yum install git

Kişisel bilgilerimizi ilk kurulum anında ayarlamamız gerekiyor. Bunun için aşağıdaki satırları kullanabilirsiniz.

git config --global user.name "Mertcan GÖKGÖZ"
git config --global user.email "admin@mertcangokgoz.com"

Yukarıda girdiğimiz bilgiler ~/.gitconfig alanında saklanacaktır. Git hakkında daha fazla bilgi edinmek isterseniz Git 101 Adlı Türkçe dokümantasyona bakabilirsiniz.

CentOS 7’de Jenkins Nasıl Kurulur?

Jenkins, entegrasyon ve dağıtım (CI/CD) için açık kaynak kodlu otomasyon sunucusu ve entegrasyon aracıdır, java tabanlıdır. Ekip üyelerinin düzenli olarak sürüm kontrol havuzuna yükledikleri kodlarda kontrollerin yapıldığı bir DevOps uygulamasıdır, ardından otomatikleştirilmiş testler çalıştırılır.

OpenJDK yerine kurulumunuz da Oracle Java’yı tercih ederseniz CentOS 7’de Java nasıl kurulur makalemize göz atabilirsiniz.

Jenkinsi sistemimize dahil edebilmemiz için depolarını sistemimize eklememiz gerekiyor bunu yapmak için

curl --silent --location <http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo> | sudo tee /etc/yum.repos.d/jenkins.repo

Depolarda bulunan dosyaları sistemimize dahil edebilmemiz için gereken GPG anahtarını sistemimize dahil ediyoruz.

sudo rpm --import <https://jenkins-ci.org/redhat/jenkins-ci.org.key>

Gerekli olan paketimizi sisteme dahil ediyoruz

sudo yum install jenkins

Servisleri başlatıyoruz ve sistem başlangıcına ekliyoruz

sudo systemctl start jenkins
sudo systemctl enable jenkins

Web arayüzüne erişmek için gerekli olan portu güvenlik duvarı aracılığı ile açıyoruz ve servisleri yeniliyoruz.

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

5 Aşamalı kurulumu yapacağımız ara yüzümüze ise http://<ip_adresi>:8080 aracılığı ile ulaşıyoruz.

Doğrulama için ilk başta bir parola istemeyi ihmal etmeyecek bu parolayı almak için aşağıdaki komutu kullanıyoruz

sudo cat /var/lib/jenkins/secrets/initialAdminPassword
jenkins ana ekran gorsel1

CentOS 7’de MongoDB Nasıl Kurulur?

MongoDB ücretsiz ve açık kaynaklı bir veritabanıdır. MySQL ve PostgreSQL gibi geleneksel tablo tabanlı SQL veritabanlarından farklı bir NoSQL veritabanı olarak sınıflandırılmıştır.

MongoDB’de veriler, alanların belgeden belgeye değişebileceği esnek, JSON benzeri dosyalarda saklanır. Ön tanımlı bir şema gerektirmez ve veri yapısı zamanla değiştirilebilir.

Gerekli olan depomuzu /etc/yum.repos.d/ dosya yoluna ekliyoruz.

nano /etc/yum.repos.d/mongodb-org.repo

İçerisine aşağıdaki satırları ekliyoruz

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

Ardından MongoDB’yi sistemimize dahil ediyoruz.

sudo yum install mongodb-org

Bu sırada GPG anahtarının sisteme eklenmesini isteyebilir. y deyip devam ediyoruz. mongodb-org paketinin kurulumunu yaparken mongodb-org-server, mongodb-org-mongos, mongodb-org-shell, mongodb-org-tools paketlerininde sisteme dahil edildiğini göreceksiniz korkmayın.

MongoDB servisini başlatıyoruz ve sistem başlangıcına ekliyoruz

sudo systemctl start mongod
sudo systemctl enable mongod

MongoDB’de Güvenlik Ayarları Nasıl Yapılır?

Kurulumu tamamladığımız zaman pek çok arkadaşımız parola koymayı unutuyordu hatta zamanında bu yüzden pek çok kurumunda başı derde girmişti. Biz gerekli kontrollerimizi yapıyoruz. /etc/mongod.conf yolunda aşağıdaki değişiklikleri gözlemliyoruz. Kimlik doğrulamanın aşağıdaki gibi açık olması gerektiğini unutmayın.

security:
  authorization: enabled

Eğer herhangi bir değişiklik yaparsanız ayarların geçerli olması için lütfen MongoDB servislerini yeniden başlatın

sudo systemctl restart mongod

Geriye kalan bütün her şey için lütfen Resmi MongoDB dokümantasyonunu kontrol edin.

CentOS 7’de Let’s Encrypt ile NGINX Nasıl Yapılandırılır?

Certbot, Let’s Encrypt SSL sertifikalarını imzalamak ve yenileme görevlerini otomatikleştiren ve bunları kullanmak için web sunucularını yapılandıran kullanımı aşırı kolay bir araçtır.

EPEL depolarından kurulum yapılabilir

sudo yum install certbot

Dh (Diffie-Hellman) Oluşturmak

Diffie – Hellman anahtar değişimi (DH), güvenli olmayan bir iletişim kanalı üzerinden kriptografik anahtarların güvenli bir şekilde alışverişi için kullanılan bir yöntemdir.

2048 bitlik Dh’mizi oluşturalım

sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

İsterseniz 4096 bit uzunluğunda oluşturabilirsiniz, ancak unutmayınız ki sunucu gücünüze göre bu işlem yaklaşık 30 dakika kadar sürebilir.

Let’s Encrypt SSL’nın Edinilmesi

ACME için gerekli olan dizini oluşturuyoruz.

sudo -u nginx sh -c "mkdir -p /var/www/_letsencrypt"

Web sunucumuza gereken tanımlamayı /etc/nginx/conf.d/acme.conf içerisine yapıyoruz.

location ^~ /.well-known/acme-challenge/ {
  allow all;
  root /var/www/_letsencrypt/;
  default_type "text/plain";
  try_files $uri =404;
}

Web sunucumuzu SSL için yapılandıracağız kullanacağı kriptografik yöntemleri /etc/nginx/conf.d/ssl.conf içerisine yapılandırıyoruz.

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 30s;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;

SSL sertifikamızı oluşturmak için gerekli olan certbot komutunu verelim.

certbot certonly --webroot -d mertcangokgoz.com -d www.mertcangokgoz.com --email info@mertcangokgoz.com -w /var/www/_letsencrypt -n --agree-tos --force-renewal

Sertifikamız onaylandıktan sonra sunucumuzda hem 443 portunu hemde gereken ayarlamaları yapmak için aşağıdaki yapılandırmayı /etc/nginx/sites-enabled/mertcangokgoz.com.conf içerisine uyguluyoruz.

server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;

	server_name mertcangokgoz.com;

	# SSL
	ssl_certificate /etc/letsencrypt/live/mertcangokgoz.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/mertcangokgoz.com/privkey.pem;
	ssl_trusted_certificate /etc/letsencrypt/live/mertcangokgoz.com/fullchain.pem;

	# index.php
	index index.php;

	# index.php fallback
	location / {
		try_files $uri $uri/ /index.php?$query_string;
	}

	# handle .php
	location ~ \\.php$ {
		include php_fastcgi.conf;
	}
}

# subdomains redirect
server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;

	server_name *.mertcangokgoz.com;

	# SSL
	ssl_certificate /etc/letsencrypt/live/mertcangokgoz.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/mertcangokgoz.com/privkey.pem;
	ssl_trusted_certificate /etc/letsencrypt/live/mertcangokgoz.com/fullchain.pem;

	return 301 https://mertcangokgoz.com$request_uri;
}

# HTTP redirect
server {
	listen 80;
	listen [::]:80;

	server_name .mertcangokgoz.com;

	location / {
		return 301 https://mertcangokgoz.com$request_uri;
	}
}

Yukarıdaki yapılandırmada HTTPS’yi zorluyor ve www’i www olmayan bir versiyona yönlendiriyoruz.

Ayarların geçerli olması için servisi yeniden dürtüyoruz.

sudo systemctl reload nginx