Podstawy administracji systemu Linux
Sieci komputerowe/Bezpieczeństwo
Janusz Szwabiński
Instytut Fizyki Teoretycznej UWr
22 stycznia 2006
Zdalna praca w sieci Usługi Bezpieczeństwo
Plan kursu
1
Instalacja Linuksa
2
Tryb tekstowy
3
Linux od podszewki
4
Pierwsze kroki w administracji
5
Sieci lokalne
6
Bezpieczeństwo
Sieci komputerowe/Bezpieczeństwo
1
Zdalna praca w sieci Logowanie
Kopiowanie plików
2
Usługi DHCP
3
Bezpieczeństwo
Zbędne usługi
Zapora ogniowa
Zdalna praca w sieci Usługi Bezpieczeństwo
Logowanie Kopiowanie plików
Zdalna praca w sieci
http://www.flexibility.co.uk/
Logowanie na komputer w sieci (SSH)
Kopiowanie plików między komputerami (SFTP/SCP)
VNC
Logowanie na odległy komputer
praca tylko w trybie tekstowym
s s h u ż y t k o w n i k @ a d r e s _ k o m p u t e r a s s h −l u ż y t k o w n i k a d r e s _ k o m p u t e r a
jeśli planujemy uruchamiać programy w trybie graficznym
s s h −X u ż y t k o w n i k @ a d r e s _ k o m p u t e r a
szybkie uruchamianie poleceń
s s h u ż y t k o w n i k @ a d r e s _ k o m p u t e r a " p o l e c e n i e "
Zdalna praca w sieci Usługi Bezpieczeństwo
Logowanie Kopiowanie plików
pierwsze logowanie
[ s z w a b i n @ v o y a g e r ~ ] $ s s h s z w a b i n @ p a n o r a m i x . i f t . u n i . w r o c . p l The a u t h e n t i c i t y o f h o s t ’ p a n o r a m i x . i f t . u n i . w r o c . p l ( 1 5 6 . 1 7 . 8 8 . 9 1 ) ’ can ’ t be e s t a b l i s h e d . RSA k e y f i n g e r p r i n t i s f c : 5 6 : b1 : 9 7 : 0 a : 4 4 : f 2 : 2 3 : e e : 6 a : 9 8 : c c : 1 4 : e 3 : b5 : 2 4 . A r e you s u r e you want t o c o n t i n u e c o n n e c t i n g ( y e s / no ) ? s z w a b i n @ p a n o r a m i x . i f t . u n i . w r o c . p l ’ s p a s s w o r d :
L a s t l o g i n : Sep 20 2 0 : 4 4 : 5 3 2005 f r o m v o y a g e r . i f t . u n i . w r o c . p l s z w a b i n @ p a n o r a m i x :~ >
koniec pracy
s z w a b i n @ p a n o r a m i x :~ > e x i t l o g o u t
C o n n e c t i o n t o p a n o r a m i x c l o s e d . [ s z w a b i n @ v o y a g e r ~ ] $
szybkie uruchamianie poleceń raz jeszcze
[ s z w a b i n @ v o y a g e r ~ ] $ s s h p a n o r a m i x " uname −a "
s z w a b i n @ p a n o r a m i x ’ s p a s s w o r d :
L i n u x p a n o r a m i x 2 . 4 . 3 0 #1 F r i Apr 15 1 3 : 1 2 : 1 6 CEST 2005 i 6 8 6 unknown unknown GNU/ L i n u x
Konfiguracja serwera SSH (/etc/sshd_conf)
pozwalamy na wysyłanie okien aplikacji pracujących w GUI
X 1 1 F o r w a r d i n g y e s
uruchamiamy ponownie serwer
[ r o o t @ v o y a g e r ~]# s e r v i c e s s h d r e s t a r t
[ r o o t @ v o y a g e r ~]# / e t c / r c . d / i n i t . d / s s h d r e s t a r t
Zdalna praca w sieci Usługi Bezpieczeństwo
Logowanie Kopiowanie plików
Kopiowanie plików (SFTP)
łączenie z odległym komputerem
[ s z w a b i n @ v o y a g e r ~ ] $ s f t p s z w a b i n @ p a n o r a m i x C o n n e c t i n g t o p a n o r a m i x . . .
s z w a b i n @ p a n o r a m i x ’ s p a s s w o r d : s f t p >
pomoc
s f t p > h e l p A v a i l a b l e commands :
cd p a t h Change r e m o t e d i r e c t o r y t o ’ p a t h ’ l c d p a t h Change l o c a l d i r e c t o r y t o ’ p a t h ’ c h g r p g r p p a t h Change g r o u p o f f i l e ’ p a t h ’ t o ’ g r p ’ chmod mode p a t h Change p e r m i s s i o n s o f f i l e ’ p a t h ’ t o ’ mode ’ chown own p a t h Change o w n e r o f f i l e ’ p a t h ’ t o ’ own ’
h e l p D i s p l a y t h i s h e l p t e x t
g e t r e m o t e−p a t h [ l o c a l −p a t h ] Download f i l e
l l s [ l s −o p t i o n s [ p a t h ] ] D i s p l a y l o c a l d i r e c t o r y l i s t i n g l n o l d p a t h n e w p a t h S y m l i n k r e m o t e f i l e
l m k d i r p a t h C r e a t e l o c a l d i r e c t o r y l p w d P r i n t l o c a l w o r k i n g d i r e c t o r y l s [ p a t h ] D i s p l a y r e m o t e d i r e c t o r y l i s t i n g .
.
nawigacja w zdalnym systemie plików pwd, cd, ls
nawigacja w lokalnym systemie plików lpwd, lcd, lls
kopiowanie plików na komputer lokalny. . .
s f t p > g e t t a l k . t a r
F e t c h i n g / home/ s / s z w a b i n / t a l k . t a r t o t a l k . t a r
/home/ s / s z w a b i n / t a l k . t a r 100% 150KB 1 5 0 . 0 KB/ s 0 0 : 0 0
. . . i w odwrotnym kierunku
s f t p > p u t beamer . p d f
U p l o a d i n g beamer . p d f t o /home/ s / s z w a b i n / beamer . p d f
beamer . p d f 100% 1621KB 1 . 6MB/ s 0 0 : 0 0
s f t p >
Zdalna praca w sieci Usługi Bezpieczeństwo
Logowanie Kopiowanie plików
Kopiowanie plików (SCP)
z odległego komputera
s c p u ż y t k o w n i k @ k o m p u t e r : / ś c i e ż k a _ d o _ p l i k u / p l i k / l o k a l n a _ ś c i e ż k a _ d o _ p l i k u /
[ s z w a b i n @ v o y a g e r ~ ] $ s c p s z w a b i n @ p a n o r a m i x : beamer . p d f . s z w a b i n @ p a n o r a m i x ’ s p a s s w o r d :
beamer . p d f 100% 1621KB 1 . 6MB/ s 0 0 : 0 0
[ s z w a b i n @ v o y a g e r ~ ] $
jeśli konta użytkowników są te same
[ s z w a b i n @ v o y a g e r ~ ] $ s c p p a n o r a m i x : beamer . p d f .
katalogi
[ s z w a b i n @ v o y a g e r ~ ] $ s c p −r Kursy / d e f i a n t : UniWroclaw /
Usługi
http://cocktails.about.com/
DHCP WWW FTP Samba
. . . i wiele innych
Zdalna praca w sieci Usługi Bezpieczeństwo
DHCP
DHCP
Kategoria Serwery sieciowe
http://www.iodata.jp/
automatyczna konfiguracja komputerów podłączanych do sieci
oszczędza dużo czasu administratorowi
wygodne dla nowych użytkowników
Konfiguracja serwera
edytujemy (lub tworzymy) plik /etc/dhcpd.conf
d e f a u l t −l e a s e−t i m e 3 6 0 0 ; max−l e a s e−t i m e 1 4 4 0 0 ; ddns−update−s t y l e none ;
s u b n e t 1 9 2 . 1 6 8 . 0 . 0 n e t m a s k 2 5 5 . 2 5 5 . 2 5 5 . 0 { r a n g e 1 9 2 . 1 6 8 . 0 . 2 1 9 2 . 1 6 8 . 0 . 1 0 ;
o p t i o n domain−name−s e r v e r s 1 9 4 . 2 0 4 . 1 5 2 . 3 4 , 2 1 7 . 9 8 . 6 3 . 1 6 4 ; o p t i o n b r o a d c a s t−a d d r e s s 1 9 2 . 1 6 8 . 0 . 2 5 5 ;
o p t i o n r o u t e r s 1 9 2 . 1 6 8 . 0 . 1 ; }
ponowne uruchomienie serwera
[ r o o t @ v o y a g e r ~]# s e r v i c e dhcpd r e s t a r t
[ r o o t @ v o y a g e r ~]# / e t c / r c . d / i n i t . d / dhcpd r e s t a r t
Zdalna praca w sieci Usługi Bezpieczeństwo
DHCP
Konfiguracja klienta
podczas instalacji systemu
podczas konfiguracji karty sieciowej
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Bezpieczeństwo
http://www.bbc.co.uk/schools/
fizyczne lokalne sieciowe
Do poczytania
Kevin Fenzi, Dave Wreski, Linux Security HOWTO
Bezpieczeństwo fizyczne
kontrola dostępu do komputera hasła w BIOSie
hasła w programie rozruchowym
Uwaga!
Osoba mająca fizyczny dostęp do
komputera może „obejść” oba
hasła, jednak zajmie to trochę
czasu.
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Bezpieczeństwo lokalne
usuwanie nieaktywnych kont
ograniczony dostęp do zasobów dla zwykłych użytkowników (SUID/GUID, restrykcyjne prawa dostępu, ograniczenia na liczbę uruchamianych procesów itp.)
sprawdzanie integralności systemu (Tripwire) szyfrowanie haseł (shadow)
testowanie jakości haseł użytkowników (Crack, „John The Ripper”)
kopie zapasowe
Bezpieczeństwo sieciowe
uruchamianie tylko niezbędnych usług SSH zamiast Telnetu
SCP/SFTP zamiast FTP Zapora ogniowa
systemy detekcji włamań (Snort)
łaty bezpieczeństwa
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Zbędne usługi
przydatne polecenia netstat nmap ważne pliki
/etc/services
/etc/inetd.conf lub /etc/xinetd.conf
netstat
[ s z w a b i n @ v o y a g e r ~ ] $ n e t s t a t −a
A c t i v e I n t e r n e t c o n n e c t i o n s ( s e r v e r s and e s t a b l i s h e d )
P r o t o Recv−Q Send−Q L o c a l A d d r e s s F o r e i g n A d d r e s s S t a t e
t c p 0 0 l o c a l h o s t : 9 6 6 ∗:∗ LISTEN
t c p 0 0 ∗:1550 ∗:∗ LISTEN
t c p 0 0 ∗:19150 ∗:∗ LISTEN
t c p 0 0 ∗ : s u n r p c ∗:∗ LISTEN
t c p 0 0 ∗ :www ∗:∗ LISTEN
t c p 0 0 ∗ : s s h ∗:∗ LISTEN
t c p 0 0 ∗ : i p p ∗:∗ LISTEN
t c p 0 0 l o c a l h o s t : smtp ∗:∗ LISTEN
t c p 0 0 v o y a g e r . i f t . u n i . w: 3 2 7 8 4 j a b b e r p l . o r g : 5 2 2 3 ESTABLISHED t c p 1 0 v o y a g e r . i f t . u n i . w: 3 2 8 6 6 b i o f i z y k a . a g r o . a r . s : www CLOSE_WAIT t c p 0 0 v o y a g e r . i f t . u n i . w: 3 2 8 6 5 d n s 1 . i b h . p l : www CLOSE_WAIT
udp 0 0 ∗:32768 ∗:∗
udp 0 0 ∗ : xdmcp ∗:∗
udp 0 0 ∗ : s u n r p c ∗:∗
udp 0 0 ∗ : i p p ∗:∗
A c t i v e UNIX domain s o c k e t s ( s e r v e r s and e s t a b l i s h e d ) .
. .
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
nmap
e n t e r p r i s e : / home/ s z w a b i n# nmap v o y a g e r
S t a r t i n g nmap 3 . 8 1 ( h t t p : / /www . i n s e c u r e . o r g /nmap / ) a t 2005−09−21 1 6 : 5 8 CEST I n t e r e s t i n g p o r t s on v o y a g e r . i f t . u n i . w r o c . p l ( 1 5 6 . 1 7 . 8 8 . 1 9 0 ) :
( The 1662 p o r t s s c a n n e d b u t n o t shown b e l o w a r e i n s t a t e : f i l t e r e d )
PORT STATE SERVICE
22/ t c p open s s h
Nmap f i n i s h e d : 1 I P a d d r e s s ( 1 h o s t up ) s c a n n e d i n 2 2 . 3 3 0 s e c o n d s
Uwaga!
Skanujemy tylko te komputery, które
rzeczywiście musimy. Użycie nmap może
być odebrane jako wstęp do ataku.
/etc/services/
tcpmux 1/ t c p # TCP p o r t s e r v i c e m u l t i p l e x e r
e c h o 7/ t c p
e c h o 7/ udp
d i s c a r d 9/ t c p s i n k n u l l
d i s c a r d 9/ udp s i n k n u l l
s y s t a t 11/ t c p u s e r s
d a y t i m e 13/ t c p d a y t i m e 13/ udp n e t s t a t 15/ t c p
q o t d 17/ t c p q u o t e
msp 18/ t c p # m e s s a g e s e n d p r o t o c o l
msp 18/ udp
c h a r g e n 19/ t c p t t y t s t s o u r c e c h a r g e n 19/ udp t t y t s t s o u r c e f t p−d a t a 20/ t c p
f t p 21/ t c p
f s p 21/ udp f s p d
s s h 22/ t c p # SSH Remote L o g i n P r o t o c o l
s s h 22/ udp
t e l n e t 23/ t c p
smtp 25/ t c p m a i l
t i m e 37/ t c p t i m s e r v e r
t i m e 37/ udp t i m s e r v e r
r l p 39/ udp r e s o u r c e # r e s o u r c e l o c a t i o n
n a m e s e r v e r 42/ t c p name # IEN 116
w h o i s 43/ t c p n i c n a m e
. . .
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Zapora ogniowa
sprzęt komputerowy ze specjalnym oprogramowaniem lub samo oprogramowanie blokujące niepowołany dostęp do komputera, sieci
komputerowej itp.
http://scramlings.de/johannes/lip/vortrag/
Do poczytania
http://mr0vka.eu.org/docs/tlumaczenia.html
Paweł Krawczyk, Filtrowanie stateful-inspection w Linuksie i
Budujemy własną zaporę (wersja dla początkujących)
ściągamy z Internetu program Firestarter (w przypadku Auroksa 10.2 pobieramy wersję dla Fedory Core 2) http://www.fs-security.com/
instalujemy pakiet (jako administrator)
[ r o o t @ v o y a g e r d o w n l o a d s ]# rpm −Uvh f i r e s t a r t e r −1.0.3 −1. i 3 8 6 . rpm P r z y g o t o w y w a n i e . . . ######################### [ 1 0 0 % ]
1 : f i r e s t a r t e r ######################### [ 1 0 0 % ]
uruchamiamy program z menu KDE lub w powłoce administratora
[ r o o t @ v o y a g e r d o w n l o a d s ]# f i r e s t a r t e r &
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
Budujemy własną zaporę (wersja dla zaawansowanych)
Netfilter/iptables
wbudowane w jądro Linuksa (2.4.x i 2.6.x) funkcje do filtrowania pakietów i NAT-u oraz program do zarządzania nimi
reguła - zasada postępowania z pakietami
łańcuch - zbiór reguł ułożonych w określonej kolejności
Łańcuchy
INPUT, OUTPUT, FORWARD
PREROUTING, POSTROUTING użytkownika
Tablice
filter
nat
mangle
PREROUTING
rutingu Decyzja
FORWARD
INPUT
Procesy lokalne
OUTPUT
POSTROUTING
mangle nat
mangle nat filter
filter
filter nat
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
otwieramy w edytorze nowy plik tekstowy, np. myfirewall
#!/ b i n / s h
# p r z y k ł a d o w a k o n f i g u r a c j a i p t a b l e s d l a b r a m k i ( i n t e r f e j s y ppp0 i e t h 0 )
# na p o d s t a w i e " F i l t r o w a n i e s t a t e f u l −i n s p e c t i o n w L i n u k s i e i BSD"
# Pawła K r a w c z y k a
# O p c j e w y w o ł a n i a :
# s t o p − " z a t r z y m u j e " f i r e w a l l , u s t a w i a o t w a r t ą p o l i t y k ę
# t e s t − t y m c z a s o w e r e g u ł y
# b e z o p c j i − k o n f i g u r u j e i p t a b l e s
wyłączamy zaporę
i f [ " $1 " = " s t o p " ] ; t h e n
/ s b i n / i p t a b l e s −P INPUT ACCEPT / s b i n / i p t a b l e s −P OUTPUT ACCEPT / s b i n / i p t a b l e s −P FORWARD ACCEPT / s b i n / i p t a b l e s −F
e x i t 0 f i
testujemy zaporę (włączenie na 60s)
i f [ " $1 " = " t e s t " ] ; t h e n
( s l e e p 6 0 ; / s b i n / i p t a b l e s −P INPUT ACCEPT ; \ / s b i n / i p t a b l e s −P OUTPUT ACCEPT ; \
/ s b i n / i p t a b l e s −P FORWARD ACCEPT ; \ / s b i n / i p t a b l e s −F ) &
f i
ukłon w stronę użytkownika
e c h o −n " I n s t a l o w a n i e z a p o r y o g n i o w e j . . . "
ładujemy niezbędne moduły jądra
/ s b i n / modprobe i p _ t a b l e s / s b i n / modprobe i p _ c o n n t r a c k
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
czyścimy stare ustawienia
/ s b i n / i p t a b l e s −F / s b i n / i p t a b l e s −F −t n a t
domyślna polityka (wszystko odrzucane)
/ s b i n / i p t a b l e s −P INPUT DROP / s b i n / i p t a b l e s −P FORWARD DROP / s b i n / i p t a b l e s −P OUTPUT DROP
interfejs lokalny jest uprzywilejowany
/ s b i n / i p t a b l e s −A INPUT −i l o −j ACCEPT / s b i n / i p t a b l e s −A OUTPUT −o l o −j ACCEPT / s b i n / i p t a b l e s −A FORWARD −o l o −j ACCEPT
sieć lokalna również ma specjalne prawa
/ s b i n / i p t a b l e s −A INPUT −i e t h 0 −j ACCEPT / s b i n / i p t a b l e s −A OUTPUT −o e t h 0 −j ACCEPT
akceptujemy pakiety ICMP Echo (ping)
/ s b i n / i p t a b l e s −A INPUT −p icmp −−icmp−t y p e echo−r e q u e s t −j ACCEPT / s b i n / i p t a b l e s −A FORWARD −p icmp −−icmp−t y p e echo−r e q u e s t −j ACCEPT / s b i n / i p t a b l e s −A OUTPUT −p icmp −−icmp−t y p e echo−r e q u e s t −j ACCEPT
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
wpuszczamy połączenia SSH z całej sieci
/ s b i n / i p t a b l e s −A INPUT −p t c p −d 0/0 −−d p o r t 22 −j ACCEPT
zezwalamy na wszystko w ramach istniejących połączeń
/ s b i n / i p t a b l e s −A INPUT −p t c p −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A INPUT −p udp −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A INPUT −p icmp −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A INPUT −p icmp −j ACCEPT −m s t a t e −−s t a t e RELATED / s b i n / i p t a b l e s −A FORWARD −p t c p −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A FORWARD −p t c p −j ACCEPT −m s t a t e −−s t a t e RELATED / s b i n / i p t a b l e s −A FORWARD −p udp −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A FORWARD −p icmp −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A FORWARD −p icmp −j ACCEPT −m s t a t e −−s t a t e RELATED / s b i n / i p t a b l e s −A OUTPUT −p t c p −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A OUTPUT −p t c p −j ACCEPT −m s t a t e −−s t a t e RELATED / s b i n / i p t a b l e s −A OUTPUT −p udp −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A OUTPUT −p icmp −j ACCEPT −m s t a t e −−s t a t e ESTABLISHED / s b i n / i p t a b l e s −A OUTPUT −p icmp −j ACCEPT −m s t a t e −−s t a t e RELATED
usługi TCP i UDP , które wypuszczamy z sieci: WWW (80,8080), SSH (22), SMTP (25), POP3/POP3s (110, 995), News (119), DNS (53), Gadu-Gadu (443), Jabber
(5223,8010), Skype (28025)
TCP_OUT_ALLOW= 8 0 , 8 0 8 0 , 2 2 , 2 5 , 1 1 0 , 9 9 5 , 1 1 9 , 5 3 , 4 4 3 , 5 2 2 3 , 8 0 1 0 , 9 1 0 0 , 2 8 0 2 5 UDP_OUT_ALLOW=53
/ s b i n / i p t a b l e s −A OUTPUT −o ppp0 −p t c p −j ACCEPT −m s t a t e −−s t a t e NEW \
−m m u l t i p o r t −−d e s t i n a t i o n −p o r t $TCP_OUT_ALLOW
/ s b i n / i p t a b l e s −A OUTPUT −o ppp0 −p udp −j ACCEPT −m s t a t e −−s t a t e NEW \
−m m u l t i p o r t −−d e s t i n a t i o n −p o r t $UDP_OUT_ALLOW
/ s b i n / i p t a b l e s −A FORWARD −o ppp0 −p t c p −j ACCEPT −m s t a t e −−s t a t e NEW \
−m m u l t i p o r t −−d e s t i n a t i o n −p o r t $TCP_OUT_ALLOW
/ s b i n / i p t a b l e s −A FORWARD −o ppp0 −p udp −j ACCEPT −m s t a t e −−s t a t e NEW \
−m m u l t i p o r t −−d e s t i n a t i o n −p o r t $UDP_OUT_ALLOW
Zdalna praca w sieci Usługi Bezpieczeństwo
Zbędne usługi Zapora ogniowa
maskarada
/ s b i n / i p t a b l e s −t n a t −A POSTROUTING −p a l l −s 1 9 2 . 1 6 8 . 0 . 0 / 2 4 −j MASQUERADE e c h o " 1 " > / p r o c / s y s / n e t / i p v 4 / i p _ f o r w a r d
logowanie odrzuconych pakietów
/ s b i n / i p t a b l e s −A INPUT −j LOG −m l i m i t −−l i m i t 10/ h o u r / s b i n / i p t a b l e s −A OUTPUT −j LOG −m l i m i t −−l i m i t 10/ h o u r / s b i n / i p t a b l e s −A FORWARD −j LOG −m l i m i t −−l i m i t 10/ h o u r
kolejny ukłon w stronę użytkownika
e c h o " z r o b i o n e ! "