Docker Container’a erişim için Host’un Nic portu üzerinden erişim izni – Firewalld port açma / Docker Container’ın İnternete Yönlendirme işlemi

  • 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

Docker Compose Kurulum/Kaldırma ve Custom Bridge ile Çalıştırma İşlemleri

İ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 ile Docker Compese yml çalıştırma(örnek wordpress yml dosyası – docker-compose up -d);

version: ‘3.3’
services:
db:
image: mysql:5.7
restart: always
volumes:
– db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
network_mode: bridge

wordpress:
image: wordpress
restart: always
volumes:
– ./wp_data:/var/www/html
ports:
– “8080:80”
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
network_mode: bridge
depends_on:
– db

volumes:
db_data:
wp_data:

networks:
default:
external:
name: bridge

Docker Compose kaldırma işlemi;

  • sudo rm /usr/local/bin/docker-compose

21-22 Eylül 2019 – Ücretsiz Open Source ve Linux Administrator Eğitim Etkinliği Hakkında

Sosyal sorumluluk çerçevesinde üstlendiğim projem ve aynı zamanda Opensource dünyası ile beraber Linux sistemlerin öneminin, gerekliliğinin, farkındalığının oluşturulması, sektörde çalışan ya da öğrenci genç arkadaşlara yön vermek, farkındalık oluşturmanın yanısıra bilgi ve becerileri arttırmak amacıyla ücretsiz olarak Linux Administrator eğitimini 21-22 Eylül 2019 tarihlerinde gerçekleştirdim.

Eğitimi RedHat ve LPI içeriklerinden derleyerek, RedHat/CentOS ve Ubuntu/Debian dağıtımlarını taban alarak, aralarındaki farkları belirterek, karşılaştırmalı olarak, çok kapsamlı, tüm yönleriyle ve aynı zamanda IT sektörünün genel olarak tüm alanlarına hitap eden, dolu dolu ve zengin bir içerikle iki günlük yoğun bir tempo ile uygulamalı olarak sunmaya çalıştım.

Başlangıç(temel) seviye ve orta seviye olan bu içerik, ileri seviye linux bilgilerine de göz kırpmaktadır.

Ücretsiz olan bu eğitime katılım formunu oluşturup, formu linkedin hesabımdan yayınlayarak, formu dolduran arkadaşlar arasından katılımcı listesini belirledim.

İki güne sığmayacak kadar kapsamlı ve benzersiz olarak, büyük emekle hazırladığım bu eğitimi bir şekilde sığdırmaya çalıştım. Verimli olabildiysem, farkındalığı oluşturabildiysem ne mutlu.

Son olarak iki günün sonunda ve özeti olarak, oyun tadında, eğlenceli bir uygulama gerçekleştirdik. Tüm puanları toplayıp ilk üçe giren arkadaşları tebrik ederim.

3-4 Ağustos 2019 – Ücretsiz Open Source ve Linux Administrator Eğitim Etkinliği Hakkında

Sosyal sorumluluk çerçevesinde üstlendiğim projem ve aynı zamanda Opensource dünyası ile beraber Linux sistemlerin öneminin, gerekliliğinin, farkındalığının oluşturulması, sektörde çalışan ya da öğrenci genç arkadaşlara yön vermek, farkındalık oluşturmanın yanısıra bilgi ve becerileri arttırmak amacıyla ücretsiz olarak Linux Administrator eğitimini 3-4 Ağustos 2019 tarihlerinde gerçekleştirdim.

Eğitimi RedHat ve LPI içeriklerinden derleyerek, RedHat/CentOS ve Ubuntu/Debian dağıtımlarını taban alarak, aralarındaki farkları belirterek, karşılaştırmalı olarak, çok kapsamlı, tüm yönleriyle ve aynı zamanda IT sektörünün genel olarak tüm alanlarına hitap eden, dolu dolu ve zengin bir içerikle iki günlük yoğun bir tempo ile uygulamalı olarak sunmaya çalıştım.

Başlangıç(temel) seviye ve orta seviye olan bu içerik, ileri seviye linux bilgilerine de göz kırpmaktadır.

Ücretsiz olan bu eğitime katılım formunu oluşturup, formu linkedin hesabımdan yayınlayarak, formu dolduran arkadaşlar arasından katılımcı listesini belirledim.

İki güne sığmayacak kadar kapsamlı ve benzersiz olarak, büyük emekle hazırladığım bu eğitimi bir şekilde sığdırmaya çalıştım. Verimli olabildiysem, farkındalığı oluşturabildiysem ne mutlu.

Son olarak iki günün sonunda ve özeti olarak, oyun tadında, eğlenceli bir uygulama gerçekleştirdik. Tüm puanları toplayıp ilk üçe giren arkadaşları tebrik ederim.

OpenStack Ansible Network Configuration, Bonding, Mtu, Vlan, Br-vlan, Br-vxlan With NETPLAN On Ubuntu 18

İlk önce aşağıdaki komutla apt reposunu güncelleyin.

> apt update

Ardından “bridge-utils” paketini sisteme kurun.

> apt install bridge-utils

Daha sonra “/etc/netplan/50-cloud-init.yaml” dosyasını aşağıdaki gibi yapılandırabilirsiniz. Tabi siz kullanacağınız şekilde yapılandırabilirsiniz. Ben aşağıdaki örnekte hem bonding, hem vlan, hem bridge vlan, hem bridge vxlan, hem de mtu size olarak jumbo frame kullandım. Ayrıca nfs ve iscsi yide ayrı vlan larla yapılandırdım. Siz ortamınızda gerekli olan yapılandırmaya göre şekillendirebilirsiniz.

#This file is generated from information provided by
#the datasource.  Changes to it will not persist across an instance.
#To disable cloud-init’s network configuration capabilities, write a file
#/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
#network: {config: disabled}
network:
    bonds:
        bond0:
            interfaces:
            – enp6s0f0
            – enp7s0f0
            mtu: 9000
            parameters:
                lacp-rate: fast
                mode: 802.3ad
                transmit-hash-policy: layer2
        bond1:
            interfaces:
            – enp6s0f1
            – enp7s0f1
            parameters:
                lacp-rate: fast
                mode: 802.3ad
                transmit-hash-policy: layer2
    ethernets:
        eno1: {}
        eno2: {}
        enp0s20f0u1u6: {}
        enp6s0f0:
            mtu: 9000
        enp6s0f1: {}
        enp7s0f0:
            mtu: 9000
        enp7s0f1: {}
    version: 2
    vlans:
        bond0.10:
            id: 10
            link: bond0
            mtu: 9000
        bond0.20:
            id: 20
            link: bond0
            mtu: 9000
        bond0.21:
            id: 21
            link: bond0
            mtu: 9000
        bond1.30:
            id: 30
            link: bond1
        bond0.32:
            id: 32
            link: bond0
            mtu: 9000
    bridges:
        br-ext:
            interfaces: [bond0.32]
            addresses:
                – 10.1.10.34/24
            gateway4: 10.1.10.1
            nameservers:
                addresses:
                    – 10.10.10.5
            parameters:
                stp: false
                forward-delay: 0
            mtu: 9000
        br-mgmt:
            interfaces: [bond0.10]
            addresses:
                – 172.29.236.180/22
            parameters:
                stp: false
                forward-delay: 0
            mtu: 9000
        br-iscsi:
            interfaces: [bond0.20]
            addresses:
                – 172.29.244.180/22
            parameters:
                stp: false
                forward-delay: 0
            mtu: 9000
        br-nfs:
            interfaces: [bond0.21]
            addresses:
                – 172.29.248.180/22
            parameters:
                stp: false
                forward-delay: 0
            mtu: 9000
        br-vxlan:
            interfaces: [bond1.30]
            addresses:
                – 172.29.240.180/24
            parameters:
                stp: false
                forward-delay: 0
        br-vlan:
            interfaces: [bond1]

Son olarak aşağıdaki komutu çalıştırın fakat mtu değerlerinin geçerli olması için “reboot” olmalıdır.

> netplan apply

6-7 Temmuz 2019 – Ücretsiz Open Source ve Linux Administrator Eğitim Etkinliği Hakkında

Sosyal sorumluluk çerçevesinde üstlendiğim projem ve aynı zamanda Opensource dünyası ile beraber Linux sistemlerin öneminin, gerekliliğinin, farkındalığının oluşturulması, sektörde çalışan ya da öğrenci genç arkadaşlara yön vermek, farkındalık oluşturmanın yanısıra bilgi ve becerileri arttırmak amacıyla ücretsiz olarak Linux Administrator eğitimini 6-7 Temmuz 2019 tarihlerinde gerçekleştirdim.

Eğitimi RedHat ve LPI içeriklerinden derleyerek, RedHat/CentOS ve Ubuntu/Debian dağıtımlarını taban alarak, aralarındaki farkları belirterek, karşılaştırmalı olarak, çok kapsamlı, tüm yönleriyle ve aynı zamanda IT sektörünün genel olarak tüm alanlarına hitap eden, dolu dolu ve zengin bir içerikle iki günlük yoğun bir tempo ile uygulamalı olarak sunmaya çalıştım.

Başlangıç(temel) seviye ve orta seviye olan bu içerik, ileri seviye linux bilgilerine de göz kırpmaktadır.

Ücretsiz olan bu eğitime katılım formunu oluşturup, formu linkedin hesabımdan yayınlayarak, formu dolduran arkadaşlar arasından katılımcı listesini belirledim.

İki güne sığmayacak kadar kapsamlı ve benzersiz olarak, büyük emekle hazırladığım bu eğitimi bir şekilde sığdırmaya çalıştım. Verimli olabildiysem, farkındalığı oluşturabildiysem ne mutlu.

Son olarak iki günün sonunda ve özeti olarak, oyun tadında, eğlenceli bir uygulama gerçekleştirdik. Tüm puanları toplayıp ilk üçe giren arkadaşları tebrik ederim.

Ücretsiz Open Source ve Linux Administrator Eğitim Etkinliği Hakkında – 15-16 Haziran 2019

Sosyal sorumluluk çerçevesinde üstlendiğim projem ve aynı zamanda Opensource dünyası ile beraber Linux sistemlerin öneminin, gerekliliğinin, farkındalığının oluşturulması, sektörde çalışan ya da öğrenci genç arkadaşlara yön vermek, farkındalık oluşturmanın yanısıra bilgi ve becerileri arttırmak amacıyla ücretsiz olarak Linux Administrator eğitimini 15-16 Haziran 2019 tarihlerinde gerçekleştirdim.

Eğitimi RedHat ve LPI içeriklerinden derleyerek, RedHat/CentOS ve Ubuntu/Debian dağıtımlarını taban alarak, aralarındaki farkları belirterek, karşılaştırmalı olarak, çok kapsamlı, tüm yönleriyle ve aynı zamanda IT sektörünün genel olarak tüm alanlarına hitap eden, dolu dolu ve zengin bir içerikle iki günlük yoğun bir tempo ile uygulamalı olarak sunmaya çalıştım.

Başlangıç(temel) seviye ve orta seviye olan bu içerik, ileri seviye linux bilgilerine de göz kırpmaktadır.

Ücretsiz olan bu eğitime katılım formunu oluşturup, formu linkedin hesabımdan yayınlayarak, formu dolduran arkadaşlar arasından katılımcı listesini belirledim.

İki güne sığmayacak kadar kapsamlı ve benzersiz olarak, büyük emekle hazırladığım bu eğitimi bir şekilde sığdırmaya çalıştım. Verimli olabildiysem, farkındalığı oluşturabildiysem ne mutlu.

Son olarak iki günün sonunda ve özeti olarak, oyun tadında, eğlenceli bir uygulama gerçekleştirdik. Tüm puanları toplayıp başarılı olan arkadaşları tebrik ederim.

WordPress wp-admin Güvenliği – WP Login Page Security on Apache

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

Linux Sistemlerde ICMP Paketini Gizleme

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 bir sürü parametre bulunmaktadır ve her işlem için kritik durum arz eden kısımlarda bu parametreler ayrı ayrı incelenip, tek tek yapılandırılmalıdır. Bu değişiklik için kullanacağımız çekirdek parametresi “net.ipv4.icmp_echo_ignore_all” modülüdür. Şimdi bu işlemleri nasıl yapılacağına göz atılmalıdır ama öncesinde bu değişkenin varsayılan parametresi ne imiş ona bir göz atıp ve 0 olduğunu görelim.

> sysctl -a | egrep -ie “net.ipv4.icmp_echo_ignore_all”

Ardından aşağıdaki “sysctl” komutu ile değeri 1’e çekilmelidir fakat bu işlem anlık geçerli olacaktır yani sistem yeniden başladığı zaman varsayılan değerine geri dönecektir.

> sysctl net.ipv4.icmp_echo_ignore_all=1

Ya da

> echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all

Bu işlemi kalıcı hale getirmek için “/etc/sysctl.conf” dosyasına bu değişken ve parametreyi yazmak gerekmektedir.

Herhangi bir editör yardımıyla “/etc/sysctl.conf” dosyasını edit edip “net.ipv4.icmp_echo_ignore_all = 1” ekleyebilir

ya da aşağıdaki komut aracılığı ile bunu sağlayabiliriz.

> echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf

Arından sysctl.conf dosyasını aşağıdaki komutla yeniden yükleyip, yapılandırmayı aktif hale getirmelisiniz.

> sysctl -p

oVirt Debian/Ubuntu Guest Agent Kurulumu ve Yapılandırması – Sorun Çözüldü

oVirt ortamına kurduğunuz Debian/Ubuntu makineler için aşağıdaki komutu çalıştırarak ovirt-guest-agent servisini kurabilirsiniz.

> sudo apt install ovirt-guest-agent -y

Fakat servis durumunu kontrol ettiğinizde aşağıdaki gibi hata aldığınızı göreceksiniz.

Aşağıdaki yönergeleri izleyerek hataları giderip, servisi sağlıklı bir şekilde çalıştırabilirsiniz.

İlk önce “ovirt-guest-agent.service” servis dosyasını edit edip, “User=root” olarak değiştirelim(servisin root haklarında çalışmasının, güvenlik tarafındaki oluşturabileceği sıkıntılara şimdilik değinmiyorum).

> sudo vi /lib/systemd/system/ovirt-guest-agent.service

User=root

Ardından aşağıdaki komutu çalıştırın.

> systemctl daemon-reload

Akabinde aşağıdaki komutla device’leri listeleyebilirsiniz. Çünkü “ovirt-guest.agent.0” aygıtını kullanacağız.

> ll /dev/virtio-ports/

Şimdi “ovirt-guest-agent.conf” dosyasını aşağıdaki gibi yapılandıralım.

> sudo vi /etc/ovirt-guest-agent.conf

[virtio]
# device = /dev/virtio-ports/com.redhat.rhevm.vdsm
device = /dev/virtio-ports/ovirt-guest-agent.0

Son olarak aşağıdaki komutları sırasıyla çalıştırın. İşlem bu kadar.

> sudo systemctl enable ovirt-guest-agent.service

> sudo systemctl start ovirt-guest-agent.service

> sudo systemctl status ovirt-guest-agent.service

Ovirt Internal Admin Şifresini değiştirme – Changing the Password for admin@internal(ovirt admin@internal password change)

Aşağıdaki komut ile internal admin kullanıcısının detaylarını görebilirsiniz. Yukarıdaki ss’de de durumu gözlemleyebilirsiniz.

> ovirt-aaa-jdbc-tool user show admin

Şifreyi reset’lemek için ise aşağıdaki komutu kullanabilirsiniz. Sorun olması durumunda (–force) parametresini kullanabilirsiniz.

> ovirt-aaa-jdbc-tool user password-reset admin

Ardından Engine servisini yeniden başlatmalısınız.

> systemctl restart ovirt-engine.service

Fiziksel HP Gen9 Sunucuda OS Boot Ekleme – Kaybolan OS GRUB Ekleme on Linux

HP sunucularda genelde fiziksel board değişiminden sonra işletim sistemi disk üzerinden açılmaz. Bunun nedeni sunucu başlangıç diski olarak MBR’ı görmemesidir. Bu işlemi göstereceğimi şekilde işletim sisteminin kurulu olduğu diski manuel olarak göstererek grub’ın boot olmasını sağlayacağız.

1. Sunucu başladıktan sonra F9’a basılarak System Utilities gidilir.

2. System Configuration seçilir.

3. BIOS/Platform Configuration seçilir.

 Boot Options seçilir.

5. Advanced UEFI Boot Maintenance seçilir.

6. Add Boot Option seçilir.

7. Bu kısında işletim sisteminin yüklü olduğu disk otomatik olarak gelecektir, seçip devam edelim.

8. EFI seçilir.

9. Bizde Linux Ubuntu yüklüydü geldi, seçilip devam edilir.

10. grub64.efi seçip devam ediyoruz.

11. Burda yüklü işletim sistminin adını yazmak mantıklı,

12. Enter ile menüye girilir.

13. Bizde ubuntu yüklü olduğu için ubuntu yazıp devam ediyoruz.

14. F10 ile işlem kaydedilir.

15. Boot Options seçeneğine tekrar gidilir ve en altta geldiği görülür.

16. Burda + ve – ile listenin en üstüne ubuntu sekmesi getirilir ki işletim sistemi direk açılsın.

17. F10’a basarak yapılandırmalar kaydedilir ve sunucu yeniden başlatılarak, sunucunun diskteki OS’den başlaması sağlanmış olur.

SSH Oturumu Zaman Aşımı – SSH timeout

SSH kısa tabir ile istemci sunucu arasında bir bağlantı açmaktan ibarettir. Bu bağlantı sayesinde uzaktan sunucularımıza, ssh’in yapısı gereği güvenli haberleşme sağlanır. Fakat ssh’in güvenli bağlantısının dışında açılan oturumun zaman aşımı durumundan bahsetmek gerekir. Çünkü bu durum başlı başına bir güvenlik zafiyetini beraberinde getirebilir. Şöyle ki kullanıcı makinenizden birden fazla sunucuya ssh bağlantısı sağlamış olduğunuz varsayıldığında ve herhangi bir acil durumda ya da insani bir zafiyet olan unutkanlık yüzünden makinenizi kilitlemeden başından ayrıldığınızı farz ederseniz bu durum kötü niyetli kişiler için bulunmaz bir fırsat olabilir ya da bu kişiler kötü niyetli olamayan çocuklarınızda olabilir. Bu durumda fiziksel olarak ele geçirilen makinenizle beraber sürekli açık olarak kalan ssh oturumlarınız, dolayısıyla sunucularınız da ele geçirilmiş olur. İşte bu zafiyetin bir nebze de olsa önüne geçebilmek için ssh bağlantılarına oturum zaman aşımı yapılandırarak sağlanabilir. Bu durumda sizin belirlediğiniz süre boyunca kullanılmayan ve açık kalan ssh oturumları otomatik olarak kendiliğinden sonlanarak istemci sunucu iletişimini kesecektir. Böylelikle uzun süre kullanılmayan bağlantıların güvenliğini de sağlamış olacaktır.

Bu yapılandırma ilgili sunucularımızın “sshd_config” dosyasında, iki parametre eklenerek gerçekleştirilebilir. Yapılandırmaya geçmeden önce bu parametrelerden bahsetmek gerekir. İlk parametre “ClientAliveInterval”, bu parametre ile kaç saniyede sonra null(boş) paketi göndereceğine karar verir. İkinci parametre “ClientAliveCountMax”, bu parametre saniyesi ile de birinci parametrede belirtilen saniyenin, kaç saniye aralıkla kontrol edilmesini sağlar. Şöyle ki ClientAliveInterval*ClientAliveCountMax’dır. Yani ClientAliveInterval saniye bir null(boş) paketi göndermesini, ClientAliveCountMax kadar aralıkla oturumun test eder ve o süre zarfı boyunca kullanılmadığını tespitle beraber oturumu korur fakat çarpımdan elde edilen süre dolduğu an oturum kapanır. Şimdi aşağıdaki yapılandırma ile konu daha da anlaşılıp, basit olduğu kavranacaktır.

İlk önce ilgili sunucuda “/etc/ssh/sshd_config” dosyası herhangi bir editör aracılığı ile açılır. Ardından aşağıdaki parametreler eklenir.

ClientAliveInterval 600

ClientAliveCountMax 0

Ardından sshd servisi restart (systemctl restart sshd.service) edilmelidir.

Yapılandırmayı açıklayacak olursam eğer 600 saniye belirleyerek ve aralık belirtmeden, 600saniye / 60saniye = 10 dakika yani oturum hiçbir şey yapmadan 10 dakika boyunca açık kalacak fakat 10 dakikayı geçtikten hemen sonra oturumu otomatik olarak sonlandıracaktır.

MySQL Change – Reset User Password

Yetkili bir kullanıcı ile Mysql‘e login olunur.

> mysql -u root -p

Birden fazla veritabanı varsa aşağdaki komut ile listelenebilir.

> show databeses;

Ardından kullanıcının bulunduğu veritabanı seçilir.

> use “database_name”;

Aşağıdaki komut ile de veritabanındaki tablolar listelenebilir.

> show tables;

Tablodaki alanları ise aşağıdaki komut ile listeleyebilirsiniz.

> describe “tables_name”;

Tablodaki tüm verileri görmek için aşağıdaki komutu kullanabilirsiniz.

> select * from “tables_name”\G;

Ya da aşağıdaki gibi özelleştirerek verileri çağırabilirsiniz.

> select * from wp_users where ID=1;

Şimdi son olarak ilgili kullanıcının şifresini resetleyelim.

> UPDATE wp_users SET user_pass=MD5(‘123456’) where ID = 1;

NoT: Clear text giden şifre “vim ~/.mysql_history” dosyasından silinmelidir.

Linux Sistemlerde Açık Portların Kontrolü – netstat – lsof

İşletim sisteminde hizmet veren her servis bir port üzerinden hizmet verir. Bu nedenle sistem yöneticisinin sistem üzerinde bu portlara hakim olması gerekiyor. Farkında olunmadığı ya da gizli kalmış açık bir port bulunmamalıdır. Çünkü bu portlar aracılığı ile dış dünyaya yani internete servis sunulmaktadır. Bu nedenle internete açık bağlantıların belirlenmesi kritik bir görevdir ve öneme sahiptir. İşletim sisteminizde tcp ve udp olarak açık olan port ve servisler “netstat” ve “lsof” yardımıyla tespit edilebilir.

> netstat -plntua

> lsof -i -n | egrep -i listen

HAProxy ve Nginx x-forwarded-for (Client ip lerin loglanmasını sağlamak)

HAProxy için herbir backend yapılandırmanızda aşağıdaki satır bulunmalıdır.

option forwardfor

Nginx için “/etc/nginx/nginx.conf” yapılandırma dosyasını aşağıdaki gibi yapılandırmalısınız.

log_format main ‘$http_x_forwarded_for ($remote_addr) – $remote_user [$time_local] ‘
‘”$request” $status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent”‘ ;

access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;

Ardından servisi yeniden başlatın.

> systemctl restart nginx.service (service nginx restart ya da /etc/init.d/nginx restart)

Daha sonra aşağıdaki komut ile son durumu gözden geçirebilirsiniz.

> tail -f /var/log/nginx/access.log

Firewalld

Firewalld’nin IPTables’a göre fark olarak en belirgin özelliği bölgeler(zone) kullanmasıdır. Zone yapılan kurallar geçerlidir. Her bir zone(bölge)’de farklı yapılanmalar kullanabilir. Bu zone(bölge)’leri değiştirerek uyguladığınız tüm kuralları değiştirebilirsiniz.

Firewall-cmd bu iş kullanacağımız en temel komuttur.

Aşağıdaki komutla tüm yapılandırmalara ait detaylar görüntülünebilir. Aktif olup olmadığı, izin verilen port ya da servisler gibi birçok detay mevcuttur.

> firewall-cmd –list-all

Aşağıdaki komut ile de mevcuttaki tüm zone(bölge)’leri listeleyebilirsiniz.

> firewall-cmd –get-zones

Aşağıdaki komutlar ile de default(fabrika ayarı)’ta kullanılan zone(bölge)’yi görüntüleyebilirsiniz.

> firewall-cmd –get-default-zone

ya da

> firewall-cmd –get-active-zones

Aşağıdaki komut ise default zone(fabrika çıkışı bölge)’yi değiştirebilirsiniz.

NoT1 : Firewalld’de kurallar oluşturduktan sonra makineyi yeniden başlatmadan geçerli olması için “firewall-cmd –reload” komutu çalıştırmalısınız.

> firewall-cmd –set-default-zone=home

> firewall-cmd –reload

Alttaki komut ile servise dışarıdan erişim için izin verilebilir.

NoT2 : Permanent(kalıcı) parametresi burada kuralın kalıcı olmasını sağlamaktadır.

> firewall-cmd –zone=public –add-service=http –permanent

> firewall-cmd –reload

Ya da var olan kurallar silinebilir.

> firewall-cmd –zone=public –remove-service=http –permanent

> firewall-cmd –reload

Aşağıdaki komut ile de servis değil de port bazlı erişim izini verilebilir.

> firewall-cmd –zone=public –add-port=443/tcp –permanent

> firewall-cmd –zone=public –add-port=53/udp –permanent

> firewall-cmd –reload

Ya da var olan kurallar silinebilir.

> firewall-cmd –zone=public –remove-port=443/tcp –permanent

> firewall-cmd –zone=public –remove-port=53/udp –permanent

> firewall-cmd –reload

Birde zengin(rich) kurallar vardır. Adında da anlaşılacağı gibi özel, ip bazlı oluşturulabilen kurallar vardır. Bu konuya da değinmek gerekmektedir.

Sadece 192.168.1.25 ip’sinden gelen tüm istekleri kabul eden kural oluşturulur.

> firewall-cmd –zone=public –add-rich-rule=’rule family=”ipv4″ source address=192.168.1.25 accept’

> firewall-cmd –reload

Aşağıda ise 192.168.1.25 ip’sinden gelen 22 isteklerini reddetmektedir.

> firewall-cmd –zone=public –add-rich-rule=‘rule family=”ipv4” source address=”192.168.1.25” port port=22 protocol=tcp reject’

> firewall-cmd –reload

Rich rule(zengin kurallar)’leri aşağıdaki komut ile de görüntülenebilir.

> firewall-cmd –list-rich-rules

Şimdi şu ana kadar yapılan tüm kurallar “firewall-cmd –list-all” komutu ile görüntülenebilir.