= bubbalog =Дневникът на моето стадо

FreeBSD като SFTP Server със Scponly shell

Saturday 20.12.2008 14:23 EEST · Публикувано от в = FreeBSD =

Интернет е доста несигурно място. Навсякъде се крадат пароли, номера на кредитни карти, подсллушва се трафик… бе се лоши работи. Един от начините за това е да се позват програми и клиенти за услуги (съответно сървъри) с криптиран трансфер на данните. Така седи и въпроса с трансфера на файлове, не толкова ако кажете за самото съдържание на файловете, колкото до възможноста за посдлушване на съпътстващата ги информация течаща с тях и използването и за користни цели.

Един много добър начин за криптиран трансфер към FreeBSD е използването на клиент като FileZilla (или подобен с такива подръжки), и SSH и неговата SFTP подсистема за сървър, която мисля, че от версия 2 на SSH, тази опция е включена по дифолт, а за по-ранната трябва да се донастрой за работа, но не съм сигурен, просто ми се върти в главата някакъв подобен спомен. За един потребител няма никакви проблеми, но когато машината започне да се използва от много хора се появява проблема, че по този начин се получава ако не пълен то поне зрителен доступ до цялото дърво на файловата система на диска, което само по себеси при подходящи раздадени права надали е толкова опасно, колкото е изнервящо за администратора… Де да се знае кой мислещ себеси за разбиращ потребител ще се захване с разни опити за хакване, стимулиран от вузуалния достъп до папките… А такива са колкото безопасни, толкова и опасни, защото никога не знаят какво точно правят и какво могат да причинят на системата.

Едно от решенията (което няма да засягам никак сега) е с така наречените Jail-ове в FreeBSD – малки виртуални машинки изолирани за отделна работа. Самото реализиране обаче не е съвсем просто. Много по елегантен начин е простот инсталиране от портовете на един малък шел, който служи само за SFTP трансфер, няма въсможност за терминален логин и си прави една малка системка от основни файлове и папки, като по този начин усера вижда само тях, без да има достъп до цялото дърво на ОС-а. Отделно, има право за писане и само в една папка. Мисля, че след голямото търсене и помоща от форума намерих това което търсих.

Ето и самото конфигуруране. Като първа стъпка трябва да се инсталира от порт колекцията гореописания шел със следните опции. Всъщност това е единственото което трябва да направите:

#cd /usr/ports/shells/scponly && make install -DWITH_SCPONLY_CHROOT -DWITH_SCPONLY_RSYNC -DWITH_SCPONLY_SFTP_LOGGING -DWITH_SCPONLY_WINSCP

Следващата стъпка е създаване на клиент, който ще използва шела за трансфер. При стартирането на комадата последователно ще бъдете запитани за име, папка за качване и други работи.

#cd /usr/local/share/examples/scponly/ && /bin/sh setup_chroot.sh

Последната стъпка е създаването на dev/null и сетването му за четене и писане:

#cd /home/new_user_homedir_name && mkdir dev && touch dev/null && chmod 0666 dev/null

С това цялата конфигурация е приключена и вече имате един клиент за трансвер на данни. Следващата стъпка е да кажете на клиента си юзърнейма и паролата му и как/с какво да се логне и да провери дали всичко работи. За нов клиент – повторете стпки 2 и 3. А ако решите да махате някой клиент – това става по стандартния начин с командата rmuser и изтриването на ръка после, ако са останали някакви остатъци от клиента.

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.