Skocz do zawartości

Polecane posty

Witam wszystkich !

 

Posiadam torchę wolnych zasobów na moim serwerze i zastanawiam się nad uruchomieniem bezpłatnego (lub za pobraniem symbolicznej opłaty) serwera shell. Obecnie mam wyciętą maszynę wirtualną (KVM):

 

SO: Ubuntu 12.10

RAM: 8GB

CPU: 4 rdzenie

DYSK: 250GB

IPv4: x1

IPv6: /64

 

Docelowo na serwerze ma zostać uruchomiony serwer WWW, Mail, Jabber no i oczywiście shell. Każdy użytkownik dostanie wydzieloną przestrzeń dyskową, oraz limity procesów oraz miesięczne limity na przepływ danych.

 

Serwer ma mi służyć w celach szkoleniowych :) Jeśli jest ktoś zainteresowany takim kontem to proszę o zostawienie wiadomości w tym poście, bądź proszę wysłać prywatną wiadomość.

 

Pozdrawiam,

Paweł

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Super, jak wszystko pokonfiguruję - odezwę się :) Sugestie mile widziane.

 

PS. Niestety nie znam się na prawie więc proszę o sugestię jak można sformułować regulamin darmowego hostingu z opcją "wolnych datków".

Edytowano przez ensh (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zadbaj tylko o security tych shelli, nie raz już widziałem jak serwery padały po kilku dniach od takiej działalności, a to jeden kopał bitcoiny na CPU, a to inny zajeżdżał dysk... to jest naprawdę istotne, nawet bardziej niż sama stabilność i wydajność tego serwera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki za wskazówkę, generalnie myślę nad quotą dla każdego użytkownika, która będzie ograniczała (per user): Przestrzeń dyskową, transfer, liczbę procesów, maksymalne zużycie procesora/pamięci etc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki może znajdę w nim jakąś inspirację :) Macie jakieś propozycje na odseparowanie użytkowników ? Moim pomysłem jest jailkit

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Do odseparowania użytkowników możesz użyć kontenerów LXC. Każdemu użytkownikowi będziesz mógł przydzielić pamięć ram, swap oraz przydział procesora. Kontenery LXC możesz uruchomić na VPSie z pełną wirtualizacją. Sam używam LXC do oddzielenia aplikacji na serwerze VPS KVM i spisują się świetnie. Tylko pamiętaj, żeby nie dawać użytkownikowi roota na kontenerze. Aha i kontenery mogą współdzielić przestrzeń dyskową przez co tak naprawdę narzut w zasobach będzie niewielki.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@chmuri: Dzięki za korektę później przejrzę co w tych patchach "piszczy" i przetestuję jak będą się sprawowały z kernelem który jest obecnie w mojej wersji Ubuntu.

 

@nvll: LXC może być ciekawym rozwiązaniem w mojej sytuacji. Spodobało mi się stwierdzenie "chroot on steroids" :) Poza tym biblioteki Libvirt obsługują LXC co jest dużą zaletą, ponieważ obecną infrastrukturą zarządzam poprzez owe biblioteki.

Edytowano przez ensh (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

na chwilę obecną sprawa ma się następująco: zostały uruchomione pierwsze kontenery na LVM dzięki któremu mogłem ograniczyć przestrzeń dyskową per kontener, teraz czas na testy ograniczeń (CPU, dysk, pamięć) dla każdego kontenera. Z racji tego, że każdy kontener ma swój prywatny adres zastanawiam się nad limitem transferu danych. W tym wypadku operacja limitowania łącza powinna pójść łatwo i przyjemnie.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli chcesz trochę zaoszczędzić przestrzeni dyskowej i ułatwić sobie aktualizację pakietów, instalację pakietów na kontenerach to możesz zrobić współdzielone katalogi(/usr, /etc, /lib, /boot, /mnt, /var, itp.) i podmontować je jako read-only.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To już nie będzie wtedy jail, a co najwyżej chroot, i też dość ograniczony ;).

Aczkolwiek znacznie ułatwi parę rzeczy takich jak między innymi aktualizacja pakietów. Testowałem takie rozwiązanie do separacji użytkowników i działało całkiem w porządku.

Edytowano przez nvll (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli chcesz trochę zaoszczędzić przestrzeni dyskowej i ułatwić sobie aktualizację pakietów, instalację pakietów na kontenerach to możesz zrobić współdzielone katalogi(/usr, /etc, /lib, /boot, /mnt, /var, itp.) i podmontować je jako read-only.

Na chwilę obecną zostanę przy pełnym kontenerze, bez dzielenia w/w katalogów, ponieważ przestrzeń dyskowa nie jest dla mnie problemem na chwilę obecną. Co do zarządzania oprogramowaniem na kontenerach to zastanawiam się nad zastosowaniem oprogramowania Puppet, które posiada moduł do zarządzania kontenerami LXC (nie testowałem go jeszcze).

 

Generalnie, zastanawiam się nad limitami. Dziś dokonfigurowałem limit procesów (per kontener) w /etc/security/limits.conf, ustawiając go na poziomie 30 procesów. Przydatne przy fork bomb :D

 

@nvll: masz jakieś sugestie odnośnie limitów w cgroup, tj. pamięc, udział procesora itp. ? Jak się sprawują ? Niestety nie miałem wcześniej z nimi do czynienia, a widzę w nich niezły potencjał.

Edytowano przez ensh (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@nvll: masz jakieś sugestie odnośnie limitów w cgroup, tj. pamięc, udział procesora itp. ? Jak się sprawują ? Niestety nie miałem wcześniej z nimi do czynienia, a widzę w nich niezły potencjał.

Nie wykorzystywałem na produkcji tych limitów więc niestety na ten temat nie mogę się wypowiedzieć.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok, cgroups przetestowane. Ustawiłem parę limitów które powinny wystarczyć na początek, a reszta wyjdzie w praniu :) Obecnie myślę jak zapewnić połączenie po SSH do kontenerów. Zastanawiałem się nad czymś w stylu SSH Proxy, co przedstawia poniższy schemat ale jeszcze nie wiem jak to zrealizować.

 

SSH(login:test) - HOST(przekierowanie do kontenera o takiej samej nazwie jak login) -> test(LXC Kontener)

Edytowano przez ensh (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz po prostu przekierować porty. A co do takiego rozwiązania jak pokazałeś to może być trudno zrealizować. Zawsze możesz spróbować napisać własny serwer ssh. W pythonie jest bardzo fajna biblioteka twisted, w którym jest wstępnie zaimplementowany protokół ssh.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×