Esasında Open Virtualization Manager(oVirt), Redhat ya da Oracle Virtualization Manager gibi hypervisor ürünleri iç içe sanallaştırma yöntemini pek önermediğinden varsayılanda bu yapı kapalı gelmektedir.

Fakat bizim özellikle KVM ve benzeri hypervisorleri gerektiren Docker Swarm, Kubernetes(MiniKube), OKD(MiniShift), Openstack, Proxmox ve benzeri ürünleri hem yetersiz kaynak durumundan hem de gereksiz kaynak tüketmeden hızlıca bir takım testler yapabilmek için Nested VM özelliğini aktif ederek utilization’dan kar elde edebiliriz.

İlk olarak cluster ortamımıza dahil edilen tüm host’larda aşağıdaki gibi “Hostdev Passthrough” ve “Nested Virtualization” onay kutusunu işaretliyoruz.

Compute — Host menüsünden Edit Host yapıp, Kernel tabından işaretlermeleri yapabiliriz.

Bu işi yapabilmek için en temel olarak elinizde servise ait paketin ve o pakete ait bağımlı paketlerin(dependency) hepsinin olması gerekiyor. Tabi bu bir işlem. İkinci aşama olarak elinizde paketler mevcut ise dpkg komutu ile kurulum sağlayabilirsiniz ama herhangi bir sebepten ötürü aptpaket yöneticisine kullanarak kurmanız gerekiyorsa buda mümkün.

Bunun için ilk olarak internetli bir makineye ihtiyacımız var. Bu aşamada kurulum yapacağımız ilgili servis için paketi ve paket bağımlılıklarını(dependency) bulup, ilgili paketleri toparlamamız gerekiyor. Beraberinde apt’yi kullanabilmek için bir iki işlem yapacağız.

Neler yapacağız:

İlk olarak internet’li makinede;

1- Eğer kuracağımız paket varsayılan(default) olarak ubuntu ya da debian repo’sunda yoksa paket…

Konu ile ilgili daha önceden Python ile yazılmış online full backup script’ini kullanarak bu işlemi gerçekleştireceğiz.

https://github.com/wefixit-AT/oVirtBackup adresinden bu script’i indirebilirsiniz.

BACKUP

Tek yapmamız gereken bu tool’u kendi ortamımıza göre uyarlayıp, daha sonro crontab ile otomatik hale getirmek. Şimdi aşağıdaki adımlarla bu işlemin nasıl yapılacağına bir bakalım.

İlk olarak oVirt ortamına yedeklemi işlemini tetikleyeceğimiz(python script’inin çalıştıracağımız) bir makine kurup ayağa kaldırıyoruz. Ben CentOS bir makine kurdum. Ardından python çalıştırabileceğimiz paketleri kuruyoruz(ovirt-engine-sdk-python, gcc, python-devel, openssl-devel, libxml2, libxml2-devel, python36, python36-pip, ovirtsdk, curl-devel, pip3 vs. — Script’teki requirements.txt dosyasını okuyunuz.). …

Netcat ile iki bilgisayarlar arası veri transferi nasıl yapılır ona bakacağız. Bu işlemi makineler arasında port açarak gerçekleştireceğiz.

Alıcı bilgisayar(receive)’da aşağıdaki komut çalıştırılarak port(3434) aktif edilip dosyam.txt için tünel açılır.

  • nc -l -p 3434 > dosyam.txt

Gönderici(sender) makinede’de aşağıdaki komut çalıştırılarak dosyam.txt aktarılır.

  • nc 192.168.1.12 3434 < dosyam.txt
  • How to configure firewalld to allow docker containers free access to the host’s network ports.?

Burada dikkat etmeniz gereken container için host’ta match ettiğiniz portu güvenlik duvarı rule’sinde belirtmelisiniz. Ben 8080 portunu host’ta eşleştirdiğim için onu rule’de tanımlayacağım. Yani tarayıcıdan 8080 üzerinden contaniner’a erişeceğim.

Sırasıyla aşağıdaki komutları çalıştırmanız yeterlidir.

firewall-cmd –permanent –zone=trusted –change-interface=docker0
firewall-cmd –permanent –zone=trusted –add-port=8080/tcp
firewall-cmd –reload

  • Enable forwarding from docker containers to the outside world.?

Docker Container’ınızın internete çıkabilmesi için aşağıdaki işlemleri yapmanız yeterlidir.

systctl komutu ile net.ipv4.conf.all.forwarding değerini 1 yapmalısınız. Ardından iptables yada firewalld forward rule’sini tanımlamanız yeterli.

sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT

ya da

firewall-cmd –direct –add-rule ipv4 filter FORWARD 0 -i docker0 -o ens3 -j ACCEPT
firewall-cmd –reload

İlgili sunucuda Docker kurulumunun yapıldığını var sayarak konuya giriş yapalım. Docker Compose up edildiğinde kendisi için farklı bir bridge oluşturup network yapılandırmalarını o bridge üzerinden yapmaktadır. Fakat biz Docker kururken varsayılan olarak gelen ya da custom olarak bizim oluşturuduğumuz subnet‘teki network bridge‘yi kullanarak Docker Compose uygulamalarını up yapmak istiyoruz. Bunun için aşağıdaki yönergeleri takip etmeniz yeterlidir.

İlk önce aşağıdaki komut ile Docker Network çıktımıza bakalım(biz bridge sanal aygıtını kullanacağız).

  • sudo docker network ls

Docker Compose kurulum işlemi için aşağıdaki komutları sırasıyla çalıştırmanız yeterlidir;

  • sudo curl -L “https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
  • sudo chmod +x /usr/local/bin/docker-compose
  • sudo docker-compose –version

Custom bridge

WordPress blog’larınızın admin sayfasına yapılan bruteforce ataklarından oldukça sıkılmış olabilirsiniz ki varsayılan olarak wp-admin eki ile bağlandığınız admin panel sayfasının herkes için açılmasını yasaklamanız güvenlik adına yapmanız gereken en mantıklı hareketlerden biri olacaktır.

Bunu aşağıdaki yapılandırmaları yaparak plugin kurmadan, basitçe sağlayabilirsiniz.

İlk olarak “nano /etc/httpd/conf/httpd.conf” dosyasını nano ile edit ediyoruz. Siz farklı bir editörde seçebilirsiniz.

Ardından aşağıdaki gibi sayfayı açabilme yetkisine sahip olacak(allow) ip adreslerini ekleyin. Yazacağınız ip adreslerinin dışındaki ip adresleri wp-admin sayfasını açamayacaktır. Yetkin yok uyarısı verecektir.

<Directory “/var/www/html/fatlan.com/wp-admin”>
Order allow,deny
Allow from 19.17.77.0/24
Allow from 10.1.11.0/24
Allow from 10.1.90.0
</Directory>

Son olarak ise apache(httpd) servisini restart edin

> systemctl restart httpd.service

ya da

> /etc/init.d/httpd restart

oVirt üzerine Windows bir sunucu kurulurken “Network Interfaces”, “e1000” ve “Disks”, “IDE” olarak gelmektedir. Aksi bir yapılandırma yaparsanız sunucunuz açılmayacaktır. Bu durum ayrıca makinanın performansınıda etkilemektedir. Bu nedenle “Network Interfaces”, “VirtIO” ve “Disks”, “VirtIO-SCSI” yapmalısınız. Böylelikle makineniz düzgün bir performansta çalışacaktır.

Bu yapılandırmayı yapabilmeniz için ise Windows sunucuyu kurduktan sonra oVirt Guest Agent Driver(oVirt-toolsSetup)’ını kurmalısınız. İlk önce oVirt-tools-setup.iso (https://resources.ovirt.org/pub/ovirt-4.2/iso/oVirt-toolsSetup/) dosyasının ilgili versiyonunu indirip, makineye CD Drive olarak bağladıktan sonra tipik *.exe kurulumu gerçekleştirmelisiniz. Kurulum bittikten sonra,

Network ayarını e1000’den VirtIO’ya çekin.

Disk ayarlarını ise IDE’den VirtIO-SCSI yapın.

Hemen hemen tüm saldırılar ağda ip’lerin kullanımı keşfedildikten ve öncesinde çeşitli taramalardan geçirildikten sonra zafiyetler tespit edilip, saldırılar başlatılabilir. IP Flooding(ip seli) ya da DDOS gibi saldırılardan korunmalıdır ki aslında DDOS, saldırı türlerinden en berbat olanı ve hala dünya üzerinden önlemeyle alakalı tam bir çözümü olmayan bir yöntemdir. Bu durumda network üzerinde sunucular dış dünyaya gizlemelidir. ICMP paketlerini gizlemeniz bunun için bir başlangıç olacaktır ki zaten bu paketin mesajları kritik sunucular için gizlenmelidir.

Bu yapılandırma yukarıda güvenlik duvarları aracılığı ile yapılabilir fakat burada bahsedeceğimiz yöntemde bu işlemi Linux kernel modülünde de yapılabilir olduğunu göstermektir ki Linux’un kernel modüllerinde bunun gibi…

İlk önce epel reposu kurulur.

> yum install epel-release -y

Ardından guest agent kurulumu yapılır.

> yum install ovirt-guest-agent-common -y

Daha sonra servis aktif edilir.

> systemctl enable ovirt-guest-agent.service

> systemctl start ovirt-guest-agent.service

> systemctl status ovirt-guest-agent.service

Fatih ASLAN

🐧 🌥 🐳 ☸️ Linux/DevOps Administrator fatlan.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store