CVE-2014-6271 shellshock uygulaması

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

Web Sitesi Performansını Ölçmek

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

curl kullanalım
-w: write
-s: silent
-o: output

curl -w "Connect time: %{time_connect} Time to first byte: %{time_starttransfer} Total time: %{time_total} \n" -o /dev/null www.google.com
Connect time: 0.402 Time to first byte: 0.453 Total time: 0.475

Benzer şekilde curl-format dosyasi oluşturalim
içeriği:

\n
            time_namelookup:  %{time_namelookup}\n
               time_connect:  %{time_connect}\n
            time_appconnect:  %{time_appconnect}\n
           time_pretransfer:  %{time_pretransfer}\n
              time_redirect:  %{time_redirect}\n
         time_starttransfer:  %{time_starttransfer}\n
                            ----------\n
                 time_total:  %{time_total}\n
\n

daha sonra curl çalıştırırsak

curl -w "@curl-format" -o /dev/null -s http://www.google.com/
            time_namelookup:  0.416
               time_connect:  0.435
            time_appconnect:  0.000
           time_pretransfer:  0.435
              time_redirect:  0.000
         time_starttransfer:  0.488
                            ----------
                 time_total:  0.491

Process RAM kullanımını ölçmek

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

Aşağıdaki komut bu iş için kullanılabilir:

ps -A -o pid,rss,command | grep nginx | grep -v grep | awk '{total+=$2}END{printf("nginx=%dMb\n", total/1024)}'

Burada RSS yerine VSZ’ye de bakılabilir.
RSS: Process tarafından o an kullanılan RAM miktarı.(kb cinsinden)
VSZ: Process doğduğunda ona çalışması için ayrılan RAM miktarı. (kb cinsinden)

vpnbook.com Sitesinden VPN Şifresini Otomatik Almak

Şubat 2, 2015 § Yorum yok § Kalıcı bağlantı

vpnbook güzel bir hizmet veriyor fakat şifrelerini belirsiz aralıklarla güncelliyorlar.
vpnbook.com dan şifreleri otomatik almak için ben vpnbook-utils kullanıyorum.

crontab’a aşağıdaki scripti koydum.

[root@FOZTURK vpnbook-utils-master]# crontab -l
9 */3 * * * /root/vpnbook.sh

vpnbook programının kodu:

[root@FOZTURK vpnbook-utils-master]# cat vpnbook 
#!/bin/sh
# The MIT License (MIT)
# Copyright (c) 2014 Tobias Bell <tobias.bell@gmail.com>

PROGRAM="vpnbook"
# URL to the site containing user and password
SITE="http://www.vpnbook.com/freevpn"
# URL to the site containing OpenVPN configs
OPENVPN_SITE="http://www.vpnbook.com"
# File where VPNBook credentials get stored
AUTH_FILE="./vpnbook.auth"
# Path to temporary file
AUTH_FILE_TMP="/tmp/vpnbook.$$"
# Folder where OpenVPN configs are created
CONFIG_FOLDER="./"
# Path to temporary folder for config generation
CONFIG_FOLDER_TEMP="/tmp/vpnbook-config.$$"

cleanup() {
        rm -f "$AUTH_FILE_TMP"
        rm -rf "$CONFIG_FOLDER_TEMP"
}

trap cleanup HUP INT TERM

usage() {
        cat << EOF
Usage: $PROGRAM <command> [parameter]

Commands are
    config  Generate OpenVPN configs for non-interactive usage based on configs provided
            on $OPENVPN_SITE
    auth    Extract user and password from $OPENVPN_SITE and save to auth-user-pass file
            (default: $AUTH_FILE)

Parameters are
    -a <file>    Path to the auth_user_pass file (default: $AUTH_FILE)
    -c <folder>  Folder where OpenVPN configs are generated (default: $CONFIG_FOLDER)
    -h           Show this help
EOF
}

download_site() {
        local site="$1"
        wget "$site" -q -O -
}

extract_credentials() {
        awk -F '[<>]' '
        BEGIN { exit_value = 1 }
        /Username:/ && !user_found { print $5; user_found = 1; next }
        /Password:/ && user_found { print $5; exit_value = 0; exit } 
        END { exit exit_value }
        '
}

extract_config_urls() {
        local site="$1"
        awk -F '[<>]' -v site=$site '
        /free-openvpn-account/ { split($4, a, /"/); print site a[2] }
        '
}

generate_auth() {
        local data="$1"
        if (echo "$data" | extract_credentials) > "$AUTH_FILE_TMP"; then
                mv "$AUTH_FILE_TMP" "$AUTH_FILE"
                chmod 600 "$AUTH_FILE"
        fi
}

generate_vpn_config() {
        awk -v auth_file="$AUTH_FILE" '
        # Remove windows newline
        { sub(/\r$/, "") }
        # Add both ports in config file and let OpenVPN select them remote-random
        /^remote/ {
                host = $2; print
                print $1, host, 25000
                if (!remote_random_printed) {
                        print "remote-random"
                        remote_random_printed = 1
                }
                next
        }
        # Switch authentication from interactive to file based
        /^auth-user-pass/ {
                print $1, auth_file
                print "auth-retry nointeract"
                next
        }
        # Let OpenVPN check the remote certificate
        /^<ca>/ {
                print "ns-cert-type server"
        }
        # Output everything else unchanged
        { print }
        '
}

generate_config() {
        local data="$1"
        mkdir "$CONFIG_FOLDER_TEMP" || return
        #Bu alanı ben kaldirdim
        cd /root/vpnbook_config/
        for url in $(echo "$site_data" | extract_config_urls "$OPENVPN_SITE"); do
                local file="$CONFIG_FOLDER_TEMP/${url##*/}"
                local conf_file="vpnbook-${file##*-}"
                conf_file=${conf_file%.zip}.ovpn
                conf_file="$CONFIG_FOLDER/$(echo $conf_file | tr 'A-Z' 'a-z')"
                wget "$url" -O "$file" -q
                unzip -p "$file"  '*udp53*.ovpn' | generate_vpn_config > "$conf_file"
        done

        wget "http://www.vpnbook.com/free-openvpn-account/VPNBook.com-OpenVPN-Euro1.zip"
        wget "http://www.vpnbook.com/free-openvpn-account/VPNBook.com-OpenVPN-Euro2.zip"

        unzip VPNBook.com-OpenVPN-Euro1.zip
        unzip VPNBook.com-OpenVPN-Euro2.zip
        rm -f VPNBook.com-OpenVPN-Euro1.zip
        rm -f VPNBook.com-OpenVPN-Euro2.zip
        generate_auth "$data"
}

main() {
        case $1 in
                config | auth )
                        generator_func="generate_$1"
                        ;;
                * )
                        usage
                        exit 1
                        ;;
        esac
        shift

        while getopts 'a:c:h' options; do
                case $options in
                        a )
                                auth_file=$OPTARG
                                ;;
                        c )
                                config_folder=$OPTARG
                                ;;
                        h | \?)
                                usage
                                exit 1
                                ;;
                esac
        done

        AUTH_FILE=${auth_file:-$AUTH_FILE}
        CONFIG_FOLDER=${config_folder:-$CONFIG_FOLDER}

        local site_data="$(download_site "$SITE")"
        $generator_func "$site_data"
        retval=$?
        cleanup
        return $retval
}

if [ "$PROGRAM" = ${0##*/} ]; then
        main "$@"
        exit $?
fi

echo Outputunun md5sum Sorunu

Ocak 30, 2015 § Yorum yok § Kalıcı bağlantı

echo ile çıkan stringi md5sum’a soktuğumuzda yanlış sonuç veriyor.
Bunun nedeni echo nun stringin sonuna “newline” \n eklemesidir.
Bu durumu düzeltmek için -n opsiyonunu kullanalim.

[fatih@FOZTURK ~]$ echo "deneme" | md5sum 
83ff036ac533544ddf84fb22edf62c2d  -
[fatih@FOZTURK ~]$ echo -n "deneme" | md5sum 
8f10d078b2799206cfe914b32cc6a5e9  -

Ubuntu’da vlc’yi root olarak çalıştırmak

Ocak 27, 2015 § Yorum yok § Kalıcı bağlantı

sed -i 's/geteuid/getppid/g' `which vlc`

Bash Saati

Ocak 20, 2015 § Yorum yok § Kalıcı bağlantı

function stopwatch(){
  date1=`date +%s`; 
   while true; do 
    echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r"; 
    sleep 0.1
   done
}
stopwatch

VLC İle Stream Yakalamak

Ocak 20, 2015 § Yorum yok § Kalıcı bağlantı

ffmpeg, Vlc gibi programlarla stream yakalanırken Ctrl-C ile işlem kesildiğinde sonuç dosyasının bozulma ihtimali vardır.
Zira Ctrl-C ile süreç öldürülerek oluşan sonuç dosyasını daha sonra işlemek, formatını değiştirmek vs mümkün olmaya biliyor.
Bu sorunu aşmak için vlc’nin herhangi bir soketi dinleyip o soketten bilgi geldiginde kendini sonlandıracak olması özelliğini kullanabiliriz.

vlc $vlcstreamip --quiet --intf rc --rc-host localhost:8082 --rc-fake-tty --no-show-intf --verbose 0 --sout="#transcode{vcodec=h264,width=352,height=288,acodec=mpga,ab=192,scale=1,channel=2,deinterlace,audio-sync}:std{access=file,mux=ps,dst=\"$sonuc_dosyasi\"}" &

vlc’ye kapatma bilgisini göndermek için netcat kullanılabilir

echo quit | nc localhost 8082 &>/dev/null

cvlc kullanarak yakalamak için
[/bash]
cvlc “http://www.npr.org/streams/mp3/nprlive24.pls”
–sout file/mp3:NPR-test.mp3 –run-time=20 –stop-time=20 vlc://quit

Aynı mantığın ekran görüntüsünü sağlıklı bir şekilde yakalamak için de kullanılabileceği aşikardır.

FFmpeg İle Sync Sorunu Olmaksızın Mpeg1 Oluşturmak…

Ocak 20, 2015 § Yorum yok § Kalıcı bağlantı

24 saatlik görüntü h264 ses AAC kayıt dosyasının ffmpeg ile sync sorunu olmaksızın mpeg1’e dönüştürmek için 2 yol buldum.
Birincisi:

time ffmpeg -y -i CNNTURKHD-20141212175502.h264 -vcodec mpeg1video -pix_fmt yuv420p -qscale 6 -qmin 6 -intra  -async 1  CNNTURKHD-20141212175502_q6.mpg
real    252m15.233s
user    231m42.557s
sys     2m26.928s

Sonuç Dosyasi 29G

İkincisi:

time ffmpeg -y -i CNNTURKHD-20141212175502.h264 -vcodec mpeg1video -sameq  -ar 48000 -async 48000 -ac 2 CNNTURKHD-20141212175502sameq_async48000.mpg
real    298m58.291s
user    273m46.499s
sys     2m17.161s

Sonuç Dosyasi 17G

Pardus 2007’de Firefox 3.0 Nasıl Çalıştırılır?

Ocak 20, 2015 § Yorum yok § Kalıcı bağlantı

Firefox’un tar.bz dosyasını yüklemek gerekmektedir. Zira Pardus 2007 ve diğer güncel olmayan sistemlerde Firefox 2.0’dan ötesine destek yoktur.(Pardus desteği için teşekkürler TÜBİTAK’a…Bkz:http://paketler.pardus.org.tr/pardus-2007/)

İnternetten yükleyelim ve açalım

wget 'http://download.mozilla.org/?product=firefox-3.0&os=linux&lang=en-US'
tar -jxvf firefox-3.0.tar.bz2

Firefox’u çalıştırmak için

bash firefox/firefox &

Neredeyim ben!?

Linux Notları kategorisinde geziniyorsun.