Strony

piątek, 6 listopada 2009

OpenWrt - knockd server - instalacja i konfiguracja

Edycja: 2010-12-22 - dodałem regułkę, która działa u mnie

Pakiety:


Biblioteka umożliwiająca przechwytywanie pakietów
http://downloads.x-wrt.org/xwrt/kamikaze/snapshots/brcm-2.4/packages/libpcap_1.0.0-1_brcm-2.4.ipk

serwer
http://downloads.x-wrt.org/xwrt/kamikaze/snapshots/brcm-2.4/packages/knockd_0.5-1_brcm-2.4.ipk

opcjonalnie klient na openwrt
http://downloads.x-wrt.org/xwrt/kamikaze/snapshots/brcm-2.4/packages/knock_0.5-1_brcm-2.4.ipk

klient na win32
http://www.zeroflux.org/proj/knock/files/knock-win32.zip

przykładowy konfig
/etc/knockd.conf
[options]
logfile = /var/log/knockd.log

[openSSH]
sequence = 7000,8000,9000
seq_timeout = 15
command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn

[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 15
command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn

[opencloseSSH]
sequence = 2222,3333,4444
seq_timeout = 15
tcpflags = syn
start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --syn --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --syn --dport 22 -j ACCEPT

[one_time_sequences]
one_time_sequences = /etc/knockd_smtp_sequences
seq_timeout = 15
tcpflags = syn
start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --syn --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --syn --dport 22 -j ACCEPT

/etc/knockd_smtp_sequences
zawiera sekwencje portów, które wygasają po jednorazowym użyciu
#1,2,3
4,5,6
7,8,9

w tym przypadku pozostały nam 2 aktywne sekwencje 4,5,6 i 7,8,9 (TCP)

uruchomienie serwera nasłuchującego na interfejsie eth0 działającego jako daemon:
knockd -i eth0 -d

aby otworzyć port 22 na interfejsie eth0 dla swojego IP (192.168.1.5) korzystając z procedury [one_time_sequences] na kliencie wydajemy polecenie
knock.exe 192.168.1.1 4 5 6

logi:
root@openwrt:~# cat /tmp/log/knockd.log

[2009-11-06 12:37] 192.168.1.5: one_time_sequences: Stage 1
[2009-11-06 12:37] 192.168.1.5: one_time_sequences: Stage 2
[2009-11-06 12:37] 192.168.1.5: one_time_sequences: Stage 3
[2009-11-06 12:37] 192.168.1.5: one_time_sequences: OPEN SESAME
[2009-11-06 12:37] one_time_sequences: running command: /usr/sbin/iptables -A INPUT -s 192.168.1.5 -p tcp --syn --dport 22 -j ACCEPT


root@openwrt:~# iptables --list-rules | grep 22

-A INPUT -s 192.168.1.5/32 -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT

po 10 sekundach:
[2009-11-06 12:37] 192.168.1.5: one_time_sequences: command timeout
[2009-11-06 12:37] one_time_sequences: running command: /usr/sbin/iptables -D INPUT -s 192.168.1.5 -p tcp --syn --dport 22 -j ACCEPT

root@openwrt:~# iptables --list-rules | grep 22

port 22 zamknięty


Edycja: 2010-12-22 - reguła działająca u mnie:

[opencloseSSH]
sequence= NRPORTU:udp,
NRPORTU:udp,NRPORTU:udp
seq_timeout = 15
tcpflags = syn
start_command = /usr/sbin/iptables -A input_rule -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D input_rule -s %IP% -p tcp --dport 22 -j ACCEPT
Źródła:
http://www.zeroflux.org/projects/knock
http://portknocking.org/
http://www.urug.net/blog/archives/25-Port_knocking.html
http://nfsec.pl/security/122
pdf: http://portknocking.org/docs/portknocking_an_introduction.pdf

poniedziałek, 30 marca 2009

Nowe zabawki z Hong Kongu juz dotarly

Przed chwilą dowiedziałem się, że listonosz przyniósł "zabawki", które zamówiłem 2 tygodnie temu na ebay'u :) przyleciały z Hong Kongu :)
Jak dziecko... nie mogę się doczekać kiedy je rozpakuję :)



poniedziałek, 23 marca 2009

VMware i MS Cluster cz.3

Instalacja i konfiguracja MSCS

Mamy już maszyny wirtualne z Windows 2003 Enterprise x86 na pokładzie, podłączone i sformatowane dyski SCSI, możemy przejść do konfiguracji pierwszego węzła naszego klastra.
Dodajemy nasze serwery do domeny !!!
Logujemy się na jeden z nich, drugi ma być wyłączony i uruchamiamy aplikację Cluster Administrator.


W oknie Open Connection to Cluster wybieramy Create new Cluster

Wpisujemy nazwę klastra, nasz klaster nazywa się XCLU (nazwa wirtualna).

Nadajemy adres sieciowy klastra (wirtualny adres sieciowy).

W oknie Cluster Service Account wpisujemy nazwę i hasło użytkownika serwisowego na którym będzie uruchomiony klaster i którego wcześniej dodaliśmy do domeny, nasz koleś to CluAdmin.

W oknie Proposed Cluster Configuration po wybraniu przycisku Quorum wybieramy jako QUORUM nasz dysk Q.

Potem Next... Next... Next... i mamy "jedno-nodowy" klaster.

Przechodzimy do konfiguracji interfejsów sieciowych, wybieramy sieciówkę, która będzie pełnić funkcję HeartBeat i w opcjach zaznaczamy Internal cluster communications only...

Natomiast interfejs Local w podsieci 192.168.2.0/24 będzie używany do komunikacji z klientami, krótko mówiąc to nasz LAN.



CDN.........................

VMware i MS Cluster cz.2

W poprzednim artykule Przygotowanie środowiska testowego zainstalowaliśmy 3 maszyny wirtualne. Kontroler domeny oraz dwa węzły klastra, który zaraz sobie wykreujemy.

W prawdziwym środowisku do stworzenia klastra wymagany jest dysk podłączony za pomocą Fiber Chanel, SCSI lub iSCSI. My zasymilujemy sobie to odpowiednim wpisem do pliku konfiguracyjnego wirtualnej maszyny.

Pierwszym krokiem będzie stworzenie wirtualnych dysków (.vmdk)
  1. 2 GB dysk na quorum klastra - (nie alokuj pojemności dysku) - nazwijmy go CLUSTER_QUORUM.vmdk, ma pracować jako "independent-persistent" na szynie "scsi1:0"
  2. 5~10GB dysk na dane - (nie alokuj pojemności dysku) - CLUSTER_DISC1.vmdk, ma pracować jako "independent-persistent" na szynie "scsi1:1", (sporządź kilka kopii tego dysku, przyda się kiedy będziemy rozszerzać funkcjonalność klastra)
Tak powinna wyglądać część pliku konfiguracyjnego .vmx
#SCSI konfiguracja
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedbus = "virtual"

#Quorum
scsi1:0.present = "TRUE"
scsi1:0.fileName = "D:\vm\clusterx86\CLUSTER_QUORUM.vmdk"
scsi1:0.mode = "independent-persistent"
scsi1:0.redo = ""
scsi1:0.shared = "TRUE"

#Dysk 1
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:\vm\clusterx86\CLUSTER_DISC1.vmdk"
scsi1:1.mode = "independent-persistent"
scsi1:1.redo = ""
scsi1:1.shared = "TRUE"

Poniżej konfiguracja dysku: wybór szyny SCSI oraz Mode "independent-persistent" w GUI VMware Server


Chcąc dodać kolejny dysk SCSI wystarczy użyć wcześniej sporządzonej kopii dysku CLUSTER_DISC1.vmdk i dodać wpis do pliku konfiguracyjnego w postaci:
#Dysk 2
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:\vm\clusterx86\CLUSTER_DISC2.vmdk"
scsi1:2.mode = "independent-persistent"
scsi1:2.redo = ""
scsi1:2.shared = "TRUE"
Dyski podłączone, możemy startować pierwszy z węzłów.
W przystawce Dick Management ukażą nam się 2 dyski SCSI (2GB quorym oraz 5GB dane), inicjujemy je a następnie formatujemy - na zdjęciach poniżej przykład z jednym dyskiem:

Najpierw zainicjuj nowy dysk SCSI

Następnie utwórz partycję rozszerzoną alokując całą przestrzeń dyskową


Na partycji rozszerzonej utwórz dysk logiczny na całej przestrzeni dysku, przypisz literę oraz sformatuj w NTFS

Tak wygląda każdy z węzłów z podłączonymi dyskami SCSI

VMware i MS Cluster cz.1

Przygotowanie środowiska testowego

W niniejszym artykule omówię sposób przygotowania środowiska testowego do pracy w klastrze MSCS.
Czyli z jakich narzędzi będziemy korzystać, oraz w jak skonfigurować środowisko na którym będziemy pracować. Zaczynamy ...

Do przygotowania środowiska użyjemy narzędzi wirtualizacji. Mamy do dyspozycji szeroką gamę producentów takiego oprogramowania.
Użyjemy oprogramowania VMware Server w wersji 1.0.x do pobrania za darmo ze strony producenta VMware.

Nasz serwer wirtualizacji instalujemy na platformie MS Windows XP Profesional, host powinien być dość mocnym komputerkiem, aby uniósł ciężar następujących maszyn wirtualnych:

  • 1 szt. kontroler domeny 128-256 MB RAM; 5-10GB HDD; Windows 2003 Standard x64
  • 2 szt. serwer pracujący w klastrze, 256-512 MB RAM; 5-10GB HDD + min 1-5GB każdy dysk w klastrze; Windows 2003 Enterprise x86
  • opcjonalnie 1szt. klient 256 -512 MB RAM; 5-20GB HDD; Windows XP Professional
Po instalacji VMware Server przechodzimy do konfiguracji interfejsów sieciowych.
Dodajemy dwa nowe... u mnie jest to:
Clu-LAN VMnet2 - 192.168.2.0/24 - wirtualna sieć lokalna
Heart-Beat VMnet4 - 10.0.0.0/24 - wirtualna sieć używana tylko do komunikacji między klastrami
Obie sieci mają wyłączony DHCP w VMware Server.

Czas na dodanie nowych maszyn wirtualnych.

Jako pierwszy tworzymy maszynkę, która będzie naszym DC - kontrolerem domeny.
Nazwijmy ją DC1, przydzielamy jej 256 MB RAM, 10 GB HDD, oraz podpinamy do naszego wirtualnego lanu Clu-LAN VMnet2 - 192.168.2.0/24
Instalujemy Windows 2003 Standard x64 i promujemy do roli DC (kontrolerem domeny może być również 32 bitowy system).
Pamiętaj aby po zainstalowaniu systemu zrobić kopię pliku .vmdk oraz .vmx dzięki czemu oszczędzisz czas przy dodaniu następnej maszyny.

UWAGA!!! Jeśli klonujesz maszyny koniecznie przed wpięciem do sieci/domeny zmień Computer Security Identifier (SID) służy do tego program NewSID



Teraz kolej na węzły klastra.
Aby zaoszczędzić czas wykreujemy i zainstalujemy system tylko na jednej maszynie po czym zrobimy jej kopię. Jako system operacyjny użyjemy Windows 2003 Enterprise x86.
  • Enterprise - ponieważ ta klasa pozwoli na wykreowanie klastra.
  • x86 - ponieważ x64 ma pewne ograniczenia co do usług jakie można na nim uruchomić, ale o tym powiem później.
Początkowa konfiguracja maszyny wirtualnej różni się od naszego DC systemem operacyjnym w wersji x86 oraz dodatkową kartą sieciową podłączoną do Heart-Beat VMnet4 - 10.0.0.0/24