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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
wijtacie! Zainteresowałem się zabezpieczeniami bo to wiadomo podstawowa sprawa.
Po przeczytaniu [url=http://www.pospiech.pl/www/index.php?view=items&cid=3%3Adebian&id=1%3Azabezpieczanie-dostpu-do-ssh&option=com_quickfaq&Itemid=62][b]tego artykułu[/b][/url], zacząłem od zmiany portu, jednak zaden następny krok nie jest przeznaczony dla mnie.
1. Mam zmienne IP.
2. Jak nie będę miał roota na vps'ie to nic nie zrobię w tych plikach do których nie mają dostępny normalni użytkownicy.
Jedyne co to myślałem aby zrobić użytkownika który miałby jako jedyny dostęp do pliku [i]/etc/ssh/sshd_config[/i] i w razie potrzeby mógłby zmienić mozliwość logowania się na roota, czy to dobry pomysł?
Odnosząc się jeszcze do punktu 3 mógłbym pokombinować i konto roota zabezpieczyć [url=http://dug.net.pl/tekst/65/ssh___klucze_rsa_(mozliwosc_logowania_bez_hasla)/]kluczem RSA[/url] jednakże nie wiem czy to dobry sposób hehe ;)
3. W jaki sposób mogę ustawić aby dany użytkownik mógł wejść tylko do swojego katalogu, a gdy chce wyjść poza od razu go cofa? Tak aby po prostu użytkownik X nie mógł cofnąć się do folderu /home i gdzie indziej, może siedzieć tylko w swoim folderze
4. Czy są jeszcze jakieś inne dobry sposoby?
Z góry dziękuje za odpowiedzi
Ostatnio edytowany przez leman231 (2012-12-01 03:24:39)
Offline
Ad.2
Zakładasz użytkownika i na niego się logujesz, a gdy masz wykonać jakieś administracyjne rzeczy używasz polecenia su. Więcej w
man su
Ad.3
Musisz użytkownika zamknąć w tzw. "więzieniu" i albo to zrobisz za pomocą łatki na kernela [url=http://grsecurity.net/]grsecurity[/url] albo narzędzia [url=http://olivier.sessink.nl/jailkit/]jailkit[/url]. Poszukaj na forum takie tematy gdzieś się przewijały.
Ostatnio edytowany przez ba10 (2012-12-01 08:30:48)
Offline
Niestety z tego co mi wiadomo to nie. Sam swego czasu szukałem łatwiejszego rozwiązania.
Offline
Ale wystarczy dać uprawnienia na 711 lub 710 na katalog /home
Owszem user po wydaniu polecenie "cd /home" wejdźie do tego katalogu ale nie zobaczy co tam jest (ls czy echo * nie działają). Taki pseudojail ;)
Offline
Hey hey hey panowie najważniejsze info. Jeśli połasiłeś się na OpenVZ to wiedz że z kernelusem nic nie zrobisz więc grsecowi możesz od razu podziękować.
Offline
A nie lepiej skorzystać z wbudowanej funkcji ssh tworzącej chroota?
Do sftp mmożna chrootować do folderu domowego, przy ssh jest więcej roboty, bo ssh standardowo nie pozwoli założyć chroota z shellem na folderze, jeśli root nie jest właścicielem folderu.
Mozna to obejść albo u mieszczajac foldery pacjentów w /home/user/user, gdzie /home/user należy do roota i ma chmod 700, a dopiero /home/user/user jest domowym folderem pacjenta, albo pomajstrować w źródlach ssh,.
I oczywiscie skombinować w tym chroocie/jailu jakąś powłokę, np jailkitem.
Tu conieco o chroocie w ssh:
http://www.howtoforge.com/restricting-users-to-sftp-plus-setting-up-chrooted-ssh-sftp-debian-squeeze
Do tego grsec:
sysctl -w kernel.grsecurity.chroot_caps=1; sysctl -w kernel.grsecurity.chroot_deny_chmod=1; sysctl -w kernel.grsecurity.chroot_deny_chroot=1; sysctl -w kernel.grsecurity.chroot_deny_fchdir=1; sysctl -w kernel.grsecurity.chroot_deny_mknod=1; sysctl -w kernel.grsecurity.chroot_deny_mount=1; sysctl -w kernel.grsecurity.chroot_deny_pivot=1; sysctl -w kernel.grsecurity.chroot_deny_shmat=1; sysctl -w kernel.grsecurity.chroot_deny_sysctl=1; sysctl -w kernel.grsecurity.chroot_deny_unix=1; sysctl -w kernel.grsecurity.chroot_enforce_chdir=1; sysctl -w kernel.grsecurity.chroot_execlog=0; sysctl -w kernel.grsecurity.chroot_findtask=1; sysctl -w kernel.grsecurity.chroot_restrict_nice=1;
I skrypciarzom dziękuję za uwagę :D
I nie radzę kompletnego nieporozumienia, jakim jest zabytek w postaci OpenVZ, ale KVM czy LXC, które są aktualnie najprostszymi rozwiązaniami, jeśli to mają być serwery za 10 zl.
KVM to prawdizwa wirtualizacja, natomiast LXC to taki sam "chroot na sterydach", jak OpenVZ.
U mnie KVM bardzo grzecznie śmiga na jaju z Grsec/PaX, co z Xenem i OpenVZ jest niezbyt wykonalne.
Proces:
pacjent 8713 73.0 1.1 1386612 47196 pts/8 Sl 03:06 0:15 /usr/bin/qemu-system-x86_64 -enable-kvm -hda /media/box/FreeBSD9.img -m 1024 -net nic,macaddr=00:1d:82:ac:3f:65 -net tap,ifname=tap1,script=no,downscript=no -alt-grab -name FreeBSD9 -boot d
cat /proc/8713/status | grep PaX PaX: PemRs
Do tego jeszcze cgroup:
cat /proc/8713/cgroup 13:hugetlb:/ 12:net_prio:/ 11:perf_event:/ 10:blkio:/kvm/fbsd 9:net_cls:/kvm/fbsd 8:freezer:/ 7:devices:/ 6:memory:/kvm/fbsd 5:cpuacct:/ 4:cpu:/kvm/fbsd 3:debug:/
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2012-12-03 03:28:02)
Offline
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00012 | SET NAMES latin2 |
0.00135 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.225.254.81' WHERE u.id=1 |
0.00085 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.225.254.81', 1732302110) |
0.00069 | SELECT * FROM punbb_online WHERE logged<1732301810 |
0.00114 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=22406 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00257 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=22406 ORDER BY p.id LIMIT 0,25 |
0.00121 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22406 |
Total query time: 0.00815 s |