Hlavní navigace

Jak se bránit šmírování poskytovatelem ...

17. 8. 2010 13:40 (aktualizováno) | Murděj Ukrutný

Ve svém bývalém zaměstnání jsem měl za šéfa pěkného č****a (víc se o tom nebudu rozepisovat, zbytečně bych se n****l). Mimo jiného svinstva bylo běžnou praxí čtení cizí pošty a sledování kam kdo chodí na netu. Naštěstí jsem ale měl k dispozici server s linuxem s veřejnou IP :)

Pokud chcete vědět jak si s takovými slídili poradit čtěte dál.

Server:

Na serveru jede ubuntu server 10.04 ale fungovat by měl i na jiném distru.

  1. Je potřeba SSH – to na serverech standardně bývá, pokud jako server chcete použít například domácí desktopu s veřejnou IP, nainstalujte ho. V ubuntu příkazem sudo aptitude install ssh
  2. Squid – http proxy server sudo aptitude install squid nastavení jsem nechal takové jaké bylo po instlaci

Na klientu je potřeba vytvořit ssh tunel pro proxy:

ssh -N -f server -L 3128:127.0.0.1:3128

Můžete si je zajistit si přihlašování pomocí SSH klíčů pokud se budete připojovat častěji.

V prohlížeči si nastavte proxy takto:

HTTP proxy: localhost

Port: 3128

Takto půjde veškerá komunikace šifrovaně přes SSH jen na jeden server. SSH většina těch managorů nezná a i kdyby tak u programátora není použití SSH nic divného.

Tipy na vylepšení:

Vypadalo by asi dost podivně pokud by nebyla žádná http komunikace proto jsem si nainstaloval do firefoxu QuickProxy která umožní proxy vypnout a zapnout ze stavového řádku, takže slídil vidí jen to co chci aby viděl.

Pokud chcete často vypínat, zapínat nebo restartovat tunel, bude se hodit tento skript:

#!/bin/bash
server=mujserver.cz
pid=$(netstat -lnp | grep '127.0.0.1:3128' | awk '{print $7}' | awk -F'/' '{print $1}' 2> /dev/null )
if [ "$1" == "stop" ] || [ "$1" == "restart" ]
then
    if [ "$pid" ]
    then
        echo "stoping [$pid] ..."
        kill $pid
        sleep 3
        running=$(ps | awk '{if ($1=="13835") print }')
        if [ "$running" ]
        then
            kill -9 $pid
        fi

        pid=""
    else
        echo "Not running."
    fi
fi
if [ "$1" == "start" ] || [ "$1" == "restart" ]
then
    if [ ! "$pid" ]
    then
        echo "Starting ..."
        ssh -N -f $server -L 3128:127.0.0.1:3128
    else
        echo "Is running."
    fi
fi
if [ "$1" == "" ]
then
    if [ "$pid" ]
    then
        echo "Proxy running, pid=$pid."
    fi
    echo "Usage: $0 start|stop|restart "
fi