• Bash Script ile Otomatik Iptables Kuralları Tanımlama

    Bash Script ile Otomatik Iptables Kuralları Tanımlama

    Bir başka konumda temel Iptables kullanımı ile ilgili bilgi vermiştim. Iptables üzerinde çok işlem yapıyorsanız eğer, yeni IP adreslerine izin tanımlama farklı portlara izin tanımlama gibi, sürekli sürekli aynı komutları yazmak sıkıcı gelebilir. Aşağıdaki paylaştığım script ile bu işlemi kısa sürede halledebilirsiniz.
    #!/bin/bash # Muhammed Niyazi ALPAY # https://niyazi.org function iptablesrules(){ echo "" echo "==========================================================" echo "" read -p "IP adreslerini aralarında virgül ile birlikte giriniz: " ipaddresses echo "" read -p "Port numaralarını aralarında virgül ile birlikte giriniz: " ports echo "" echo 0 > /proc/sys/net/ipv4/ip_forward iptables -A INPUT -p tcp -m multiport --dports $ports -s 127.0.0.1,$ipaddresses -j ACCEPT iptables -A INPUT -p udp -m multiport --dports $ports -s 127.0.0.1,$ipaddresses -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports $ports -j DROP iptables -A INPUT -p udp -m multiport --dports $ports -j DROP echo 1 > /proc/sys/net/ipv4/ip_forward echo "" echo "==========================================================" echo "" echo "İşlem başarı ile tamamlandı." echo "" echo "==========================================================" echo "" } read -p "Önceki Iptables kuralları silinsin mi? (e ya da h) " removerule if [ ${removerule} == "e" ]; then echo "Iptables kuralları silindi" iptables --flush elif [ ${removerule} == "h" ]; then echo "" else echo "Lütfen e veya h olarak giriş yapın" fi iptablesrules condition_to_check="False" while [[ ${condition_to_check} == "False" ]]; do read -p "İşleme devam edilsin mi? (e ya da h) " query if [ ${query} == "h" ]; then condition_to_check="True" elif [ ${query} == "e" ]; then iptablesrules else echo "Lütfen e veya h olarak giriş yapın" fi done chkconfig iptables on service iptables save echo "" echo "==========================================================" echo "" echo "Iptables kuralları kaydedildi"
    Çalışma mantığı çok basit. Bu kodları iptables.sh olarak kaydedip çalıştırdığınızda sizden ilk olarak IP adresleri istenecek. Aralarında virgül ile birlikte IP adreslerini girdikten sonra sizden port numaraları istenecek bunlarıda girdikten sonra Iptables kuralları kaydedilecek belirttiğiniz IP adreslerine belirttiğiniz port numaraları için izin tanımlanarak belirtilen IP adresleri haricindekilere erişim engellenecektir. Bash scripte Github üzerinden erişebilirsiniz....

    26.07.2015 13:06 Linux Devamı
  • Linux İşletim Sistemi Üzerinde Toplu Olarak Log Temizliği

    Linux İşletim Sistemi Üzerinde Toplu Olarak Log Temizliği

    Linux işletim sistemi çalıştığı süre boyunca karşılaşılan hatalar, sistem uyarıları vs her şeyin kaydını tutmaktadır. Bu kayıtlar bir zaman sonra büyük boyutlara ulaşabiliyor. Bu da haliyle harddisk üzerinde yer kaplamakta. Bu durum ev kullanıcıları için çok bir şey farkettirmese de web sunucuları üzerinde yer sıkıntısı yaşanabiliyor. Sunucu üzerinde gerekli bakımlar vs yapılmadığı durumlarda log dosyaları büyük boyutlara ulaşabiliyor. Linux işletim sistemi üzerinde log dosyaları /var/log altında bulunur. Bu log dosyalarını tamamen silmek işletim sistemine zarar verir. Sisteme zarar vermemek için bu dosyaların içlerini boşaltmak gerekir. Örneğin mail gönderme loglarını temizleyecekseniz "rm -rf /var/log/maillog" komutunu çalıştırmak sisteme zarar verecektir. Bu durumda maillog dosyası silinir ve bir daha buraya log yazamayacağı için sistem sorun çıkartır. Bu log dosyasının içini ":> /var/log/maillog" bu şekilde temizleyebiliriz. Ancak /var/log dizini altında bir çok dosya ve dizin bulunmakta, tek tek hepsini temizlemek de zaman alabilir. Log dosyalarının temizleme işlemini aşağıdaki komutlar ile daha hızlı bir şekilde halledebilirsiniz. Bu komutlar "sh" uzantısı ile kaydetmeniz gerekmektedir.
    #!/bin/bash # Muhammed Niyazi ALPAY # https://niyazi.org find /var/log/ -type f >logdosyalari.txt while read line do NAME=`echo "$line" | cut -d'.' -f1` EXTENSION=`echo "$line" | cut -d'.' -f2` rm -rf $NAME.gz :> "$line"; done <logdosyalari.txt rm -rf logdosyalari.txt rm -rf /var/log/*-2* rm -rf /var/log/*.2* echo "Log dosyaları silindi"
    Bu komutları logclear.sh olarak kaydettikten sonra çalıştırırsanız /var/log içerisindeki ve alt dizinlerindeki tüm log dosyaları temizlenecektir. ...

    03.07.2015 22:23 Linux Devamı
  • WHM / Cpanel Toplu DNS Güncelleme

    WHM / Cpanel Toplu DNS Güncelleme

    WHM panel üzerinde toplu olarak DNS güncellenecek bir ekran bulunmuyor. DNS kayıtlarının toplu olarak güncellemesini SSH üzerinden yapmamız gerekiyor. Cpanel kurulu sunucularda DNS kayıtları /var/named/ altında siteadresi.com.db olarak tutulmaktadır. Aşağıdaki komut ile bu dosyaların içerisindeki belirli bir kaydı yeni bir kayıt ile güncelleyebiliriz.
    replace "eski kayıt" "yeni kayıt" -- /var/named/*.db service named restart
    Kayıtları değiştirdikten sonra Cpanel DNS servislerini yeniden başlatmamız gerekiyor. ...

    20.06.2015 19:12 Linux Devamı

Yazarlar
 

MERAK EDİLENLER

İLETİŞİM

  • alpay[at]cryptograph.gen.tr
  • İstanbul ikametgah