Local root пользователь

Техника
  • Входите в учетную запись суперпользователя только в случае необходимости и не забывайте выходить из этого аккаунта.
  • Сообщите пароль суперпользователя только тем людям, которым вы доверяете и которые должны знать пароль.
  • Старайтесь как можно реже входить в систему с правами суперпользователя. Практически все команды, которые требуют прав суперпользователя, могут быть запущены командами sudo или gksudo.
  • С помощью команды sudo –i можно получить доступ к консоли другого пользователя в системе. Чтобы стать пользователем «Max», введите sudo –i Max, а затем введите свой пароль (а не пароль Максима).

Введение в vsftpd

Vsftpd (англ. Very Secure FTP Daemon) — FTP -сервер с поддержкой IPv6 и SSL.

Vsftpd является FTP-сервером по умолчанию многих операционных систем, и обслуживает официальные репозитории.

Vsftpd — FTP сервер являющийся безопасным, эффективным, стабильным, полностью готовым и проверенным решением в мире FTP серверов.

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

ftp.debian.org, ftp.freebsd.org, ftp.suse.com, ftp.openbsd.org, ftp.gnu.org, ftp.kernel.org, ftp.gnome.org, ftp.gimp.org, ftp.rpmfind.net, ftp.linux.org.uk, ftp-stud.fht-esslingen.de, gd.tuwien.ac.at, ftp.sunet.se, ftp.ximian.com, ftp.engardelinux.org, ftp.sunsite.org.uk, ftp.isc.org, ftp.redhat.com, ftp.kde.org

Разработчик Chris Evans, являясь профессиональным исследователем в области информационной  безопасности, обнаруживший достаточное количество уязвимостей в других программах www.scary.beasts.org/security , не забыл при этом позаботиться о усилении безопасности своего продукта. При этом ему удалось сильно расширить возможности VSFTPD, наделив его такими функциями как:  

  • Virtual IP configurations — возможность назначения виртуальных IP;
  • Virtual users — возможность создания виртуальных пользователей; 
  • Standalone or inetd operation — возможность автономного пуска без inetd/xinetd;
  • Powerful per-user configurability — конфигурация пользователей;
  • Bandwidth throttling — контроль скорости полосы пропускания;
  • Per-source-IP configurability — конфигурация по IP адресу;
  • Per-source-IP limits — конфигурация лимита по IP адресу;
  • IPv6 — релизация поддержки IPv6;
  • Encryption support through SSL integration — поддержка SSL шифрования данных;
  • и многими другими возможностями описанными мной далее…

Чтобы запускать административные задачи на Linux, у вас должны быть права суперпользователя (права root). В большинстве дистрибутивов Linux присутствует отдельная учетная запись суперпользователя, но в Ubuntu она по умолчанию отключена. Это позволяет предотвратить случайные ошибки и защитить систему от проникновения. Чтобы запустить команды, которые требуют административный доступ, используйте команду sudo.

  1. Изображение с названием Become Root in Ubuntu Step 1

  2. Изображение с названием Become Root in Ubuntu Step 2

    Введите sudo, прежде чем ввести остаток команды. Добавление sudo в начало команды запустит ее с правами администратора.

    • Пример: команда sudo /etc/init.d/networking stop прекращает работу сети, а sudo adduser добавляет в систему нового пользователя. Обе эти команды требуют прав суперпользователя.
    • Перед тем, как sudo выполнит команду, вы должны будете ввести пароль. Linux хранит пароль в течение 15 минут, так что вам не придется вводить их постоянно.
  3. Изображение с названием Become Root in Ubuntu Step 3

    • Пример: введите gksudo gedit /etc/fstab, чтобы открыть файл «fstab» в текстовом редакторе GEdit с графическим интерфейсом.
    • Если вы используете KDE Window Manager, вместо gksudo вводите команду kdesudo.
  4. Изображение с названием Become Root in Ubuntu Step 4

    • Введите команду sudo passwd root. Этим вы создадите пароль для root, тем самым «включите» административный доступ. Смотрите, не забудьте этот пароль.
    • Введите sudo -i. Введите пароль от root, когда это будет необходимо.
    • Значок в терминале изменится с $ на #, указывая на то, что теперь вы обладаете правами суперпользователя.
  5. Изображение с названием Become Root in Ubuntu Step 5

  1. Изображение с названием Become Root in Ubuntu Step 6

    Нажмите комбинацию клавиш , чтобы открыть окно терминала. В целях безопасности (и чтобы избежать поломок), учетная запись суперпользователя по умолчанию отключена. Чтобы безопасно запустить команду с правами администратора, используйте команды sudo или gksudo. Если вы просто обязаны иметь отдельную учетную запись с правами суперпользователя (если этого требует программа, используемая в вашей компании или за этим компьютером будет находиться один человек), включите права суперпользователя, введя несколько простых команд.

  2. Изображение с названием Become Root in Ubuntu Step 7

  3. Изображение с названием Become Root in Ubuntu Step 8

    Введите пароль, после чего нажмите .

  4. Изображение с названием Become Root in Ubuntu Step 9

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

  5. Изображение с названием Become Root in Ubuntu Step 10

    Введите команду su - и нажмите . Введите пароль суперпользователя, чтобы открыть консоль.

    • Чтобы отключить учетную запись суперпользователя, введите команду sudo passwd -dl root.[7]

Учетная запись суперпользователя в Linux предоставляет полный доступ к системе. Права суперпользователя (администратора) необходимы для выполнения команд в Linux, особенно тех команд, которые затрагивают системные файлы. Так как аккаунт суперпользователя имеет неограниченный доступ к системным файлам, рекомендуется получать права суперпользователя только при необходимости, а не входить в систему в качестве администратора. Это поможет предотвратить случайное повреждение важных системных файлов.

  1. Изображение с названием Become Root in Linux Step 1

    Откройте терминал. Для этого во многих дистрибутивах нужно нажать .

  2. Изображение с названием Become Root in Linux Step 2

  3. Изображение с названием Become Root in Linux Step 3

    Введите пароль суперпользователя (при появлении соответствующего запроса). После ввода команды su - и нажатия система попросит ввести пароль администратора.

    • Если появилось сообщение об ошибке аутентификации (authentication error), скорее всего, учетная запись суперпользователя заблокирована. Чтобы узнать, как разблокировать аккаунт, прочитайте следующий раздел.
  4. Изображение с названием Become Root in Linux Step 4

  5. Изображение с названием Become Root in Linux Step 5

    Введите команды, на исполнение которых нужны права суперпользователя. После входа в систему с помощью команды su - и получения прав суперпользователя можно запускать любые команды, которые требуют административного доступа. Активность команды su - сохраняется до конца сессии, поэтому пароль суперпользователя не нужно вводить каждый раз, когда необходимо выполнить очередную команду.

  6. Изображение с названием Become Root in Linux Step 6

    • Введите sudo команда и нажмите (например, sudo ifconfig). Введите свой пароль пользователя, а не пароль суперпользователя.
    • Команду sudo рекомендуется использовать в некоторых дистрибутивах Linux, например, в Ubuntu, потому что она работает даже тогда, когда учетная запись суперпользователя заблокирована.
    • Эта команда доступна пользователям с правами администратора. Добавить или удалить пользователя можно в /etc/sudoers.
  1. Изображение с названием Become Root in Linux Step 7

  2. Изображение с названием Become Root in Linux Step 8

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

  3. Изображение с названием Become Root in Linux Step 9

    Введите sudo passwd root и нажмите . Введите свой пароль пользователя.

  4. Изображение с названием Become Root in Linux Step 10

  5. Изображение с названием Become Root in Linux Step 11

    Еще раз заблокируйте аккаунт суперпользователя. Если нужно заблокировать учетную запись суперпользователя, введите следующую команду, чтобы удалить пароль и заблокировать аккаунт:

    • sudo passwd -dl root
  1. Изображение с названием Become Root in Linux Step 12

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

    • Вместо входа в систему в качестве администратора используйте команды sudo или su, чтобы предотвратить случайное повреждение важных системных файлов. Эти команды позволяют подумать о последствиях, прежде чем системе будет нанесен непоправимый ущерб.
    • В некоторых дистрибутивах, например, в Ubuntu, административный аккаунт заблокирован по умолчанию (разблокировать его нужно вручную). Такой подход защищает систему не только от случайных или необдуманных действий пользователя, но и от потенциальных атак взломщиков, которые в первую очередь направлены на учетную запись суперпользователя. Если административный аккаунт заблокирован, взломщик не сможет получить к ней доступ. Читайте предыдущий раздел, чтобы выяснить, как разблокировать учетную запись суперпользователя в Ubuntu.
  2. Изображение с названием Become Root in Linux Step 13

    • Если права суперпользователя необходимы для выполнения команды, используйте метод, описанный в предыдущем разделе.
  3. Изображение с названием Become Root in Linux Step 14

    Введите пароль суперпользователя. После ввода root (в качестве имени пользователя), введите пароль администратора.

    • В некоторых случаях паролем служит слово password.
    • Если вы не знаете или забыли пароль суперпользователя, прочитайте следующий раздел, чтобы узнать, как сбросить пароль.
    • В Ubuntu учетная запись суперпользователя заблокирована по умолчанию и не может быть использована, пока не будет разблокирована.
  4. Изображение с названием Become Root in Linux Step 15

    Войдя в аккаунт суперпользователя, не запускайте сложные программы. Существует вероятность, что такая программа, запущенная с правами суперпользователя, окажет негативное влияние на систему. Поэтому для запуска программ рекомендуется пользоваться командами sudo или su, а не входить в систему в качестве суперпользователя.

  1. Изображение с названием Become Root in Linux Step 16

    Если вы забыли пароль суперпользователя и свой пользовательский пароль, сбросьте их. Для этого загрузите систему в режиме восстановления. Если вы знаете свой пароль пользователя, но необходимо изменить пароль суперпользователя, введите sudo passwd root, затем введите пользовательский пароль, а потом создайте новый административный пароль.

  2. Изображение с названием Become Root in Linux Step 17

    Перезагрузите компьютер и после появления экрана BIOS зажмите левую клавишу . Откроется меню GRUB.

    • Успеть вовремя зажать клавишу довольно сложно, поэтому вам, возможно, придется совершить несколько попыток.
  3. Изображение с названием Become Root in Linux Step 18

    В списке выберите первую опцию (recovery mode) (Режим восстановления). Установленный дистрибутив будет загружен в режиме восстановления.

  4. Изображение с названием Become Root in Linux Step 19

    В открывшемся меню выберите опцию root. Откроется терминал с правами суперпользователя.

  5. Изображение с названием Become Root in Linux Step 20

    Смонтируйте диск, чтобы активировать разрешение на запись. В режиме восстановления диск, как правило, имеет только разрешение на чтение. Введите следующую команду, чтобы разрешить запись:

    • mount -rw -o remount /
  6. Изображение с названием Become Root in Linux Step 21

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

    • Введите passwd учетная запись и нажмите . Чтобы изменить пароль суперпользователя, введите passwd root.
    • При появлении соответствующего запроса дважды введите новый пароль.
  7. Изображение с названием Become Root in Linux Step 22

Основные правила vsftpd

tcp_wrappers
Если включено, и vsftpd был скомпилирован с поддержкой tcp_wrappers, входящие соединения контролируются через tcp_wrappers. Этот механизм предоставляет возможность контролировать соединения по ip адресам, назначая конкретному подключению отдельный конфигурационный файл vsftpd. Параметры tcp_wrappers устанавливаются в конфигурационных файлах /etc/hosts.allow и /etc/hosts.deny, среди них есть переменная окружения VSFTPD_LOAD_CONF, указывающая на месторасположения файла с альтернативными vsftpd.conf параметрами  для определенного правила (ip адреса) напротив которого она указана.
Default: NO

idle_session_timeout
Временной промежуток в секундах указывающий для удаленного клиента максимальное время которое он может бездействовать не выполняя FTP команды. Если время исчерпано, соединение отбрасывается.
Default: 300

data_connection_timeout
Максимальный временной промежуток в секундах, разрешенного замирания процесса передачи данных. Если перерыв превышен, соединение с удаленным клиентом отбрасывается.
Default: 300

accept_timeout
Максимальное время в секундах для выделения подключения с PASV стилем передачи данных.
Default: 60

connect_timeout
Максимальное время в секундах, отведенное на выделение соединения PORT стиля передачи данных.
Default: 60

banner_file
Эта опция указывает на имя банер-файла содержащего текст выводимый на экран клиента при подключении к серверу. Если выбрано, отменяет банер-строку предоставленную ftpd_banner опцией.
Default: (none)

ftpd_banner
В этой опции можно указать банер-строку выводимую на экран клиента при подключении к серверу.
Default: (none — default vsftpd banner is displayed)

dirmessage_enable
Если разрешено, при входе в каталог пользователям показывается сообщение из файла .message. По умолчанию, директория сканируется на наличие сообщения в файле .message, что можно изменить задав имя другого файла параметром message_file.
Default: NO (but the sample config file enables it)

message_file
Эта опция указывает на имя файла в котором содержится сообщение показываемое пользователям при входе в каталог. Работает только если опция dirmessage_enable включена.
Default: .message

use_localtime
При включении, vsftpd производит листинг каталогов с отображением времени лично вашей временной зоны. По умолчанию в листинге отображается GMT временная зона. Времена обновляемые MDTM командами также затрагиваются этой опцией.
Default: NO

force_dot_files
Если включено, файлы и каталоги имена которых начинаются с «.» будут показаны при листинге каталогов, даже если флаг «a» не был использован клиентом.
Default: NO

hide_ids
Включение скрывает информацию о именах владельцев файлов и группах, при листинге отображается как «ftp».
Default: NO

secure_chroot_dir           
Эта опция указывает на имя пустого каталога. Также, каталог не должен быть записываемый для ftp пользователя. Этот каталог используется как безопасный chroot(), когда vsftpd не нужен доступ к файловой системе.
Default: /var/run/vsftpd

delay_failed_login
Время ожидания в секундах, перед выводом отчета о неудачном входе.
Default: 1

delay_successful_login
Время ожидания в секундах, перед разрешением успешного входа.
Default: 0    

connect_from_port_20
Включение этой опции указывает исходящим с сервера соединениям использовать 20 порт. Из соображений безопасности, некоторые клиенты могут настаивать на этом значении. Отключение этой опции позволяет vsftpd стартовать с немного меньшими привилегиями.
Default: NO (but the sample config file enables it)

ftp_data_port
Указывается порт для входящих соединений с сервером (пока connect_from_port_20 включен).
Default: 20

port_enable
Отключите при желании запретить PORT метод организации соединения.
Default: YES

port_promiscuous
При включении выключается PORT security check гарантирующий что исходящие соединения могут быть установлены только с клиентами. Включайте только если действительно знаете что делаете!
Default: NO

one_process_model
Начиная с ядра Linux 2.4, возможно использование различных моделей безопасности, так включение этой опции позволяет использовать только один процесс на одно пользовательское подключение. Обычно нет нужды включать это если вы точно не уверены что делаете, и сайт не поддерживает большое количество одновременно подключенных пользователей.
Default: NO 

setproctitle_enable
При включении, vsftpd будет показывать информацию о статусе сессии в списке системных процессов. Другими словами, в списке процессов будут подробно отображаться события происходящие с vsftpd (скачивания и др.)
Default: NO  

max_login_fails
Количество неудачных попыток входа, после которых сессия прекращается.
Default: 3

pasv_max_port
Значение указывает максимальный порт до которого размещены порты для PASV стиля передачи данных. Может быть использовано для указания подробного размещения портов помогая файрволлингу.
Default: 0 (use any port)

pasv_min_port
Значение номера порта начиная с которого размещаются порты для PASV стиля передачи данных. Может быть использовано для указания подробного размещения портов помогая файрволлингу.
Default: 0 (use any port)

pasv_address
Этой опцией задается ip адрес для ответа на запрос PASV команды. Адрес указывается в цифровом виде, если не включен pasv_addr_resolve. По умолчанию, берётся адрес сокета входящего соединения.
Default:  (none  —  the  address  is  taken  from  the  incoming connected socket)

pasv_addr_resolve
Необходимо включить если вы хотите использовать имя хоста (вместо ip адреса) в pasv_address опции.
Default: NO

pasv_enable
Отключите, если вы хотите запретить PASV метод соединения.
Default: YES

pasv_promiscuous
Включите, если хотите запретить  PASV security check, контролирующую подключения с одинаковыми ip адресами. Включайте это, только если вы знаете что делаете! Используется в некоторых туннельных соединениях, возможно в FXP.
Default: NO

use_sendfile
Внутренняя настройка используемая для определения пользы использования sendfile().
Default: YES

trans_chunk_size
Вы возможно не хотите менять это, но можете попытаться выбрать что нибудь наподобие 8192 для более плавного ограничения полосы пропускания.
Default: 0 (let vsftpd pick a sensible setting)

pam_service_name
В этой строке можно указать имя PAM сервиса который будет использоваться для vsftpd.
Default: vsftpd

1 Sudo shell

Если у вас настроено достаточно прав в sudoers, вы также можете открыть root-ую оболочку shell используя:

sudo -s
sudo -i

В последних версиях только на CentOS 5, для запуска shell под root, используется sudo -s. Будьте очень осторожны, так как это может менять или создавать новые файлы в домашней директории Root, а установку вести в домашний каталог вызвавшего пользователя.

Команды vsftpd

dirlist_enable
Если выбрать NO, все команды листинга каталогов будут запрещены.
Default: YES

async_abor_enable
При включении, специальные FTP команды известные как «async ABOR» будут разрешены. Только плохо продуманные FTP клиенты используют эту функцию. В добавок эта функция неудобна в управлении, поэтому отключена по умолчанию. К сожалению, некоторые FTP клиенты могут зависать в момент отмены передачи, если эта функция выключена. Если это происходит можно попробовать включить эту функцию.
Default: NO

write_enable
Разрешает FTP команды изменяющие файловую систему. Такие команды как: STOR,  DELE,  RNFR, RNTO, MKD, RMD, APPE, SITE.
Default: NO

ls_recurse_enable
При включении, разрешает рекурсивный листинг «ls -R». Включение немного рискованно исходя из соображений безопасности, так как выполнение «ls -R» в верхнем уровне большого сайта может поглощать много ресурсов.
Default: NO

mdtm_write
Если включить, разрешает обновления времени модификации файла через MDTM ftp команды.
Default: YES

Vsftpd кодировка

По умолчанию сервер vsftpd отдает пользователю список файлов и папок в кодировке системы.Если вы используете Ubuntu, Debian то по умолчанию кодировка в системе UTF8 а у пользователейWindows по умолчанию выставлено WIN1251. Стандартными средствами Windows у вас не получится просматривать русские имена файлов и каталогов на вашем ftp сервере, но есть простое решение проблемы.

Официальный билд vsFTPd НЕ ПОДДЕРЖИВАЕТ перекодировку на лету, но есть модифицированная версия, переделанная русским разработчиком, в нее включены несколько весьма полезных функций.
Скачаем последний билд с сайта http://vsftpd.devnet.ru В наличии там имеются сборки под все распространенные системы. Если у вас еще нет установленного ftp сервера, то советую вам ознакомится с руководством по его установке и настройке под виртуальных пользователей Здесь. Если у вас уже установлен vsFTPd то советую вам на всякий случай сделать резервный копии файлов конфигурации.

cp /etc/vsftpd.conf ~

cp /etc/pam.d/vsftpd ~

Установите скачанный пакет, и отредактируйте файл конфигурации /etc/vsftpd.conf, добавив в него строки:

CP может принимать следующие значения: UTF8, WIN1251 (1251), KOI8R (878), IBM866 (866), ISO-8859-5 (ISO5), ISO-8859-1 (LATIN1 или ISO1), ISO-8859-15 (LATIN9 или ISO15), WIN1252 (1252), ISO-8859-2 (LATIN2 или ISO2), ISO-8859-16 (ISO16) или WIN1250 (1250).

Вписываем нужные нам значения, перезапускаем сервис vsFTPd командой /etc/init.d/vsftpd restart и поверяем результаты. Проблемы клиентов с кодировками в моем случае полностью исчезли.
О других дополнениях вы можете прочитать в руководстве к данному билду vsFTPd командой man vsftpd.conf
 

Кто не сможет самостоятельно скомпилировать установочные пакеты могут взять готовые файлы:

Пакет для Lenny, DSC, diff, оригинальный vsftpd.

Правила для анонимных пользователей vsftpd

anonymous_enable
Разрешает или запрещает вход анонимных пользователей. Если разрешено, пользователи с именами ftp и anonymous распознаются как анонимные пользователи.
Default: YES

anon_max_rate             
Максимальная допустимая скорость передачи данных для анонимных пользователей, выражена в байтах в секунду .
Default: 0 (unlimited)

anon_root
В этой строке указывается каталог, в который vsftp будет переводитьанонимных пользователей после входа. При неудаче просто игнорируется.
Default: NO

no_anon_password
Если опция установлена, vsftp не спрашивает пароль у анонимных пользователей, позволяя им подключаться сразу.
Default: NO

anon_mkdir_write_enable
Включение этой опции, позволяет анонимным пользователям создавать новые каталоги в соответствии с определенными для этого условиями. Для того чтобы это работало опция write_enable должна быть включена, и анонимный пользователь должен иметь права на запись в данном каталоге.
Default: NO

anon_other_write_enable
Если выбрано YES, анонимные пользователи могут выполнять операции записи отличные от загрузки на сервер и создания каталогов, такие как удаление и переименование. Это обычно не рекомендуется, но все таки такая возможность присутствует для полноты.
Default: NO

anon_upload_enable
Включение этой опции позволяет анонимным пользователям загружать файлы на сервер, в соответствии с определенными для этого условиями. Для того чтобы это работало опция write_enable должна быть активирована, и анонимный ftp пользователь должен иметь права
на запись в каталоге для загрузки. Включение опции также необходимо для предоставления возможности загружать на сервер файлы виртуальным пользователям; по умолчанию виртуальные пользователи имеют одинаковые привилегии с анонимными пользователями (т.е. максимально ограниченные привилегии).
Default: NO 

anon_world_readable_only
При включение этой опции, анонимным пользователям будет разрешено скачивать только видимые ими из мира файлы. Предполагается полезным, если пользователи могут загружать на сервер и хранить на нем собственные файлы.
Default: YES

deny_email_enable
Активация опции, позволяет использовать список анонимных паролей типа e-mail, при использовании которых попытки подключения будут отвергнуты. По умолчанию, файл содержащий этот список располагается в /etc/vsftpd.banned_emails, но имеется возможность изменить путь,
указав альтернативный путь в banned_email_file.
Default: NO

banned_email_file
Эта опция указывает имя файла в котором содержится список анонимных e-mail паролей не принимаемых сервером. Сервер сверяется с этим файлом если опция deny_email_enable включена.
Default: /etc/vsftpd.banned_emails

secure_email_list_enable
Активируйте опцию, если хотите разрешать вход анонимным пользователям только на основе проверки паролей указанных в e-mail листе. Это простой путь ограничения доступа к низко безопасному содержимому без необходимости в виртуальных пользователях. При включении,
анонимные входы блокируются если пароль не содержится в файле указанном опцией email_password_file. Формат файла — один пароль на строку. По умолчанию файл располагается в /etc/vsftpd.email_passwords.  
Default: NO

email_password_file
Эта опция может быть использована для предоставления альтернативного пути файла
используемого secure_email_list_enable опцией.
Default: /etc/vsftpd.email_passwords

anon_umask
Значение накладываемой маски на создаваемые анонимными пользователями файлы. Замечание! Если вы решили указать цифровое значение, надо помнить о нулевом «0» префиксе, иначе значение будет рассмотрено как десятизначное.
Default: 077

Использование Sudo

Вам не нужно быть суперпользователем каждый раз, когда вы хотите запустить некоторые конкретные административные функции. Благодаря Sudo, вы можете запустить некоторые или все команды как под root-ом. Когда Sudo установлен (пакет: Sudo), вы можете настроить его при помощи команды ‘visudo’ под root-ом. В основном он редактирует (Vim по умолчанию) /etc/sudoers, но это не рекомендуется делать вручную.

Таким образом, быстрый и нерекомендуемый способ использования Sudo, это добавить в конце файла sudoers:

alex ALL=(ALL)ALL

Alex — имя пользователя. Сохраните (нажать escape, затем ввести wq), и все готово. Войдите как alex, и запустите например:

$sudo yum update

Sudo запросит пароль. Это пароль alex-а, а не пользователя root. Так что будте осторожны, когда вы даете права пользователя с Sudo.

%admin ALL=(ALL)ALL

Alex так же может выполнить суперпользовательскую команду, и alisa получила право запускать Sudo, с теми же правами и со своим паролем. Если alex и alisa не члены одной группы, мы можем определить псевдоним пользователя в файле sudoers:

User_Alias ADMINS = alisa,alex

Тем не менее, мы не хотим, чтобы alex и alisa могли запускать с правами суперпользователя любую програму. Мы хотим, чтобы они могли запускать только ‘updatedb’. Давайте определим команду псевдоним:

Cmnd_Alias LOCATE = /usr/sbin/updatedb
ADMINS ALL = LOCATE

На этот раз, /etc/sudoers выглядит следующим образом:

User_Alias ADMINS = alisa, alex
Cmnd_Alias LOCATE = /usr/bin/updatedb
ADMINS ALL = LOCATE

В результате alex и alisa могут запускать updatedb, как root, введя свой пароль.

Если последнюю строчку в файле изменить:

ADMINS ALL = NOPASSWD:LOCATE

тогда alex и alisa смогут выполнить ‘sudo updatedb’ без ввода пароля.

Можно добавить другие команды в командный алиас и более алиасов в правило. Например мы можем создать алиас NETWORKING содержащий некоторые сетевые команды типа: ifconfig, route или iwconfig:

Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhcclient, /usr/bin/net, sbin/iptables,
 /usr/bin/rfcom, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
User_Alias ADMINS = alice, bob
Cmnd_Alias LOCATE = /usr/bin/updatedb
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net,/sbin/iptables,
/usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
ADMINS ALL = LOCATE, NETWORKING 

Маленькая проба: войдите в систему как alisa (или alex), и наберите:

$ping -c 10 -i localhost

Ответ должен вернуться быстро:

PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
ping: cannot flood; minimal interval, allowed for user, is 200ms

Теперь, тоже-самое но с Sudo:

$sudo ping -c 10 -i 0 localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=3 ttl=64 time=0.021 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=4 ttl=64 time=0.030 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=5 ttl=64 time=0.017 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=6 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=7 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=8 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=9 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=10 ttl=64 time=0.016 ms
--- localhost.localdomain ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 1ms
rtt min/avg/max/mdev = 0.016/0.023/0.049/0.010 ms, ipg/ewma 0.187/0.028 ms

Sudo часто используется для предоставления определенным пользователям частичного доступа к привелигированным командам, чтобы они могли выполнять ограниченные административные функции. Одно из удобств Sudo в том, что все команды записываются в /var/log/secure. Приведенный выше пример будет описан строчкой в журнале:

Apr 18 11:23:17 localhost sudo: alex  : TTY=pts/0 ; PWD=/home/alex ; USER=root ; COMMAND=/bin/ping -c 10 -i 0 localhost 

Вот и все. Теперь никогда не забуду, когда использовал Sudo: «с большой властью приходит большая ответственность».

Об этой статье

Правила работы с пользователями vsftpd

local_enable
Разрешает или запрещает вход для локальных пользователей. Если включено обычные пользовательские акаунты в /etc/passwd могут быть использованы для входа. Должно быть включено для разрешения любых не анонимных входов, включая вход виртуальных пользователей.
Default: NO

local_root
Эта опция указывает каталог в который vsftpd должен перевести пользователя после локального не анонимного входа. В случае неудачи просто игнорируется.
Default: (none)

chmod_enable
Включение этой опции разрешает использование SITE CHMOD команд устанавливающих права доступа для файла. ВНИМАНИЕ! Применимо только к локальным пользователям. Анонимные пользователи никогда не используют SITE CHMOD команды.
Default: YES

check_shell
Замечание! Опция эффективна только для non-PAM сборок vsftpd. Если запрещена, vsftpd не проверяет файл /etc/shells на допустимость пользовательских shell оболочек для локальных входов.
Default: YES

virtual_use_local_privs
Если включено, виртуальные пользователи будут использовать одинаковые с локальными пользователями привилегии. По умолчанию, виртуальные пользователи используют одинаковые с анонимными пользователями привилегии, предполагающие большие ограничения, (особенно условия доступа на запись).
Default: NO 

local_max_rate
Максимальная скорость передачи данных, выраженная в байтах в секунду, для локально аутентифицированных пользователей.
Default: 0 (unlimited)

local_umask
Значение маски назначения прав доступа к файлам созданным локальными пользователями. Помните! Если вы хотите указать параметр в качестве цифрового значения, указывайте «0» (нулевую) приставку, иначе значение будет определено как целое десятизначное.
Default: 077

session_support
Эта опция определяет, будет ли vsftpd поддерживать установленные соединения. Если vsftpd поддерживает сессии, он будет пытаться обновить utmp и wtmp. Он также откроет pam_session, если используется PAM аутентификация и закроет соединение только после отключения. Можно отключить эту опцию, если не требуется журналирование сессии и есть желание предоставить vsftpd больше возможностей для запуска с меньшими привилегиями. Замечание — utmp и wtmp поддерживаются только в сборках с включенным PAM.
Default: NO

Об этой статье

Примеры конфигурации vsftpd

1. Конфигурация для загрузки с анонимным доступом, без проверки пароля.
a)inetd/xinetd.

Можно указать другой путь к каталогу с файлами для загрузки (по умолчанию /home/ftp), в /etc/passwd, отредактировав строку «ftp:» следующим образом:

        ftp:x:107:65534::/home/diretory/way/:/bin/false (где /home/diretory/way/ — путь)

Проверьте, разрешены ли входящие соединения в настройках брандмауэра, если надо создайте соответствующие правила. Попробуйте подключиться к серверу.

Опция listen=YES позволит VSFTPD работать самостоятельно, без помощи inetd/xinetd. В этом случае необходимо запускать сервер вручную или при помощи загрузочных стартовых скриптов. Для запуска необходимо ввести в консоли команду /usr/sbin/vsftpd и FTP будет
запущен в фоновом режиме благодаря опции background=YES.

Если сервер предназначен для работы в интернет, полезно добавить некоторые ограничения.

        anonymous_enable=YES
        no_anon_password=YES
        anon_world_readable_only=YES
        connect_from_port_20=YES
        no_anon_password=YES
        hide_ids=YES
        pasv_min_port=50000
        pasv_max_port=60000
        xferlog_enable=YES
        ascii_download_enable=NO
        async_abor_enable=YES
        one_process_model=YES
        idle_session_timeout=120
        data_connection_timeout=300
        accept_timeout=60
        connect_timeout=60
        anon_max_rate=15000

Для работы в интернет в независимом от inetd/xinetd режиме

        listen=YES
        max_clients=200
        max_per_ip=4
        anonymous_enable=YES
        no_anon_password=YES
        anon_world_readable_only=YES
        connect_from_port_20=YES
        hide_ids=YES
        pasv_min_port=50000
        pasv_max_port=60000
        xferlog_enable=YES
        async_abor_enable=YES
        one_process_model=YES
        idle_session_timeout=120
        data_connection_timeout=300
        accept_timeout=60
        connect_timeout=60
        anon_max_rate=15000

При переходе в независимый от inetd режим работы (listen=YES), я столкнулся с проблемой, при попытке запуска сервера получал сообщение «500 OOPS: could not bind listening IPv4 socket».  Решение оказалось простым, нужно закомментировать строку ftp в /etc/inetd.conf и
перезапустить inetd. Также при переходе в режим listen=NO, пришлось раскоментировать строку ftp в /etc/inetd.conf и перезапустить inetd иначе при попытке подключиться я получал такое сообщение — «ftp: connect: Connection refused».

Я не буду описывать все возможные варианты примеров конфигурации сервера, потому что на самом деле их может быть очень много, вместо этого ниже хочу добавить мой перевод man vsftpd.conf, который был написан для удобства изучения возможностей vsftpd, а сегодня вырос в полноценный перевод.

Выражаю благодарность Andrew Clark, который согласился принять участие в переводе и внес свои корректировки.

NAME
       vsftpd.conf — конфигурационный файл для vsftpd
Описание

vsftpd.conf используется для управления различными аспектами поведения vsftpd. По
умолчанию vsftpd ищет этот файл в по адресу /etc/vsftpd.conf. Однако, вы можете
изменить местоположение файла, через аргументы командной строки. Аргументы командной
строки это путь и имя конфигураци онного файла для vsftpd. Такая возможность полезна,
если вы пожелаете использовать улучшенный inetd, такой как xinetd, для запуска vsftpd с
разными конфигурационными файлами на каждый виртуальный хост.

Журналирование vsftpd

syslog_enable
При включении, все выводы журнала направляемые ранее в /var/log/vsftpd.log будут направляться в системный журнал вместо этого. 
Default: NO

no_log_lock
Если включено, запрещает vsftpd блокировку файла журнала при записи в него. Этот параметр обычно не разрешен.
Default: NO

log_ftp_protocol
При включении, все FTP запросы и ответы журналируются, включение с опцией xferlog_std_format запрещено. Используется для выявления ошибок.
Default: NO

dual_log_enable
При включении, два файла с журналами генерируются параллельно, по умолчанию они располагаются в /var/log/xferlog и /var/log/vsftpd.log. Первый генерируется в стиле журнала wu-ftpd, анализируемый стандартными средствами. Другой в стиле журнала vsftpd.
Default: NO

xferlog_enable
Если включено, журнал будет включать детальные отчеты о закачках на сервер, и закачках с сервера (uploads, downloads). По умолчанию, этот файл будет располагаться в /var/log/vsftpd.log, но расположение может быть изменено используя опцию vsftpd_log_file.
Default: NO (but the sample config file enables it)

xferlog_std_format
Если включено, запись в журнал производится в стандартном wu-ftpd стиле, xferlog формата. Полезно при желании использования уже существующих привычных способов генерации статистики. Однако с другой стороны, формат используемый по умолчанию лучше читается. Расположение журнала по умолчанию /var/log/xferlog, что может быть изменено при помощи опции xferlog_file.
Default: NO

xferlog_file
В параметре этой опции можно указать альтернативный путь к файлу журнала записываемому в стиле wu-ftpd. Запись в этот журнал производится только при включенной xferlog_eneble опции, включительно с xferlog_std_format. Также журнал ведется если включена опция dual_log_enable.
Default: /var/log/xferlog

vsftpd_log_file
В этой строке можно указать альтернативный путь к файлу журнала, записываемому в стиле vsftpd. Этот журнал ведется если опция xferlog_enable включена, и xferlog_std_format остается не выбрана. Также журнал ведется если включена опция dual_log_enable. Важно не забыть, при включенной syslog_enable опции, этот файл не записывается и вывод вместо этого напрвляется в системный журнал.
Default: /var/log/vsftpd.log

SSL шифрование данных в vsftpd

ssl_enable
Если включено, и vsftpd был скомпилирован с поддержкой OpenSSL, vsftpd будет поддерживать безопасность соединения с помощью SSL. Это позволяет контролировать соединения (включая входы в систему) и также передачу данных. Для этого также необходим клиент с поддержкой SSL. Замечания!! Включайте, если это действительно вам необходимо. Надо понимать тот факт, что vsftpd не может гарантировать безопасность OpenSSL библиотек. Включая эту опцию вы доверяете безопасность установленной OpenSSL библиотеке.
Default: NO

ssl_sslv2
Разрешено только при включенной ssl_enable. Включение этой опции делает возможными подключения по протоколу SSL v2. TLS v1 подключения оптимальны.
Default: NO

ssl_sslv3
Разрешается только при включенном ssl_enable. Если разрешено, эта опция позволяет подключения по протоколу SSL v3. TLS v1 подключения оптимальны.
Default: NO

ssl_tlsv1
Разрешено только если ssl_enable включено. Если разрешено, эта опция разрешает соединения по протоколу TLS v1 который является оптимальным.
Default: YES

allow_anon_ssl
Разрешено только если ssl_enable включено. При включении этой опции, анонимным пользователям также будет разрешено использование безопасных SSL соединений.
Default: NO

force_anon_data_ssl
Разрешено только если ssl_enable включено. При включении, все анонимные подключения будут использовать SSL безопасные соединения для приема и передачи данных.
Default: NO

force_anon_logins_ssl
Разрешено только при включенном ssl_enable. При включении, все анонимные подключения будут использовать безопасные SSL соединения при посылке паролей.
Default: NO

force_local_data_ssl
Разрешено только если ssl_enable активно. При включении, все не анонимные подключения используют безопасные SSL соединения для приема и передачи данных.
Default: YES

force_local_logins_ssl
Разрешено только если ssl_enable включено. При включении, все не анонимные подключения используют безопасное SSL соединение при передачи паролей.
Default: YES

dsa_cert_file
Эта опция указывает местонахождение DSA сертификата для использования в SSL зашифрованных соединениях.
Default: (none — an RSA certificate suffices)

dsa_private_key_file
Эта опция задает расположение личного DSA ключа для использования в SSL зашифрованных соединениях. Если эта опция не выбрана, сертификат предусматривается как личный ключ.
Default: (none)

rsa_private_key_file
Эта опция задает расположения личного RSA ключа для использования в SSL зашифрованных соединениях.Если эта опция не выбрана, сертификат предусматривается как личный ключ.
Default: (none)

ssl_ciphers
Эта опция может быть использована для выбора того, какие SSL шифры будут разрешены для шифрования SSL соединений. Смотрите страницу man ciphers для детального ознакомления. Заметьте, такие ограничения шифров могут использоваться в целях предосторожности,
предотвращая использования отдаленными сторонами шифра с которым были обнаружены проблемы.
Default: DES-CBC3-SHA                                                                                   

Настройка vsftpd. conf

Пример файла конфигурации с комментариями

DOWNLOAD/UPLOAD

file_open_mode
Маска файлов назначаемая при загрузке файлов на сервер. При желании возможно изменить на 0777 если есть необходимость сделать исполняемыми загружаемые на сервер файлы.
Default: 0666

    ascii_download_enable
Если включить, ASCII режим передачи данных будет разрешен при download.
Default: NO

ascii_upload_enable
Если включить, ASCII режим передачи будет разрешен при uploads.
Default: NO

download_enable
Если выбрано значение NO, все запросы на скачивание файлов с сервера будут отклонены.
Default: YES

lock_upload_files
При включении опции, все загрузки на сервер происходят с блокировкой записи загружаемого файла. Все загрузки с сервера совершаются с общей блокировкой чтения скачиваемых файлов.
Default: NO

Установка vsftpd

К примеру в Debian GNU/Linux, программный пакет устанавливается одной командой: 

apt-get install vsftpd.

Сама программа располагается в каталоге /usr/sbin/vsftpd, возможно в разных дистрибутивах файл vsftpd.conf находится в разных местах, узнать его расположение к примеру можно командой — whereis vsftpd.

В дистрибутиве Debian GNU/Linux, пакет vsftpd размещает свои файлы следующим образом: 

Использование команды

Многие команды могут быть запущены только суперпользователем, поэтому мы должны знать, как становится им (root-ом). Чтобы сделать это, мы можем использовать команду: su (смена пользователя). Команда su принимает следующие форматы:

su - 
su 

но чаще всего мы будем использовать su для того, чтобы стать пользователем root:

su - root
su root

если имя пользователя в строке не указано, то автоматически предпологается пользователь root, поэтому команду можно сократить:

su -
su

но обе команды ведут себя различно. ‘su ‘ дает текущему пользователю личность , тогда, как ‘su — ‘ дает текущему пользователю личность вместе с окружением , которое можно было бы получить, зарегистрировавшись в качестве .

Зачастую пользователи используют ‘su’ для перехода в root. Попробовав запустить команду (например — ifconfig), вы получите: ‘command not found’ error.

su
Password:
ifconfig
bash: ifconfig: command not found

Команды обычных пользователей обычно расположены в /usr/local/bin, /usr/bin и /bin. А команды пользователя root распологаются в основном в /usr/local/sbin, /usr/sbin, /sbin и корневой PATH это отражает. Поэтому, когда вы становитесь суперпользователем при помощи «su -«, то вы также принимаете и новый путь PATH к основным командам. А используя только ‘su’, сохраняется пользовательский путь PATH по умолчанию, следовательно, при попытке выполнить программу расположенную в /usr/local/sbin, /usr/sbin, /sbin выдаст результат: ‘command not found’ error. Для более детального объяснения, смотрите справочную страницу (man bash), особенно раздел login shells.

Таким образом, вы или должны указывать полный путь к команде (пример — /sbin/ifconfig) при использовании ‘su’, либо использовать ‘su -‘, когда становитесь root-ом.

Натройка (редактирование) vsftpd. conf

Как уже стало понятно для работы сервера необходимо отредактировать конфигурационный файл:
/etc/vsftpd.conf, итак рассмотрим этот вопрос более подробней.

Файл vsftpd.conf состоит из трех видов опций:

* BOOLEAN OPTIONS — основные опции, которые могут содержать значения: YES, NO;
* NUMERIC OPTIONS — опции содержащие разные цифровые значения, например время в секундах или   номер порта соединения;
* STRING OPTIONS —  содержат строку, например путь к каталогу на диске: /var/run/vsftpd; 

Cпособы запуска vsftpd

listen                     
Если опция включена сервер стартует в независимом от inetd/xinetd режиме «standalone mode». В этом случае он сам заботится о прослушивании и определении входящих соединений.
Default: NO

listen_ipv6                        
Тоже самое что listen, за исключением того что vsftpd слушает IPv6 протокол включительно. Этот параметр и listen взаимно исключаемые.
Default: NO

background        
При включении, vsftpd стартуя в режиме listen, работает в фоновом режиме. Т.е. контроль передается той оболочке в которой был запущен vsftpd.
Default: NO

listen_port
Если запущен в standalone mode, указанный порт прослушивается на предмет входящих FTP соединений.
Default: 21

listen_address
Если запущен в standalone mode, обычно слушает все адреса (или все локальные интерфейсы). Что может быть отменено указанием определенных ip адресов в этой строке.
Default: (none)

listen_address6
Тоже что и listen_address, но прослушивает адреса соединений на основе IPv6 протокола (который используется если выбрана опция listen_ipv6), формат в виде стандартного IPV6 адреса.
Default: (none)

max_clients
Если vsftpd находится в standalone_mode, это максимальное количество клиентов, которые могут быть подключены. Попытки подключения сверх указанного количества, получат сообщение об ошибке.
Default: 0 (unlimited)

max_per_ip
Если vsftpd находится в standalone mode, эта опция указывает максимально возможное количество клиентов с одинаковыми ip адресами. Клиентские подключения пытающиеся превысить этот лимит, получат сообщение об ошибке.
Default: 0 (unlimited)

Consolehelper

Consolehelper представляет собой оболочку для запуска GUI приложений. Когда он начинает работать, он проверяет конфигурацию PAM для требуемого применения. Это означает, что мы можем проводить аутентификацию пользователя с помощью всех установленных модулей PAM. Основной метод состоит в том, чтобы запросить пароль, но если мы имеем надлежащее оборудование. мы можем аутентифицировать с помощью смарткарты, жетонов, отпечатков пальцев и т.д. Конфигурация PAM выходит за рамки этого документа (см. PAM Руководство администратора), поэтому мы рассмотрим этап настройки consolehelper, необходимый для запуска приложений под root-ом и запросом пароля root.

В качестве примера, давайте настроим /usr/bin/xterm для запуска в качестве root-ого.

Во-первых, мы хотим сохранить возможность запускать Xterm под обычным пользователем. Поэтому создадим символическую ссылку /usr/bin/xterm-root для /usr/sbin/consolehelper:

ln -s /usr/sbin/consolehelper /usr/bin/xterm-root  

Теперь для конфигурирования PAM — создайте файл /etc/pam.d/xterm-root:

#%PAM-1.0
auth            include         config-util
account         include         config-util
session         include         config-util

Наконец, настройте consolehelper на запуск /usr/bin/xterm под root-ом, командой ‘xterm-root’. Создайте файл /etc/security/console.apps/xterm-root:

USER=root
PROGRAM=/usr/bin/xterm

Вот и все. Запускайте ‘xterm-root’ (из командной строки или ярлыком .desktop file), введите пароль и в путь. Если вы получили сообщение об ошибке: «Xlib: connecttion to «:0.0″ refused by server», запустите сначала ‘xhost local:root’.

Дополнительно:  Mailto root
Оцените статью
Master Hi-technology
Добавить комментарий