Archiwum miesiąca: 2008-10

MSSQL zgłasza błąd UpdateUptimeRegKey: Operating system error 5(Access is denied).


Dawno, dawno temu, za górami, za lasami było sobie MSSQL, który pracował bardzo wydajnie aż przyszło coś i go położyło. W podglądzie zdarzeń zaczęły się pojawiać wpisy typu:

Server Error: 17053, Severity: 16, State: 1. 
" UpdateUptimeRegKey: Operating system error 5(Access is denied.) 
encountered. 
" Registry startup parameters: 
" -l C:\Program Files\Microsoft SQL 
Server\MSSQL.1\MSSQL\DATA\mastlog.ldf 
" -e C:\Program Files\Microsoft SQL 
Server\MSSQL.1\MSSQL\LOG\ERRORLOG 
" -d C:\Program Files\Microsoft SQL 
Server\MSSQL.1\MSSQL\DATA\master.mdf 
" Error: 17113, Severity: 16, State: 1. 
" Error 3(The system cannot find the path specified.) occurred 
while opening file 'C:\Program Files\Microsoft SQL 
Server\MSSQL.1\MSSQL\DATA\master.mdf' to obtain configuration 
information at startup. An invalid startup option might have caused the 
error. Verify your startup options, and correct or remove them if 
necessary.
Całość chodziła sobie spokojnie przez 3 lata a tutaj nagle taka niespodzianka. Podane powyżej symptomy moga nieco przypominać sytuację, kiedy jedynym ratunkiem jest postawienia całości od nowa. Jednak nie jest to konieczne - jak się okazuje istnieje łatwiejsze i prostsze rozwiązanie. Należy zmienić konto, z którego startuje usługa - można to zrobić w następujący sposób:
- otworzyć okno Serwisy (Services), np. za pomocą Services.msc
- dwumlasnąć na serwisie MSSQL/SQLEXPRESS
- wybrac zakładkę Logowanie
- zmienić opcję na 'Local system account'.
Po tych zabiegach całość można uruchomić i nie wykazuje już znamion problemów.

 

Opublikowane w kategriach: Czyszczenie, Security, Windows

Eksponowanie wersji apache oraz komponentów typu php


Testując nagłówki strony można zauważyć, że serwer webowy mówi więcej niż by się administrator lub twórca serwisu spodziewał.
Jak to wygląda w przykładzie?

Wersja wogóle nie zablokowana:


URL: http://porady.eu.org/

HTTP status Code: 200 OK


HTTP Headers:
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 28 Aug 2008 10:20:20 GMT

Server: Apache/1.3.34 (Debian)



Co w tej sytuacji można zrobić? Szukamy, szukamy i znajdujemy, że warto w ustawieniach apache dodać składnie (/etc/apache/httpd.conf):


ServerSignature Off

ServerTokens Prod



Po zmianach bedzie to widoczne jako:

URL: http://porady.eu.org/

HTTP status Code: 200 OK

HTTP Headers:
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 28 Aug 2008 10:14:16 GMT
Server: Apache

X-Powered-By: PHP/5.2.0-8+etch11



Widać, że zostało sporo ukryte natomiast pojawia sie X-Powered-By - co to ma znaczyć? Skąd się to wzięlo?

To jest wpis z komponentu php. Żeby to wyłączyć należy w php.ini dla apache'a użyć opcji:


expose_php = Off



Wydaje się, że ta wersja juz wszystko ukryła:

URL: http://porady.eu.org/

HTTP status Code: 200 OK

HTTP Headers:
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 28 Aug 2008 10:21:10 GMT
Server: Apache


I to jest to co chcielismy osiągnąć - wyłączenie wyświetlania wersji. Teraz trzeba użyć bardziej zaawansowanych technik, żeby zweryfikować nasze wersje oprogramowania.

 

Opublikowane w kategriach: Czyszczenie, Debian, HTML, Linux, PHP, Security, Windows

Jak nadać hasło z poziomu skryptu dla polecenia adduser z opcją -p


Dodając użytkownika do systemu linux (debian) podajemy kilka parametrów. Czasami wygodnie jest mieć możliwość dodania nowego usera z poziomu skryptu w trybie tzw. cichym. Czyli bez pytań, bez potwierdzeń - czysto, prosto, szybko i na temat.
Używając polecenia passwd jesteśmy w stanie ustalić wszystkie parametry nowego użytkownika poczynając od katalogu domowego, bazowego przechodząc przez katalog z którego ma iść szkielet a kończywszy na grupie i haśle.
Jedyny problem to wskazanie hasła. Program passwd po parametrze -p spodziewa się, że podamy mu hasło w postaci gotowej do wstawienia do pliku /etc/passwd lub /etc/shadow. No i klops! Jest opis jak to zakodować w c++ - wystarczy trochę się na tym znać, napisać kod i jest!
Pytanie czy warto się aż tak bardzo w to wgłębiać?
Ano lepiej poszukać, wygoogle'ować i okazuje się, że jest dużo lepsze rozwiązanie. Należy do tego celu zaprzęgnąć gotowe rozwiązanie - ja to nazywam kombajnem do wszystkiego - chodzi o pakiet openssl.
Wystarczy sprawdzić man openssl i jest wpis odpowiadający za kodowanie haseł dla pakietu passwd.

useradd userek -p `openssl passwd -1 haselko`

Dzięki takiemu rozwiązaniu możemy ładnie oskryptować nasze docelowe rozwiązanie, które będzie nam użytkowników dodawać i jednocześnie będą oni mieli aktywne konto z podanym hasłem.

 

Opublikowane w kategriach: Ascii, Debian, Linux, Network, Security

Jak skutecznie pominąć EXIM a w systemie Debian


Po instalacji Debiana z radością w oczach zauważyć można, że zestaw obowiązkowy jaki się nam pojawia to Exim - czyli mta forsowane przez instalkę. Jest to super oprogramowanie tylko co jeśli tego nie chcemy? Można usunąć - i tu uwaga: jeśli zrobimy to zbyt pochopnie i zaakceptujemy żeby apt wywalił jednocześnie połowę pakietów z naszego systemu to będziemy tego mocno żalować.

Jest na to sposób nieco inny i trochę przewrotny:
instalacja pakietu typu udawacz (fake)
Należy ściągnąć tak spreparowany pakiet debianowy (.deb) (np. ze strony: fake-mta.deb

Następnie należy wykonać proste czynności:

Jeżeli jeszcze nie był instalowany żaden soft mejlowy to możemy wywalić exima:
dpkg --purge exim4

Następnie możemy zainstalować nasz pakiet fake-mta, który umożliwi nam instalację innych pakietów jak imap czy courier:
dpkg -i fake-mta.deb

Jeżeli już masz co niecoo w systemie i nie chcesz go rozwalić przez exima:
dpkg --force-conflicts -i fake-mta.deb
dpkg --purge exim4

To pozwoli Ci usunąć exim4 bez obawy o inne pakiety zależne.
Opcja --purge usunie konfigi i katalogi w przeciwnym razie zastosuj -r or --remove. Obie metody działają z tym, że --purge jest lepiej czyszcząc jeśli nie chcesz konfigów exima. Przydadzą Ci się uprawnienia roota do wykonania tych operacji.

 

Opublikowane w kategriach: email, Debian, Linux, Security

Brak polecenia dig w linux debian


Praca w systemie wraz z testowaniem aplikacji dostarcza wielu wyzwań. Aplikacje sieciowe wymagają znajomości zagadnień z zakresu sieci IP. Jednym z takim komponentów jest podsystem DNS.
Sam skrót DNS jest rozwijany jako Domain Name System i powstał on w celu wyeliminowania ręcznej aktualizacji rekordów w pliku /etc/hosts - plik ten był fajny w urzyciu natomiast gdy sieć się rozrastała to i wielkośc pliku była na tyle duża, że nie dało się nim zarzadzać.
W tym momencie zaczął się rodzić dzisiejszy DNS, który został rewelacyjnie wymyślony - po co wiedzieć wszystko o wszystkich, skoro każdy może Ci udostepnić informację o swoich zasobach? I tak też działa dzisiejszy system rozwiązywania nazw: ja wiem kogo zapytać a dalej to mnie już nie obchodzi.
Konstruując aplikację internetową czasami chcemy wykonać kilka testów serwisu dns. Czasami niestety nie ma w linux debian polecenia do tego. Można użyć nslookup albo jeszcze lepiej dig. Z poziomu shella dajemy:

dig
a tu system mówi, że:
bash: dig: command not found
Co jeśli go nie ma? Należy wykonać jego instalację co w systemie operacyjnym linuxa debian wydaje się być rzeczą nazdwyczaj prostą. Odpalamy z poziomu naszego shella polecenie:
apt-get install dnsutils

 

Opublikowane w kategriach: DNS, Debian, Apt, Linux

Na wesoło ;)

- Mamusiu - mówi 14-letnia Basia - dzisiaj w szkole badał nas wszystkich pan doktor...
- No i co?
- Okazało się, ze tylko jedna z nas jest jeszcze dziewicą.
- Oczywiście ty.
- Nie, nasza pani profesor.