Ubuntu16/CentOS7/RedHat7 Customize The docker0 Bridge ile Kurulum

Şimdiki makalemizde özelleştirilmiş network ile Docker kurulumunu ele alacağız. Öncesinde neden böyle birşeye ihtiyaç duyabileceğimizden bahsedeyim, hemde başımdan geçen durumu da anlatmış olurum.

Bildiğiniz gibi Docker kurulumda docker0 bridge‘inin default ip range‘i olarak 172.17.0.1/16‘yı vererek kurulum gerçekleştirmektedir. Bu durumda sizin bağlantı sağladığınız lokal ağ tercihini hali hazırda 172 li subnet ise kurulum aşamasında Docker Run olduğunda bağlantınız koparacak ve bir daha uzaktan bağlantı sağlayamayacaksınız. Benim başımada böyle bir durum geldi, lokal ağım 172 li /24 subnet’indeydi ve /16 lı subnet benim subnet’i yuttuğundan, çakışma gerçekleşti ve bağlantımı kopardı. Bu durumda konsol aracılığı ile sizin kendi belirlediğiniz subnet ile kurulum yapmanız gerekli yada subnet’i editlemelisiniz. Ben aşağıdaki göstereceğim yöntemle “systemd” kullanarak istediğim ortamı ayağa kaldırdım. Şimdi sırasıyla Ubuntu16’da ve Centos7/RedHat7 de bunu nasıl yapabiliriz, buna değinelim.

*Ubuntu16 da customize subnet ile Docker kurulumu

İlk önce “etc/systemd/system/” altına “docker.service.d” dizinini, “mkdir” komutunu kullanarak oluşturalım.

> sudo mkdir /etc/systemd/system/docker.service.d

İkinci olarak “/etc/systemd/system/docker.service.d/” altına “docker.conf” dizinini “touch” komutunu kullanarak oluşturalım.

> sudo touch /etc/systemd/system/docker.service.d/docker.conf

Ardından “docker.conf” dosyasının içine bir editör aracılığı(vim) ile aşağıdaki gibi doldurup, kaydedin.

docker.conf
[Service]

ExecStart=

ExecStart=/usr/bin/dockerd -H fd:// --bip=10.10.100.1/24

 

Gerekli systemd ayarlamalarını yaptık ve şimdi normal akışında kurulumu yaparak işlemleri tamamlayacağız.

Önce, resmi Docker repository için GPG anahtarını sisteme ekleyelim.

> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Ardında Docker repo’sunu ekleyelim.

> sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

Şimdi repolarımızı güncelleyelim.

> sudo apt-get update

Ve şimdi aşağıdaki komutla Docker’ı kuralım.

> sudo apt-get install -y docker-ce

Ardından gerekli kontrolleri sırasıyla yapıp, işlemlerimizi teyit edelim.

*CentOS7/RedHat7 da customize subnet ile Docker kurulumu

Gene “systemd” yi kullanarak işlemleri gerçekleştireceğiz.

İlk önce “etc/systemd/system/” altına “docker.service.d” dizinini, “mkdir” komutunu kullanarak oluşturalım.

> mkdir /etc/systemd/system/docker.service.d

İkinci olarak “/etc/systemd/system/docker.service.d/” altına “docker.conf” dizinini “touch” komutunu kullanarak oluşturalım.

> touch /etc/systemd/system/docker.service.d/docker.conf

Ardından “docker.conf” dosyasının içine bir editör aracılığı(vim) ile aşağıdaki gibi doldurup, kaydedin.

docker.conf
[Service]

ExecStart=

ExecStart=/usr/bin/dockerd --bip=10.10.100.1/24

Gerekli systemd ayarlamalarını yaptık ve şimdi normal akışında kurulumu yaparak işlemleri tamamlayacağız.

Docker’ı kurmadan önce aşağıdaki komutla gerekli paketleri indirip, kuralım.

> yum install yum-utils device-mapper-persistent-data lvm2 -y

Ardında Docker repo’sunu ekleyelim.

> yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

Şimdi aşağıdaki komutla Docker’ı kuralım.

> yum install docker-ce –y

Docker kurulduktan sonra sevisi çalıştırmak ve enable etmek lazım. Aşağıdaki komut ile yapabilirsiniz.

> systemctl enable docker.service

> systemctl start docker.service

Status’ ile son durumu kontrol edelim.

> systemctl status docker.service

Ardından gerekli kontrolleri sırasıyla yapıp, işlemlerimizi teyit edelim.

Bu arada servisi daha önceden kurduysanız “systemd” yapılandırmasını yaptıktan sonra aşağıdaki komutları çalıştırdığınızda sizin belirlediğiniz subnet overwrite olacak.

> systemctl daemon-reload

> systemctl restart docker.service

warning: remote host identification has changed

Ssh protokolü ile uzaktaki bir makinanıza bağlanmaya çalıştığınızda “warning: remote host identification has changed” uyarısını alıyorsanız muhtemelen ayını ip ile başka bir kurulum gerçekleştirmiş olabilirsiniz. Bu durumda ssh in çalışma prensibi doğrultusunda daha önceden ilgili ip için atanan public key numarası doğal olarak değiştiğinden ve sizin(yani ilgili kullanıcının) /.ssh/known_hosts dosyasında bulunan eski identification eşleşmediğinden bu hatayı almanız gayet doğal. Uyarıda genelde çalıştırmanız gereken komutu söyler, yukarıdaki resimde olduğu gibi fakat aşağıdaki screenshottan anlaşılacağı üzere ilgili komutu bildirmeye bilir de. Bu durumda da belirteceğimiz komutu yürütmeniz çözüm olacaktır.

> ssh-keygen -f “/home/fatihaslan/.ssh/known_hosts” -R 192.168.1.100

systemd-analyze blame Komutunu Keşfedelim – Redhat7, CentOS7, Ubuntu16

Bu makalemde çok hoş bir şekilde deneyimsellediğim bir durum ve komuttan bahsedeceğim. Bir komut nedir.? Diyebilirsiniz. Fakat sistem yöneticileri için özellikle de Linux Admin’leri için bir komut bile yeri geldi mi can kurtarıcı bir duruma dönüşebilir. Uzun süredir bakmadığınız yada başkası tarafından kurulup çalışan, sonradan yönetimi devraldığınız bir sunucuda yaşayabileceğiniz bir durum olabilir. Bende böyle bir durum oluştu ve RedHat Enterprise Linux 7 de açılışta bir problem yaşadım. Neydi bu problem.?

Sunucu RHEL 7 ama GUI de kurulu ve sunucu açılışta çok yavaş açılıyordu. User’lar, login ekranı dakikalar sonra geldi. Bir sorun olduğu belliydi ama onun dışında herhangi bir sorun yok sunucu canavar gibi çalışıyordu. Neyse tam bu noktada nedir problem.? Nasıl çözerim.? derken, bir komut keşfettim. Bu komut “system-analyze blame”. Bu komut kısaca analyze system boot-up performance, sistemin boot olmasında açılan servis ve uygulamaların başlangıç performansı olarak time bazında size yansıtacaktır ve sizde oradan alacağınız ip ucuyla sorunu giderebilirsiniz ki ben bu şekilde, belki de uzun süre uğraştıracak bir sorunu saniyeler içinde hallettim.

Bu komutun üzerinde durmamım bir diğer sebebi ise RedHat 7 de çalışmasıdır. Yani altı sürümlerde bu komut mevcut değil. Bu da tabi RHEL 7’nin kullanış seviyesini yansıtmaktadır. Tabi aynı şekilde CentOS 7 ve Ubuntu 16 ve üzerinde de bu komut mevcut.

Şimdi aşağıdaki screenshot’larla durumu daha detaylı inceleyelim.

Sistemi bir kere açmayı başarınca system-analyze blame komutunu çalıştırdım ve en geç açılan nfs.mount servisinin olduğunu gördüm.

> system-analyze blame

Ardından “/etc/fstab” dosyasını incelemeye aldım. Zaten açılışta bu problemin olması ve sistem boot olduğundan fstab dosyasını okuması şüpheyi kendi üzerine çekmeye yetiyordu. Ve en son satırda bir makinadan mount işleminin olduğunu gördüm. Tabi ki sistem boot olduğunda fstab dosyasını okuyup mount ediyor ve o hedefteki ip’li makinayı bulamadığı için açılış problemi olduğunu netti.

İnsert modda bu satırın başına # işareti koyup, kaydedip çıktım. Böylelikle o satırı yorum satırı olarak algılamasını sağladık. Ve sistemi reboot ettiğimde problemin çözüldüğünü gözlemledim. İyi çalışmalar.

NFS(Network File System) nedir.? NFS Server ve Kullanıcı Yapılandırması

Sun Microsystems tarafından geliştirilen Unix/Linux dosya paylaşım servisi olup, Linux sistemler arasında dosya paylaşamını sağlayan ve stabil çalışan bir teknolojidir. Tabi ki açık kaynak kodludur deyip bu kadar teorik bilgide noktalasak yeter herhalde.

Hemen yapılandırma ve kullanımına girmeliyiz. Ortamda Sunucu ve İstemci modeli ile çalışacağız. Yani Hem Server tarafında yapmamız gerekenler var hemde bunu Client ların kullanabilmesi için yapmamamız gerekenler var. Bunun için sanal ortamımı oluşturdum aşağıdaki gibi.

NFS Server’ımın ip bilgisi aşağıdaki gibidir.

NFS Client için de ip bilgisi aşağıdaki gibidir.

Herşeyden evvel genelde sunucular minimal kurulum yapıldığından NFS paketlerini kurmak gerek.

NOT : Bu paketleri hem sunucuda hem istemcide kurmalısınız. Aşağıdaki komut ile bu işlemi yapabilirsiniz.

> yum install nfs-utils nfs-utils-lib

Daha sonra servisin durumuna aşağıdaki komut ile bakın ve servisin hem çalışmadığını hemde disabled olduğunu görün.

> systemctl status nfs-server.service

Şimdi servisi alttaki komutla çalıştırın.

> systemctl start nfs-server.service

Daha sonra enabled durumuna çekin.

> systemctl enable nfs-server.service

Şimdi son duruma bakalım ve bu kısımın sağlıklı bir şekilde tamamlandığını görelim.

 

* Server – Sunucu tarafı

Şimdi sunucuda yapılandırmaya başlayalım. Tabi burada sizin ortamınıza göre planlama yapmanız gerekiyor. Yani NFS için ayıracağınız alanı belirleyip bunun için hususi ayrı bir disk, storage de kullanabilirsiniz ki bu yöntem her zaman daha sağlıklıdır. Ben sunucu tarafında belirlediğim disk alanına MePaylasNFS diye bir dizin oluşturuyorum.

Mkdir komut ile MePaylasNFS klasörünü oluşturuyorum. Ardından cd komutu ile içine girip test için dosya ve klasörler oluşturuyorum.

> mkdir MePaylasNFS

Paylaşım yapılandırmayı “/etc/exports” config dosyası yardımıyla gerçekleştireceğiz. Herhangi bir editör yardımıyla buraya girip oluşturduğumuz MePaylasNFS klasörünü herkes için(“*” işareti herkes bağlanıp kullanabilir manasına gelir, eğer belirli makinalar için yapacaksanız “*” yerine makinanın ip’ni girmelisiniz). Ardından nfs servisini yeniden başlatın.

> systemctl restart nfs-server.service

exportfs” komutu yardımıyla sunucudaki tüm paylaşımlarımızı listeleyebiliriz.

> exportfs

Birde “showmount -e localhost” komutunu çalıştırıp, burdan da paylaşımları gözlemleyelim.

 

* Client – Kullanıcı tarafı

Şimdi client tarafında yapılandırmaya girişelim. Paylaşımı kullanacak tarafta paylaşılan alanı mount edeceğiz. Mount için bir hedef yani klasör oluşturalım. Ben NFSKullan adında bir klasör oluşturuyorum.

> mkdir NFSKullan

Şimdi aşağıdaki gibi sunucunun ip(192.168.2.250) bigisiyle mount edelim.

> mount 192.168.2.250:/ MePaylasNFS /NFSKullan

Direk mount komutu ile durumu gözlemleyebilirsiniz. Ayrıca NFS servisinin de versiyon 4 olduğunu görün.

> mount

df -h komutu ile gözlemleyelim.

> df -h

Paylaşım noktasını ls -l ile listeleyelim, verileri kullanabildiğimizi gözlemleyelim. Bu bilgiler aslında sunucuda.

> ls -l /NFSKullan

Son kontrol amacı ile “showmount -e 192.168.2.250(Server ip bilgisi)” komutunu çalıştırıp değişimi gözlemleyelim.

> showmount –e 192.168.2.250

Herşey bittimi.? Tabi ki HAYIR.! Çünkü bu kullanıcı makinası reboot olduğunda mount bilgisi kaybolacak ve NFS paylaşımını kullanamayacak. Bunu sabit kılmak ve sürekli kullanıcı makinası reboot olsa da kullanabilir yapmak için/etc/fstab” dosyasına mount noktasını yazacağız. Herhangi bir editör yardımıyla bu yapılandırma dosyasına girelim ve aşağıdaki şekilde yapılandıralım(boşluklar tab tuşuyla oluşturuldu), kaydedip çıkalım.

# 192.168.2.250:/MePaylasNFS       /NFSKullan       nfs4       rw,sync       0 0

Hayırlı olsun.

Merkezi Log Server Oluşturma – Rsyslog

Sistem adminleri, Network yöneticileri, Güvenlik uzmanları, Yazılımcılar ve hatta Hacker için bile olmazsa olmaz bişey varsa oda sistemde var olan log lar yada oluşacak log lardır. Log ların hayatımızdaki yeri ve önemi tartışılmazdır. Çünkü log lar aracılığı ile bir çok sorunun ve problemin üstesinden geliriz. Analiz gerçekleştirir, sistemlere olan saldırıları hatta öncesinde yapılmış saldırıları keşfederiz. Aslında daha fazla yazılacak teorik çok şey var fakat ben çok fazla uzatmak istemiyorum. Log, loglama deyince akan sular durur ve herkesin az çok bilgisi vardır. Ben hemen yapmak istediğim ortamı hayata geçireyim.

Ne yapmak istiyorum.? Ortamda merkezi bir log server oluşturmak istiyorum. Yani tüm sunucularımın, firewall yada benzeri cihazlarımın yada göndermek istediğim ne varsa log olarak, tek bir merkezi log sunucu oluşturup ona göndermek istiyorum. Bunun faydalarına gelince zaten aklınızda bir sürü ışık yanmıştır. Örneğin bence bu log server ı daha sonra 5651 yasasına göre değerlendirebilirsiniz yada sistemleriniz herhangi biri saldırıya uğradığında hacker bulunduğu o server daki log ları temizleyebilir fakat log server a erişimi olmadığından ordaki log lara dokunamayacak ve siz bu log ları rahatlıkla değerlendirebileceksiniz.

Ben senaryoyu iki sanal Linux sunucuda Syslog(rsyslog) servisini kullanarak gerçekleştireceğim. Sunuculardan biri client olacak, log basacak diğeri de log server olacak ve log ları üstüne çekip barındıracak. Bunu kullanıcı tarafında ve Log server tarafında bir kaç ayarlama ve yapılandırmayla sağlayacağız.

Ama öncesinde Log yapılarından, seviyelerin bahsedelim. Log lar facility ve severity – level olarak iki sütunda inceleyecek olursak eğer facility.level olarak belirlesek yanlış olmaz. Yani facility olarak (none, kernel, mail, cron, authpriv, user) desek, level olarak (emerg, critical, alert, err, info, debug) olarak ele aldığımızda; örneğin sistemdeki tüm herşeyin sadece hata log larını almak için (*.err kullanabiliriz.) yada bilgi mesajları ve yukarı doğru içerdiği log ları almak için (*.info kullanabilirsiniz.). Yukarı doğru derken hemen onu da açıklayalım. Mesela level-seviye olarak info seçilmiş ise içinde(emerg, critical, alert, err uda barındırmaktadır.), Seviyelerden en konuşkanı debug tır. Tüm her hareketi log lar.

 user.emerg yada user.err yada user.info gibi gibi kullanabilirsiniz.

 

 

Her Linux sistemde (“/etc/rsyslog.conf”) mevcut olan bir kaç satırdan bahsedeyim ve bahsedersek mevzu daha iyi anlaşılacaktır.

*.info;mail.none;authpriv.none;cron.none /var/log/messages      Burada sistemdeki her facility i (*) info seviyesinde al (*.info;) fakat mail,authpriv ve cron u alma, neden çünkü onları /var/log/ içerisinde başka bir dosyaya aldıracak, yapılandırmayı yapacak. Aşağıdaki screenshot ta durum daha net anlaşılacak.

Ayrıca Linux ta log lar için özelleştirilmiş local soketler bulunmaktadır. Daha fazla ayrıntı için syslog linkini ziyaret edin.

Bu kadar teorik bilgiden sonra hemen yapılandırmaya girişelim. Çünkü loglardan gene ve /var dizini /var/log dizininden ayrıntılı olarak yeri geldi mi bir başka makalede bahsedeğiz. Bir kullanıcı makinasından(192.168.2.71) log göndereceğimiz için orada yapılandırma yapacağız, ikinci olarak da log sunucuda(192.168.2.150) logları alabilmek için yapılandırma yapıp, işlemleri de teyit ettikten sonra makaleyi noktalayacağız.

 

*Server tarafında yapılandırma

Yapılandırmayı “/etc/rsyslog.conf” dosyasından gerçekleştireceğiz. Vi, vim yada nano editörü ile dosyanın içine giriyoruz. Ben vim i tercih ediyorum çünkü satırları renklendiriyor.

> vim /etc/rsyslog.conf

Bu dosyanın içerisinde; son iki satırda bulunan Modload ve Input satırlarındaki “#” işaretini siliyoruz.

Durum aşağıdaki gibi olacak, dosyayı kaydedip çıkın.

Ardından aşağıdaki komutla servisi restart edin.

> systemctl restart rsyslog.service

 

*Kullanıcı tarafından yapılandırma(Logları yönlendirelim);

Tüm log ları info seviyesinde göndereceğim.

Gene bir editör aracılığı ile “/etc/rsyslog.conf” yapılandırma dosyasına girelim. Ve aşağıda resimdeki gibi yapılandırıp, kaydedip çıkalım. Bu arada @(udp), @@(tcp) dir.

> vim /etc/rsyslog.conf

NOT: bu log ları lokalde tutmak istemiyorsanız, dosyanın içindeki yapılandırma satırları silebilir yada satırların başına “#” işareti koyarsanız, satılar yorum satırı olarak algılanacak ve log lar sadece log ları yönlendirdiğiniz sunucuda barınacaktır.

Şimdi burada da servisi restart edelim.

> systemctl restart rsyslog.service

NOT2: Ayrıca input girdilerini(log yönlendirme) aşağıdaki gibi daha spesifik olarak /etc/rsyslog.d/ (/etc/rsyslog.d/YntmLog.conf gibi) içine dosya olarak oluşturup, yönlendirebilirsiniz.

—–   >> “/etc/rsyslog.conf içine yazılacak.”

$ModLoad imfile

—–   >> “/etc/rsyslog.d/YntmLog.conf içine yazılacak, aslında /etc/rsyslog.conf içine de yazılabilir.”

##remote syslog settings

$InputFileName /var/log/httpd/access_log

$InputFileTag celery

$InputFileStateFile celery-file1

$InputFileSeverity info

$InputFileFacility local5

$InputRunFileMonitor

$InputFilePersistStateInterval 1000

local5.* @192.168.2.150

 

Şimdi sıra yaptığımız işlemi teyit etmekte. Bunu da “logger” komutu ile yapacağız. Yani o komut ile dışarıdan custom bir log üreteceğiz.

> logger -p user.info “Bu mesajı info seviyesinde oluşturduk ve log sunucuda görmeliyiz.”

Şimdi Log sunucusunda görebildiğimizi teyit edelim.

Bu arada sunucular arasında network erişimi ve 514 port’undan erişime açık olmalıdır.

Linux Trap Command Usage (Signals Catch) – Linux tuzak komutu kullanımı (Sinyalleri Yakalama)

Linux tarafında kullanışlı bir komuttan bahsetmek istiyorum. Bu komut daha çok sistem yöneticilerinin işine yarayacak türden olabilir. Kullanıcı tarafında bir işlem çalıştırıp, bitene kadar sürmesini isteyebilirsiniz (bu bash script leriniz olabilir) ve bunun kullanıcı tarafından sonlandırılmasını da engellemeniz gerekiyor gibi bir örnek vererek açıklamak doğru olacaktır. Tam da burada devreye trap komutu giriyor. Kafanızda nedir bu trap dediğinizi duyar gibiyim sanki. Trap komutu Linux sistemlerinde var olan sinyalleri yakalamaya yarayan bir komuttur. Ctrl + C (SIGINT) gibi, kill -15 (SIGTERM) gibi, kill -9 (SIGKILL) gibi gibi. Aslında Kill komutundan daha öncesinde bahsetmem gerekiyordu. Bir başka makalede ona değineceğiz, aklıma gelmişken trap komutunu aradan çıkarayım. Hem pekişmiş olur.

Aşağıdaki komut ile trap in yakalayabileceği sinyalleri listeleyelim.

> trap -l

Şimdi Ctrl + C sinyalini engelleyelim, yani kullanıcı istediği kadar ctrl+c ye bassın çalışan herhangi bir işlemi bu yöntemle sonlandıramayacaktır. Bunu aşağıdaki komut ile hayata geçire biliriz.

> trap — ” SIGINT yada trap ” 2 yada çift tırnak fark etmez ama tırnak koymalısınız.

Şimdi sleep 10 komutu(10 saniye bekle) ile işlemimizi test edelim. Ve aşağıda göreceğiniz gibi kaç kere olursa olsun ctrl+c tuşuna basıp kesme sinyali gönderirsem göndereyim, sinyal işe yaramıyor.

> sleep 10

Oluşturduğunuz trap lerin listesine aşağıdaki komutla ulaşabilirsiniz.

> trap -p

Trap leri kaldırmak için yani eskisi gibi sinyallerin çalışması için yaptığını sinyallere karşın komutu aşağıdaki gibi çalıştırın.

> trap SIGINT yada trap 2

RedHat/CentOS/Ubuntu Sunucularda Var Olan Diskleri Reboot Etmeden Genişletme – SCSI Bus Rescan

Sanal sunucularda var olan diski hypervisor katmanında genişlettikten sonra değişikliklerin algılanması için Linux OS tarafında genelde reboot etmek zorunda kalınır. Şimdi biz burda reboot etmeden hypervisor tarafında var olan diskteki genişletilen o alanı, linux operation system katmanında scsi yolunu kullanarak disk aygıtlarını rescan ederek algılatacağız. Bu arada çalışmaları Vmware Esxi üzerinde yapacağım.

* İlk örneği RedHat/CentOS üzerinde yapalım;

Resimde de görüldüğü gibi 1TB diskim var /boot, swap ve / dizinlerim bu disk üzerinden partition edilmiş durumda. Şimdi bu var olan diski reboot etmeden extend edelim.

Hypervisor görüntüsü;

OS görüntüsü;

Hypervisor da genişletelim 1500GB olarak ayarlıyorum.

Şimdi bu değişikliği fdisk komutu ile görebilmek için aşağıdaki komutu çalıştırın. /sys/class/scsi_device/ dan sonra tab tuşuna basın disk device’leri görün, ona göre komutu çalıştırıp işlem yapın. Benim 10 ile başlayan olduğu için ordan yürüyeceğim.

Komutun en net hali aşağıdaki gibi olacak,

> echo 1 > /sys/class/scsi_device/10\:0\:0\:0/device/rescan

Şimdi fdisk -l ile yaptığımız değişikliği görelim. Bu arada benim tek diskim olduğu için fdisk’i -l parametresi ile kullandım, sizin birden fazla diskiniz var ise fdisk /dev/sd{a,b,c vs.} gibi kullanabilirsiniz.

Burdan sonra disk’i var olan partition’larda kullanabilir hale getirmek için başka işlemler yapmalısınız. Burda fdisk, ext4, xfs ve lvm gibi konular devreye giriyor. Bir başka makalede bu konulara değinmeye çalışacağız.

* Şimdi ikinci örneği Ubuntu üzerinde yapalım; senaryo aynı,

Hypervisor katmanında var olan diskim 50GB,

fdisk görünümü,

100GB ye extend ediyorum,

Aşağıdaki komutu çalıştırmadan önce tab tuşu ile device’leri görün, sonra komutun tamamını çalıştırın.

Fakat komutu çalıştırdıktan sonra aşağıdaki gibi permission denied uyarısını alacaksınız, bu komutu sadece root çalıştırabilir. O yüzden su – ile root kullanıcısına geçip komutu öyle çalıştırın.

> echo 1 > /sys/class/scsi_device/32\:0\:0\:0/device/rescan

Daha sonra fdisk -l ile diskin genişlediğini görüntüleyin.

Gene burdan sonra disk’i var olan partition’larda kullanabilir hale getirmek için başka işlemler yapmalısınız. Burda fdisk, ext4, xfs ve lvm gibi konular devreye giriyor. Bir başka makalede bu konulara değinmeye çalışacağız.

Linux Sunucuya SSH Bağlantı Sonrası Uyarı Postası Gönderme

Sunucunuza yetkisiz bağlantı yada ssh bağlantılarını takip edebilme gibi bir çok neden için, özellikle root kullanıcıyla bağlantıları takip edebilmek ve gözlemleyebilmek için bağlantı sonrası uyarı isteyebilirsiniz ki genelde bu yöntem e-postayla uyarı olur. Bunun için aşağıdaki aşamaları gerçekleştirdiğinizde, ilgili user için login sonrası uyarı maili alacaksınız. Bu işlemi mailx uygulamasını kullanarak ve ardından .bashrc dosyasında bir kaç satır ekleme ile halledeceğiz.

İlk önce aşağıdaki komutla mailx uygulamasını kuralım.

Debian (aynı aileye mensup tüm sistemlerde geçerlidir) OS’lar için;

> sudo apt install mailx -y

CentOS(RedHat ve aynı aileye mensup tüm sistemlerde geçerlidir ) OS’lar için;

> yum install mailx -y

Ardından kurulum bittikten sonra herhangi bir editör yardımıyla istediğiniz kullanıcının .bashrc dosyasına aşağıdaki kodu ekleyin. Tabi ServerName (Sunucu HostName ile), your@yourdomain.com (Uyarı gönderilecek mail adresi ile) değiştirin. Aşağıda görsel olarak örneklendirilmiştir.

> echo ‘ALERT – Root Shell Access (ServerName) on:’ `date` `who` | mail -s “Alert: Root Access from `who | cut -d'(‘ -f2 | cut -d’)’ -f1`” your@yourdomain.com

.bashrc dosyasını aşağıdaki komut ile görebilirsiniz.

> ls -la

> vi .bashrc

En alt satıra ekledim.

Test edelim ve root ile ssh bağlantısı gerçekleştirelim. Ardından uyarı mailinin geldiğini göreceksiniz.

NoT : Ev kullanıcıları için mail gönderimi gerçekleşmiyecektir çünkü mailing yani spam önünü alabilmek için 25 portu dışarı kapalıdır. Ayrıca PTR kaydı fln gerekiyor derken son kısımda muhtemelen işlem gerçekleşmeyecektir. Yoksa buraya kadar yapılan tüm işlemler doğru.

Bu işlemi başka bir smtp sunucusu üzerinden de yapabilirsiniz. From kısmını da belirtebilirsiniz. Yukarıda .bashrc kısmını aşağıdaki gibi yapılandırarak bu işlemi gerçekleştirebilirsiniz.
> echo ‘ALERT – Root Shell Access (ServerName) on:’ `date` `who` | mail -s “Alert: Root Access from `who | cut -d'(‘ -f2 | cut -d’)’ -f1`” -S smtp=smtp://smtpsunucuip -S from=”gönderici mail adresi” $”gönderilecek mail adresi

https://www.systutorials.com/5167/sending-email-using-mailx-in-linux-through-internal-smtp/

Linux Bash (PS1) Prompt Özelleştirme – KullanıcAdı, Hostname Renklendirme

Bu işlem için atanan parametre PS1 değişkenidir.

Konsol yada ssh ile Linux sunucusuna login olduğunuzda komut satırı genelde standart aşağıdaki gibi açılır.

Ubuntu da aşağıdaki gibi,

Biz bunu özelleştirip kendimize göre daha ilgi çekici hale getireceğiz.

> echo #PS1 derseniz halihazırda kullanılan değişken parametrelerini görebilirsiniz.

Değiştirmek için PS1 değişkenini aşağıdaki gibi komut satırına girebilir. Bu işlemin kalıcı olması içinse kullanıcı profili .bashrc dosyasına yazmalısınız.

> PS1=”\[\033[02;32m\]\u@\H:\[\033[02;34m\]\w\$\[\033[00m\]”

> PS1=”\[\e[31m\]\u\[\e[m\]\[\e[32m\]\H\[\e[m\]\[\e[33m\]\\$\[\e[m\]”

> PS1=”\[\e[31;42m\]\h\[\e[m\]”

> PS1=”\d\[\e[32m\][\[\e[m\]\[\e[31;40m\]\h\[\e[m\]\[\e[32m\]]\[\e[m\] “

> PS1=”${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\]”

gibi gibi,

Bu işlemi kendiniz daha custom hale getirebilirsiniz. Bunu aşağıda paylaşacağım link ile çok kolay ve eğlenceli olarak yapabilirsiniz.

http://ezprompt.net/

http://bashrcgenerator.com/

Linux Ubuntu Üzerinden OpenVPN Client-Server Bağlantısı

Ubuntu üzerinden OpenVpn server’inize bağlantının iki yolundan bahsedeceğim. Biri CLI üzerinden bağlantı şekli diğeri GUI üzerinden bağlantı. Ben vpn server olarak PfSense kullanacağım. PfSense OpenSource firewall olarak kullanmanın yanı sıra birçok amaç için de kullanabilirsiniz. Ben burada ki işlem için vpn server olarak kullanacağım ve yapılandırma dosyalarını ondan elde edeceğim.

İlk önce vpn sunucusundan yapılandırma dosyalarını çekiyorum. Aşağıdaki gibi *.ovpn, *.p12, *.key. Bu arada yapılandırma çeşitleri sunucu tarafında farklılık göstermektedir. Yani ios için, android için, windows için ve standart paket olarak ayrılır.

Daha sonra “ifconfig” yada “ip address” komutu ile ip tablonuzu listeleyin.

> ifconfig

Bir de “route” yada “netstat -nr” yönlendirme tablunuzu listeleyin.

> route

Ardından bize gerekli olan paketi aşağıdaki komut yardımıyla kurarak devam edelim.

> sudo apt install network-manager-openvpn-gnome

Paket kurulumu bittikten sonra ilk olarak CLI üzerinden aşağıdaki komut aracılığı ile vpn server’e bağlantı gerçekleştirelim. Terminali başlatın ve cd komutu yardımıyla vpn dosyalarının bulunduğu dizine gidin.

> cd ve ls komutu

Aşağıdaki komutu çalıştırın. Sudo şifresini girdikten sonra sonra;

> sudo openvpn –config fw-TCP-1194.ovpn

Sizden vpn user ve şifre bilgisini isteyecektir.

Terminalin en son satırında aşağıdaki çıktıyı görürseniz başarılı bir şekilde bağlantı sağlamışsınızdır demektir.

Dada sonra ip’nizi ve yönlendirme tablonuzu yukarıdaki komutlar yardımıyla listelediğinizde sağlamasını yapmış olacaksınız.

NOT1 : Vpn bağlantısı gerçekleştikten sonra terminal açık kalması gerekecek, kapatırsanız bağlantı kopacaktır. Bu değişik atraksiyonlar ile çözülebilir fakat en doğru yöntem komuta “daemon”parametresini eklemektir.

> sudo openvpn –config fw-TCP-1194.ovpn –daemon

NOT2 : Hatta user ve şifre bilgisini girmeden dosyadan okutturarak ta bağlantı sağlayabilirsiniz. Bu işlerinizi kolaylaştırmak için gerekebilir. Bağlantı bilgilerinin olduğu dizinde yer almalı. Aşağıdaki komutla da bunu sağlayabilirisiniz.

> sudo openvpn –config fw-TCP-1194.ovpn –daemon –auth-user-pass VpnBilgiler

Şimgi GUI olarak yapılandırıp, bağlantı sağlayalım;

Aslında ana yapılandırma dosyamız *.ovpn, diğer iki dosya *.p12 ve *.key ise devamı gibi zaten *.ovpn içinde o dosyalar gösterilmiştir. Aşağıdaki screenshot’ta detaylıca açıkladım. GUI yapılandırmasını da gene *.ovpn dosyasının içeriğindeki bilgiler ışığında birebir aynı yaptıktan sonra bağlantı sağlayacağız.

Wi-Fi yayın işaretine tıklayıp, “Edit Connections…” tıklayın.

Ordan “Add” diyoruz.

Daha sonra “OpenVPN” seçeneğini create ediyoruz.

Ardından bilgileri *.ovpn dosyasının içeriğindeki bilgilerle aşağıdaki şekilde girdikten sonra “Advanced” tıklıyoruz.

Daha sonra alttaki seçenekleri check ediyoruz, aslında çok gerekli değil fakat biz gene de yapalım.

Sonra Security kısmından Cipher seçeneğini *.ovpn dosyasında yazan şeklinde belirliyoruz.

TLS Authentication kısmını gene *.ovpn dosyasındaki bilgiler ışığında belirleyip “OK” diyoruz.

OK dedikten sonra aşağıdaki gibi bilgiler kayıt altına alınıyor.

Şimdi VPN bağlantısını gerçekleştirelim. Gene Wi-Fi yayın işaretine tıklayıp, ordan VPN Connections kısmına ve vpn bağlantımıza tıklıyoruz.

VPN user’ın şifresini isteyecektir, alttaki gibi girip OK diyoruz ve bağlanmasını bekliyoruz.

Ve bağlantı başarılı bilgisini aldık.

Başarılı bağlantı sonrası Wi-Fi işaretinin üzerinde kilit şekli oluşur.

Daha sonra “ifconfig” yada “ip address” komutu ile ip bilgilerinizi ve bir de “route” yada “netstat -nr” komutu ile yönlendirme tablomuza bakarak bağlantı doğrulamasını yapabiliriz.

Nginx Reverse Proxy Server (Ters Vekil Sunucu) URL Rewrite Senaryo – Uygulama

Nginx nedir : Rus yazılım mühendisi Igor Sysoev tarafından geliştirilen hafif, stabil, hızlı bir mail istemcisi olarak kodlanan daha sonraları geliştirilerek tüm sunucular için uygun hale getirilen bir web sunucusudur.

Nginx birçok amaç için kullanılabilir. Bunlar, ilk meydana çıkış sebebi olan Mail servisi, Web servisi, Reverse Proxy(bu özellik genelde web sayfalarını cache’lemek için kullanılır ve böylelikle sunucu yükünü azaltıp daha hızlı ve stabil çalışmasını sağlar) ve Load Balancer olarak sıralanabilir.

Daha fazla detay için https://nginx.org/en/ linkini ziyaret edebilirsiniz.

Proxy Server(Vekil Sunucu) mantığını açıklamak gerekirse, istemci tarafında bulunan ve web sunuculara çıkış için yani bağlanırken arada bir vekil görevini görmesidir. Reverse Proxy(Ters Vekil) ise sunucu tarafında bulunan ve istemcilerin isteklerine cevap verip web sunuculara bağlanıp istemcilere iletmesidir.

Biz şimdi uygulama senaryomuzda Nginx’i URL Rewrite yapması için kullanacağız. İleride uygulamayı yaptıkça kafanızda daha da oturacaktır. Url nedir aşağıda değinelim.

URL nedir : “Uniform Resource Locator” teriminin baş harflerinden oluşan kısaltmadır. Aslında “adres” dediğimiz şeydir.

URL Rewrite nedir : “Url Yeniden Yazma” yani website Url’lerinin uzun ve karmaşık yapısını daha anlaşılır hale getirme işlemine verilen isimdir.

URL Redirect(Yönlendirme) nedir : Bir URL’ye gelen istekleri başka bir URL’ye iletme yani geçici veya kalıcı olarak yönlendirme işlemidir. URL yönlendirme birçok sebep için kullanılabilir.

Şimdi uygulama senaryomuzu yazalım ve niye böyle bir senaryoya ihtiyaç duyarız bunu belirtelim. Herşeyden evvel ben tüm işlemler için 3 adet sanal makina(CentOS, Ubuntu, Fedora) hazırladım ve o sanallar üzerinden senaryoyu gerçekleştireceğiz. Test domain’imiz webmin.test olarak kullanacağız.

1. Adım : Web Servers olarak kullanacağımız CentOS Sunucu kurulumu gerçekleştirilecek. IP yapılandırması (192.168.1.100). Şimdi bu sunucu üzerinde Apache ile webden hizmet veren birden fazla servis çalışıyor olabilir ve bu servisler 80 değil de hepsi kendine özgü port’lardan erişiliyor olabilir. Ben test için bu sunucu üzerine 10000 portundan çalışan Webmin servisini kuracağım. Siz aynı sunucu üzerine farklı portlardan çalışan birden fazla servisi kurabilirsiniz. Jira, confluence vs gibi yada manuel yapılandırmış servisler gibi gibi.

2. Adım : Reverse Proxy Server için Ubuntu Server kurulumu gerçekleştirilecek. IP yapılandırması (192.168.1.101). Bu sunucu üzerine Nginx kurulumu gerçekleştirilip URL Rewrite için yapılandırılacak.

3. Adım : Tüm bu işlemleri test edeceğimiz Client kullanıcı olarak Fedora kurulumu gerçekleştirilecek.

Peki niye böyle bir şeye ihtiyaç var kısmını açıklamaya gelecek olursak. 1. Adımda farklı portlardan çalışıp webden hizmet sunan birden fazla servis olabilir. Tabi biz bu servislere erişimi Ip üzerinden değilde DNS’te kaydını oluşturacağımız domain üzerinden yapacağız FAKAT servis/servisler farklı portlardan hizmet verdiği için bilindiği gibi http://domain_name:port_numarası şeklinde erişmelidir ki yoksa web servisi default web sayfasını yansıtacaktır. Tabi kullanıcılara port ezberletip şöyle böyle erişin demek mümkün olmayacağı için 2. Adımdaki Reverse Proxy servisini kurup sonra yapılandırıp o işi arka planda Nginx’e yaptıracağız. Tabi böylelikle Web Server’ın yükünü de hafifletmiş olacağız.

Hemen senaryonu adım adım gerçekleştirelim.

1. Adım :

CentOS sunucu kurulumu gerçekleştirilecek. Aşağıdaki link yardımıyla bunu yapabilirsiniz.

http://www.fatlan.com/centos-7-minimal-kurulum/

Daha sonra Ip yapılandırmasını senaryodaki gibi yapılandırın. Aşağıdaki linkten yardım alabilirsiniz.

http://www.fatlan.com/centos-7-network-ayarlari/

Ardından ben test için 10000 portundan çalışan Webmin servisini kuracağım. Siz isterseniz kendi bildiğiniz farklı porttan çalışan webden hizmet veren bir yada birden fazla servisi kurup çalışır vaziyete getirebilirsiniz. Yada manuel olarak Apache kurup onun üzerine bina edebilirsiniz.

http://www.fatlan.com/webmin-nedir-nasil-kurulur-centos-7-ve-6/

2. Adım :

Ubuntu Server kurulumu gerçekleştirilecek. Aşağıdaki link yardımıyla bunu yapabilirsiniz.

http://www.fatlan.com/ubuntu-server-14-04-lts-kurulumu/

Daha sonra Ip yapılandırmasını senaryodaki gibi yapılandırın. Aşağıdaki linkten yardım alabilirsiniz.

http://www.fatlan.com/ubuntu-14-04-lts-network-ayarlari/

Şimdi Nginx kurulumu gerçekleştirin. Gene alttaki linkten yardım alabilirsiniz.

http://www.fatlan.com/linux-ubuntu-centos-server-uzerine-nginx-kurulumu-nginx-nedir/

Ve şimdi Nginx’i Reverse Proxy(Ters Vekil) olarak yapılandıralım.

Aşağıdaki komutla yapılandırma dosyasının dizin’ine gidelim.

> cd /etc/nginx/sites-available/

Yapılandırma dosyamızı oluşturalım.

> touch webmin.test

Şimdi listeleyelim.

> ls

Daha sonra ise dosyanın içine herhangi bir editör yardımıyla girip aşağıdaki şekilde yapılandıralım.

> sudo vi webmin.test

server {

             listen 80;

             server_name webmin.test;

             return 301 https://192.168.1.100:10000;                  —> Bu kısım webmin https(443) ten çalıştığı için webmin servisine özel eklenmiştir. Http(80) çalışan servislerde bu satırı eklemeyiniz.

location / {

                  proxy_pass https://192.168.1.100:10000/;

                  proxy_set_header X-Forwarded-Host $host;

                  proxy_set_header X-Forwarded-Server $host;

                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                  proxy_set_header X-Real-IP $remote_addr;

                    }

}

 

Ardından yapılandırmamızın etkin olabilmesi için sembolik link oluşturalım.

> sudo ln -s /etc/nginx/sites-available/webmin.test /etc/nginx/sites-enabled/webmin.test

İşlemin doğruluğunu teyit edelim.

>ls -l /etc/nginx/sites-enabled/webmin.test

En son Nginx servisini reboot edelim.

> systemctl restart nginx.service yada sudo /etc/init.d/nginx restart

3. Adım :

Herşey tamam, şimdi sıra test etme aşamasında. Bunun için webmin.test domaini için dns’te kaydını oluşturup, istekleri nginx’e göndereceğiz, her şey doğru yapılandırıldıysa zaten arka planda nginx request’i işleyip web sayfasını kullanıcıya gönderecektir. Tabi biz tüm bu işlemler için yerel dns olan hosts dosyasını kullanacağız.

İlk olarak aşağıdaki komutla kaydımızı oluşturuyoruz. Dosyayı kaydedip, çıkıyoruz.

> vi /etc/hosts

Şimdi ping atıp test edelim ve başarılı bir şekilde çözümlediğini görelim.

> ping webmin.test

 

Şimdi sıra geldi tarayıcı üzerinden hizmete erişim. Adres çubuğuna webmin.test/ yazıp enter’a basalım ve başarılı bir şekilde bağlandığımızı görelim.

Normalde işlem tamam ve istediğimiz senaryo gerçekleşti fakat burada bilgi amaçlı olarak şundan da bahsedelim Webmin https(443) üzerinden çalıştığı için kullanıcı adı ve şifreyi yazdığınız zaman login olamayacaksınız ve aşağıdaki uyarıyı alacaksınız.

Bu uyarıyı almamak ve login olabilmek için biz yukarıda “return 301 https://192.168.1.100:10000;” satırını ekledik. Yani bu satır eklenince Webmin’e login olunabiliniyor. Yani Http(80)’de çalışan bir servis olsaydı ne bu sorun olacaktı ne de bu satırı ekleyecektik. Aslında burada bir trik var Nginx’te virtualhost dosyasına 2. Adımda yukarıdaki kadar satır eklemek yerine Webmin servisi zaten 443’ten çalıştığı için “return 301 https://192.168.1.100:10000SADECE bu satırla bile işimizi çözüyor olacaktık fakat adres çubuğunda, bağlantı gerçekleştiğinde domain adı değil de ip bilgileri yer alıyor olurdu. Aşağıdaki gibi. Halbuki 101 makinesine istek attık.

Daha fazla bilgi için https://www.nginx.com/blog/creating-nginx-rewrite-rules/ linkini ziyaret edebilirsiniz.

Linux Ubuntu/CentOS Server Üzerine Nginx Kurulumu

Nginx nedir : Rus yazılım mühendisi Igor Sysoev tarafından geliştirilen hafif, stabil, hızlı bir mail istemcisi olarak kodlanan daha sonraları geliştirilerek tüm sunucular için uygun hale getirilen bir web sunucusudur.

Nginx birçok amaç için kullanılabilir. Bunlar, ilk meydana çıkış sebebi olan Mail servisi, Web servisi, Reverse Proxy(ters vekil, bu özellik genelde web sayfalarını cache’lemek için kullanılır ve böylelikle sunucu yükünü azaltıp daha hızlı ve stabil çalışmasını sağlar) ve Load Balancer olarak sıralanabilir.

Sunucuya konsol yada ssh üzerinden login(root kullanıcısı değilseniz komutların başına “sudo” ekini eklemeyi unutmayın) olduktan sonra alttaki komutu çalıştırın.

> sudo apt update

Daha sonra Nginx kurulumu için aşağıdaki komutu çalıştırın.

> sudo apt install nginx

Şimdi Nginx kuruldu, aşağıdaki komut ile servisin durumunu kontrol edelim.

> systemctl status nginx.service

Servisimiz çalışıyor ve etkin durumdadır.

Aksi durumlarda aşağıdaki komut setlerini kullanabilirsiniz. Nginx yönetim komutları.

> sudo systemctl stop nginx.service                      –> Nginx Servisini durdurur.

> sudo systemctl start nginx.service                     –> Nginx servisini başlatır.

> sudo systemctl restart nginx.service                  –> Nginx servisini yeniden başlatır.

> sudo systemctl reload nginx.service                  –> Nginx servisini yeniden yükler.

> sudo systemctl enable nginx.service                  –> Nginx servisini etkin duruma getirir.

> sudo systemctl disable nginx.service                 –> Nginx servisini devredışı bırakır.

Bu arada Nginx’i web server olarak çalıştırmak için sistem içerisinde Güvenlik duvarı etkin ise firewall yapılandırmasını yapmalısınız, http(80) ve çalışacaksa https(443) port’larını açmalısınız.

> sudo ufw app list                                         –> Güvenlik duvarında yapılandırılmış uygulamaları bu komutla görebilirsiniz.

> sudo ufw allow/deny ‘Nginx HTTP’           –> Bu komutla güvenlik duvarında uygulamaya izin verebilirsiniz yada kapatabilirsiniz.

Nginx ayarlamaları için dosya ve dizinler aşağıdaki gibidir;

> /var/www/html                     –> Web sayfalarının dosyalarının barındırıldığı default dizin yolu, isterseniz kendiniz belirlediği bir dizin yoluda belirleyebilirsiniz.

> /etc/nginx                             –> Nginx servisinin yapılandırması için kullanılan dosyaların tutulduğu temel dizin yoludur.

> /etc/nginx/nginx.conf          –> Nginx servisinin yapılandırma dosyasıdır.

> /etc/nginx/sites-available/   –> Her bir site için kullanılacak olan yapılandırma dosyalarının saklandığı dizindir.

> /etc/nginx/sites-enabled/     –> Her bir site için kullanılacak olan yapılandırma dosyalarının çalışması(etkin olması) için “/etc/nginx/sites-available/” den buraya link’leneceği dizin yoludur.

> /etc/nginx/snippets             –> Nginx servisi için farklı yapılandırmalar için kullanılabilecek yapılandırma dosyasıdır.

Nginx Log’larının tutulduğu dizin ve dosyalar da aşağıdaki gibidir;

> /var/log/nginx/access.log           –> Tüm isteklerin log’landığı dosyadır.

> //var/log/nginx/error.log             –> Tüm hataların log’landığı dosyadır.

Ayrıca bu link’i inceleyebilirsiniz https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04

Evet, Nginx servisinin ne olduğunu anladık ve kurulumu gerçekleştirmeyi öğrendik. Bundan sonra amaca yönelik olarak yapılandırıp kullanmak kalıyor. Örneğin site ekleme, yapılandırıp, aktif çalışmasını sağlama gibi, bir sonraki makalelerde yeri geldikçe bahsedeceğiz.

Disk’iniz SSD mi yoksa HDD mi Öğrenmenin Yolları

SSD ile HDD nedir yada arasındaki fark a çok girmeden direk sistem üzerinde bunu nasıl teyitli bir şekilde öğrenebiliriz bunun yollarını anlatmaya çalışacağım. İlk öncesinde şunu bilmek gerekiyor ki rotational denilen bir değer vardır ve bu değer sayesinde diskimizin SSD yada HDD mi olduğunu elde edeceğiz. Yani

rotational(ROTA) değeri 1 ise HDD

rotational(ROTA) değeri 0 ise SSD dir.

Bu değeri elde etmenin bir kaç yolu var ve sırasıyla bahsedeceğiz. Ben işlemleri iki makina üzerinde yapacağım biri gerçek makina SSD li, diğeri sanal makina HDD li olan ki hepsini görün ve aklınızda soru işareti kalmasın.

Birinci yöntem :

lsblk komutu, bu komutu aşağıdaki parametreler ile çağırdığınızda size ROTA bilgisini dönecektir.

> lsblk -do name,rota

Sanal makina, ROTA değeri 1 döndüğünden anladık ki bu HDD

> lsblk -do name,rota yada lsblk -d -o name,rota

Gerçek makina, ROTA değeri 0 döndüğünden anladık ki bu SSD

İkinci yöntem :

Gene lsblk komutu ile ama bu sefer “t” parametresi ile

> lsblk -t

Sanal makina, ROTA değeri 1 döndüğünden anladık ki bu HDD

> lsblk -t

Gerçek makina, ROTA değeri 0 döndüğünden anladık ki bu SSD

Üçüncü yöntem :

Smartctl komutu ile ki burada direk “Rotation Rate:Solid State Device” ibaresini görmelisiniz.

> smartctl -a /dev/sd(a dan z ye sizin makinanızda karşılık gelen değer)

Sanal makina, Rotation Rate karşılık ibare bulunmuyor, SSD DEĞİL

> smartctl -a /dev/sd(a dan z ye sizin makinanızda karşılık gelen değer)

Gerçek makina, Rotation Rate karşılık ibare var ve disk SSD

Dördüncü yöntem :

Bu yöntem ise cat komutu yardımıyla direk dosyadan rotational değerini elde ederek

> cat /sys/block/sd(a dan z ye sizin makinanızda karşılık gelen değer)

Sanal makina, rotational değeri 1 döndüğünden anladık ki bu HDD

> cat /sys/block/sd(a dan z ye sizin makinanızda karşılık gelen değer)

Gerçek makina, rotational değeri 0 döndüğünden anladık ki bu SSD

Ubuntu (Server or Desktop) Automatically Update On/Off

Ubuntu otomatik update açıp/kapatmanın bir kaç yolundan bahsedeceğim.

İlk olarak katılımsız(kullanıcı müdahalesi olmadan, kendiliğinden yüklenen otomatik kurulumlardır.) yükseltme metodundan bahsedelim. Buraya genelde kullanıcı müdahelesi gerekmemektedir, daha çok uzman mod gibi desek yanlış olmaz. Ama biz genede bilgi olması için bahsedelim. Sistem root ile login olduktan sonra(eğer root yetkisine sahip olmayan başka bir user ile login olduysanız komutların başına ‘sudo’ ekini ekleyin.) aşağıdaki komutu çalıştırın. Ben editör olarak vi komutunu kullandım, siz isterseniz başka bir favori komutunuzu(nano, vim gibi) kullanabilirsiniz.

>vi /etc/apt/apt.conf.d/50unattended-upgrades

uu1

Çıktı aşağıdaki gibi olacaktır. Güvenlikle alakalı olanı hariç diğerleri devre dışıdır. Ayrıca bazı paketler karalisteye alınarak devredışı bırakılabilir(Sistem // işaretini yorum satırı olarak kabul edecektir.)

uu2

İkinci olarak işletim sistemi seviyesinde kullanıcıların müdahele edebileceği method olarak aşağıdaki komutu çalıştırın.

>vi /etc/apt/apt.conf.d/10periodic

uu3

Çıktı aşağıdaki gibi olacaktır. Burada dikkat edilmesi gereken husus;

APT::Periodic::Update-Package-Lists “1” ->Otomatık Update Açık

APT::Periodic::Update-Package-Lists “0” ->Otomatık Update Kapalı  yaptıktan sonra kaydedip çıkın ve işlem bu kadar.

uu4

Üçüncü yöntem ise GUI(Grafik arayüzü) ile nasıl yapılır bakalım ve bitirelim. Sisteme GUI ile login olduktan sonra, System Settings menüsüne girin.

uu5

Software & Update butonuna tıklayın.

uu6

Ardından Update tabından Automatically check for updates kısmını Never yapın.

uu7

Şifre bilgisini girdikten sonra, Close deyip çıkın ve işlem bu kadar.

uu8

uu9

uu10

Ubuntu Server 14.04 GUI (Grafik Arayüzü) Kurulumu

Sisteme root ile login olduktan sonra aşağıdaki komutları sırasıyla çalıştırın. Root hakkına sahip olmayan başka bir user ile login olduysanız komutun başına ‘sudo’ ekini ekleyin. Ubuntu için iki tür GUI kurulumundan bahsedeceğim. ilk olarak ubuntu unity desktop kurulumuna bakalım. Aşağıdaki komutu çalıştırarak ubuntu unity desktop GUI kurulumunu gerçekleştirebilirsiniz.  Ardından Ubuntu klasik masaüstü GUI kurulumundan bahsedeceğim,

>apt-get install ubuntu-desktop –y

ugui2

Yükleme işlemi biraz sürecektir. Daha sonrasında sistemi reboot etmeden aşağıdaki komutu çalıştırarak GUI moda geçebilirsiniz. Sorun oluşması durumunda reboot la düzelecektir.

>startx

ugui3

Ve başarılı kurulum sonrası sisteme GUI arayüzü ile login olalım.

ugui4

Ve Ubuntu unity desktop

ugui5

Gnome Klasik masaüstü kurulumu için ise aşağıdaki komutu kullanabilirsiniz. Root hakkına sahip olamayan bir user ile login olmuşsanız komut başına ‘sudo’ ekini ekleyin. Login olduğunuz user’ın şifresini tekrar soracaktır, girdikten sonra yükleme başlayacaktır.

>sudo apt-get install gnome-session-fallback –y

ugui6

Kurulum bittikten sonra logout olun.

ugui7

Oturum açma ekranında aşağıda görüldüğü gibi küçük ubuntu logosuna tıkladıktan sonra masaüstü menüsü açılacaktır. Seçimi yapıp login olduktan sonra sistem klasik GUI ile açılacaktır.

ugui8

ugui9

Ve Ubuntu Gnome klasik desktop

ugui10

Vmware Tools Yükleme – Ubuntu Server 14.04 LTS

İlk önce bilgisayara CD takar gibi Vmware Tools’u sisteme Install/Upgrade tıklayarak entegre ediyoruz.

uvm2

Karşımıza gelen uyarıya OK dedikten sonra,

uvm3

Görüntünün aşağıdaki olması gerek.

uvm4

Herşeyden önce şunu belirtmek gerekir. Ubuntu’yu yeni kurduysanız root kullanıcısı pasif durumda gelecektir. Kurulum esnasında oluşturduğunuz user ise root haklarına sahip olmadığı için sisteme bu user ile login olduktan sonra bazı komutları kullanabilmek için komutların başına sudo(geçici root yetkisi verir) eklemeniz gerekmektedir. Eğer root kullanıcısı ile login olursanız komutların başındaki sudo ekini yazmadan komutları çalıştırmalısınız.

Ubuntu’da root kullanıcısını aktif etme ve ssh yetkisi verme linkini inceleyebilirsiniz.

Daha sonra aşağıdaki komut ile sisteme mount edelim.

>sudo mount /dev/cdrom /mnt/

Bu komutu çalıştırdıktan sonra ubuntu kullanıcısı için tekrar şifre girmenizi isteyecektir, girdikten sonra çıktı aşağıdaki gibi olmalıdır.

uvm5

Daha sonra mnt klasörüne girmek için aşağıdaki komutu çalıştırın.

>cd /mnt

Çıktı aşağıdaki gibi olmalıdır.

uvm6

Daha sonra mnt klasörünün içindeki Vmware tools dosyasını tmp klasörüne aşağıdaki komut ile kopyalayın.

>sudo cp VMwareTools-9.4.10-2092844.tar.gz /tmp/

uvm7

Daha sonra tmp klasörünün içine girin.

>cd /tmp/

uvm8

Ardından sıkıştırılmış Vmware dosyasını tmp klasörünün içine aşağıdaki komut ile açın.

>tar -zxvf VMwareTools-9.4.10-2092844.tar.gz

Dosyalar hızlı bir şekilde aşağıya doğru listelenecektir.

uvm9

Aşağıdaki komut ile setup klasörünün içine girelim.

>cd vmware-tools-distrib

uvm10

Şimdi aşağıdaki komut ile kurulum dosyamızı çalıştıralım.

>sudo ./vmware-install.pl

uvm11

Daha sonrasında gelen uyarılara göre enter,  yes ve no diyerek başarılı bir kurulum gerçekleştirebilirsiniz.

uvm12

Daha sonrasında sisteminiz reboot edin.

uvm13

Sistem yeniden başladıktan sonra aşağıdaki görüntüde Vmware Tools’un başarılı bir şekilde yüklendiğini görebilirsiniz.

uvm14

Ubuntu 14.04 LTS Network Ayarları

Sabit ip yapılandırmak için,

>vi /etc/network/interfaces

ubn1

İnterface’ye  girdikten sonra ilk interface olan eth0 aşağıdaki gibi yapılandırıyoruz.

>auto eth0

>iface eth0 inet static

>address 192.168.1.34

>netmask 255.255.255.0

>network 192.168.1.0

>broadcast 192.168.1.255

>gateway 192.168.1.1

>dns-nameservers 8.8.8.8

ubn2

Daha sonra servisi restart edelim.

>ifdown eth0 && ifup eth0

Dhcp tarafından ip ataması yapılandırmak için,

>vi /etc/network/interfaces

İnterface’ye  girdikten sonra ilk interface olan eth0 aşağıdaki gibi yapılandırıyoruz.

>auto eth0

>iface eth0 inet dhcp

Daha sonra servisi restart etmek gerekir.

>ifdown eth0 && ifup eth0

Dns ayarları yukarıdaki görüldüğü gibi interface içine girilebileceği gibi,

>vi /etc/resolv.conf

Dosyasında da belirtilebilir.

>nameserver 8.8.8.8

ubn3

Daha fazla ayrıntıya bu linkten ulaşabilirsiniz.

SNMP Kurulumu ve Ayarları – Ubuntu Server 14.04

Simple Network Management Protocol(Basit Ağ Yönetim Protokolü) Geniş yapıya sahip ağ yapılarında bulunan cihazları denetlemek için kullanılır. Cihaz üzerindeki sıcaklıktan, cihaza bağlı kullanıcılara, internet bağlantı hızından sistem çalışma süresine kadar çeşitli bilgiler SNMP’de tanımlanmış ağaç yapısı içinde tutulurlar.

Kuruluma geçmeden önce bu link‘i inceleyebilirsiniz.

Kurulumu başlatmak için aşağıdaki komutu çalıştırın.

>apt-get install snmp snmpd –y

usmp1

Daha sonra vi editörünü kullanarak aşağıdaki komutla SNMP’yi konfigüre edebilirsiniz.

>vi /etc/snmp/snmpd.conf

usmp2

SNMP v1 ve SNMP v2 protokolleri bir topluluk anahtarı (community string) ile sorgulama yapar ve varsayılan olarak “public” ve “private” dir. UDP port 161 den çalışır.

Konu hakkında daha fazla bilgi için bu link‘i incelemenizi tavsiye ederim.

Dosyanın içine Community(Topluluk) ekliyorum.

>rocommunity  fatlan(community_string)

>syslocation  “Istanbul/Turkiye”  yada  “fatlan Bilisim” gibi

>syscontact  email@domain_adresi   gibi…

Daha sonra servisi yeniden başlatın ve işlem tamam.

>service snmpd restart

usmp3