Kategori arşivi: Centos

centos işletim sistemi hakkında bilgiler, centos yapılandırma örnekleri, centos güvenlik önlemleri ve performans iyileştirmeleri, güncel haberler

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 6 ve 8 Sunucuyu Oracle Linux’a Taşıma

Bildiğiniz gibi geçtiğimiz haftalarca Centos topluluğu kızdıracak bir hareket yaparak RHEL’in testing sürümü haline geldi, bu durum önümüzdeki yıl yaşanacak ancak insanlar ne yapacağız diye yana döne alternatif aramaya hatta yeni çıkacak Rocy linux için heyecanlanmaya başladı(çok yersiz bir heyecan), tabii bütün bunlar olurken CentOS 7 kullananlar henüz endişelenmelerine gerek yok çünkü 2024’te ömrünü tamamlayacak ve bu zamana kadar sistemi kullanabileceksiniz.

CentOS 6 veya 8 üzerinden göç etmek için mevcut olan RPM tabanlı birini seçeceğiz, ücretsiz olan ve Redhat’in soyundan gelen Oracle Linux kullanacağız.

Ben size bu anlatımı yapmak için CentOS 8 Server GUI kullandım.

Göç için Ön Gereksinimler

CentOS 7 sürüm döngüsünde RHEL ile gideceği için bunun taşınmasına bakmayacağız çünkü hali hazırda 2024 yılına kadar desteği devam edecek.

  • Centos 6 veya 8 bir işletim sistemi
  • sudo yani root yetkileri
  • Toplam 10 GB boş alan( 5gb /var/cache 5 gb /home)
  • yum veya dnf

Oracle Linux Göç İşlemleri

Her zaman yaptığımız gibi sistemi güncelleme ile işlemlere başlıyoruz, sistemimizde eski paket kalmaması gerekiyor. Güncellenmesine mani olacağınız paketler varsa hold atmayı unutmayın.

sudo yum update

Oracle Linux’e geçmek için Centos göç script’ini sistem üzerine indirin, bu betik oracle tarafından sağlanmakta ve geliştirilmektedir.

curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh

GitHub’dan indirdiğimiz bu migration betiğimiz, sistemi otomatik olarak tanımlayacak ve CentOS Linux 6 veya 8’i Oracle Linux’un muadili olan sürümüne geçirecek. yani;

  • CentOS 6 ise Oracle 6
  • Centos 8 ise Oracle 8
sudo bash centos2ol.sh

Geçmeyi planladığınız mevcut sistemde yüklü uygulamalara ve sistem kaynaklarınıza bağlı olarak, göç işlemi birkaç dakika ila bir kaç saat arasında sürecek. Komut dosyası, yalnızca CentOS repolarını Oracle ile değiştirmek ile kalmayacak, aynı zamanda uyumlu hale getirmek için sistem paketlerini yeniden yükleyecek.

CentOS üzerinden Oracle Linux‘e geçiş tamamlandıktan sonra, komut terminalinde aşağıdaki gibi bir bildirim göreceksiniz.

centosdan oracle geçiş, centos migrate oracle linux

Yeniden başlatma işleminden sonra sisteme giriş yaptığınızda Oracle Linux geçiş işleminizin başarılı bir şekilde tamamlandığını görebilirsiniz.

oracle linux ön gösterim, oracle linux centos 8 migrate, centos 8 göç

Setup Sudo With Google-Authenticator for 2FA on CentOS 7

By configuring the google-authenticator-libpam PAM module with sudo, you can force system users to have to authenticate with one-time passcode and their system password in order to use sudo.

From google-authenticator-libpam

The Google Authenticator project includes implementations of one-time
passcode generators for several mobile platforms, as well as a pluggable
authentication module (PAM).

To set this up on CentOS 7, we’ll install the google-authenticator PAM module and update your server’s PAM configuration.

First, install the tools required to build the google-authenticator-libpam PAM module.

yum install -y git autoconf automake make libtool pam-devel

Clone the google-authenticator-libpam git repo, build and install the plugin.

git clone https://github.com/google/google-authenticator-libpam.git
cd google-authenticator-libpam
./bootstrap.sh
./configure
make
sudo make install

This will install the google-authenticator binary and the pam_google_authenticator.so PAM module under /usr/local

Before continuing, login as root and do not exit from this login whilst making
changes to your system. A mistake could lock you out from your root account.

Add pam_google_authenticator.so to /etc/pam.d/sudo

auth       required     /usr/local/lib/security/pam_google_authenticator.so forward_pass nullok
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so revoke
session    required     pam_limits.so

Its important that the path used to define pam_google_authenticator.so is correct or else PAM may not be able to find pam_google_authenticator.so and sudo will log an error.

sudo: PAM unable to dlopen(/usr/lib64/security/pam_google_authenticator.so): /usr/lib64/security/pam_google_authenticator.so: cannot open shared object file: No such file or directory
sudo: PAM adding faulty module: /usr/lib64/security/pam_google_authenticator.so

It is also important that the pam_google_authenticator.so is found before the auth include system-auth line within /etc/pam.d/sudo

Any user who will need to use sudo now needs to setup their secret key and google-authenticator-libpam settings which live in ~/.google_authenticator by simply running the google-authenticator-libpam binary on the server. They will be shown a QRCode that can be scanned into their two-factor authentication mobile app such as Authy or Google Authenticator. Next time the user uses sudo, they will be asked for their system password and one-time passcode.


Once all your users who use sudo have setup their google authenticator secret key, you should remove nullok from /etc/pam.d/sudo

Delete Lease From Dnsmasq in CentOS 7

dnsmasq keeps track of the DHCP leases it has in a file which is defined
by the dhcp-leasefile config option.

To delete a lease from dnsmasq, first stop dnsmasq

systemctl stop dnsmasq

Remove the lease from the file. On Ubuntu this lease file defaults to
/var/lib/misc/dnsmasq.leases

Once the lease is removed, start dnsmasq.

systemctl start dnsmasq

How To Download RPMs Without İnstalling Them Using Yum In CentOS 7

You may want to download RPMs only and not install them using yum. Perhaps
you’re within a change freeze but would like to warm up your yum cache
to make your production security upgrades alot faster and smoother.

The yum-plugin-downloadonly yum plugin provides yum with a downloadonly option.

yum install yum-plugin-downloadonly
yum install --downloadonly docker

You can also download the RPMs to a directory of your choosing and not
/var/cache/yum

yum install --downloadonly --downloaddir=/var/tmp/docker docker

Specify a Different Nameserver in /etc/resolv.conf When Using DHCP in CentOS 7

Using dhcp within a ifcfg network configuration file you may want to specify a different nameserver instead of using the nameserver assigned by the DHCP server.

Use the PEERDNS, DNS1 and DNS2 options.

DEVICE="ck"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
PEERDNS="yes"
DNS1="1.1.1.1"
DNS2="1.0.0.1"

To check that it all works grep ^nameserver /etc/resolv.conf

nameserver 1.1.1.1
nameserver 1.0.0.1

If you want to use the nameservers that are provided by DHCP server but also specify an extra nameserver within your /etc/resolv.conf, you can make use of dhclient.conf options in /etc/dhcp/dhclient-em1.cfg

prepend domain-name-servers 1.0.0.1;

Enable EPEL on a RHEL/CentOS 7 And 8 Server

Extra Packages for Enterprise Linux (EPEL) is the group that creates, maintains and manages high quality packages for RHEL, CentOS and Scientific Linux.

To enable the repo all that is needed is the epel-release RPM.

RHEL/CentOS 7

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

RHEL/CentOS 8

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

The epel-release RPM will setup the RPM EPEL gpg key and the required yum
repo files.

Centos 8 Üzerine Zabbix Agent Kurulumu

Bu bash script Zabbix Agent kurulumu içindir, 1.1.1.1 IP adresini zabbit sunucunuzun IP adresi ile değiştirmeyi unutmayınız.

#!/bin/bash -e

if [ "$UID" -ne 0 ]; then
  echo "Please run as root"
  exit 1
fi

# Only run it if we can (ie. on RHEL8/CentOS 8)
if [ -x /usr/bin/yum ]; then
  yum -y update
  rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-agent-5.0.2-1.el8.x86_64.rpm
  yum -y install zabbix-agent
  chkconfig zabbix-agent on
  sed -i 's/Server=127.0.0.1/Server=1.1.1.1/' /etc/zabbix/zabbix_agentd.conf
  sed -i 's/ServerActive=127.0.0.1/ServerActive=1.1.1.1/' /etc/zabbix/zabbix_agentd.conf
  HOSTNAME=`hostname` && sed -i "s/Hostname=Zabbix\ server/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agentd.conf
  service zabbix-agent restart
fi

Screen Üzerinde Zaten Bağlı Bir Ekrana Bağlanmak

Kimi zaman screen komutunu kullandığınızda kazayla shelli kapatmanız veya o esnada bi ufak elektrik gitmesi ile screen bağlı bir şekilde kalabiliyor.(zaten amaçta o)

Haliyle gelip tekrar screen -r example komutunu veriyorsunuz oda size aşağıdaki gibi bir uyarıda bulunuyor.

There is a screen on:
	12801.example	(Attached)
There is no screen to be resumed matching foo.

Zaten açık olan screeni direk kapatabilirsiniz(-rd ile), ama içeride önemli bir işlem yapıyorsunuz veya zaten bu gibi saçma durumlarda işlem kesintiye uğramasın diye açmışsınız niye tamamen kapatasınız.

Şimdi direk açık olan o screen kardeşimize tekrar geçiş yapacağız.

screen -x example

Tekrar yaptığınız iş önünüze şak diye geri geldi, hadi hayırlı olsun

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 Sürümünüzü Nasıl Kontrol Edersiniz?

Bir CentOS makinesine ilk kez giriş yaptığınızda, herhangi bir iş yapmadan önce, sisteminizde hangi CentOS versiyonunun çalıştığını belirlememiz gerekir.

Sürüm belirleme konusunda bir kaç farklı komut bulunmaktadır. Sırasıyla;

lsb_release -a

Eğer böyle bir komut bulunamıyor gibi bir hata alırsanız sudo yum install redhat-lsb-core komutu ile sisteme lsb_release paketini dahil edebilirsiniz.

Paket kurup sistemde yer işgal etmesin diyorsanız haklısınız o zaman aşağıdaki komutu kullanabilirsiniz

rpm --query centos-release

/etc/centos-release dosyasını kullanarak sistem sürümünü öğrenebiliriz bunun için aşağıdaki komutu kullanabilirsiniz.

cat /etc/centos-release