How To Get Free SSL Certificate For Your Own Websites

Hello everyone, I’m going to explain and show you how to get a free SSL certificate for existing websites.

Firstly you must know this certificate has limited time. Therefore you must refresh through SSL For Free website every three months.

I’m going to show on Apache without help by cPanel or another panel. I assume that Apache is installed in your server.

Firstly, enter SSL For Free website then fill the box with your web site URL as on the below.

SSL For Free

Then it will want you to validation web site. You can choose the below methods. I’ve validated by Manuel Verification. In this point, it wants to know that the website is your or not. You can select your preferred method.

SSL Certificate Validation

If you select manual verification. It will want you to download two files for upload to a file directory on the server. Such as on the below.

When you click to the Download SSL Certificate button, It going to check through these two URL whether the file exists or not exists.

If everything is good you will get three files such as on the below.

SSL certificates

Now, you have to upload certificate.crt and private.key to your own server. Then you have to add below lines to /etc/apache2/sites-available/your-web-site-name.conf file.

#/etc/apache2/sites-available/your-web-site-name.conf

 
SSLCertificateFile    /your-ssl-directory/certificate.crt
SSLCertificateKeyFile /your-ssl-directory/private.key 

Lastly, you have to restart the Apache service as root.

# systemctl restart apache2

If you create a web website, firstly you have to enable the website using a2ensite command! My own website already enabled.

SSL Certificate

Enjoy, you have a new SSL certificate for three months.

Uninstall GlobalProtect Vpn on MacOS Without İnstall File

You can uninstall GlobalProtect application with bash code. Firstly you should create uninstall_gp.sh in the home or another directory like this.

$ touch uninstall_gp.sh

Then open with vi editor and paste below code to the uninstall_gp.sh file.

#!/bin/sh

USER_ID=`id -u`

if [ "$USER_ID" -ne 0 ]; then
    echo "You must be root to run the script. Use sudo $0"
    exit
fi

install_dir=/Applications/GlobalProtect.app/Contents/Resources
app_log_dir=/Library/Logs/PaloAltoNetworks/GlobalProtect

mkdir -p "$app_log_dir"

((

    checkAndWaitProcess()
    {
        if [[ "$2" ]]; then
            T="$2"
        else
            T=5
        fi
        
        C=0
        while [[ C -lt $T ]] && 
              ( killall -s "$1" >/dev/null 2>/dev/null )
        do
            let C=C+1
            sleep 1
        done

        killall -s $1 >/dev/null 2>/dev/null
        return $?
    }

    pan_info()
    {
        curtime=`date`
        echo $curtime ' ' $1 >> ${app_log_dir}/PanGPInstall.log
    }

    curver=`defaults read ${install_dir}/../Info CFBundleShortVersionString`

    if [[ "$HOME" ]]; then
        USER=`stat -f "%Su" "$HOME"`
        pan_info "Uninstalling GlobalProtect version ${curver}, user ${USER}"    
        pan_info "unload user gps, gpa"
        sudo -u"$USER" launchctl remove com.paloaltonetworks.gp.pangps
        sudo -u"$USER" launchctl remove com.paloaltonetworks.gp.pangpa
    else
        pan_info "Uninstalling GlobalProtect version ${curver}"    
    fi

    pan_info "unload gps, gpsd and gpa"
    launchctl remove com.paloaltonetworks.gp.pangpa
    launchctl remove com.paloaltonetworks.gp.pangps
    launchctl remove com.paloaltonetworks.gp.pangpsd
    
    #wait for 15 sec. while PanGPS quits
    if checkAndWaitProcess "PanGPS" 5; then
        pan_info "PanGPS didn't quit within 5 sec. Killing"
        killall -15 PanGPS
        if checkAndWaitProcess "PanGPS" 5; then
            pan_info "PanGPS didn't quit after kill within 5 sec."
        fi
    fi
    
    #wait for 5 sec. while GlobalProtect quits
    if checkAndWaitProcess "GlobalProtect" 5; then
        pan_info "GlobalProtect didn't quit within 5 sec. Killing"
        killall -15 GlobalProtect
        if checkAndWaitProcess "GlobalProtect" 5; then
            pan_info "GlobalProtect didn't quit after kill within 5 sec."
        fi
    fi

    pan_info "Cleanup Dynamic Store"    
    echo "remove State:/Network/Service/gpd.pan/IPv4" | scutil 
    echo "remove State:/Network/Service/gpd.pan/DNS"  | scutil 

    pan_info "rm all"
    rm -f "/Library/LaunchAgents/com.paloaltonetworks.gp.pangps.plist"
    rm -f "/Library/LaunchAgents/com.paloaltonetworks.gp.pangpa.plist"
    rm -f "/Library/LaunchDaemons/com.paloaltonetworks.gp.pangpsd.plist"

    rm -rf "/Library/Application Support/PaloAltoNetworks/GlobalProtect"
    rm -rf "/Applications/GlobalProtect.app"
    rm -rf "/Applications/GlobalProtect.app.bak"
    rm -rf "/System/Library/Extensions/gplock"*.kext
    rm -rf "/Library/Extensions/gplock"*.kext

    #Mercy kill if processes are stuck
    killall -9 GlobalProtect
    killall -9 PanGPS

    rm -rf /Library/Preferences/com.paloaltonetworks.GlobalProtect*
    rm -rf /Library/Preferences/PanGPS*
    if [[ "$HOME" ]]; then
        rm -rf "$HOME/Library/Application Support/PaloAltoNetworks/GlobalProtect"
        rm -rf "$HOME"/Library/Preferences/com.paloaltonetworks.GlobalProtect*
        rm -rf "$HOME"/Library/Preferences/PanGPS*
        #remove password entry from keychain
        security delete-generic-password -l GlobalProtect -s GlobalProtect
    fi

    pan_info "Unload driver"
    ifconfig gpd0 down
    kextunload -b com.paloaltonetworks.kext.pangpd
    
    pan_info "Unload gplock"
    kextunload -b com.paloaltonetworks.GlobalProtect.gplock

    #10.9 addition to clear system preferences cache
    killall -SIGTERM cfprefsd
        
    pan_info "uninstall packages from globalprotect"
    for pkg in `pkgutil --pkgs |grep com.paloaltonetworks.globalprotect`
    do 
        pkgutil --forget "$pkg"
    done
    rm -rf /Library/Logs/PaloAltoNetworks/GlobalProtect/*

    echo "Uninstallation finished."

)  2>&1) >> ${app_log_dir}/PanGPInstall.log

Then you can run uninstall_gp.sh file via bash terminal like this:

$ sudo sh uninstall_gp.sh

Great! GlobalProtect application has removed.

Linux İptables Kullanımı ve Yapılandırılması

İptables linux işletim sistemlerine entegre bir şekilde gelen güvenlik duvarı yazılımıdır. İptables ile sunucuya gelen trafikleri kontrol edebilir veya başka bir adrese yönlendirebilirsiniz.

Bu yazıda sizinle ayrıca sunucunuza yapılan brute force atackları engelleyebilmeniz için küçük bir bash komutu paylaşacağım.

iptables yazılımı linuxt işletim sisteminize kurulu değil ise aşağıdaki şekilde kurabilir başlangıçta otomatik başlaması için ayarlama yapabilirsiniz.

# yum install iptables

veya 

# apt install iptables

Başlangıçta otomatik başlaması veya başlamaması için aşağıdaki komutu çalıştırabilirsiniz.

Sunucu yeniden başladığında iptables otomatik başlar
# chkconfig iptables on

Sunucu yeniden başladığında iptables başlamaz
# chkconfig iptables off

İptables yazılımında gelen veya giden trafik ile ilgili tanımlara aşağıdaki şekilde bakabilirsiniz.

 # iptables -L
 Chain INPUT (policy ACCEPT)
 target     prot opt source        destination
 

 Chain FORWARD (policy ACCEPT)
 target     prot opt source        destination
 

 Chain OUTPUT (policy ACCEPT)
 target     prot opt source         destination

Bu listede INPUT gelen, OUTPUT giden ve FORWARD yönlendirilmiş tanımları ifade eder ve eğer bir kural varsa buradan görebilirsiniz.

Yeni bir kural eklendiğinde target ile ilgili aşağıdaki tanımlamaları yapabilirsiniz.

ACCEPT: Paketlerin geçisine izin verilir.
REJECT: Paketlerin erişimi reddedilir.
DROP: Paketlerin geçişine izin verilmez.
RETURN: Zincirin sonuna gönderilir.
QUEUE: Paketler kullanıcı alanına gönderilir.

Örnek olarak belirli bir ip den gelen paketlerin erişimini kısıtladığımızda liste aşağıdaki şekilde olacaktır.

# iptables -A INPUT -p tcp -s x.x.x.x -j DROP 
# iptables-save  

Belirli bir ip nin sunucuya erişimini kısıtladığımızda bu kural aşağıdaki şekilde görünecektir. x.x.x.x ip’sinin sunucuya gönderdiği tüm TCP paketler sunucu tarafından kabul edilmeyecektir.

# iptables -L

 Chain INPUT (policy ACCEPT)
 target     prot opt source     destination
 DROP       tcp  --  x.x.x.x    anywhere
 

 Chain FORWARD (policy ACCEPT)
 target     prot opt source     destination
 

 Chain OUTPUT (policy ACCEPT)
 target     prot opt source     destination

Burada gönderilen paketler port farketmeksizin engellenecektir. Belirli bir port veya başka bir protokol belirterek gelen paketleri engellemekte mümkün. tcp, udp, udplite, icmp, icmpv6, esp, ah, sctp, mh protokolleri için tanımlama yapabilirsiniz. Örneğin belirli bir portu engellemek için aşağıdaki komutu kullanabilirsiniz.

# iptables -A INPUT -p tcp --dport 22 -s x.x.x.x -j DROP 
# iptables-save 

Bu işlemin ardından x.x.x.x ip’si sunucuya 22 portundan erişemeyecektir.

Belirli bir subnet’i engellemek için aşağıdaki gibi ip adresin sonuna /subnet ekleyerek tanımlama yapabilirsiniz.

# iptables -A INPUT -p tcp --dport 22 -s x.x.0.0/16 -j DROP 

# iptables -A INPUT -p tcp --dport 22 -s x.x.x.0/24 -j DROP 

# iptables-save 

Örneğin belirli bir ip grubunu engelleyip engellenen ip grubu içerisinden tek bir ip’ye erişim vermek istersek bunu aşağıdaki şekilde yapabiliriz.

# iptables -A INPUT -p tcp --dport 22 -s x.x.0.0/16 -j DROP 

# iptables -A INPUT -p tcp --dport 22 -s x.x.x.x -j ACCEPT 

# iptables-save 

Bir kural tanımladıktan sonra mutlaka iptables-save komutunun çalıştırılması gerekmektedir. Varolan tüm kuralları temizlemek için iptables -F komutu kullanılabilir. Bu işlem sonrası tanımlanmış olan tüm kurallar silinecektir.

# iptables -F

İptables ile ilgili diğer parametreleri görmek kullanıcı kılavuzu sayfasını inceleyebilirsiniz.

# man iptables