Archiwum kategorii ‘windows’
SAMBA + rozproszone bazy danych i problem z blokowaniem dostępu do plików
Przeglądając polskie forum Ubuntu natknąłem się na taki wątek http://forum.ubuntu.pl/showthread.php?t=113578 . Pamiętam, że sam się jakiś czas z tym męczyłem.
Programy DOSowe powoli wychodzą już z użytku jednak z doświadczenia wiem wiem, że są one wciąż popularne a więc warto opisać jak rozwiązać ten problem. Może komuś jeszcze się przyda.
W celu prawidłowego udostępniania zasobów programów DOSowych dla ludzi pracujących na nich jednocześnie musimy dodać taki udział do configa samby :
[dos] # nazwa udziału
comment = dos # jak wyżej
path = /home/system1/dos # ścieżka do programów dosowych
public = yes # to możemy zmienić wedle uznania
writable = yes
guest ok = yes # to możemy zmienić wedle uznania
public = yes # to możemy zmienić wedle uznania
printable = no
oplocks = False # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
force user = nobody # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
level2 oplocks = False # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
veto oplock files = /*.DBF/*.dbf/ # tutaj ustawiamy najważniejsze pliki bazy, w moim przypadku są to pliki *.DBF
create mode = 0777 # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
directory mode = 0777 # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
Restart samby i już można pracować z wielu komputerów.
Spooler + WinXP – czyli problem z zapychającym się buforem wydruku
Zapchany bufor wydruku w Windowsie to zdecydowanie jedna z bardziej wkurzających rzeczy jaką można na co dzień spotkać. Ręczne usuwanie wydruków może trwać w nieskończoność i nie przynieść w ogóle rezultatów ale na szczęście można to zrobić szybko, łatwo i bez nerwów ;]
1. Tworzymy plik tekstowy.
2. Zmieniamy jego nazwę na dowolną a rozszerzenie na *.bat
3. Edytujemy go i wklejamy do niego to :
taskkill /f /im spoolsv.exe
net stop spooler
del /F /Q /S C:\WINDOWS\system32\spool\PRINTERS\*
net start spooler
4. Zapisujemy i już mamy gotowe narzędzie ;]
Jeżeli teraz zapcha nam się serwer wydruku a wyłączanie spoolera i ponowne włączanie go nie da efektu to po odpaleniu tego skryptu pozbędziemy się problemu.

Szyfrowanie ruchu w sieci LAN z IPSec
Częstym problemem występującym w sieciach LAN jest brak szyfrowania ruchu lub zbyt słabe zabezpieczenia dostępne w tanich urządzeniach takich jak np routery. Jednym ze sposobów poradzenia sobie z tym jest zastosowanie sieci VPN którą opisałem w poprzednim wpisie lub wprowadzenie szyfrowania całego ruchu w oparciu o dostępny w Windowsie protokół IPSec. IPsec to zbiór protokołów służących implementacji bezpiecznych połączeń oraz wymiany kluczy szyfrowania pomiędzy komputerami. Protokoły tej grupy mogą być również wykorzystywane do tworzenia Wirtualnej Sieci Prywatnej (ang. VPN). IPsec składa się z dwóch kanałów komunikacyjnych pomiędzy połączonymi komputerami: kanał wymiany kluczy za pośrednictwem którego przekazywane są dane związane z uwierzytelnianiem oraz szyfrowaniem (klucze) oraz kanału (jednego lub więcej), który niesie pakiety transmitowane poprzez sieć prywatną. Kanał wymiany kluczy jest standardowym protokołem UDP (port 500). Kanały przesyłu danych oparte są na protokole ESP (protokół numer 50) opisanym w dokumencie RFC 2406. Więcej do poczytania na wikipedii http://pl.wikipedia.org/wiki/IPsec .
W tym wpisie pokażę jak zainstalować i skonfigurować połączenie oparte o IPSec pomiędzy Windowsem XP i Linuksem Ubuntu 9.04.
Instalacja Ubuntu :
# apt-get update
# apt-get install isakmpd
Jeżeli wszystko pójdzie dobrze to powinniśmy zobaczyć
Konfigurowanie isakmpd (20041012-5) ...
Starting OpenBSD isakmpd: done
Przechodzimy do konfiguracji isakmpd:
# cp /etc/isakmpd/isakmpd.conf /etc/isakmpd/isakmpd.conf.kopia
# echo > /etc/isakmpd/isakmpd.conf
# pico /etc/isakmpd/isakmpd.conf
Do pliku isakmpd.conf wklejamy :
[Phase 1]
Default= any
[any]
Phase= 1
Configuration= Default-main-mode
Authentication= TAJNE-HASLO
[Default-main-mode]
EXCHANGE_TYPE= ID_PROT
Transforms= AES-SHA,3DES-SHA
Następnie :
# cp /etc/isakmpd/isakmpd.policy /etc/isakmpd/isakmpd.policy.kopia
# echo > /etc/isakmpd/isakmpd.policy
# pico /etc/isakmpd/isakmpd.policy
i wklejamy :
KeyNote-Version: 2
Comment: This policy accepts ESP SAs from a remote that uses the right password
$OpenBSD: policy,v 1.6 2001/06/20 16:36:19 angelos Exp $
$EOM: policy,v 1.6 2000/10/09 22:08:30 angelos Exp $
Authorizer: "POLICY"
Licensees: "passphrase:TAJNE-HASLO"
Conditions: app_domain == "IPsec policy" &&
esp_present == "yes" &&
esp_enc_alg != "null" -> "true";
Na koniec restartujemy tunel :
# /etc/init.d/isakmpd restart
Konfiguracja Windowsa XP :
1. Start > uruchom > mmc
2. Gdy odpali się konsola mmc przechodzimy menu Plik > Dodaj/Usuń przystawkę.. > w zakładce Autonomiczna klikamy na Dodaj > na samym dole listy wybieramy Zarządzanie zasadami zabezpieczeń IP > Komputer lokalny
3. Prawy klik w miejscu gdzie są Zasady > Utwórz zasadę zabezpieczeń IP > nazwa IPSec
4. Dalej > Dalej > W miejscu gdzie jest możliwość wyboru metody autoryzacji wybieramy : Użyj tego ciągu do ochrony wymiany kluczy i wpisujemy tam nasze TAJNE-HASLO > dalej > edytuj właściwości
5. Dodaj > Ta reguła nie określa żadnego tunelu > Sieć LAN > Użyj tego ciągu do ochrony wymiany kluczy i wpisujemy tam nasze TAJNE-HASLO > dalej > w miejscu Listy filtrów IP dajemy DODAJ > DODAJ > Dalej > Mój adres IP > Dowolny adres IP > Dowolny > Zakończ > OK > na koniec zaznaczamy naszą regułę klikając na nią > dalej > zaznaczamy Wymagaj Zabezpieczeń > Zakończ > OK > Zakończ >
6. Na liście zasad klikamy na naszą zasadę IPSec prawym przyciskiem i wybieramy Przypisz

Przykład ruchu przed ustawieniem szyfrowania i po :
Przed ( ping na wp.pl z komputera 192.168.0.104 ) :
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:24:18.810670 IP 192.168.0.104 > www.wp.pl: ICMP echo request, id 512, seq 3328, length 40
15:24:18.810685 IP 192.168.0.104 > www.wp.pl: ICMP echo request, id 512, seq 3328, length 40
15:24:18.833136 IP www.wp.pl > 192.168.0.104: ICMP echo reply, id 512, seq 3328, length 40
Po ( ping na 192.168.0.103 z tego samego komputera ) :
15:43:55.230110 IP 192.168.0.104.500 > 192.168.0.103.500: isakmp: phase 1 I ident
15:43:55.231793 IP 192.168.0.103.500 > 192.168.0.104.500: isakmp: phase 1 R ident
15:43:55.261015 IP 192.168.0.104.500 > 192.168.0.103.500: isakmp: phase 1 I ident
15:43:55.293697 IP 192.168.0.103.500 > 192.168.0.104.500: isakmp: phase 1 R ident
15:43:55.304717 IP 192.168.0.104.500 > 192.168.0.103.500: isakmp: phase 1 I ident[E]
15:43:55.311441 IP 192.168.0.103.500 > 192.168.0.104.500: isakmp: phase 1 R ident[E]
15:43:55.320323 IP 192.168.0.104.500 > 192.168.0.103.500: isakmp: phase 2/others I oakley-quick[E]
15:43:55.321473 IP 192.168.0.103.500 > 192.168.0.104.500: isakmp: phase 2/others R oakley-quick[E]
15:43:55.329405 IP 192.168.0.104 > 192.168.0.103: ESP(spi=0x54ec7b59,seq=0x1), length 76
15:43:55.329431 IP 192.168.0.104.500 > 192.168.0.103.500: isakmp: phase 2/others I oakley-quick[E]
15:43:55.334433 IP 192.168.0.103 > 192.168.0.104: ICMP 192.168.0.103 protocol 50 unreachable, length 104
15:43:56.156008 IP 192.168.0.104 > 192.168.0.103: ESP(spi=0x54ec7b59,seq=0x2), length 76
15:43:56.162215 IP 192.168.0.103 > 192.168.0.104: ESP(spi=0x72c430f4,seq=0x1), length 76
15:43:57.155322 IP 192.168.0.104 > 192.168.0.103: ESP(spi=0x54ec7b59,seq=0x3), length 76
15:43:57.158452 IP 192.168.0.103 > 192.168.0.104: ESP(spi=0x72c430f4,seq=0x2), length 76
Prosty VPN na przykładzie PPTP
Jeżeli zależy nam na bezpieczeństwie komunikacji w firmie lub poza jej obrębem to powinniśmy zainteresować się wdrożeniem sieci VPN. Wirtualne sieci prywatne zapewniają szyfrowany transfer danych przesyłanych przez Internet. Rozwiązanie to umożliwia budowę bezpiecznej formy komunikacji zarówno w obrębie przedsiębiorstwa, jak i dla celów prywatnych. W tym wpisie postaram się pokazać jak skonfigurować i zestawić takie bezpieczne połączenie przy pomocy PPTP. PPTP (Point-to-Point Tunneling Protocol) – wspólne dzieło Microsoftu i US Robotics, został zaprojektowany do łączenia VPN. PPTP jest rozszerzeniem PPP (Point-to-Point Protocol), standardowego protokołu komunikacyjnego Internetu, gwarantującego niezawodność asynchronicznej transmisji łączem szeregowym punkt-punkt bez ograniczania przepływności. Jest on szeroko stosowany do łączenia i przesyłania informacji zarówno w publicznym Internecie, jak i prywatnej sieci korporacyjnej. Ponieważ PPP funkcjonuje w warstwie drugiej, to połączenie PPTP, umożliwiające kapsułkowanie pakietów PPP, pozwala użytkownikom wysyłać nie tylko pakiety IP, ale także IPX i NetBEUI (NetBIOS Extended User Interface). Typowym klientem PPTP jest komputer z zainstalowanym systemem operacyjnym Microsoftu. W Windows zdefiniowanym protokołem szyfrującym jest MPPE (Microsoft Point to Point Encryption). Jest oparty na standardowym systemie kryptograficznym RSA (Rivest, Shamir, Adleman), który obsługuje 40-bitowe lub 128-bitowe szyfrowanie. Chociaż poziom bezpieczeństwa zapewniany przez ten protokół jest wystarczający dla wielu aplikacji, to najczęściej jest postrzegany jako mniej bezpieczny od niektórych algorytmów szyfrowania oferowanych przez IPS, a w szczególności od 168-bitowego Triple DES (Data Encryption Standard).
Instalacja :
# apt-get update
# apt-get install pptpd
Konfiguracja :
1. Dodajemy użytkowników którzy będą mogli łączyć się z naszą siecią. W tym celu edytujemy plik /etc/ppp/chap-secrets
# pico /etc/ppp/chap-secrets
Plik ten ma bardzo prostą budowę. Musimy w nim podać nazwę usera jaką będzie używał do logowania się, server któremu będzie podlegać ten user, jego hasło i adres IP jaki ma dostać przy zalogowaniu się. W miejscu IP możemy wstawić * , wtedy adres będzie przydzielany z puli adresów które ustalimy w configu PPTP
# Secrets for authentication using CHAP
# client server secret IP addresses
user pptpd tajne-haslo 192.168.0.250
user2 pptpd tajne haslo 192.168.0.251
2. Konfigurujemy PPTP
W tym celi edytujemy plik /etc/pptpd.conf
# pico /etc/pptpd.conf
Na samym końcu pliku odnajdujemy wpis :
localip 192.168.0.103 # adres serwera PPTP
remoteip 192.168.0.234-238 # pula adresów do wykorzystania dla podłączających się userów
I dopasowujemy go do siebie.
Na koniec zostaje nam już tylko zrestartować server PPTP
# /etc/init.d/pptpd restart
i już możemy się cieszyć VPNem.
3. Konfiguracja połączenia w Win XP
Panel sterowania > Połączenia sieciowe > Kreator nowego połączenia > Połącz z siecią w miejscu pracy > Połączenie wirtualnej sieci prywatnej > Tutaj wypełniamy odpowiednimi danymi takimi jak nazwa połączenia, adres ip serwera itp
Linki:
http://pigtail.net/nicholas/pptp/
http://onlyubuntu.blogspot.com/2008/09/howto-setup-pptp-server-vpn-on-ubuntu.html
http://www.networld.pl/artykuly/5716_1/Praktyczne.aspekty.wirtualnych.sieci.prywatnych.html
http://www.pcworld.pl/artykuly/21394_0_1/Droga.prywatna.wstep.wzbroniony.html
Microsoft Security Essentials
Piekło chyba zamarzło… pierwszy raz jestem zadowolony z darmowej aplikacji Microsoftu. Microsoft Security Essentials (MSE) (wcześniej znane jako Morro) jest darmowym programem antywirusowym zapewniającym całkiem dobrą ochronę przez wirusami, spyware, rootkitami i trojanami działającym na Windowsie XP, Vista oraz 7. Dodatkowym atutem tego oprogramowania jest proste i intuicyjne menu, niestety narazie nie ma dostępnego języka polskiego ale myślę że konfiguracja i obsługa nie powinna sprawiać problemów osobom nawet słabo znającym język angielski. Po za prostym menu program oferuje trzy tryby skanowania (pełne, skrócone i użytkownika, w którym możemy wybrać dyski, a nawet poszczególne foldery), harmonogram skanowania, automatyczne (lub definiowane przez użytkownika) aktualizacje baz sygnatur, a także historię wykrytych zagrożeń.

Kolejnymi plusami dla MSE jest całkiem dobre wykrywanie zagrożeń czyhających na pendrivach, bardzo małe zapotrzebowanie na zasoby systemu oraz dosyć częste aktualizacje bazy wirusów które zresztą odbywają się automatycznie. Podczas pracy MSE nie zalewa nas zbędnymi alertami o zagrożeniach, działa sobie cicho odzywając się jedynie gdy jest potrzebna nasza ingerencja. To wszystko sprawia, że MSE staje się idealnym antywirusem dla osób mniej wymagających oraz takich które nie korzystają z żadnej ochrony lub chcą przejść na oryginalne oprogramowanie.

Wymagania:
· dla XP – CPU 500 MHz lub lepszy, 256 MB RAM lub więcej
· dla Vista / W7 – CPU 1.0 GHz lub lepszy,1 GB RAM lub więcej
· Rozdzielczość: 800 x 600 lub większa
· Dysk: 140 MB wolnej przestrzeni lub więcej
· Dostęp do internetu
· IE lub Firefox
Pliki do pobrania:
Dla XP
Dla Visty i 7
Linki:
http://en.wikipedia.org/wiki/Microsoft_Security_Essentials
http://arstechnica.com/microsoft/news/2009/09/first-look-microsoft-security-essentials-impresses.ars
Backup/restore bazy płatnika pod MSDE2000
Wpis ten ma za zadanie pokazać jak w prosty sposób wykonać backup bazy, może być to pomocne przy wykonywaniu regularnych kopii bazy płatnika lub przy przenoszeniu bazy na inny komputer w połączeniu z funkcją restore. W pełnej wersji SQL Serwera obie czynności wykonuje się w Enterprise Manager. W przypadku braku pełnej wersji SQL Serwera można użyć darmowego programu DbaMGR2k (dla MS SQL Server 2000), SQL Server Management Studio Express lub użyć programu osql.exe dostarczanego wraz z motorem bazy danych MS SQL Server.
OSQL.EXE
Do wykonania backupu i restore przy pomocy osql musimy wejść w konsolę windowsa, Start > uruchom > cmd :
osql -S "KADRY\PLATNIK" -U "sa" -P "haslo-konta-sa" -Q "BACKUP DATABASE platnik TO DISK ='C:\platnik_backup.dat' WITH NAME = 'platnik_backup', FORMAT"
polecenie to wykona backup bazy z komputera KADRY i serwera PLATNIK, korzystając z użytkownika sa i wykona kopię bazy platnik do pliku C:\platnik_backup.dat
Do wykonania restore przy pomocy osql musimy również wejść w konsolę i wykonać polecenie :
osql -S "KADRY\PLATNIK" -U "sa" -P "haslo-konta-sa" -Q "RESTORE DATABASE platnik FROM DISK = 'C:\platnik_backup.dat' "
Jeżeli nie znamy lub zapomnieliśmy hasło do konta sa :
osql -E -S KADRY\PLATNIK -d "master" -Q "sp_addlogin @loginame='bartek',@passwd='tajne-haslo'"
To polecenie doda nam użytkownika o nazwie BARTEK i haśle TAJNE-HASLO
osql -E -S KADRY\PLATNIK -d "master" -Q "sp_addsrvrolemember @loginame='bartek',@rolename = 'sysadmin'
To poleceni da nowemu użytkownikowi prawa sysadmin i będziemy mogli zastąpić podczas wykonywania backup/restore konto sa naszym nowym kontem.
Skrypt robiący kopie bazy płatnika i wrzucający ją do katalogu z aktualną datą na dysku c:\
@echo off
echo Tworze katalog z dzisiejszsa data dla bazy platnika
md c:\%date:~0,10%
echo wykonuje backup bazy platnika
osql -S "VBOX\PLATNIK" -U "bartek" -P "qwe" -Q "BACKUP DATABASE platnik TO DISK ='C:\platnik_backup.dat' WITH NAME = 'platnik_backup', FORMAT"
echo Kopiuje kopie bazy do archiwum
move C:\platnik_backup.dat c:\%date:~0,10%\
echo Kopia bazy zostala wykonana poprawnie
pause
Graficzne narzędzie DbaMGR2k
Program DbaMGR2k jest do pobrania z http://www.asql.biz/en/. Narzędzie to zastępuje Enterprise Manager z pełnej instalacji serwera SQL MSDE2000 i pozwala na bardzo dużo ciekawych rzeczy. Przeglądanie wybranych tabel przy pomocy graficznych narzędzi, dodawanie użytkowników serwera SQL, zmianę haseł, wykonywanie backupu oraz restore itd.

Skupię się jedynie na wykonywaniu backup/restore. Edycja kont użytkowników jest bardzo prosta i nie wymaga dokładnego opisywania tutaj, dokonuje się jej w SQL Server -> vbox\platnik -> Logins
Backup/Restore z DbaMGR2k
1. Odpalamy DbaMGR2k
Public name : nazwa koputera
SQL server instance : vbox\platnik # nazwa komputera\nazwa serwera
User name : sa
User’s password : haslo
Trusted NT connection : # po wybraniu tej opcji nie musimy podawać hasła ani użytkownika do połączenia się
i klikamy Connect

2. Rozwijamy SQL Server -> vbox\platnik -> Databases i klikamy na naszej bazie ( pewnie będzie to baza o nazwie platnik )
3. Prawy przycisk na platnik -> Backup database

4. Restore wykonujemy analogicznie do Backupu.
Przenoszenie na inny komputer bazy Płatnika 7.03.001 działającej na SQL 2000
Ostatnio się troszkę namęczyłem przy wydawałoby się tak banalnej czynności jaką jest przeniesienie bazy Płatnika 7.03.001 działającej na SQL 2000. Serwer SQL dołączany do Płatnika uległ zmianie i teraz zamiast wspominanej wcześniej wersji MSDE2000 jest już SQL 2005 EXPRES. Tutaj zaczynają się schody, ponieważ za nic nie udało mi się odpalić bazy na nowym SQLu. Po kilku godzinach dłubania, dziesiątkach komunikatów o błędnym loginie oraz o tym że baza jest uszkodzona wpadłem na pomysł jak korzystać z MSDE2000 i mieć ciągle nowe wersje Płatnika po przeniesieniu z działającego komputera. Do poprawnego przeprowadzenia instalacji potrzebna nam będzie płytka/instalka Płatnika od 6.03.001 w dół.
Zaczynamy :
1. Na komputerze gdzie ma znajdować się nowa instalacja odinstalowujemy najnowszego Płatnika oraz serwer SQL (jeżeli próbowaliśmy wcześniej instalować)
2. Usuwamy wszystkie pozostałości po najnowszym SQLu z C:\Program Files\Microsoft SQL Server oraz te pliki z C:\Documents and Settings\user\Dane aplikacji oraz Ustawienia lokalne
3. Na obecnie działającej instalacji zatrzymujemy serwer SQL i kopiujemy sobie katalog MSSQL$PLATNIK z C:\Program Files\Microsoft SQL Server
4. Przechodzimy do instalacji starej wersji płatnika
a. wybieramy instalację z serwerem SQL MSDE2000
b. tworzymy bazę taką jaką nam podpowiada, czyli Platnik
c. ustalamy hasła i kontynułujemy standardowo instalację
5. Restartujemy komputer
6. Po ponownym uruchomieniu się komputera zatrzymujemy serwer SQL i w katalogu C:\Program Files\Microsoft SQL Server podmieniamy cały folder MSSQL$PLATNIK
7. Startujemy serwer SQL i odpalamy Płatnika
8. Łączymy się z bazą. Wśród serwerów nie pojawi się nasz serwer więc musimy wpisać ręcznie w postaci NAZWA-KOMPUTERA\PLATNIK baza platnik. (np: KADRY\PLATNIK baza platnik) . Nazwę możemy zobaczyć lub ją zmienić w Panelu sterowania > SYSTEM
9. Po komunikacie o błędnej wersji bazy wyłączamy Płatnika.
10. Zaczynamy instalację najnowszej wersji Płatnika ( ja robiłem to na 7.03.001 )
a. wybieramy rodzaj bazy SQL
b. zaznaczamy żeby nie instalował Serwera SQL 2005 i kontynułujemy standardowo instalację
11. Po zakończeniu instalacji odpalamy Płatnika i łączymy się z naszą bazą SQL tak jak w punkcie 8. używając autoryzacji Windows.
Jeżeli kombinowaliśmy wcześniej z instalacją płatnika+SQL 2005 EXPRES i stworzyliśmy serwer PLATNIK to mogą pojawić się problemy podczas instalacji starszych wersji Płatnika z MSDE2000 ( komunikaty o braku uprawnień do wykonania operacji, komunikat informujący nas że mamy założone ograniczenia na koncie lub inne komunikaty informujące nas że serwer MSDE2000 nie może być zainstalowany ). W celu ominięcia tego musimy podczas instalacji zmienić nazwę serwera na inną niż podawaliśmy wcześniej, czyli zamiast PLATNIK na np BAZA a całą zawartość MSSQL$PLATNIK przekopiować po prostu do MSSQL$BAZA i postępować analogicznie przy łączeniu podając NAZWA-KOMPUTERA\BAZA a nazwa bazy to platnik itd.
Link do MSDE2000 http://www.microsoft.com/downloads/details.aspx?familyid=413744D1-A0BC-479F-BAFA-E4B278EB9147&displaylang=en
Jeżeli będzie potrzebna instalka Płatnika 6.03.001 to proszę pisać.
Do pobrania :
Obraz płyty robiony programem dd, po rozpakowaniu należey zmienić rozszerzenie na .iso i nagrać na płytkę. http://dl.getdropbox.com/u/1207653/wordpress/platnik603001.gz
SCP i sFTP – bezpieczne alternatywy dla FTP
FTP jest protokołem typu klient-serwer, który umożliwia przesyłanie plików z i na serwer poprzez sieć TCP/IP. Jego główną wadą jest brak szyfrowania transmisji co wiąże się z przesyłaniem haseł oraz nazw użytkowników w postaci jawnej. Wada ta dyskwalifikuje ten protokół jeżeli zależy nam na bezpieczeństwie. Na szczęście istnieją alternatywy wykorzystujące SSH do komunikacji oraz gwarantujące szyfrowanie przekazywanych danych. W tym wpisie postaram się pokazać jak wdrożyć sFTP lub SCP na swoim serwerze pozwalając odejść poczciwemu FTP na emeryturę.
Trochę teorii z wikipedia na początek :
sFTP – protokół typu klient-serwer, który umożliwia przesyłanie plików z i na serwer poprzez sieć TCP/IP.
Jest on pozbawiony wad, które posiada zwykły FTP. Przesyłając plik przy użyciu protokołu FTP uzyskujemy dobre przepływności, ale nie zyskujemy bezpieczeństwa, nasze hasła nie są szyfrowane. Znaczną poprawę bezpieczeństwa przynosi protokół SFTP, który nie wymaga na danym hoście posiadania serwera FTP, wystarczy konto SSH, którego jest on rozszerzeniem, używa jego struktury oraz przez niego się łączy.
SCP – protokół SCP jest bardzo podobny do protokołu RCP (BSD), jednak w przeciwieństwie do RCP SCP korzysta z szyfrowanego połączenia podczas transferu, dzięki temu podsłuchanie transmisji jest zdecydowanie trudniejsze. Sam protokół SCP nie zapewnia uwierzytelniania, opiera się on na protokole SSH. Protokół SSH zajmuje sie tylko transmisją plików, jego przewagą nad protokołem FTP jest to, że oprócz szyfrowania potrafi również przekazać razem z plikiem jego podstawowe atrybuty (np. uprawnienia).
sFTP przy zastosowaniu Scponly
Scponly gwarantuje nam bezpieczne przesyłanie plików dzięki SSH jednak wyłącza możliwość korzystania z samego shella. Tracimy możliwość wykonywania czy robienia czegokolwiek z poziomu SSH. Dobre rozwiązanie jeżeli chcemy dać dostęp do “ftp” ale nie chcemy dawać możliwość korzystania z shella.
Instalacja :
sudo apt-get install scponly
Konfiguracja użytkownika :
sudo chsh -s /usr/bin/scponly user
Od tej pory możemy logować się tylko przy pomocy klientów sFTP na konta który ustawimy. Jeżeli zalogujemy się przez SSH na konto któremu ustawiliśmy sFTP zobaczymy jedynie krótką informację :
WinSCP: this is end-of-file:0
sFTP + SCP przy zastosowaniu rssh
rssh jest restrykcyjną powłoką działającą w oparciu o ssh pozwalającą jedynie na łączenie się przy pomocy SCP lub sFTP wyłączając, jak poprzednio, możliwość logowania się do konsoli. Dodatkowo rssh pozwala na wymianę plikami przy pomocy rdist, rsync, lub cvs.
Instalacja :
sudo apt-get install rssh
Konfiguracja :
Musimy dodać dodatkowy wpis do /etc/shells o treści
/usr/bin/rssh
Oraz edytować plik /etc/rssh.conf w którym wybierzemy jakie rodzaje połączeń będą akceptowane :
#allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
Na koniec musimy ręcznie zmienić powłokę użytkownikom który mają korzystać z rssh. Dokonamy tego w /etc/passwd, przykładowy wpis dla usera bartek
bartek:x:1001:1001:,,,:/home/bartek:/usr/bin/rssh
Jeżeli zależy nam na posiadaniu dostępu do konsoli oraz bezpiecznej wymienianie plikami to nie robimy nic poza sprawdzeniem czy posiadamy wpis
Subsystem sftp /usr/lib/openssh/sftp-server
w configu sshd ( /etc/ssh/sshd_config )
Na koniec warto by było wspomnieć o klientach sFTP/SCP. Skupię się jedynie na kliencie dla systemów z rodziny Microsoft. Godnym polecenia wydaje się WinSCP.
Możliwości programu :
* Graficzny interfejs użytkownika
* Kilka wersji językowych
* Integracja z systemem Windows (przeciągnij i upuść, URL, ikony skrótów)
* Wszystkie typowe operacje na plikach
* Obsługa protokołów SFTP i SCP
* Skrypty i linia komend
* Synchronizacja katalogów na kilka automatycznych i częściowo zautomatyzowanych sposobów
* Wbudowany edytor tekstu
* Wsparcie dla haseł SSH, keyboard-interactive, public key and Kerberos (GSS) authentication
* Integracja z Pageant (PuTTY Agent) dla pełnego wsparcia public key authentication(klucza publicznego)
* Do wyboru interfejs wzorowany na Eksploratorze Windows lub Norton Commanderze
* Opcjonalny zapis ustawień sesji.
* Opcjonalnie wspiera pracę bez instalacji używając pliku konfiguracyjnego zamiast wpisów rejestru, nadaje się do pracy z nośników wymiennych
Linki
http://www.sublimation.org/scponly/wiki/index.php/Main_Page
http://dragontoe.org/rssh/
http://winscp.net/eng/docs/lang:pl
http://pl.wikipedia.org/wiki/File_Transfer_Protocol
http://pl.wikipedia.org/wiki/SFTP
http://pl.wikipedia.org/wiki/SCP
Bezpieczne korzystanie z danych na kontach FTP
Bezpieczne wgrywanie plików na konto FTP
Przedłużanie domyślnych 180 dni na instalacje licencji CAL dla serwera terminali w Windows 2003 Standard
Wpis ten ma na celu pokazanie jak słabo zabezpieczony jest Windows 2003(2000 chyba też) i w jak łatwy sposób, bez używania żadnych dodatkowych narzędzi, przedłużyć domyślny czas na wgranie licencji CAL. Przy odpowiednim zastosowaniu tej sztuczki możliwe będzie używanie serwera terminali jak długo będziemy tylko chcieli. Szczególnie przydatne może się to okazać w sytuacji gdy zapomnimy zamówić licencje lub z jakiś przyczyn nie możemy ich zainstalować zanim okres próbny się skończy.
Kroki potrzebne do wykonania na komputerze KLIENTA
1. Start > uruchom > regedit
2. Szukamy wpisu :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
3. Kasujemy 2 klucze :
Store i HardwareID
4. Czekamy aż wykonamy czynności na serwerze i pod żadnym pozorem NIE ŁĄCZYMY SIĘ
Kroki potrzebne do wykonania na SERWERZE
Wszystkie poniższe kroki NAJLEPIEJ WYKONYWAĆ LOKALNIE na maszynie niż zdalnie
1. Logujemy się jako administrator ma maszynie
2. Zatrzymujemy serwer Licencjonowania Serwera Terminali oraz sam Serwer Terminali
3. Przechodzimy do katalogu C:\WINDOWS\system32\LServer
4. Kopiujemy gdzieś na bok pliki edb.chk i TLSLic.edb na wypadek gdyby coś jednak poszło źle.
5. Kasujemy całą zawartość katalogu C:\WINDOWS\system32\LServer
6. Przechodzimy do rejestru ( Start > uruchom > regedit >
7. Szukamy wpisu
HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing\
i kasujemy wpis Parameters
8. Zmieniamy datę na jakąś odległą, np rok 2020
9. Restartujemy komputer
10. Sprawdzamy czy usługi które wcześniej wyłączyliśmy się podniosły jeżeli nie to startujemy je.
11. Aktywujemy serwer terminali z tymczasowymi licencjami i wracamy do aktualnej daty.
12. Pozwalamy połączyć się klientom
Cieszymy się serwerem terminali który będzie działał do daty którą ustaliliśmy+180dni.
Wszystkie klucze potworzą się na nowo więc na komputerach klientów mogą pojawiać się komunikaty pytające czy np chcemy podłączyć się z mapowanym lokalnie portem LPT/COM czy dyskiem gdy wcześniej tego używaliśmy.
Link do przetłumaczenia sobie jak kogoś interesują poszczególne pliki z C:\WINDOWS\system32\LServer
http://www.tecbox.it/2009/07/reset-delle-licenze-terminal-server/
Wpis pokrewny
http://lazowski.wordpress.com/2008/10/05/windows-xp-jako-serwer-terminali/
Za szkody wyrządzone działaniami przedstawionymi w tym wpisie nie odpowiadam. Wpis ma na celu pokazanie ułomności licencjonowania serwera terminali a wszystkich zapraszam do kupowania licencji CAL
System windows nie moze uzyskac dostepu do okreslonego urządzenia ścieżki lub pliku. Możesz nie mieć odpowiednich uprawnień, aby uzyskać dostęp do elementu. – Po aktualizacji Win2003
Ostatnio robiłem aktualizację paru serwerów terminali działających na Windowsie 2003 Standard Server i po zakończeniu wszystkich operacji, zrestartowaniu maszyn i zakomunikowaniu wszystkim że już mogą pracować zdziwiłem się. Żadne konto poza administratorem nie miało dostępu do aplikacji umieszczonych na innych serwerach, zasoby można było przeglądać jak również edytować pliki ale przy odpalaniu aplikacji wyskakiwał taki błąd :

Domyślam się że komunikat “System windows nie moze uzyskac dostepu do okreslonego urządzenia ścieżki lub pliku. Możesz nie mieć odpowiednich uprawnień, aby uzyskać dostęp do elementu.” jest spowodowany instalacją nowej wersji IE8 na Windowsie 2003. Jednym ze sposobów obejścia tego jest skorzystanie z wpisu lub dodanie adresu IP naszego serwera aplikacji do zaufanych witryn w tym celu otwieramy IE8 -> przechodzimy do Narzędzia -> Opcje internetowe -> Zabezpieczenia -> Lokalny Intranet -> Klikamy na Witryny -> dodajemy nasz serwer, np : \\192.168.1.3

Dodaj komentarz
Komentarze (1)
Dodaj komentarz