Celem pracy było przygotowanie posteru na kongres medyczny, na którym plakat był wystawiony z krótką prezentacją.
- rodzaj
- przygotowanie do druku
- zakres prac
- obróbka zdjęć bazowy skład, przygotowanie do druku
- projekt graficzny
- Marcin Pietrzak
Celem pracy było przygotowanie posteru na kongres medyczny, na którym plakat był wystawiony z krótką prezentacją.
Sprawdzając stan strony zauważyłem dziś na stronie
dość dziwną rzecz. Na podstronie Zapytania najczęściej powodujące wyszukanie wystąpiły wpisy które w polu pozycja miały wartość
0
słownie … zero.
Skok na wyniki wyszukiwania ujawnił przyczynę: odnośnika NIE MA w wynikach wyszukiwania, ale dla podanej frazy wyświetlane są obrazki i to właśnie one pochodzą ze strony klienta.
Założenie miałem bardzo proste.
Jest sobie serwer M który ma mieć tunele z serwerami A i B. Ruch przez tunel ma być skompresowany, a autoryzacja używa certyfikatów SSL.
Pierwszym krokiem było zainstalowanie openvpn’a na wszystkich maszynach, ale ponieważ instalacja szła z pakietów debiana, więc była po prostu nudna, choć samo środowisko w którym rzecz się działa dostarczyło powodów do zastanowienia się. W ramach rozrzucania usług po chrootach, wytworzyłem nowego chroota o dumnej nazwie vpn. Przy okazji grsecurity dał o sobie znać, ponieważ go nie wyłączyłem (jak wyłączyć grsecurity?) to proces zakładanie chroota się nie powiódł.
Po wyłączeniu wszystko poszło jak po maśle i nie było żadnych problemów z dalszą instalacją.
Następnym krokiem jest generacja kluczy. Najprostszym sposobem jest na przygotowanie środowiska jest skopiowanie z katalogu (podaje cały czas dla ubuntu) :
/usr/share/doc/openvpn/examples/easy-rsa/2.0
w jakąś lokalizację w której łatwo będzie korzystać. Ja przeniosłem ten katalog w takie miejsce:
/etc/openvpn/easy-rsa/
pomijając już „2.0”. W środku znajdziemy narzędzia, które służą do generowania kluczy. Całość zaczynamy od edycji pliku vars, który służy do ustawiania domyślnych wartości dla zmiennych środowiskowych wykorzystywanych w procesie generowania certyfikatów. W moim przypadku uzupełniłem dane związane z wystawiającym oraz zwiększyłem długość klucza do 2048 bajtów, co dokumentacja kwituje krótkim:
Increase this to 2048 if you are paranoid.
Samo generowanie kluczy jest już potem trywialne i sprowadziło się do sekwencji komend:
Kolejną rzeczą potrzebną do zestawienia tunelu zgodnie z założeniami, jest wygenerowanie kluczy dla serwerów, co wykonujemy powtarzając do wyczerpania komendą:
./build-key client1
./build-key client2
...
Do wystartowania nadal konfiguracji serwera, czyli modyfikacja pliku /etc/openvpn/server.conf, który szczęśliwie jest świetnie opisany i na dodatek większości opcji nie dotykam, bo działa na domyślnych. Zmieniam rzeczy związane z konfiguracją:
Teoretycznie można już wystartować: /etc/init.d/openvpn restart
Start się nie powiódł z powodu błędu z dostępem do /lib/udev/devices/net/tun
i nie była to niestety kwestia uprawnień, tylko jak się okazało opcja chroot_deny_mknod nie pozwoliła na dostęp z chroota do tego node’a. Koniec końców chroot został skasowany a openvpn wylądował w głównym systemie.
Kolejna już próba odpalenia servera vpn powiodła się, ale ruch po połączeniu to już nie bardzo. Główną regułą firewall’a jest DROP od której są później wyjątki. I tu przydało się zdefiniowanie nazwy dla interface’u tunelu, bo dzięki temu łatwo dodać regułę: iptables -A INPUT -i tun34 -j ACCEPT
dzięki której wszystko co przychodzi z tunelu jest akceptowane.
Kolejne połączenie i wszystko śmiga, czego i Wam życzę.
Od lat korzystam ze smarty w małych projektach i pewnie go już z niego nie zrezygnuję, chyba że jakiś inny system szablonowania powali mnie na kolana.
Ale dziś „odkryłem” metodę fetch, a dokładniej to, że daje ona możliwość zassania plików spoza zdefiniowanego $template_dir, co wykorzystuję do pobierania statycznych treści leżących poza katalogiem szablonów.
Do tej pory po prostu czytałem te pliki z dysku. Teraz zaszła potrzeba uzupełniania o jedną zmienną, więc całość powinna przechodzić przez smarty.
$content = $smarty->fetch( 'file:../../content/katalog/index.html' );
Jak widać dyrektywa „file:” pozwala wykorzystać względne położenie od katalogu szablonów.
Nowy system, świeża instalacja i po zainstalowaniu cpan’a miałem problem z pobieraniem modułów. Rozwiązaniem jest wybranie z listy geograficznej., którą uzyskujemy po odpaleniu:
perl -MCPAN -e shell
za pomocą polecenie:
o conf init urllist
for a in /proc/sys/kernel/grsecurity/chroot_*; do echo 0 > $a; done
Czyli technicznie oznacza to wyłączenie wszystkich opcji (poprzez ustawienie „0”), który status wygląda dziś tak:
audit_chdir:1
audit_ipc:1
audit_mount:1
chroot_caps:1
chroot_deny_chmod:0
chroot_deny_chroot:1
chroot_deny_fchdir:1
chroot_deny_mknod:1
chroot_deny_mount:1
chroot_deny_pivot:1
chroot_deny_shmat:1
chroot_deny_sysctl:1
chroot_deny_unix:1
chroot_enforce_chdir:1
chroot_execlog:1
chroot_findtask:1
chroot_restrict_nice:1
disable_modules:0
dmesg:1
exec_logging:1
fifo_restrictions:1
forkfail_logging:1
grsec_lock:0
linking_restrictions:1
resource_logging:1
signal_logging:1
timechange_logging:1
Ponowne włączenie jest bardzo proste, sprowadza się do wykonania polecenia:
sysctl -p
Podkusiło mnie zrobić apt-get dist-upgrade
. Szlag by to trafił. Właściwie cały dzień w plecy.
KDE 4 całkiem ok, choć jak się okazało najwięcej kłopotów miałem z odpaleniem WIFI, ale w końcu się udało.
Kombinacja potrzebnego softu jest prosta (jak już działa).
Najwięcej problemu sprawił mi program do przechowywania haseł (kwalletmanager) bo jak się okzało, bez jego włączenie nie można skorzystać z sieci bezprzewodowej zabezpieczonej za pomocą WPA-PSK i jest na to nawet ticket, ba jest to nawet błąd poprawiony, który wejdzie w 9.10
Miałem problem z wifi pod ubuntu. Nie łączyło się. Wykrywało sieć, zaczynało gadać i zdychało. depesz zasugerował, że brakuje pakietu wpasupplicant co było dobrym tropem, bo okazało się, że rzeczony pakiet jest, ale nie ma pakietu kwlan czyli tego samego, tylko dla KDE. Działa, a wpis dla pamięci.
IP.Board jest najlepszym jaki do tej pory spotkałem oprogramowaniem do forum. Jest to oprogramowanie płatne, na dodatek w sposób mieszany. Po pierwsze płacimy za zakup licencji $150, a potem co pół roku (jeżeli chcemy mieć dostęp do aktualizacji) $25. Nie są to duże sumy jeżeli utrzymujemy forum nie jest hobbystyczne.
Nadszedł czas aktualizacji, wymuszony niejako przez exploita, który zainfekował stronę. Było trochę problemów z uzyskaniem plików instalacyjnych, bo nie była opłacona licencja (ta odnawialna). Ale po kilkudniowej przygodzie i wymianie kilkunastu maili ze wschodnim wybrzeżem, co jest zadaniem dość niewdzięcznym ze względu na 6 godzin różnicy (u nich jest wcześniej).
Jestem naprawdę pod wrażeniem tego jak zostało napisane narzędzie do aktualizacji. Sama aktualizacja przebiegła następująco:
Po pobraniu plików wgrywamy całość do naszej instalacji i odpalamy admin/upgrade/index.php
prawda że maksymalnie proste?
To taka teoria. Praktyka pokazała, że mysql znowu pokazał swoje złe strony. Procedura aktualizacji zakończyła się porażką, ponieważ polskie znaki diakrytyczne … znikły z bazy, wymienione na znaki zapytania. Niemiło. Okazało się że musiałem przestawić ustawienia mysql’a żeby osiągnąć pożądany efekt. Niestety przestawienie ustawień mysql’a spowodowało, że jeden z blogów przestał wyświetlać polskie znaki. Krótka analiza kosztów ujawniła, że łatwiej mi będzie doprowadzić ów blog do porządku, niż walczyć z forum.
Druga próba aktualizacji została zakończona całkowitym sukcesem.
Niestety wieczorne czytanie RSS’a spowodowało, że uśmiałem się setnie. Właśnie została opublikowana wersja 3.0.3, więc jutrzejszy ranek spędzę na kolejnej aktualizacji. Mam nadzieję, że tym razem będzie krótka i bezbolesna.
Dla pamięci ustawienia dodane do mysql’a (/etc/mysql/my.conf)
[mysqld]
character-set-server = utf8
character-set-client = utf8
character-sets-dir = /usr/share/mysql/charsets/
default-character-set = utf8
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
collation-server = utf8_general_ci
[mysql]
default-character-set = utf8
[client]
default-character-set=utf8
Firma hostująca jeden z moich wordpressów zmieniła IP. Zmieniała zresztą wszystkie swoje IP bo dostali swoją pulę. Pisali o tym w nowościach, ale … nie zauważyłem. Myk polegał na tym, że serwisy które mają swoje DNS’y u nich nie przestały działać, bo sami poprawili wpisy. Ta jedna domena ma wpisy w DNSach zupełnie gdzie indziej.
No wiec po kolei. Zakładam że serwer DNS pracuje i ma się dobrze.
Wyszukujemy interesujący nas wpis w katalogu /etc/bind
i zmieniamy numer IP. Ponieważ DNS musi się rozpropagować, a propagacja zależy od pola serial, to owo pole tez należy zmienić. Samo pole serial jest liczbą dziesiętną i każdy nowy serial musi być większy od poprzedniego. Dla własnej wygody warto stosować notację rok.miesiac.dzien.numer_zmiany gdzie oczywiście nie będzie kropek i tak pierwsza zmiana dzisiaj będzie miała postać: 2009081701
.
Następnym krokiem jest przeładowanie konfiguracji rndc co wykonujemy poleceniem rndc reload
Jak już wszystko wykonaliśmy, to należałoby sprawdzić nasze wpisy. W tym celu wpisujemy: host -t soa domena
sprawdzenie dnsów podrzędnych wykonujemy tak: host -t soa domena name.server
Oparte na WordPress & Theme by Anders Norén