RHEL 7'de İlk Sunucu Kurulumu ve Yapılandırmaları


Bu eğitimde, Red Hat Enterprise Linux 7'nin yalın donanım sunucuya veya Sanal Özel Sunucuya yeni kurulumundan sonra dikkat etmeniz gereken ilk yapılandırma adımlarını tartışacağız.

Gereksinimler

  1. RHEL 7 Minimal Kurulum

Önemli: CentOS 7 kullanıcıları, CentOS 7'de İlk Sunucu Kurulumu yapmak için bu makaleyi takip edebilir.

RHEL 7 Sistemini Güncelleyin

İlk adımda RHEL sunucu konsolunuzda root ayrıcalıklarına sahip bir hesapla veya doğrudan root olarak oturum açın ve kurulu paketler, çekirdek gibi sistem bileşenlerinizi tamamen güncellemek için aşağıdaki komutu çalıştırın. veya diğer güvenlik yamalarını uygulayın.

yum check-update
yum update

Yerel olarak indirilen tüm paketleri ve ilgili diğer YUM önbelleklerini kaldırmak için aşağıdaki komutu uygulayın.

yum clean all

RHEL 7'ye Sistem Yardımcı Programlarını Yükleme

Aşağıdaki yardımcı programlar günlük sistem yönetimi için faydalı olabilir: nano (vi düzenleyicisinin yerini alacak metin düzenleyici), wget, curl (paketleri indirmek için kullanılan yardımcı programlar) çoğunlukla ağ üzerinden) net-tools, lsof (yerel ağ yönetimine yönelik yardımcı programlar) ve bash-completion (komut satırı otomatik tamamlama).

Aşağıdaki komutu yürüterek hepsini tek seferde yükleyin.


yum install nano wget curl net-tools lsof bash-completion

RHEL 7'de Ağ Kurulumu

RHEL 7, ağ yapılandırma dosyasını manuel olarak düzenlemekten ip, ifconfig, nmtui gibi komutları kullanmaya kadar, ağı yapılandırmak ve yönetmek için kullanılabilecek çok çeşitli araçlara sahiptir. nmcli veya rota.

Yeni başlayan birinin ağ yapılandırmalarını yönetmek ve değiştirmek için kullanabileceği en kolay yardımcı program nmtui grafik komut satırıdır.

Sistem ana bilgisayar adını nmtui yardımcı programı aracılığıyla değiştirmek için, nmtui-ana bilgisayar adı komutunu çalıştırın, makinenizin ana bilgisayar adını ayarlayın ve gösterildiği gibi bitirmek için Tamam'a basın aşağıdaki ekran görüntüsünde.


nmtui-hostname

Bir ağ arayüzünü değiştirmek için nmtui-edit komutunu çalıştırın, düzenlemek istediğiniz arayüzü seçin ve aşağıdaki ekran görüntüsünde gösterildiği gibi sağ menüden düzenle seçeneğini seçin.

nmtui yardımcı programının sağladığı grafik arayüze girdikten sonra, ağ arayüzü IP ayarlarını aşağıdaki ekran görüntüsünde gösterildiği gibi yapabilirsiniz. Bitirdiğinizde, yapılandırmayı kaydedip çıkmak için [tab] tuşunu kullanarak Tamam'a gidin.

Ağ arayüzünün yeni yapılandırmasını uygulamak için nmtui-connect komutunu çalıştırın, yönetmek istediğiniz arayüzü seçin ve hizmetten çıkarmak ve yükseltmek için Devre Dışı Bırak/Etkinleştir seçeneğine basın Aşağıdaki ekran görüntülerinde gösterildiği gibi IP ayarlarına sahip arayüz.


nmtui-connect

Ağ arayüz ayarlarını görüntülemek için arayüz dosyasının içeriğini inceleyebilir veya aşağıdaki komutları verebilirsiniz.


ifconfig enp0s3
ip a
ping -c2 google.com

Hızı, bağlantı durumunu yönetmek veya makine ağ arayüzleri hakkında bilgi edinmek için kullanılabilecek diğer yararlı yardımcı programlar ethtool ve mii-tool'dur.


ethtool enp0s3
mii-tool enp0s3

Yeni Kullanıcı Hesabı Oluştur

Bir sonraki adımda sunucunuza root olarak giriş yaparken aşağıdaki komutla yeni bir kullanıcı oluşturun. Bu kullanıcı daha sonra sisteminize giriş yapmak ve idari görevleri gerçekleştirmek için kullanılacaktır.

adduser tecmint_user

Yukarıdaki komutu kullanarak kullanıcıyı ekledikten sonra aşağıdaki komutu vererek bu kullanıcıya güçlü bir şifre belirleyin.

passwd tecmint_user

Bu yeni kullanıcıyı ilk giriş denemesinde şifresini değiştirmeye zorlamak istiyorsanız aşağıdaki komutu uygulayın.

chage -d0 tecmint_user

Bu yeni kullanıcı hesabı şimdilik normal hesap ayrıcalıklarına sahip ve sudo komutu aracılığıyla yönetim görevlerini gerçekleştiremiyor.

Yönetici ayrıcalıklarını gerçekleştirmek için kök hesabın kullanılmasını önlemek amacıyla, kullanıcıyı "tekerlek" sistem grubuna ekleyerek bu yeni kullanıcıya yönetici ayrıcalıkları verin.

RHEL'de varsayılan olarak "tekerlek" grubuna ait kullanıcıların, yürütme için gereken komutu yazmadan önce sudo yardımcı programını kullanarak komutları kök ayrıcalıklarıyla çalıştırmasına izin verilir.

Örneğin “tecmint_user” kullanıcısını “tekerlek” grubuna eklemek için aşağıdaki komutu uygulayınız.

usermod -aG wheel tecmint_user

Daha sonra sisteme yeni kullanıcı ile giriş yapın ve 'sudo yum update' komutu ile sistemi güncellemeyi deneyerek kullanıcıya root yetkisi verilip verilmediğini test edin.

su - tecmint_user
sudo yum update

RHEL 7'de SSH Ortak Anahtar Kimlik Doğrulamasını Yapılandırma

RHEL hizmet güvenliğinizi artırmak amacıyla bir sonraki adımda yeni kullanıcı için SSH ortak anahtar kimlik doğrulamasını yapılandırın. SSH Anahtar Çifti (genel ve özel anahtar) oluşturmak için sunucu konsolunuzda aşağıdaki komutu yürütün. SSH anahtarını kuracağınız kullanıcı ile sisteme giriş yaptığınızdan emin olun.

su - tecmint_user
ssh-keygen -t RSA

Anahtar oluşturulurken, anahtarın güvenliğini sağlamak için parola eklemeniz istenecektir. Güçlü bir parola girebilir veya görevleri SSH sunucusu aracılığıyla otomatikleştirmek istiyorsanız parolayı boş bırakmayı seçebilirsiniz.

SSH anahtarı oluşturulduktan sonra, aşağıdaki komutu uygulayarak ortak anahtar çiftini uzak bir sunucuya kopyalayın. Genel anahtarı uzak SSH sunucusuna yüklemek için, o sunucuda oturum açma kimlik bilgilerine sahip bir kullanıcı hesabına ihtiyacınız olacaktır.

ssh-copy-id [email 

Şimdi kimlik doğrulama yöntemi olarak özel anahtarı kullanarak uzak sunucuya SSH aracılığıyla giriş yapmayı denemelisiniz. SSH sunucusu şifre sormadan otomatik olarak giriş yapabilmeniz gerekir.

ssh [email 

Anahtarı uzak bir SSH sunucusuna manuel olarak yüklemek istiyorsanız, genel SSH anahtarınızın içeriğini görmek için aşağıdaki komutu verin.

cat ~/.ssh/id_rsa

RHEL 7'de SSH'yi güvenli hale getirin

SSH arka plan programının güvenliğini sağlamak ve kök hesaba şifre veya anahtar aracılığıyla uzaktan SSH erişimine izin vermemek için, SSH sunucusu ana yapılandırma dosyasını açın ve aşağıdaki değişiklikleri yapın.

sudo vi /etc/ssh/sshd_config

#PermitRootLogin yes satırını arayın, satırın başlangıcındaki # işaretini (hashtag) kaldırarak satırın açıklamasını kaldırın ve satırı aşağıda gösterildiği gibi görünecek şekilde değiştirin alıntı.

PermitRootLogin no

Daha sonra yeni ayarları uygulamak için SSH sunucusunu yeniden başlatın ve bu sunucuya root hesabıyla giriş yapmayı deneyerek yapılandırmayı test edin. SSH aracılığıyla kök hesaba erişim şimdiye kadar kısıtlanmış olmalıdır.

sudo systemctl restart sshd

Belirli bir süre işlem yapılmadığında sunucunuzla olan tüm uzak SSH bağlantılarının bağlantısını otomatik olarak kesmek isteyebileceğiniz durumlar vardır.

Bu özelliği sistem genelinde etkinleştirmek için, TMOUT bash değişkenini ana bashrc dosyasına ekleyen ve her SSH bağlantısının kesilmesine veya kesilmesine zorlayan aşağıdaki komutu çalıştırın. 5 dakika işlem yapılmadığında kapanır.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

Değişkenin /etc/bashrc dosyasının sonuna doğru şekilde eklenip eklenmediğini kontrol etmek için tail komutunu çalıştırın. Bundan sonra 5 dakika işlem yapılmaması durumunda sonraki tüm SSH bağlantıları otomatik olarak kapatılacaktır.

tail /etc/bashrc

Aşağıdaki ekran görüntüsünde, drupal makineden RHEL sunucusuna kadar olan uzak SSH oturumunda 5 dakika sonra otomatik olarak oturum kapatılmıştır.

RHEL 7'de Güvenlik Duvarını Yapılandırma

Bir sonraki adımda, sistemi ağ düzeyinde daha da güvenli hale getirmek için güvenlik duvarını yapılandırın. RHEL 7, sunucudaki iptables kurallarını yönetmek için Firewalld uygulamasıyla birlikte gelir.

Öncelikle aşağıdaki komutu vererek güvenlik duvarının sisteminizde çalıştığından emin olun. Firewalld arka plan programı durdurulursa, onu aşağıdaki komutla başlatmalısınız.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Güvenlik duvarı etkinleştirildikten ve sisteminizde çalışmaya başladıktan sonra, firewall-cmd komut satırı yardımcı programını kullanarak güvenlik duvarı politika bilgilerini ayarlayabilir ve bağlantı kurulduğunda SSH arka plan programı gibi bazı belirli ağ bağlantı noktalarına giden trafiğe izin verebilirsiniz. dahili bir web sunucusuna veya diğer ilgili ağ hizmetlerine.

Şu anda sunucumuzda yalnızca bir SSH arka plan programı çalıştırdığımız için, aşağıdaki komutu vererek güvenlik duvarı politikasını SSH hizmet bağlantı noktası trafiğine izin verecek şekilde ayarlayabiliriz.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Sunucunun bir sonraki başlatılışında kuralı uygulamadan, anında bir güvenlik duvarı kuralı eklemek için aşağıdaki komut sözdizimini kullanın.

sudo firewall-cmd --add-service=sshd

Sunucunuza HTTP sunucusu, posta sunucusu veya diğer ağ hizmetleri gibi başka ağ hizmetleri yüklerseniz, belirli bağlantılara izin vermek için aşağıdaki gibi kurallar ekleyebilirsiniz.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

Tüm güvenlik duvarı kurallarını listelemek için aşağıdaki komutu çalıştırın.

sudo firewall-cmd --permanent --list-all

RHEL 7'deki Gereksiz Hizmetleri Kaldırma

RHEL sunucunuzda varsayılan olarak çalışan tüm ağ hizmetlerinin (TCP ve UDP) bir listesini almak için aşağıdaki örnekte gösterildiği gibi ss komutunu verin.

sudo ss -tulpn

ss komutu, Postfix ana hizmeti ve NTP protokolünden sorumlu sunucu gibi sisteminizde varsayılan olarak başlatılan ve çalışan bazı ilginç hizmetleri ortaya çıkaracaktır.

Eğer bu sunucuyu bir mail sunucusu olarak yapılandırmayı planlamıyorsanız aşağıdaki komutları vererek Postfix arka plan programını durdurmalı, devre dışı bırakmalı ve kaldırmalısınız.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Son zamanlarda NTP protokolü üzerinden bazı kötü DDOS saldırıları rapor edildi. Dahili istemcilerin bu sunucuyla zamanı senkronize etmesi için RHEL sunucunuzu bir NTP sunucusu olarak çalışacak şekilde yapılandırmayı planlamıyorsanız, aşağıdaki komutları vererek Chrony arka plan programını tamamen devre dışı bırakmalı ve kaldırmalısınız.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Sisteminizde başka ağ hizmetlerinin çalışıp çalışmadığını belirlemek için yine ss komutunu çalıştırın ve bunları devre dışı bırakıp kaldırın.

sudo ss -tulpn

Sunucunuz için doğru zamanı sağlamak ve daha yüksek zamanlı bir eş sunucuyla zamanı senkronize etmek için ntpdate yardımcı programını yükleyebilir ve aşağıdaki komutları çalıştırarak zamanı genel bir NTP sunucusuyla senkronize edebilirsiniz.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

ntpdate time Sync komutunun herhangi bir kullanıcı müdahalesi olmadan her gün yürütülmesini otomatikleştirmek için, aşağıdaki içerikle gece yarısı çalıştırılacak yeni bir crontab işi planlayın.

sudo crontab -e

Crontab dosyası alıntısı:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

Bu kadar! Artık RHEL sunucunuz, bir web sunucusu, bir veritabanı sunucusu, bir dosya paylaşım hizmeti veya diğer belirli uygulamaları kurmak ve yapılandırmak gibi özel ağ hizmetleri veya uygulamaları için gereken ek yazılımı yüklemek için hazırdır.

RHEL 7 sunucusunu daha da güvenli hale getirmek ve güçlendirmek için aşağıdaki makalelere göz atın.

  1. RHEL 7'yi Sertleştirmek ve Sağlamlaştırmak İçin Mega Kılavuz – Bölüm 1
  2. RHEL 7'yi Sertleştirmek ve Sağlamlaştırmak İçin Mega Kılavuz – Bölüm 2

Web sitelerini bu RHEL 7 sisteminde dağıtmayı planlıyorsanız LAMP yığınını veya LEMP yığınını nasıl kuracağınızı ve yapılandıracağınızı öğrenin.