30 Eylül 2024 Pazartesi

freeipa ve freeipa-client sertifika problemi RHEL 9

 RHEL 9 güncellemelerinden sonra sssd servisi kullanıcı bilgilerini alamamaktır.

Bunun esas nedeni python3-cryptography paketinin güncellenmesi.
rhel 9 güncellemeleri ile gelen güncel python3-cryptography paket içindeki bazı  özellikler kaldırılmış, bundan dolayı sssd servisi ile ipa-server arasındaki haberleşme sağlanamıyor. Gecici çözüm olarak ipa-client ve python3-cryptography paketinin downgrade edilip, sürümünün kilitlenmesi.
Şayet bir sunucusunuz varsa elle aşağıdaki gibi yapabilirsiniz.

# yum -y install python3-dnf-plugin-versionlock.noarch

# yum -y downgrade ipa-client-4.9.8  python3-cryptography-36.0.1

# dnf versionlock add ipa-client  python3-cryptography


Fakat 10 larce sunucunuz varsa tek tek elle bunları yapmak sıkıcı olacaktır.

Aşağıdaki playbook ile yapabilirsiniz, veya kendinize özel playbook yazabilirsiniz.


---
- name: Manage packages and restart sssd service on RHEL 9
  hosts: all
  become: yes
  vars:
    ipa_client_version: "4.9.8"
    python3_cryptography_version: "36.0.1"

  tasks:

    - name: Check if the system is RHEL 9 or Oracle Linux 9
      ansible.builtin.debug:
        msg: "This playbook only runs on RHEL 9 or Oracle Linux 9 systems."
      when: ansible_distribution_major_version != "9"
      ignore_errors: true

    - name: Exit if not RHEL 9 or Oracle Linux 9
      ansible.builtin.meta: end_play
      when: ansible_distribution_major_version != "9"

    - name: Install python3-dnf-plugin-versionlock
      ansible.builtin.yum:
        name: python3-dnf-plugin-versionlock.noarch
        state: present

    - name: Downgrade ipa-client to version {{ ipa_client_version }}
      ansible.builtin.yum:
        name: ipa-client-{{ ipa_client_version }}
        state: present
        allow_downgrade: yes

    - name: Downgrade python3-cryptography to version {{ python3_cryptography_version }}
      ansible.builtin.yum:
        name: python3-cryptography-{{ python3_cryptography_version }}
        state: present
        allow_downgrade: yes

    - name: Version-lock ipa-client
      ansible.builtin.command:
        cmd: dnf versionlock add ipa-client
        creates: /etc/dnf/plugins/versionlock.list

    - name: Version-lock python3-cryptography
      ansible.builtin.command:
        cmd: dnf versionlock add python3-cryptography
        creates: /etc/dnf/plugins/versionlock.list

    - name: Restart sssd service
      ansible.builtin.service:
        name: sssd
        state: restarted

19 Eylül 2024 Perşembe

Birden fazla ip kullanılan sunucuda çıkış ip adresini değiştirmek

 Bu işlem için bir servis yazıyoruz.

/etc/systemd/system/set-route.service 

--------------------------------------------------------

# cat /etc/systemd/system/set-route.service
[Unit]
Description=Set Default Route with IP 10.62.150.120
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/set-default-route.sh start
ExecStop=/usr/local/sbin/set-default-route.sh stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

--------------------------------------------------------------



# cat /usr/local/sbin/set-default-route.sh

----------------------------------------------------------------------------------------------------------------------------------


#!/bin/bash

# Rota ile ilgili değişkenler
ROUTE_IP="192.168.234.254"
SRC_IP="192.168.234.123"
INTERFACE="eno13"

start_route() {
    # Rota olup olmadığını daha güvenilir bir şekilde kontrol et
    EXISTING_ROUTE=$(ip route show default | grep "via $ROUTE_IP dev $INTERFACE src $SRC_IP")

    if [ -n "$EXISTING_ROUTE" ]; then
        echo "Rota zaten eklenmiş: default via $ROUTE_IP src $SRC_IP dev $INTERFACE"
        exit 0
    else
        echo "Rota ekleniyor: default via $ROUTE_IP src $SRC_IP dev $INTERFACE"
        ip route add default via $ROUTE_IP src $SRC_IP dev $INTERFACE
        if [ $? -eq 0 ]; then
            echo "Rota başarıyla eklendi."
            exit 0
        else
            echo "Rota eklenirken bir hata oluştu."
            exit 1
        fi
    fi
}

stop_route() {
    # Rota var mı kontrol et
    EXISTING_ROUTE=$(ip route show default | grep "via $ROUTE_IP dev $INTERFACE src $SRC_IP")

    if [ -n "$EXISTING_ROUTE" ]; then
        echo "Rota kaldırılıyor: default via $ROUTE_IP src $SRC_IP dev $INTERFACE"
        ip route del default via $ROUTE_IP src $SRC_IP dev $INTERFACE
        if [ $? -eq 0 ]; then
            echo "Rota başarıyla kaldırıldı."
            exit 0
        else
            echo "Rota kaldırılırken bir hata oluştu."
            exit 1
        fi
    else
        echo "Rota zaten yok."
        exit 0
    fi
}

# Betiğin hangi parametreyle çağrıldığını kontrol et
case "$1" in
    start)
        start_route
        ;;
    stop)
        stop_route
        ;;
    *)
        echo "Kullanım: $0 {start|stop}"
        exit 1
        ;;
esac

----------------------------------------------------------------------------------------------------------------------------------



6 Eylül 2024 Cuma

squid kuralları - kali yansılarına izin

 kali siteleri için squid e aşağıdaki kurallar eklenirse kali yansılarına erişim verilmiş olur. Yansıların değişebileceğini unutmayalım.



# Kali sunucumumuz ip adresini belirleyelim. iki tane sunucumuz var
acl kali_sunucularım  src 172.17.1.44  172.44.1.44


# Ubuntu ve Ubuntu depolarına erişim - ubuntu repolarında her şeye izin veriyoruz
acl ubuntu_repos dstdomain archive.ubuntu.com
acl ubuntu_repos dstdomain security.ubuntu.com

# yansılarda sadece kali ile ilgili url lere izin veriyoruz

acl kali_mirror_urls url_regex ^http://elmirror\.cl/kali/.*
acl kali_mirror_urls url_regex ^http://free\.nchc\.org\.tw/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.acc\.umu\.se/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.free\.fr/pub/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.halifax\.rwth-aachen\.de/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.jaist\.ac\.jp/pub/Linux/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.ne\.jp/Linux/packages/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.nluug\.nl/os/Linux/distr/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.riken\.jp/Linux/kali/.*
acl kali_mirror_urls url_regex ^http://ftp-srv2\.kddilabs\.jp/Linux/packages/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.yzu\.edu\.tw/Linux/kali/.*
acl kali_mirror_urls url_regex ^http://ftp\.yz\.yamagata-u\.ac\.jp/pub/linux/kali/.*
acl kali_mirror_urls url_regex ^http://http\.kali\.org/kali/.*
acl kali_mirror_urls url_regex ^http://kali\.cs\.nctu\.edu\.tw/kali/.*
acl kali_mirror_urls url_regex ^http://kali\.download/kali/.*
acl kali_mirror_urls url_regex ^http://kali\.mirror\.garr\.it/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.2degrees\.nz/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.accuris\.ca/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.cedia\.org\.ec/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.dkm\.cz/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.globo\.tech/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.kku\.ac\.th/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.neostrada\.nl/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.premi\.st/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.primelink\.net\.id/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.serverion\.com/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.siwoo\.org/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.sjc02\.svwh\.net/kali/.*
acl kali_mirror_urls url_regex ^http://mirrors\.neusoft\.edu\.cn/kali/.*
acl kali_mirror_urls url_regex ^http://mirrors\.ocf\.berkeley\.edu/kali/.*
acl kali_mirror_urls url_regex ^http://mirror\.ufro\.cl/kali/.*
acl kali_mirror_urls url_regex ^http://wlglam\.fsmg\.org\.nz/kali/.*
acl kali_mirror_urls url_regex ^http://xsrv\.moratelindo\.io/kali/.*
 

http_access allow kali_sunucularım  ubuntu_repos

http_access allow kali_sunucularım kali_mirror_urls

...

...
http_access deny all
 


Squid ayarlandıktan sonra Kali linux sistemlerinde aşağıdaki  proxy ayarları yapılması gerekir.


 /etc/environment
dosyasına aşağıdakiler ayarlanır

http_proxy="http://proxy_adresiniz:port"
https_proxy="http://proxy_adresiniz:port"
ftp_proxy="http://proxy_adresiniz:port"
no_proxy="localhost,127.0.0.1,::1"


ubuntu snap için proxy ayarı;
sudo snap set system proxy.http="http://proxy_adresiniz:port"
sudo snap set system proxy.https="http://proxy_adresiniz:port"

sudo snap get system proxy

ubuntu repoları için proxy ayarı

sudo nano /etc/apt/apt.conf.d/999proxies


Acquire::http::Proxy "http://proxy_adresiniz:port";
Acquire::https::Proxy "http://proxy_adresiniz:port";

30 Ağustos 2024 Cuma

Linux volum grub içindeki iki fiziksel disk üzerinde belli lv lerin taşınması

 Normalde eski diskten yeni diske taşıma yaparken

# pvmove /dev/sda4 /dev/sdb4

şeklinde bire bir taşıma yapılır. istisnai durumlarda örneğin, eski disk 8 TB, yeni eklenen disk 1TB ve yeni 1TB diske sadece bizim için önemli bir iki lv yi taşımamız gerekdiğinde aşağıdaki gibi taşıma yapıyoruz.

pvmove -n lv_mylv /dev/eski_pv /dev/yeni_pv


Bir başka durumda birinci disk üzerindeki  belli fiziksel alanları taşıya biliriz.
örneğin sda4 pv sinin 10000 den 20000 kadar fiziksel alanlarını sdb4 taşımak istiyorsak aşağıdakini kullanabiliriz


pvmove --alloc anywhere /dev/sda4:10000-20000 /dev/sdb4