Blog of Khlebalin Dmitriy

(Записки из мира IT…)

ftp на freebsd.

VPN (mpd5)>>DNS (bind 9.x)>>Kernel>> Squid (NAT)>>Postfix (Mail)>>Samba>>ftp

В самом юнихе есть свой штатный фтп сервер, но мое внимание привлек некий альтернативный продукт (мне он показался несколько более интересным), собсбвенно далее о нем…

Постановка задачи

   ProFTPd достаточно удобный и конфигурируемый FTP сервер обладающий множеством возможностей. В данном случае рассматривается FTP сервер внутри локальной сети, с целью предоставить доступ только для чтения любому анонимному пользователю и предоставляющий полный доступ нескольким авторизированным пользователям выполняющих функции операторов.
     Стандарт использования FTP протокола не предусматривает кодировку имен файлов отличную от латинской, однако существующие условия эксплуатации FTP серверов привели к тому, что на данный момент использование разнообразных кодировок фактически стало необходимостью. Для того чтобы FTP сервер смог корректно работать с русскими именами файлов, при сборке ProFTPd из портов следует убедиться что mod_lang включен.

   Логика работы

   Принцип работы FTP сервера достаточно прост и понятен. FTP сервер прослушивает 21 порт на наличие входящих запросов. После обоботки запроса и если авторизация клиента успешна — служба выполняет передачу данных клиенту. Авторизация на FTP сервере состоит из передачи от клиента логина и пароля. Публичный (или анонимный) доступ к серверу осуществляется при получении логина с именем anonymous и любого пароля (или совсем без пароля), либо при отстутвии логина и пароля. Фактически гибкость настройки сервера позволяет создать любые формы авторизированного и анонимного доступа.

   Установка из портов

   ProFTPd рекомендется собрать из портов, по причине того, что при сборке можно указать какие модули собирать. При установке пакета соответсвенно такой возможности не будет.

   Переходим в каталог порта proftpd:

# cd /usr/ports/ftp/proftpd

   Затем выполняем настройку конфигурации:

# make config

   Убеждаемся что параметр NLS — Use nls (builds mod_lang) активен, нажимаем OK и выполняем сборку:

# make install clean

   После окончания процесса сборки FTP сервер готов к использованию.

   Настройка анонимного доступа

   Для начала нам следует создать каталог, который будет являться корневым каталогом для FTP сервера:

# mkdir -p /usr/ftp/pub

   Ключ -p означает — создать все промежуточные каталоги при необходимости. Затем следует задать владельца каталога pub. В нашем случае это будет пользователь nobody с аналогичной группой, не имеющий никаких фактических прав в системе. Данное действие — дань безопасности.

# chown nobody:nobody /usr/ftp/pub

   После чего сформируем простейший конфигурационный файл, при помощи которого мы будет осуществлять только публичный (анонимный) доступ к нашему FTP серверу. Конфигурационный файл находится в каталоге /usr/local/etc и называется proftpd.conf. После установки по этому пути будет находиться конфигурационный файл идущий в комплекте с proftpd, и его копия, которая называется proftpd.conf.sample.

   Переходим в каталог /usr/local/etc:

# cd /usr/local/etc

   Обнуляем дефолтный proftpd.conf:

# cat /dev/null > proftpd.conf

   Затем открываем его на редактирование:

# ee proftpd.conf

   И вписываем в него следующее содержимое:

 

 

 

Теперь нужно создать два файла — proftpd.pass и proftpd.grp, которые потребуются для аутентификации пользователей. Более подробно принцип аутентификации будет описан чуть ниже. Находясь в каталоге /usr/local/etc открываем эти файлы на редактирование (редактор ee автоматически их создаст при отсутствии). Выполняем:

# ee proftpd.pass

   Вписываем в этот файл следующую строку:

   И сохраняем файл. Затем редактируем proftpd.grp

# ee proftpd.grp

   В этот файл вписываем строку:

Сохраняем. После чего потребуется создать каталог для логов сервера:

# mkdir /var/log/proftpd

   Запуск

   Фактически все готово для запуска FTP сервера, поместим в каталог /usr/ftp/pub какие либо файлы и попробуем запустить proftpd.

# proftpd

   На дисплее не должно появиться никаких сообщений об ошибках. Проверим работает ли FTP сервер:

# sockstat -4 | grep proftpd

   На дисплее должен появиться следующий ответ:

nobody   proftpd    3952  0  tcp4   *:21                  *:*

   Команда sockstat выводит состояние сетевых соединений, а перенаправление вывода в greep фильтрует нам только статус proftpd. Т.е. данный ответ означает, что сервер proftpd запущен и ожидает соединение на 21 порту. Теперь можно попробовать подключиться к нашему серверу с другого компьютера.

    Для того чтобы FTP сервер автоматически запускался вместе с системой следует поместить в /etc/rc.conf строку proftpd_enable=»YES»:

# echo ‘proftpd_enable=»YES»‘ >> /etc/rc.conf

    Обратите внимание, для помещения строки в конец файла rc.conf мы воспользовались командой echo, которая всего лишь выводит текстовое значение находящиеся в кавычках. В нашем случе мы воспользовались перенаправлением вывода в файл при помощи символов «>>» и последующим указанием файла в который произвести вывод. Два символа «>>» означают что вывод будет добавлен к содержимому файла. Если же использовать один символ «>» то содержимое файла будет удалено и перезаписано выводом, поэтому следует выполнять подобные перенаправления осторожно.
    Теперь после перезагрузки компьютера FTP сервер будет запущен автоматически. Так же можно будет управлять работой FTP сервера через скрипт в /usr/local/etc/rc.d.

   Административный доступ

   В нашем случае, при авторизации пользователя, proftpd проверяет его наличие в файле proftpd.pass (строка в конфиге: AuthUserFile /usr/local/etc/proftpd.pass) и сверяет идентификатор группы пользователя в файле proftpd.grp (строка в конфиге: AuthGroupFile /usr/local/etc/proftpd.grp). Если данные пользователя находятся в этих файлах, то происходит авторизация и выделяется доступ. Параметры пользователя в файле proftpd.pass записаны одной строкой, на примере anonftp — «anonftp:*:65534:65534::/usr/ftp:/usr/sbin/nologin», где параметры разделены двоеточиями «:». Первый параметр «anonftp» — означает имя пользователя. Второй параметр «*» означает пароль пользователя. Тут следует обратить внимане на то, что символ «*» означает, что пользователь не имеет пароля в системе, и авторизироваться по паролю не может. В случае с anonftp это оправдано, т.к. в конфигурационном файле proftpd описана секция с участием этого пользователя для доступа к серверу без пароля. Третий и четвертый параметры — это идентификаторы пользователя и группы соответствующие системному пользователю «nobody», который никаких существенных прав в системе не имеет. Пятый параметр — пустой, в случае с proftpd он никакого значения не имеет, в системе же этот параметр отвечат за тип локали пользователя. Шестой параметр, это путь к домашнему каталогу. Соответсвенно он должен указывать на тот каталог в системе, к которому будет предоставлен доступ после авторизации пользователя на сервере. Седьмой параметр указывает на командный процессор пользователя, в случае с profpd он значения не имеет, но в целях безопасности лучше указывать /usr/sbin/nologin — это означает что пользователь не сможет получить управление командным процессором, даже при успешной авторизации. 
   Эти файлы (proftpd.pass и proftpd.grp) подменяют собой общесистемные файлы аналогичного содержания. Цель такой подмены заключается в том, чтобы сервер proftpd не использовал для авторизации большое к-во реальных системных пользователей, а оперировал только теми пользователями которых специально создали для этих целей. Фактически суть этого метода заключается в создании псевдопользователей имеющих один и тот же идентификатор 65534 — nobody и одинаковые права на файлы лежаще в каталогах FTP сервера. Формат файла proftpd.pass предусматривает кодирование пароля пользователя при помощи специального алгоритма на базе md5. Поэтому для добавления пользователя потребуется вписать пароль в файл proftpd.pass в кодированном виде. Для создания кодированного пароля нам потребуется модуль Crypt::PasswdMD5 для последующего написания скрипта. Установим его из портов: 

# cd /usr/ports/security/p5-Crypt-PasswdMD5
# make install clean

   Затем следует создать скрипт htpass.pl (данный скрипт я нашел в интернете — www.hilik.org.ua/скрипт-для-замены-htpasswd/). Создадим файл, отредактируем его и назначим выполняемым: 

# touch /usr/local/bin/htpass.pl
# ee /usr/local/bin/htpass.pl

   После сохранения файла, следует установить для него права на выполнение: 

# chmod 0755 /usr/local/bin/htpass.pl 

   И собственно производим генерацию пароля 12345: 

# htpass.pl 12345 

   В ответ получим строку:

Crypted pass 12345:$1$ygAg5c4h$pjfLl9Tt0cZMlYZljrAvS0 

   Символы, которые начинаются после «Crypted pass 12345:» фактически и являются закодированным md5 паролем, который пригоден для вставки в proftpd.pass. Добавим в файл proftpd.pass пользователя «admin» с данным паролем: 

# ee /usr/local/etc/proftpd.pass 

   Приводим файл к следующему виду: 

   Фактически мы добавили пользователя «admin» с паролем «12345», но этот пользователь имеет аналоничные идентификаторы 65534, равные системному пользователю nobody, и по сути сможет лишь получить полный доступ к папке «/usr/ftp». Однако добавления пользователя в proftpd.pass в нашем случе недостаточно для подключения. Следует произвести изменения в proftpd.conf. Откроем его не редактирование и добавим разрешение доступа для пользователя «admin»: 

# ee /usr/local/etc/proftpd.conf 

   Изменения выделены желтым цветом: 

Теперь достаточно перезапустить FTP сервер при помощи стартового скрипта (в случае если произведено добавление соотв. строки в rc.conf): 

# sh /usr/local/etc/rc.d/proftpd restart 

   И сервер готов авторизировать как анонимного пользователя, так и пользователя admin, который имеет полный доступ к содержимому FTP сервера. Если в proftpd.pass добавлено несколько пользователей подобным образом, то соответсвенно вписывать их в proftpd.conf следует через запятую типа «AllowUser admin, user1, user2» и т.д.
   Авторизация пользователя осуществляется через любой FTP клиент позволяющий ввести логин и пароль, либо явным образом по ссылке типа «ftp://admin:12345@192.168.60.2». Где admin — имя пользователя, 12345 — пароль, 192.168.60.2 — адрес FTP сервера. 

 Собственно на этом настройка ftp сервера закончена. Здесь же хотел поговорить и о клиентской части ftp клиенте.

Например, подключусь к ftp моего сайта:

Здесь же стоит привести несколько самых распространенных команд

 cd удаленный_каталог

Делает удаленный_каталог текущим каталогом на удаленной машине.

 close

Прекращает сеанс FTP с удаленным сервером и возвращается в командный интерпретатор. Все определенные макросы стираются.

delete удаленный_файл

Удаляет файл удаленный_файл с удаленной машины.

get удаленный_файл [ локальный_файл ]

Получает удаленный_файл и сохраняет его на локальной машине.

help [ команда ]

Выдает краткое (однострочное) описание команды. Если аргумент не указан, ftp печатает список известных команд.

ls [ удаленный_каталог [ локальный_файл ] ]

Выдает сокращенный листинг содержимого каталога на удаленной машине. 

mkdir имя_каталога

Создает каталог на удаленной машине.

put локальный_файл [ удаленный_файл ]

Записывает локальный_файл на удаленную машину.

pwd

Печатает имя текущего каталога на удаленной машине.

restart

Повторно выполняет передачу файла с указанной в байтах позиции.

status

Показывает текущий статус ftp.

На этом повествование о фтп сервере позволю себе закончить.

Всем удачи!!!

31.05.2011 Posted by | linux and unix | Комментарии к записи ftp на freebsd. отключены

Фильм «РЕКРУТ».

Режиссер Roger Donaldson (Роджер Доналдсон)
Сценарий Mitch Glazer (Митч Глэйзер),
Roger Towne (Роджер Таун)
В ролях:
Al Pacino (Аль Пачино),
Colin Farrell (Колин Фаррелл),
Bridget Moynahan (Бриджет Мойнэхэн),
Gabriel Macht (Гэбриэл Махт),
Kenneth Mitchell (Кеннет Митчелл)
Официальный сайт:www.the-recruit.com
Видеоролик: Quicktime
Год выпуска: 2003
РЕЦЕНЗИЯ №1В начале фильма персонаж Аль Пачино (Al Pacino) лишний раз напоминает нам, что не стоит верить очевидному. Эта тема находит себе подтверждение практически в каждом кадре фильма, и если вначале на очевидные уловки попадается главный герой The Recruit, то в конце за излишнюю доверчивость зрителям придется укорять себя.

Джеймс Клейтон (его играет Colin Farrell) является во всех отношениях первым парнем на деревне. Выпускник Массачусетского института технологий и высококлассный программист, он также неплохо развит физически и обладает хорошими аналитическими навыками. Сразу после получения диплома ему предложены две должности — одна в корпорации Dell Computer, которой нужен высококлассный компьютерщик, другая — в Центральном Разведывательном Управлении, которому нужен такой человек как Джеймс.

Рекрутером от ЦРУ в этом фильме и выступает Аль Пачино, который играет Уолтера Берка, старшего преподавателя спецшколы ЦРУ, известной в народе как «ферма». Именно на ферме ЦРУ проводит тестирование и обработку новых сотрудников. Те, кто выживает до конца курса, получают приглашение на работу. Что вынуждает свежих выпускников вузов идти в спецслужбы? Уолтер Берк в одной из своих лекций размышляет об этом вслух, утверждая, что и зарплаты в управлении не особо высокие — он, будучи старшим сотрудником, получает 70 тысяч долларов в год, в то время как работа в любой корпорации принесла бы специалисту аналогичного класса как минимум 200 тысяч. Не приносит работа в ЦРУ и известности — общественность знает только о провальных проектах, а успехи ЦРУ всегда находятся под покровом секретности. Даже медали Центрального Разведывательного Управления приносить домой нельзя — «вы рискуете жизнью, вас заводят в кабинет и показывают вам вашу медаль», рассказывает Берк в своем монологе. Несмотря на многочисленные фильмы о Джеймсе Бонде, даже девушки людей с американской Лубянки не особо уважают. «Вы на вечеринке, стараетесь ее снять, вы говорите, что работаете в ЦРУ, ваш соперник начинающий зубной врач, через пару часов она садится в его машину», — с горечью утверждает Берк.
Однако люди все же идут работать в спецслужбы. В основном мотивы большинства агентов сводятся к патриотизму или желанию заниматься увлекательным делом.

Под руководством Берка группа новобранцев проходит курс обучения на «ферме» Центрального Разведывательного Управления. Задачи иногда включают обман детектора лжи, иногда установку «жучка» в гостиничной комнате, а иногда и взрыв автомобиля. В группе с Клейтоном также работают Лайла (ее играет Bridget Moynahan) и Зэк (его играет Gabriel Macht), молодые люди, попавшие в ЦРУ впервые.

После выполнения одного из заданий Клейтон неожиданно обнаруживает себя в плену некой спецслужбы, которая выпытывает у него всю информацию о «ферме». В ход идут любые способы, включая электрошок. Клейтон держится, однако в итоге ломается и рассказывает агрессивным типам об обустройстве ЦРУ-шной ферме. Через пару часов его снова впускают в классную комнату — плен был очередным тестом, и хоть Клейтон и сломался, он продержался дольше, чем другие агенты.

После этого Клейтона нанимают в Ленгли и после всех пройденных тестов он получает довольно обыденную работу учета документов и ввода информации в компьютер. Одна из основных проблем центрального офиса ЦРУ, считает Берк, — это отсутствие внутреннего механизма безопасности. Попросту говоря, вся проверка ведется на входе, и как только человек оказывается внутри офиса, он предоставлен самому себе. Кроме того, как в конфиденциальной беседе сообщает Клейтону Берк, в последнее время в ЦРУ замечена утечка информации из компьютерной базы данных.

Утечку с компьютеров ЦРУ организовать довольно трудно. Внутри здания не работают сотовые телефоны и радиоустройства, т.е. просто считать информацию на мобильный телефон не получится. Компьютеры лишены дисководов, а доступ к принтерам имеют лишь высокопоставленные лица. Кроме того, всяческий доступ к электронной почте и интернету отсутствует по понятным причинам — не разрешать же каждому сотруднику подзагружать файлы на внешний аккаунт у провайдера. Однако утечка все-таки происходит, и Берк собирается дать Клейтону тайное задание разработать двойного агента, а самое главное — узнать заказчика информации.

С этой минуты и без этого не особо медленный темп фильма начинает ускоряться. О сюжете больше распространяться не стоит, так как зритель потеряет возможность самолично насладиться поворотами событий, которые некоторые критики назвали предсказуемыми, однако для автора этой рецензии были довольно-таки неожиданными.

Что можно сказать о фильме режиссера Роджера Дональдсона (Roger Donaldson)? Отличная постановка и весьма неплохая игра актеров. Аль Пачино, как всегда, неотразим со своими монологами и дьявольской бородой. Колин Фаррелл в течение всего фильма умудряется сохранять трехдневную небритость, а Бриджет Мойнахан также неотразима в своей роли приятной девушки, работающей на главную спецслужбу страны.

Стоит также отметить, что темп фильма не замедляется ни на минуту. При других обстоятельствах в подобных фильмах, которые можно классифивировать как боевики, зрителю всегда дается возможность «передохнуть» и просмотреть пару кадров с более медленным темпом — сцену из детства главного герою, любовные кадры или же медленный монолог главного злодея. В этом фильме такого нет, и повороты событий не предоставляют возможности расслабиться или на время отвернуться от экрана. The Recruit начинается на скорости «очень быстро» и развязка наступает при темпе «быстро, как только возможно». Однако фильм того стоит. И помните — никому не стоит доверять, все очевидное — ложно.

 

 

 

30.05.2011 Posted by | синематограф | Комментарии к записи Фильм «РЕКРУТ». отключены

Фотоприколы (часть 51).

Как обычно традиционная пятничная рубрика…

Всем удачных выходных !!!

27.05.2011 Posted by | фотоприколы... | Комментарии к записи Фотоприколы (часть 51). отключены