Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-01-26 12:26:16

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

Witam.

Coraz bardziej korci mnie żeby w ramach testów postawić sobie stronkę na swoim kompie przy wykorzystaniu Dynamic DNS. Jednakże admin ze mnie żaden i nie wiem ani co powinno znaleźć się na maszynce ze stroną, ani jak zabezpieczyć taką maszynę przed włamaniami itp. Oczywiście domyślam się że zacząć należy od wygenerowania mocnych haseł na ssh (chciałbym mieć możliwość dostępu zdalnego), ale nie wiem jak np. skonfigurować takiego apacha aby nikt nie wlazł mi przez stronkę na kompa (za dużo ważnych danych żeby ryzykować) a na ich stronce opcji jest od cholery.

Pytanka do was:

1. Czy z doświadczenia moglibyście dać mi jakieś wskazówki na co zwrócić szczególną uwagę przy operacji wystawiania własnego "łeba" na świat ;] ?
2. Jaką "minimalną" ilość pakietów radzilibyście mieć na takim pseudo serwerze, jeżeli miałby on spełniać zadania dydaktyczne odnośnie nauki, HTML, CSS, PHP, ASP.NET, JSP.
3. Czy ktoś orientuje się jak dobrze jest ze wsparciem dla ASP.NET na Apachu (czy tam innych serwerach)? Niby jest wymieniony jako wspierany i widzę że w repach pakiety są, ale czy można na tym stawiać zwykłe stronki stworzone w Visualu czy tylko działają jakieś podstawowe funkcje z .NET-1.x/.NET-2.x?
4. Czy pod względem zużycia łącza, jest jakaś różnica czy na serwerze postawi się Apacha, nginx czy tam jeszcze co innego, czy też serwer "light" oznacza że tylko obciążenie maszynki na której jest uruchomiony jest mniejsze?

Dodam że chciałbym postawić to głównie w ramach nauki, ale tak aby inni też mogli coś tam zobaczyć. Łącze na którym miałby stać to 512 Kbps z Netii (wiem że szału nie ma, ale to ma nie być portal tylko zwykłą stronka do nauki ;] )

Z góry dzięki za info

Offline

 

#2  2012-01-31 08:11:41

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

Hmm... czyżby nikt sobie servera nie stawiał nigdy na DynDNS że odzewu brak ;] ? OK, może skonkretyzuję trochę pytania to ktoś się odezwie :). Zacznijmy od bezpieczeństwa:

Wczoraj zainstalowałem sobie Debian Stable na kompie składającym się z czegoś takiego:

-Dwu procesorowa płyta Intela (N440BX Server Board) - na niej 2x PII 400 Mhz
-384 MB Ram (SD 100 Mhz)
-Jakiś tam zwykły dysk Seagate 17 GB

Płyta posiada wbudowaną sieciówkę, grafikę i sporo opcji konfiguracyjnych, swego czasu była to płytka pod serwer.

Teraz tak - planuję ustawić tam jakiś serwer i wystawić to na świat, ale najpierw muszę to jakoś zabezpieczyć. Serwer miały się łączyć ze światem poprzez router, który obecnie dostarcza net dla mojej stacjonarki, telefonu i kilku innych urządzeń - tutaj pierwsze pytanie do was, jako że specem od bezpieczeństwa sieciowego nie jestem ;].

1. Chciałbym tak skonfigurować swoje kompy,router i serwer, aby nawet po ewentualnym włamaniu się na serwer, nikt nie mógł za jego pomocą dobrać się do zasobów sieciowych udostępnianych poprzez SAMBĘ, NFS itd - nie wiem tylko czy tutaj bardziej trzeba coś konfigurować po stronie serwera, routera, czy kompów udostępniających dane - w temacie jestem raczej mało obeznany, mam nadzieję że Wy bardziej :) .

2. Serwer miałby być wystawiony na świat, z możliwością zdalnego logowania poprzez SSH - wiem że temat poruszany już tysiące razy, ale nie widzę na DUG'u jakiegoś poradnika step-by-step wyjaśniającego w jaki sposób porządnie zabezpieczyć SSH, przed włamaniem - tutaj również liczę na Waszą pomoc :) (i obiecuję napisanie arta na ten temat, tak żeby już nikt nie musiał w przyszłości pytać).

To tyle na początek, mam nadzieję że ktoś coś poradzi :) jak zawsze z góry dzięki za info.

Pozdro.

Offline

 

#3  2012-01-31 09:20:24

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

Serwer na Dyndns? na dyndns możesz sobie postawić domenę i przekierować na własny serwer.
A ten serwer stawiasz, jak każdy inny serwer na Debianie, bez żadnych różnic.
Radzilbym go porządnie zabezpieczyć, jeśli ma być widoczny w necie.

Do PHP, CSS i html, z ASP>NET na serwerach Linuxowych bywa róznie, Apache ma moduły do mono, ale możliwości tego mono bym nie przeceniał.

Co do SSH - logowanie po kluczu szyfrującym jest najbepieczniejsze, po haśle  należy ustawić limit prób w jednym połączeniu, a sam serwer ssh ochronić poprzez firewalla, moduły np recent lub hashlimit nadają się tu idealnie.

Tu masz przykład użycia hashlimit do ochrony przed atakiem DOS portu smtp, ssh się robi bardzo identycznie, tylko dałbym inne liczby np max 3 nowe polączenia na godzinę. (z jednego IP).
Przykladowo ja mam dostęp po haśle na konto usera i tylko po kluczy na roota:

Kod:

# Authentication:
LoginGraceTime 15
PermitRootLogin without-password
# PermitRootLogin yes
#StrictModes yes
MaxAuthTries 2
RSAAuthentication yes
PubkeyAuthentication no
AuthorizedKeysFile    .ssh/autorized.keys

Generalnie wsio, o co pytasz, jest na forum przemielone setki razy.

Co do włamania na serwer, to jak go porządnie skonfigurujesz, to nikt się do niego nie włamie.
Jeśli natomiast ktoś przejąłby kontrolę nad tym serwerem, to dostęp do innych urządzeń zdobędzie, o ile nie będą zabezpieczone na okoliczność podejrzanego dostępu z serwera.

Jeśli moge coś polecić, to serwer www w chroocie, do tego w jaju Grsecurity z np takimi ustawieniami:

Kod:

 sysctl -a | grep -i chroot
kernel.grsecurity.chroot_deny_shmat = 1
kernel.grsecurity.chroot_deny_unix = 1
kernel.grsecurity.chroot_deny_mount = 1
kernel.grsecurity.chroot_deny_fchdir = 1
kernel.grsecurity.chroot_deny_chroot = 1
kernel.grsecurity.chroot_deny_pivot = 1
kernel.grsecurity.chroot_enforce_chdir = 1
kernel.grsecurity.chroot_deny_chmod = 1
kernel.grsecurity.chroot_deny_mknod = 1
kernel.grsecurity.chroot_restrict_nice = 1
kernel.grsecurity.chroot_execlog = 1
kernel.grsecurity.chroot_caps =0 
kernel.grsecurity.chroot_deny_sysctl = 1
kernel.grsecurity.chroot_findtask = 0

i nie ma bata, na taki serwer www, może ewentualnie dojść do przejęcia Apacha w chroocie, ale wyrwanie się z takiego chroota - to bardzo ciężka para kaloszy, o ile w ogóle możliwe.

Osobiście na tej maszynce radziłbym Lighttpd.
Ma dość prostą konfigurację i całkowicie zrzuca uprawnienia roota po uruchomieniu.
ASP obsługuje mono, w Lightym podobno wykonalne:
http://www.mono-project.com/FastCGI_Lighttpd

Takze jakbyś coś nie wiedzial, to pytaj o bardziej szczegółowe rzeczy.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-01-31 09:34:44)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2012-01-31 22:09:33

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

@Jacekalex:

Dzięki za info - przez najbliższe parę dni postaram się coś poczytać i dokształcić się w tematach bezpieczeństwa, zapewne jakieś pytania się pojawią ;] tym bardziej że już teraz widzę, dziesiątki opcji o których istnieniu nie miałem pojęcia :).

Pozdro.

Offline

 

#5  2012-02-01 01:37:07

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

Najlepsze sznurki po polsku, jakie znam:
http://www.gentoo.org/doc/pl/security/

To przydatne, ale początkującym i to na Debku nie polecam z tym przesadzać:
http://www.gentoo.org/proj/pl/hardened/grsecurity2.xml?style=printable
http://www.gentoo.org/proj/pl/hardened/pax-quickstart.xml
Inne opcje: SELINUX (w Debianie podobno domyślny, ale skonfigurowany nie jest), Apparmor.

Debian:
http://www.debian.org/doc/manuals/securing-debian-howto/

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-02-01 08:14:32)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2012-02-07 00:07:25

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

Trochę poczytałem (choć biorąc pod uwagę mnogość opcji iptables, ssh i reszty technologii zabezpieczających - to nadal mało ;] ) i na pierwszy ogień zabrałem się za firewalla, naskrobałem taki skrypt:

Kod:

#! /bin/sh
# /etc/init.d/firewall
#

# Some things that run always
touch /var/lock/firewall

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting firewall "
    # Clear everything
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    
    # Change the default policy of all three chains to DROP
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT
    
    # Accept input from loopback device
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -i lo -j ACCEPT

    # Accept input from already established connections
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    
    # Drop input from not defined connections
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A OUTPUT -m state --state INVALID -j DROP

    # Accept SSH connections
    iptables -A INPUT -p TCP --dport 2344 -s 192.168.1.0/5 -j ACCEPT
    iptables -A OUTPUT -p TCP --dport 2344 -s 192.168.1.0/5 -j ACCEPT
    
    # Allow only two ssh connections
    iptables -A INPUT -p tcp --syn --dport 2344 -m connlimit --connlimit-above 1 --connlimit-mask 0 -j REJECT
    
    ;;
  stop)
    echo "Stopping firewall"
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X

    iptables -P INPUT ACCEPT
    ;;
  *)
    echo "Usage: /etc/init.d/firewall {start|stop}"
    exit 1
    ;;
esac

exit 0

(wszelkie uwagi do powyższego mile widziane :) )

Tylko ni cholerci, nie wiem, jakie parametry zastosować do connlimit'a (dla ssh dałem dwa - jeden na zwykłego usera, jeden na root'a), nie mam pojęcia ile połączeń zużywa się przy standardowym ładowaniu strony poprzez http... jedno czy więcej?

Druga sprawa: mam problem  ze zrozumieniem hashlimit, wydawało mi się że taki łańcuch:

Kod:

iptables -A INPUT -p icmp -m hashlimit --hashlimit-name icmp --hashlimit-mode srcip --hashlimit 1/minute --hashlimit-burst 1 -j REJECT

powinien sprawić że na minutę ktoś będzie sobie mógł raz z jednego IP pingnąć kompa - tyle że to działa tak że pierwszy pakiet jest odrzucany a reszta przyjmowana, z kolei jak na końcu zmienię REJECT na ACCEPT - to zdaje się nie działać w ogóle - znaczy się wszystko przechodzi jak by nigdy nic - co robię nie tak?

Offline

 

#7  2012-02-07 06:35:44

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Strona poprzez DynDNS - bezpieczeństwo, konfiguracja i kilka innych

Ja kiedyś do pewnego  serwera SMTP  naskrobałem taką regułkę, i działało elegancko:

Kod:

iptables -A SMTP ! -i lo  -m state --state NEW  -m set --match-set spamhaus src -j STEAL
iptables -A SMTP ! -i lo  -m state --state NEW -m set --match-set sblamdrop src -j STEAL
iptables -A  SMTP ! -i lo -m connlimit --connlimit-upto 10 --connlimit-mask 0 --connlimit-saddr -m hashlimit --hashlimit-upto 1/min --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name smtp -j ACCEPT
iptables -I INPUT ! -i lo -p tcp -m multiport --dports 25,465,587 -j SMTP

Pozwalało to na jedno polączenie SMTP na minutę z jednego IP,
connlimit załatwiał limit równoczesnych połączeń, a set obsluguje filtry spamhaus i sblam wrzucone do ipseta.

Tu masz kilka sznurków o iptables:
http://stary.dug.net.pl/texty/Iptables_by_Atom_Zero.pdf
http://jacekalex.sh.dug.net.pl/iptables_routing.pdf
http://pl.wikibooks.org/wiki/Sieci_w_Linuksie/Netfilter/iptables

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-02-07 06:39:30)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)