Как примонтировать iso-образ CD диска в FreeBSD

  • 05.11.09, 22:53





В /boot/loader.conf добавляем vn_load="YES" или подгружаем руками kldload vn.ko
Монтируем:
vnconfig /dev/vn0c /home/user/cdrom.iso
mount -t cd9660 /dev/vn0c /mnt
Размонтируем:
umount /mnt
vnconfig -u /dev/vn0c

Перенос Linux LiveCD на Flash диск

  • 05.11.09, 22:44
1. Зачем?

Удобно ли вам таскать с собой 12-сантиметровый диск со своим любимым LiveCD
(Knoppix, DSL, Blin)? Нет? А ведь хочется всегда под рукой иметь свою систему,
причем Linux, да чтобы она в кармане много место не занимала.
К чему я клоню. Настало время вспомнить про свою флешку (USB Flash Drive
по-научному) и перенести туда свой любимый дистрибутив. Предлагаю вам свое
решение этой задачи.


2. Что нам понадобится

Список продуктов, необходимых для приготовления живой флешки:

* Собственно, флешка. Размер зависит от ваших аппетитов. Для Damn Small
Linux подойдет и 128 Мб, для Knoppix понадобится не меньше одного
гигабайта. Я использовал Transcend JetFlash JF150 на 1 Гб;


* LiveCD, который мы будем пытать. Мною опробованы: Knoppix
(http://www.knopper.net), Damn Small Linux (http://www.damnsmalllinux.org), Trinux
(http://www.trinux.org). Последний, правда, не работает конкретно на моем
компьютере (точнее, нормально не работает), т.к. нет некоторых
специфических модулей, а докачивать мне лень :) В HOWTO рассматривается
DSL, но отличия между ними минимальны (в плане переноса на флешку);


* Операционка, из-под которой мы будем все это делать. Тут на вкус и цвет
товарища нет, выбирайте сами. Я использую Mandriva Linux 2007 LCE. И
тут мне уже неважно, что вы на это скажете :);


* Syslinux (http://syslinux.zytor.com). Если вас в дистрибутиве вдруг не оказалось
этой программы (странный какой-то дистрибутив), качайте с вышеуказанного
сайта исходники и собирайте.
* /dev/hands и /dev/brains + последние патчи для этих устройств.


Вот и все.


3. Подготавливаемся

Убеждаемся, что все на месте.

[extrabbit@localhost extrabbit]$ syslinux help
bash: syslinux: command not found


Вот вам и первое препятствие отсутствие syslinux'а. Но в Mandriva он есть,
просто не установлен по умолчанию. Ставим! Rpmdrake и urpmi вам в помощь:




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

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

А, еще нюанс: придется нам использовать vfat. Нет, можно, конечно, и в ext3,
но пользователи, которые до сих пор сидят под Windows, этого не оценят. Вам оно
надо? Вот и я так же подумал. В общем, я вначале флешку почистил:




Поехали дальше. Вставляем диск с LiveCD ("и монтируем" я вычеркнул - automount
творит чудеса :). Если у вас лежит только iso'шник, то его совсем необязательно
сначала прожигать на болванку. Просто делайте как я:

[root@localhost extrabbit]# mkdir /mnt/dsl-loop
[root@localhost extrabbit]# mount -o loop /home/extrabbit/dsl-2.2.iso
/mnt/dsl-loop


Что это я сделал: я создал точку монтирования (/mnt/dsl-loop) для образа
(/home/extrabbit/dsl-2.2.iso) и примонтировал его (образ) с помощью обратной
петли (-o loop). Если mount будет ругаться на -o loop, то придется обновить
util-linux. Но я надеюсь, что у вас дистрибутив новее Red Hat 6 :) Теперь
копируйте все файлы с компакт-диска на флешку (/mnt/removable - моя флешка):

[root@localhost extrabbit]# cp -r /mnt/cdrom/* /mnt/removable


Пока копируется Damn Small Linux, можно успеть поменять обои. Если же ваш
выбор - Knoppix, лучше попейте чаю, причем из самовара, потому как смотреть на
консоль в ожидании появления $PS1 пять-семь минут - это первый признак
шизофрении :)




3. Почти готово...

Половина дела сделана. Теперь остается самое главное - сделать флешку живой,
т. е. загрузочной. Но для этого нам сначала нужно ядро, initrd и конфиг
syslinux. Можно все это сделать своими руками, но зачем? У нас все это добро
есть в папке boot/isolinux:




Копируйте все это в корень флешки. Но тут есть одна маленькая деталь, которая
тем не менее заставила 2 часа искать причину, почему же syslinux не находит
ядро. Конфиг syslinux'а называется syslinux.cfg, а isolinux'а - isolinux.cfg.
Т. к. мы перетаскивали файлы с LiveCD, где использовался isolinux, надо
поменять имя конфига с isolinux.cfg на syslinux.cfg, и все заработает!

[root@localhost removable]# mv isolinux.cfg syslinux.cfg


Вот и пришло время для syslinux. Не забудьте только отмонтировать флешку! :)

[root@localhost removable]# cd ..
[root@localhost mnt]# umount removable


Вот только теперь можно уже давать команду:

[root@localhost mnt]# syslinux /dev/sdb1


(/dev/sdb1 флешка; у вас она может быть и sdc, и sdd)

Проверить, успешно ли прописался syslinux на флешке, можно так:

[root@localhost mnt]# ls -l removable/ldlinux.sys


Если его на флешке не окажется, то с записью вышел облом. Ищите ошибку (вы
точно отмонтировали флешку?), или попробуйте syslinux -f /dev/sdb1. Но это на
крайний случай.

Убедились, что все в порядке? Теперь можно и мусор в лице /mnt/removable/boot
удалить:

[root@localhost DSFL]# rm -rf boot


Главное, /boot не удалить:)


http://opennet.ru/base/sys/live_flash2.txt.html

Безопасность в Линукс и отсутствие базовых знаний пользователя .

  • 05.11.09, 01:43

Для безопасной работы в Windows пользователь обязан стать экспертом: узнать, что использовать IE нельзя, потому что он дырявый, должен научитсья выключать автозапуск, чтобы не подхватить вирус с флешки, должен изучить что такое антивирус, установить его, чтобы вирусы из desktop.ini и по ссылкам не запускались, опимизировать, чтобы компьютер тормозил по минимуму, далее разобраться что такое файрвол, стать спецом по сетевым протоколам, разобраться со стандартным файрволом ICF от которого глючит сетевое окружение и возникают проблемы с печатью или выбрать нормальный сторонний файрвол, отконфигурировать его и настроить чтобы компьютер не тормозил. Из-за того, что в Windows нет репозитариев скачиваемые файлы нужно обязательно проверять антивирусом. Из-за того что большинство программ Windows не подписываются и не имеет даже эталонных контрольных MD5/SHA1 сумм вирус все равно можно подхватить, особенно если антивирусные базы не обновлены. Еще бедному пользователю придется в совершенстве овладеть чистилками системы и реестра и освоить искусство переустановки Windows.

Используя Linux, пользователь смело ходит по любым ссылкам с эксплоитами для IE, безбоязненно устанавливает программы из репозитариев, которые автоматически проверяются по контольным суммам и цифровым подписям. Без опаски вставляет флешки и смотрит директории зараженные вирусами в desktop.ini и autorun.inf. Может спокойно отключить стандартный файрвол, потому что настольная конфигурация безопасна по умолчанию - машина не глядит в сеть кучей портов как Windows. Обычный пользователь Linux свободно работает не под root, в отличие от большинства пользователей Windows, работающих под локальным админом из-за программ, которые иначе отказываются работать, а еще из-за того, что Windows не поддерживает технологию делегирования SUID/SGID и неудобства переключения на учетку админа для изменения конфигурации. Linux-пользователю не нужны чистилки реестра и колдунские бубны для уничтожения глюков - реестра нет и есть очень подробные протоколы работы и мощные средства отладки. Linux-система устанавливается на компьютер один раз, без необходимости регулярных переустановок, которые выполняют пользователи Windows. Пользователь Linux один раз настраивает систему и просто работает, а не превращается в сетевика-файрвольщика, спеца по безопасности, обслуживанию ОС, вычистке вирусов и реестра и переустановке системы(с ужасом вспоминаю этот отвратительный гиморрой и кривые костыли для ОС). Windows очень сложно освоить, чтобы в ней можно было более менее безопасно и без глюков работать, в отличие от Linux.

Как записать iso или img в линукс , читаем и выполняем

  • 05.11.09, 00:18
Есть несколько способов записать образ на флешку , выбирать Вам ) Для этого надо : ubuntu* -  может быть любой другой полюбившийся вам дистрибутив линукса
  • Флешка объёмом большим чем требуется для записи непосредственно образа что бы осталось место для записи ваших файлов (для ubuntu*  требуется минимум 1Г , но тогда почти не останется места для записи)
  • образ флешлинукса - файл ubuntu* .img
  • Любой линукс на компьютере.
Выполним команду для ubuntu  : dmesg появится [10270.530970] usbcore: registered new interface driver usb-storage [10270.530982] USB Mass Storage support registered. [10270.531271] usb-storage: device found at 5 [10270.531277] usb-storage: waiting for device to settle before scanning [10275.528503] usb-storage: device scan complete [10275.529399] scsi 2:0:0:0: Direct-Access JetFlash Transcend 16GB 8.07 PQ: 0 ANSI: 2 [10275.536471] sd 2:0:0:0: [sdb] 31375360 512-byte hardware sectors: (16.0 GB/14.9 GiB) [10275.538392] sd 2:0:0:0: [sdb] Write Protect is off [10275.538411] sd 2:0:0:0: [sdb] Mode Sense: 03 00 00 00 [10275.538423] sd 2:0:0:0: [sdb] Assuming drive cache: write through [10275.554271] sd 2:0:0:0: [sdb] 31375360 512-byte hardware sectors: (16.0 GB/14.9 GiB) [10275.567342] sd 2:0:0:0: [sdb] Write Protect is off [10275.567362] sd 2:0:0:0: [sdb] Mode Sense: 03 00 00 00 [10275.567375] sd 2:0:0:0: [sdb] Assuming drive cache: write through [10275.567401] sdb: [10276.384555] sd 2:0:0:0: [sdb] Attached SCSI removable disk [10276.384891] sd 2:0:0:0: Attached scsi generic sg1 type 0

Как видно из этого, "флешка" у нас в системе - это /dev/sdb.

Запишем образ простой командой:

sudo dd if=/home/-L!nux-*/soft/ubuntu/9.04/ubuntu-9.04-netbook-remix-i386.img of=/dev/sdb bs=1024

-L!nux-*  - имя юзера )

Дождитесь окончания операции, после чего просто вытаскиваем "флешку".

Если вам необходимо сделать установочную "флешку" в Windows, то воспользуйтесь программой win32-image-writer.

Для этого надо : ubuntu* -  может быть любой другой полюбившийся вам дистрибутив линукса
  • Флешка объёмом большим чем требуется для записи непосредственно образа что бы осталось место для записи ваших файлов (для ubuntu*  требуется минимум 1Г , но тогда почти не останется места для записи)
  • образ флешлинукса - файл ubuntu* .img
  • Любой линукс на компьютере.
Установка: Внимание, вы все делаете на свой страх и риск!
  1. Включите компьютер и загрузите свой линукс;
  2. Вставте флешку в USB;
  3. Скопируйте образ флешлинукса в какой либо каталог
  4. Запустите терминал под рутом (наберите sudo su в терминале, что бы стать рутом);
  5. Наберите fdisk -l и отметьте(запомните) как называется флешка.
Скорей всего это будет /dev/sdX (X заменяет букву вашего устройства, в дальнейших инструкциях используйте полученную букву вместо X); Будьте внимательны, что бы не перепутать флешку с каким-то жестким диском, иначе данные могут быть утеряны! 6. Перейдите в каталог куда скачали ubuntu *.img и наберите dd if= ubuntu*.img of=/dev/sdX что бы записать образ на флешку. Если вы хотите иметь возможность хранить свои файлы на флешке - нужно создать второй раздел для пользовательских файлов:
  1. Наберите fdisk /dev/sdX;
  2. Нажмите n (создать новый раздел), потом p и нажмите 2 (что бы отметить созданный раздел как второй primary раздел);
  3. Нажмите Enter 2 раза, что бы указать начальный и конечный цилиндр (значения по умолчанию вам подойдут);
  4. Нажмите w, что бы записать изменения на диск;
  5. Наберите umount /dev/sdX что бы отмонтировать флешку, выньте из компьютера и вставьте ее обратно;
  6. Наберите mkfs.ext2 -b 4096 -L live-rw /dev/sdX2, что бы создать на втором разделе файловую систему;
  7. Перезагрузите компьютер, и укажите в биосе, что хотите грузится с USB-устройства.
При загрузке когда появится надпись “boot:” наберите usb, если хотите иметь возможность сохранять свои данные на флешку. Запускаем и наслаждаемся ) .

rTorrent - консольная качалка

  • 04.11.09, 23:52
Одна из первых качалок с командной строки , не aria2 но тоже вполне ничего если вам конечно нужно качать ничего кроме торентов , многие пользуются например  wget  и  rTorrent  ,  но вопрос зачем если есть aria2 ? которая совмещает и дополняет в себе функции первого и второго ) For Ubuntu linux apt-get install rtorrent А для установки из системы  FreeBSD: конечно при этом нужно иметь порты ) cd /usr/ports/net-p2p/rtorrent && make install clean Тонкая настройка программы осуществляется при помощи конфигурационного файла .rtorrent.rc, размещаемого в домашнем каталоге пользователя. (По умолчанию файл .rtorrent.rc отсутствует Тонкая настройка bind = a.b.c.d # bind прослушивает сокет и исходящие подключения к этому сетевому интерфейсу. ip = a.b.c.d, ip = hostname # Устанавливает адрес для ответов к трекеру (требуется пояснение) port_range = a-b # Диапазон портов по которым будет идти подключение port_random = yes | no # Открывает случайный порт из заданного диапазона check_hash = yes | no # Проверять hash файла по окончании закачки directory = directory # Директория куда будут скачиваться Ваши файлы session = directory # Эта директория, в которую будут размещаться открытые закачки. Можете оставить это поле пустым, # чтобы все файлы размещались в directory. http_proxy = url # HTTP прокси. Если нет нужды - оставьте поле пустым. encoding_list = кодировка # Добавить предпочитаемую кодировку для имен файлов. Если при распознавании ни одна кодировка # не подойдет, будет использована кодировка по-умолчанию. encryption = option,... # Настройки шифрования. По умолчанию, шифрование отключено, что эквивалентно параметру none. # Также возможны варианты: * allow_incoming (принимать зашифрованные входящие соединения), * try_outgoing (шифрование исходящих соединений), * require (запретить незашифрованные обращения), * require_RC4 (также запретить передачу текста после первичного зашифрованного установления связи), * enable_retry (если первоначальное исходящее установление связи окажется неудачным, повторить с # шифрованием, если оно было отключено, и без, если шифрование использовалось), * prefer_plaintext (использовать текст если пир предлагает выбор между открытым текстом и # шифрованием RC4, иначе будет использоваться RC4). schedule = id,start,interval,command # Вызывает команду через некоторый заданный период времени, начиная с какого то момента. # Интервал равный нулю равен выполнению команды единожды. # При выполнении команды Вы можете использовать временной формат вида: # день:час:минута:секунда, для примера: выполнять задачу каждый день в # 18:00 используйте 18:00:00,24:00:00 schedule_remove = id # Удаляет id задачи из расписания start_tied = # Стартует торренты, с похожими именами, которые были заново добавлены. stop_untied =, close_untied =, remove_untied = # Останавливает, закрывает или удаляет торренты с именами похожими на удалённые. # Очистка ассоциаций идет с ключом U close_low_diskspace = space # Закрывает все торренты, при достижении критического остатка на жестком диске, # следует использовать вместе с schedule load = file, load_verbose = file, load_start = file, load_start_verbose = file # Загружать и стартовать торренты, если это возможно, или использовать регулярные выражения типа “*” stop_on_ratio = min_ratio, stop_on_ratio = min_ratio,min_upload, stop_on_ratio = min_ratio,min_upload,max_ratio # Останавливает торренты, когда они достигают минимального рейтинга отдачи min_ratio, # отданной в процентах. min_upload указывает на минимальное количество информации в байтах. # Рекомендуется использовать совместно с schedule. on_insert = id,command, on_erase = id,command, on_open = id,command, on_close = id,command, on_start = id,command, on_stop = id,command, on_hash_queued = id,command, on_hash_removed = id,command, on_hash_done = id,command, on_finished = id,command # Вызывает команду, когда статус закачки изменяется.

Настройки закачек

upload_rate = KB, download_rate = KB # Определяет скорость раздачи, скачивания. min_peers = value, max_peers = value # Указывает минимальное и максимальное количество пиров в загружаемой закачке(торренте)

aria2 - перевод команд , крутая консольная качалка .

  • 26.10.09, 00:23
~     
--peer-id-prefix=PEER_ID_PREFIX Specify the prefix of peer ID. The peer ID in BitTorrent is 20 byte length. If more than 20 bytes are specified, only first 20 bytes are used. If less than 20 bytes are specified, the random alphabet characters are added to make it's length 20 bytes.
    2009-07-28    
--peer-id-prefix=PEER_ID_PREFIX Указать приставку для ID узла. Длина ID узла в BitTorrent равна 20 байтам. Если указано больше 20 байтов, то лишь первые 20 байт будут использоваться. Если указано меньше 20 байт, то случайные символы алфавита будут добавлены, чтобы сделать его длину равной 20 байтам.
~    
You can specify both torrent file with -T option and URLs. By doing this, download a file from both torrent swarm and http/ftp server at the same time, while the data from http/ftp are uploaded to the torrent swarm. Note that only single file torrent can be integrated with http/ftp.
    2008-12-28    
Вы можете указать одновременно торент-файл с параметром -T и URL. В этом случае, происходит загрузка файл из массы торента и http/ftp серевера одновременно, пока данные с http/ftp отдаются в массу торента. Обратите внимание, что только один файл торента может быть интегрирован в http/ft.
~    
-h, --help[=CATEGORY] Print usage and exit. The help messages are classified in several categories. For example, type "--help=http" for detailed explanation for the options related to http. If no matching category is found, search option name using a given word in middle match and print the result.
    2008-12-19    
-h, --help[=CATEGORY] Печатает руководство пользователя и выходит. Дополнительные сообщения классифицированы в нескольких категориях. Например, введите "--help=http" для подробных пояснений параметров, которые связаны с http. Если не найдены соответствующие категории, то заданное имя параметра используется для поиска похожего слова и печати результата.
~    
--peer-id-prefix=PEERI_ID_PREFIX Specify the prefix of peer ID. The peer ID in BitTorrent is 20 byte length. If more than 20 bytes are specified, only first 20 bytes are used. If less than 20 bytes are specified, the random alphabet characters are added to make it's length 20 bytes.
    2008-12-19    
--peer-id-prefix=PEERI_ID_PREFIX Указать приставку для ID узла. Длина ID узла в BitTorrent 20 байтов. Если указано больше 20 байтов, то лишь первые 20 байтов будут использоваться. Если меньше 20 байтов указано, то будут добавлены случайные символы алфавита, чтобы сделать его длину равной 20 байтам.
~    
You can specify both torrent file with -T option and URLs. By doing this, download a file from both torrent swarm and http/ftp server at the same time, while the data from http/ftp are uploaded to the torrent swarm. Note that only single file torrent can be integrated with http/ftp.
    2008-12-18    
Вы можете указать одновременно торент-файл с параметром -T и URL. В этом случае, происходит загрузка відбувається завантажений файл з маси торенту та http/ftp сереверу одночасно, поки дані з http/ftp відвантажуються до маси торенту. Зуважте, що тільки єдиний файл торенту може бути інтегровано до http/ftp.
~    
--allow-overwrite=true|false If false, aria2 doesn't download a file which already exists but the corresponding .aria2 file doesn't exist.
    2008-11-11    
--allow-overwrite=true|false Если false, aria2 не загружает тот файл, который уже существует, а соответствующий .aria2 файл, который не существует.
24.    
-s, --split=N Download a file using N connections. If more than N URLs are given, first N URLs are used and remaining URLs are used for backup. If less than N URLs are given, those URLs are used more than once so that N connections total are made simultaneously. Please see -j option too. Please note that in Metalink download, this option has no effect and use -C option instead.
    2008-12-15    
-s, --split=N Загрузить файл, используя N подключений. Если задано больше N URL, тогда первые N URL будут использоваться, а другие URL будут оставлены для резерва. Если задано меньше чем N URL, то эти URL будут использоваться больше одного раза, значит всего N соединений будет создано одновременно. Пожалуйста, смотрите также параметр -j. Пожалуйста обратите внимание на то, что в Metalink загрузках этот параметр не имеет влияния и используйте вместо него параметр -C.
28.    
--http-proxy=PROXY Use this proxy server for HTTP. See also --all-proxy option. This affects all URLs.
    2008-11-24    
--http-proxy=PROXY Использовать этот прокси-сервер для HTTP. Смотрите также параметр --all-proxy. Это применяется для всех URL.
29.    
--https-proxy=PROXY Use this proxy server for HTTPS. See also --all-proxy option. This affects all URLs.
    2008-11-24    
--https-proxy=PROXY Использовать этот прокси-сервер для HTTPS. Смотрите также параметр --all-proxy. Это применяется для всех URL.
30.    
--ftp-proxy=PROXY Use this proxy server for FTP. See also --all-proxy option. This affects all URLs.
    2008-11-24    
--ftp-proxy=PROXY Использовать этот прокси-сервер для FTP. Смотрите также параметр --all-proxy. Это применяется для всех URL.
31.    
--all-proxy=PROXY Use this proxy server for all protocols. You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URLs.
    2008-12-12    
--all-proxy=PROXY Использовать этот прокси-сервер для всех протоколов. Вы можете отбросить эту настройку и указать прокси-сервер для отдельного протокола, используя --http-proxy, --https-proxy и --ftp-proxy параметры. Это влияет на все URL.
34.    
--proxy-method=METHOD Set the method to use in proxy request.
    2008-11-24    
--proxy-method=METHOD Задать метод для использования в прокси-запросах.
35.    
--http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, basic is the only supported scheme.
    2008-11-10    
--http-auth-scheme=SCHEME Задает схему аутентификации HTTP. В настоящее время basic (основная) - единственная схема, которая поддерживается.
37.    
--ftp-user=USER Set FTP user. This affects all URLs.
    2008-11-10    
--ftp-user=USER Задать FTP пользователя. Это действует на все URL.
38.    
--ftp-passwd=PASSWD Set FTP password. This affects all URLs.
    2008-11-10    
--ftp-passwd=PASSWD Задать FTP пароль. Это действует на все URL.
39.    
--ftp-type=TYPE Set FTP transfer type.
    2008-11-10    
--ftp-type=TYPE Задать тип FTP трансфера.
40.    
-p, --ftp-pasv[=true|false] Use the passive mode in FTP. If false is given, the active mode will be used.
    2008-11-24    
-p, --ftp-pasv[=true|false] Использовать пассивный режим в. Если указано false, то будет использован активный режим.
41.    
--lowest-speed-limit=SPEED Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads.
    2008-11-10    
--lowest-speed-limit=SPEED Закрывает подключение, если скорость загрузки меньше или равна или равна этому значению (байт в секунду). 0 означает, что aria2 не имеет нижнего ограничения скорости. Вы можете добавить K или M(1K = 1024, 1M = 1024K). Этот параметр не влияет на BitTorrent загрузки.
42.    
--max-overall-download-limit=SPEED Set max overall download speed in bytes/sec. 0 means unrestricted. You can append K or M(1K = 1024, 1M = 1024K). To limit the download speed per download, use --max-download-limit option.
    2009-03-26    
--max-overall-download-limit=SPEED Установить максимальную общую скорость загрузки в байтах/сек. 0 значит не ограничена. Вы можете добавить K или M(1K = 1024, 1M = 1024K). Чтобы ограничить скорость загрузки для узла, используйте параметр --max-download-limit.
43.    
--max-download-limit=SPEED Set max download speed per each download in bytes/sec. 0 means unrestricted. You can append K or M(1K = 1024, 1M = 1024K). To limit the overall download speed, use --max-overall-download-limit option.
    2009-03-25    
--max-download-limit=SPEED Установить максимальную скорость каждого узла загрузки в байтах/сек. 0 означает неограниченно. Вы можете добавить K или M(1K = 1024, 1M = 1024K). Чтоб ограничить общую скорость загрузки, используйте параметр --max-overall-download-limit.
44.    
--file-allocation=METHOD Specify file allocation method. 'none' doesn't pre-allocate file space. 'prealloc' pre-allocates file space before download begins. This may take some time depending on the size of the file. If you are using newer file systems such as ext4 (with extents support), btrfs or xfs, 'falloc' is your best choice. It allocates large(few GiB) files almost instantly. Don't use 'falloc' with legacy file systems such as ext3 because it takes almost same time as 'prealloc' and it blocks aria2 entirely until allocation finishes. 'falloc' may not be available if your system doesn't have posix_fallocate() function.
    2009-05-07    
--file-allocation=METHOD Указать метод размещения файла. 'none' не происходит предварительное резервирование места для файла. 'prealloc' - предварительное резервирование места для файла перед началом загрузки. Это может продолжаться некоторое время, в зависимости от размера файла. Если Вы используете новые файловые системы, наподобие ext4 (с поддержкой диапазонов), btrfs или xfs, тогда лучше выбрать 'falloc' . Так как они резервируют место под большие (на несколько Гигабайт) файлы почти мгновенно. Не используйте 'falloc' вместе с наследными файловыми системами, такими как ext3 потому, что это будет продолжаться почти столько же времени, как и 'prealloc', а также полностью заблокирует aria2, пока не окончится резервирование места. 'falloc' может не быть доступным, если Ваша система не содержит функциюї posix_fallocate().
45.    
--no-file-allocation-limit=SIZE No file allocation is made for files whose size is smaller than SIZE. You can append K or M(1K = 1024, 1M = 1024K).
    2008-11-11    
--no-file-allocation-limit=SIZE Не резервируется место для файлов, размер которых меньше SIZE. Вы можете добавить K или M(1K = 1024, 1M = 1024K).
46.    
--enable-direct-io[=true|false] Enable directI/O, which lowers cpu usage while allocating files. Turn off if you encounter any error
    2008-11-26    
--enable-direct-io[=true|false] Разрешить прямое I/O (чтение/запись), которое уменьшает использование cpu (процессора) во время резервирования места для файла. Выключите, если произошла какая-либо ошибка
47.    
--allow-overwrite=true|false If false is given, and a file already exists but the corresponding control file (filename.aria2) doesn't exist, then aria2 will not re-download the file. See also --auto-file-renaming option.
    2009-06-13    
--allow-overwrite=true|false Если указано false и файл уже существует, но соответствующего гонтрольного файла (ім'я файлу .aria2) нет, тогда aria2 не будет повторно загружать файл. Смотрите также параметр --auto-file-renaming.
48.    
--allow-piece-length-change=true|false If false is given, aria2 aborts download when a piece length is different from one in a control file. If true is given, you can proceed but some download progress will be lost.
    2008-11-26    
--allow-piece-length-change=true|false Если установлено false (ложь), aria2 останавливает загрузку, когда длина блока отлична от той, которая находится в контрольном файле. Если установлено true (истина), Вы можете продолжать, однако некоторый прогресс загрузки будет потерян.
49.    
-Z, --force-sequential[=true|false] Fetch URIs in the command-line sequentially and download each URI in a separate session, like the usual command-line download utilities.
    2008-11-26    
-Z, --force-sequential[=true|false] Получить URI в последовательности командной строки и загрузить каждое URI в отдельной сесии, как в обычных утилитах загрузки командной строки.
50.    
--auto-file-renaming[=true|false] Rename file name if the same file already exists. This option works only in http(s)/ftp download. The new file name has a dot and a number(1..9999) appended.
    2008-11-11    
--auto-file-renaming[=true|false] Переименовывает файл, если такой уже существует. Этот параметр работает только в http(s)/ftp загрузке. Новое імя файла получит точку и число (1..9999) в дополнение к текущему.
51.    
-P, --parameterized-uri[=true|false] Enable parameterized URI support. You can specify set of parts: http://{sv1,sv2,sv3}/foo.iso Also you can specify numeric sequences with step counter: http://host/image[000-100:2].img A step counter can be omitted. If all URIs do not point to the same file, such as the second example above, -Z option is required.
    2008-12-18    
-P, --parameterized-uri[=true|false] Разрешить поддержку параметризованных URI. Вы можете указать группу частей: http://{sv1,sv2,sv3}/foo.iso Также Вы можете указать числовую последовательность с шагом счетчика: http://host/image[000-100:2].img Шагом счетчика можно пренебречь. Если все URI не указывают на такой же файл, как во втором приведенном выше примере, то необходимым является параметр -Z.
52.    
--enable-http-keep-alive[=true|false] Enable HTTP/1.1 persistent connection.
    2008-11-11    
--enable-http-keep-alive[=true|false] Разрешить HTTP/1.1 надёжное соединение.
53.    
--enable-http-pipelining[=true|false] Enable HTTP/1.1 pipelining.
    2008-11-11    
--enable-http-pipelining[=true|false] Разрешить конвейерную оброботку HTTP/1.1.
54.    
-V, --check-integrity[=true|false] Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. See also --bt-hash-check-seed option.
    2009-02-16    
-V, --check-integrity[=true|false] Проверить целостность файла путём подтверждения хеша блока. Этот параметр влияет лишь на BitTorrent и Metalink загрузки с контрольной суммой блоков. Используйте этот параметр, чтобы перезагрузить поврежденную часть файла. Смотрите также параметр --bt-hash-check-seed.
55.    
--bt-hash-check-seed[=true|false] If true is given, after hash check using --check-integrity option and file is complete, continue to seed file. If you want to check file and download it only when it is damaged or incomplete, set this option to false. This option has effect only on BitTorrent download.
    2009-02-19    
--bt-hash-check-seed[=true|false] Если задано true (да), то после проверки хеша с использованием параметра --check-integrity , когда файл целостен, продолжается сидирование файла. Если Вы желаете проверить файл и загрузить его только ежели он поврежден или неполный, то установите в этом параметре false (нет). Этот параметр влияет лишь на BitTorrent загрузки.
56.    
--realtime-chunk-checksum=true|false Validate chunk of data by calculating checksum while downloading a file if chunk checksums are provided.
    2008-12-17    
--realtime-chunk-checksum=true|false Подтвердить правильность блока данных путем вычисления контрольной суммы во время загрузки файла, если предусмотрена контрольная сумма блоков.
57.    
-c, --continue Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to http(s)/ftp downloads.
    2008-12-12    
-c, --continue Продолжить загрузку частично загруженного файла. Используйте этот параметр, чтоб возобновить загрузку, начатую в веб-браузере или в другой программе, которая загружает файлы последовательно с начала. Сейчас этот параметр можно использовать только для http(s)/ftp загрузок.
58.    
-U, --user-agent=USER_AGENT Set user agent for http(s) downloads.
    2008-11-12    
-U, --user-agent=USER_AGENT Указать агент пользователя для http(s) загрузок.
60.    
-i, --input-file=FILE Downloads URIs found in FILE. You can specify multiple URIs for a single entity: separate URIs on a single line using the TAB character. Reads input from stdin when '-' is specified. The additional out and dir options can be specified after each line of URIs. This optional line must start with white space(s). See INPUT FILE section of man page for details.
    2008-12-18    
-i, --input-file=FILE Загрузить URI, найденные в FILE. Вы можете указать несколько URI для одного объекта: отделяйте URI на одной строке, используя символ TAB. Читается ввод из stdin (стандартного потока ввода) когда указано '-'. Дополнительные параметры out и dir можно указывать после каждой строки с URI. Эта необязательная строка должна начинаться с пустого места - пробела(ов). Смотрите секцию INPUT FILE страницы man (руководства пользователя) для детальных пояснений.
61.    
-j, --max-concurrent-downloads=N Set maximum number of parallel downloads for every static (HTTP/FTP) URL, torrent and metalink. See also -s and -C options.
    2008-11-24    
-j, --max-concurrent-downloads=N Установить максимальное количество параллельных загрузок для каждого статического (HTTP/FTP) URL, torrent и metalink. Смотрите также параметры -s и -C.
62.    
--load-cookies=FILE Load Cookies from FILE using the Firefox3 format and Mozilla/Firefox(1.x/2.x)/Netscape format.
    2008-11-12    
--load-cookies=FILE Загружать куки-файлы из FILE, используя формат Firefox3 и Mozilla/Firefox(1.x/2.x)/Netscape.
63.    
--save-cookies=FILE Save Cookies to FILE in Mozilla/Firefox(1.x/2.x)/ Netscape format. If FILE already exists, it is overwritten. Session Cookies are also saved and their expiry values are treated as 0.
    2009-07-28    
--save-cookies=FILE Сохранить кукис в FILE в Mozilla/Firefox(1.x/2.x)/ Netscape формате. Если FILE уже существует, он будет перезаписан. Сессия кукис также сохранится и значение ее окончания будет трактоваться как 0.
64.    
-S, --show-files Print file listing of .torrent or .metalink file and exit. More detailed information will be listed in case of torrent file.
    2008-11-12    
-S, --show-files Вывести список из файла .torrent или из файла .metalink и выйти. Более детальная информация будет выведена для файла торанта.
65.    
--select-file=INDEX... Set file to download by specifying its index. You can find the file index using the --show-files option. Multiple indexes can be specified by using ',', for example: "3,6". You can also use '-' to specify a range: "1-5". ',' and '-' can be used together. When used with the -M option, index may vary depending on the query(see --metalink-* options).
    2008-12-18    
--select-file=INDEX... Указать файл для загрузки по заданному индексу. Вы можете найти индекс файла, используя параметр --show-files. Составной индекс можно указать, используя ',', например: "3,6". Вы можете также использовать '-', чтобы указать диапазон: "1-5". ',' и '-' могут быть использованы вместе. Когда используется с параметром -M, индекс может сильно зависеть от запроса (смотрите параметры --metalink-*).
66.    
-T, --torrent-file=TORRENT_FILE The path to the .torrent file.
    2008-12-28    
-T, --torrent-file=TORRENT_FILE Путь к .torrent-файлу.
67.    
--follow-torrent=true|false|mem If true or mem is specified, when a file whose suffix is .torrent or content type is application/x-bittorrent is downloaded, aria2 parses it as a torrent file and downloads files mentioned in it. If mem is specified, a torrent file is not written to the disk, but is just kept in memory. If false is specified, the action mentioned above is not taken.
    2008-12-18    
--follow-torrent=true|false|mem Если указать true или mem, тогда загруженный файл, суффикс которого - .torrent или тип - application/x-bittorrent, aria2 анализирует как torrent-файл и загружает файлы упомянутые в нем. Если указано mem, тогда torrent-файл не записывается на диск, а содержится в памяти. Если указано false, действия, упомянутые выше не совершаются.
68.    
--direct-file-mapping=true|false Directly read from and write to each file mentioned in .torrent file.
    2008-11-12    
--direct-file-mapping=true|false Напрямую считывать из и записывать в каждый файл, упомянутый в .torrent файле.
69.    
--listen-port=PORT... Set TCP port number for BitTorrent downloads. Multiple ports can be specified by using ',', for example: "6881,6885". You can also use '-' to specify a range: "6881-6999". ',' and '-' can be used together.
    2008-11-27    
--listen-port=PORT... Назначить номер порта TCP для BitTorrent загрузок. Несколько портов можно указать используя ',', например: "6881,6885". Вы также можете использовать '-', чтоб указать диапазон: "6881-6999". ',' и '-' могут быть использованы вместе.
70.    
--max-overall-upload-limit=SPEED Set max overall upload speed in bytes/sec. 0 means unrestricted. You can append K or M(1K = 1024, 1M = 1024K). To limit the upload speed per torrent, use --max-upload-limit option.
    2009-03-27    
--max-overall-upload-limit=SPEED Установить максимальную общую скорость раздачи в байтах/сек. 0 значит не ограничена. Вы можете добавить K или M(1K = 1024, 1M = 1024K). Чтобы ограничить скорость раздачи для узла торента, используйте параметр --max-upload-limit.
71.    
-u, --max-upload-limit=SPEED Set max upload speed per each torrent in bytes/sec. 0 means unrestricted. You can append K or M(1K = 1024, 1M = 1024K). To limit the overall upload speed, use --max-overall-upload-limit option.
    2008-12-19    
-u, --max-upload-limit=SPEED Указать максимальную скорость отдачи узла каждого торента в байтах в секунду. 0 значит неограниченно Вы можете добавить K или M(1K = 1024, 1M = 1024K). Чтобы ограничить общую скорость отдачи, используйте параметр --max-overall-upload-limit.
72.    
--seed-time=MINUTES Specify seeding time in minutes. Also see the --seed-ratio option.
    2008-11-24    
--seed-time=MINUTES Задать время сидирования (раздачи) в минутах. Смотрите также параметр --seed-ratio.
73.    
--seed-ratio=RATIO Specify share ratio. Seed completed torrents until share ratio reaches RATIO. You are strongly encouraged to specify equals or more than 1.0 here. Specify 0.0 if you intend to do seeding regardless of share ratio. If --seed-time option is specified along with this option, seeding ends when at least one of the conditions is satisfied.
    2008-12-15    
--seed-ratio=RATIO Указать рейтинг раздачи. Сидировать завершенные торенты, пока рейтинг раздачи не станет больше RATIO. Очень рекомендуется указать тут равный или больший 1.0. Укажите 0.0, если Вы собираетесь сидировать невзирая на рейтинг раздачи. Если указан параметр --seed-time вместе с этим параметром, сидирование закончится тогда, когда хотя бы одно условие будет удовлетворено.
75.    
--enable-peer-exchange[=true|false] Enable Peer Exchange extension.
    2008-12-02    
--enable-peer-exchange[=true|false] Разрешить расширение прямого обмена.

монтируем iso в убунту

  • 24.10.09, 00:33
Программа с гуей   sudo apt-get install gmountiso Для рыцарей клавиатуры mkdir /media/isoimage sudo mount -t iso9660 -o loop radiolectronics2007.iso /media/isoimage

За монтирование ISO-образа, как впрочем и за монтирование вообще, в GNU/Linux отвечает mount. ISO-образ монтируется аналогично другим устройствам, с правами суперпользователя:

$ mount -t iso9660 -o loop /home/user/sample.iso /media/cdrom/

Единственные отличия в том, что нужно явно указывать файловую систему и дополнительно "-o loop". В данном примере, файл sample.iso будет смонтирован в каталог /media/cdrom/.

При наличии ошибки: "mount: could not find any device /dev/loop#"

Необходимо предварительно подгрузить модуль "loop":

$ modprobe loop

Чтобы получить список файлов и директорий ISO-образа без его монтирования, можно использовать isoinfo:

$ isoinfo -l -i /home/user/sample.iso

Вывод данной команды будет похож на вывод ls -lR в любом каталоге. То есть будут отображены все подкаталоги и их содержимое. Если вывод окажется слишком длинным, можно его направить на less или more, либо на grep, для вывода строк по заданному шаблону:

$ isoinfo -l -i /home/user/sample.iso | less

Создание

ISO-образ в GNU/Linux можно создать из каталога или скопировав содержимое оптического диска используя представленные ниже утилиты. Для создания копии диска существует два варианта. Первый, с использованием утилиты общего назначения - dd, выглядит это так:

$ dd if=/dev/sr0 of=/home/user/sample.iso

где,

/dev/sr0 - используемый привод, заменяйте при необходимости на свой

/home/user/sample.iso - имя образа

Однако этот способ имеет недостатки по сравнению со следующим, который помимо того, что выполняет dd не читает пустые секторы и корректирует ошибки:

$ readcd dev=/dev/sr0 f=/home/user/sample.iso

Для основанных на Debian дистрибутивах, эта строка должна выглядеть так:

$ readom dev=/dev/scd0 f=/home/user/sample.iso

Здесь уже все должно быть ясно. Если все верно и прошло без ошибок, то обе команды создадут ISO-образы с одинаковой контрольной md5sum суммой.

Создать образ из каталога немного сложнее, однако разобраться все же следует. За это отвечает программам genisoimage, в большинстве современных дистрибутивов mkisofs ссылается на нее. Если Вы не уверены, будет ли созданный образ использован в Windows системах, то добавьте опцию - J. Опция -nobak исключит ненужные файлы бекапов, заканчивающихся на ~, а опция -V добавит заголовок образа. Итак, получится следующее:

$ genisoimage -V label -r -J -nobak -o /home/user/sample.iso /home/user/files/

Для детального ознакомления следует почитать man genisoimage.

Все просто )

алгоритмы шифрования

  • 23.10.09, 08:32
Когда стали широко использоваться алгоритмы шифрования при передаче данных в
сети, одной из первых задач стала организация безопасной оболочки. До этого
существовала система rsh, которая позволяла определённым пользователям с
определённых машин(между ними должны были быть доверительные отношения) работать
на сервере с его оболочкой. Это практически то же самое, что и telnet доступ. Но
с развитием сетей стали видны вопиющие дыры rsh:

* Данные, передаваемые через сеть, никак не шифруются, включая пароли.


* Данные, передаваемые через сеть, могут быть без проблем получены либо
модифицированы третьей стороной


* Злоумышленник мог спокойно подменить ip клиента и, использовав полученный
ранее хеш пароля, пройти аутентификацию на сервере со всеми вытекающими
последствиями


Поэтому сейчас rsh применяется в чрезвычайно редких случаях, например, при
переносе данных между двумя попарно соединёнными машинами (мне так пришлось
работать с двумя машинами в разных комнатах). В основном стандартом де-факто
стал ssh. Первая буква "s" означает безопасный(secure), что означает, что все
данные, предаваемые через ssh шифруются, а значит защищены от просмотра.

Существует несколько версий протокола ssh, различающиеся используемыми
алгоритмами шифрования и общими схемами работы. В настоящее время повсеместно
используется протокол ssh версии два. Протокол младших версий является по
современным меркам небезопасным(там есть несколько очень опасных дыр). Вообще-то
сейчас ssh является коммерческим продуктом (что само по себе противоречит
требованиям безопасности - всем должен быть известен исходный код системы защиты
информации, чтобы убедиться в отсутствии всяких backdoors), но тем не менее
доступна свободная реализация ssh - OpenSSH, которая может быть найдена на
http://www.openssh.com Наилучшим документом по ssh является, по-моему, банальный
man ssh, поэтому в некоторых местах я не постесняюсь его просто переводить.

Итак, начнём, как обычно, с теории. SSH предоставляет 3 способа аутентификации
клиента: по ip адресу клиента(небезопасно), по публичному ключу клиента и
стандартный парольный метод. Вот как работает ssh версии 2:
при запросе клиента сервер сообщает ему, какие методы аутентификации он
поддерживает(это определяется в опции PreferredAuthentications sshd.conf) и
клиент по очереди пытается проверить их. По умолчанию клиент вначале пытается
аутентифицироваться своим адресом, затем публичным ключом и, если ничего не
сработало, передаёт пароль, введённый с клавиатуры(при этом пароль шифруется
асимметрическим шифрованием). После прохождения аутентификации одним из методов
из имеющихся у клиента и сервера пар ключей генерируется ключ симметрического
шифрования, который, как я описывал во введении, генерируется на основании
своего секретного и удалённого публичного ключей. После чего все последующие
данные, передаваемые через ssh, шифруются данным ключом(обычно используется
алгоритм aes с длиной ключа 128 бит). Отмечу, что протокол ssh версии 1 имел
некоторые баги в шифрации передаваемого трафика и являлся по сути методом безопасной
аутентификации, поэтому по современным меркам данный протокол считается
небезопасным. Протокол версии 2 поддерживает более современные методы шифрования
тарфика, также вместе с данными посылаются контрольные суммы формата sha или
md5, что исключает подмену или иную модификацию передаваемого трафика(чего не
было у ssh версии 1).

Теперь пару слов о способах аутентификации пользователей через ssh:

1) По адресу клиента.

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

Сервер смотрит файлы $HOME/.rhosts, $HOME/.shosts, /etc/hosts.equiv или
/etc/ssh/shosts.equiv, если же сервер настроен на проверку ключей клиентов(а это
нужно в соображениях безопасности, т.к. иначе злоумышленник может подменить ip
клиента на свой), то он дополнительно проверяет /etc/ssh/ssh_known_hosts и
$HOME/.ssh/known_hosts. Естественно, что файлы, расположенные в домашних
каталогах сервера, действуют на пользователя, в чьём каталоге они размещены, а
файлы, расположенные в /etc имеют глобальный эффект. Для начала расскажу о
синтаксисе вышеперечисленных файлов:

.rhosts - определяет адрес машины и имя пользователя, с которой данному
пользователю открыт доступ(файл расположен в домашнем каталоге пользователя )

.shosts - аналогичен .rhosts, но предназначен исключительно для ssh, поэтому
использовать лучше именно данный файл. Пример .shhosts:

user1.test.ru user1
userstend.test.ru user1
null.test.ru user1


/etc/hosts.equiv - также содержит пары имя машины/имя пользователя, но имеет
эффект на всех пользователей

/etc/shosts.equiv - аналог hosts.equiv, но применяется только ssh, что также
более предпочтительно. Пример файла /etc/shhosts.equiv

+ user1.test.ru user1
- server.test.ru xakep


Знак + означает разрешение пользователю работать с сервером с данного адреса,
знак - запрещает подобное действие.

/etc/ssh/ssh_known_hosts и $HOME/.ssh/known_hosts - данные файлы содержат
список адресов и соответствующих им публичных ключей. При запросе клиента
сервер генерирует рандомную строку и шифрует её публичным ключом удалённого
хоста. Клиент, получив данную строку, расшифровывает её своим секретным
ключом (который имеется только у него) и зашифровывает полученную строку ключом
сервера. Сервер получает зашифрованное сообщение, расшифровывает своим
секретным ключом и сравнивает с исходной. Если строки совпали, то клиент имеет
валидный секретный ключ, что даёт ему право захода на данный сервер. Но для
начала клиент должен иметь правильный адрес, которому соответствует публичный
ключ на сервере в файле ssh_known_hosts. Файл состоит из 3-х полей: адрес(или
адреса, разделённые запятой), публичный ключ для него одной(!) строкой и
дополнительное поле комментариев(необязательно). Пример файла known_hosts:

user1.test.ru {SOME_VERY_LONG_PUBLIC_KEY}


Адрес клиента должен быть в полном формате(name.domain), иначе могут быть
проблемы. Кроме этого, в адресе можно использовать шаблоны * и ?. Публичные
ключи вставляются в данный файл самим администратором из генерированных
клиентом ssh(identity.pub) публичных ключей. Вообще создание ssh_known_hosts -
это прерогатива администратора(aka root).

И ещё добавлю: при аутентификации по хосту лучше использовать ssh_known_hosts,
т.к. этот метод достаточно безопасен, если публичные ключи клиентов были
получены из доверенного источника. Другие методы аутентификации не исключают
подмену адреса, и потому считаются небезопасными.


2) Аутентификация пользователя по его публичному ключу.

Аутентификация удалённого пользователя по ключу идентична проверке ключа хоста
(с посылкой рандомной строки) за тем исключением, что проверяется не адрес
клиентской машины, а ключ клиента и имя пользователя. Данному пользователю на сервере
может соответствовать его публичный ключ, тогда клиент, имея секретный
ключ сможет заходить на сервер без пароля. Механизм работы я только что описал,
поэтому сразу же расскажу, каким образом аутентифицировать пользователей по
ключу(предполагается, что используется клиент и сервер openssh):

Для генерации пары ключей используйте программу ssh-keygen. Для указания типа
ключа укажите ssh-keygen -t {RSA DSA}, например ssh-keygen -t rsa создаст пару
ключей RSA длиной 1024 бита. Для указания файла, в котором следует сохранить
ключи, можно использовать опцию -f(традиционно используются файлы
$HOME/.ssh/id_rsa и $HOME/.ssh/id_dsa для ключей rsa и dsa соответственно), для указания
длины ключа в битах используйте опцию -b:

ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa


В результате работы программа запросит ввод пароля для шифрования секретного
ключа, чтобы исключить использование его при попадании к посторонним лицам, не
знающим пароля(пароль желательно выбирать не короче 10-и символов). После этого
вам будет необходимо вводить данный пароль каждый раз при использовании
секретного ключа (далее я расскажу, как избежать этого при помощи программы
ssh-agent). После работы ssh-keygen создаётся пара ключей: один
секретный(зашифрованный введённым паролем), а другой публичный с расширением
.pub(id_rsa.pub). Публичный ключ вам необходимо будет скопировать в домашнюю
директорию сервера $HOME/.ssh/authorized_keys. После этого сервер будет знать
ключ данного пользователя и сможет аутентифицировать вас без пароля. Файл
authorized_keys может содержать несколько публичных ключей, допустимых для
данного пользователя: просто поместите их в данный файл по порядку. После этих
операций вы сможете входить, имея секретный ключ, на сервер, где размещён ваш
публичный ключ, причём под тем пользователем, в чьём домашнем каталоге данный
ключ находится. Пароля удалённого пользователя не требуется, необходимо только
знать пароль расшифровки секретного ключа. Для переноса своего публичного ключа
на сервер надо использовать только безопасные источники, иначе ваш ключ могут
подменить. Для переноса публичного ключа клиента служит программа ssh-copy-id.

Для начала необходимо сделать следующее:

# ssh-copy-id -i public_key_file user@machine


После соединения с севером machine и передачей имени пользователя
user(необходимо указывать, если удалённое имя отличается от локального)
происходит парольная аутентификация заданного пользователя(или текущего) на
удалённой машине, затем происходит копирование ключа public_key_file(или
$HOME/.ssh/identity.pub если имя файла не указано) на сервер в
$HOME/.ssh/authorized_keys. После этого можно входить на сервер, не используя
пароль пользователя. При выполнении данной операции учтите, что вы должны
скопировать на удалённую машину ПУБЛИЧНЫЙ ключ, иначе всё будет очень
печально(думаю, ясно почему).


3) Обычная парольная аутентификация.
Тут можно отметить только одно: в любом случае вначале идёт обмен
асимметрическими ключами, и хеш пароля передаётся в зашифрованном виде.
Парольная аутентификация используется наиболее часто, но, честно говоря, ssh
предлагает более удобные методы аутентификации, и пользоваться ими IMHO можно,
если к ssh есть все заплатки. И, конечно же, протокол версии 1 необходимо
вырубить вообще. Итак, начинаем настройку...

Я заметил, что большинства администраторов просто оставляют конфиги клиента и
сервера по умолчанию, чтобы руки не марать. Но это неправильно: в разных
системах эти конфиги различаются очень существенно, и это приводит к
неразберихе и непониманию работы сервера, что создаёт дополнительную угрозу
безопасности(свой сервак - потёмки). Для этого я решил описать файлы
конфигурации ssh на примерах ssh_config и sshd.conf для клиента и сервера
соответственно. Для конфигурации клиента используется файл $HOME/.ssh/config или
/etc/ssh/ssh_config(для всей системы). Файл имеет следующий формат: определение
адреса хоста и параметры для него. В адресе можно использовать обычные шаблоны *
и ?, все имена параметров и их значения должны быть набраны в том же регистре,
что и в примере(иначе параметр воспринят не будет). Вот пример ssh_config,
который содержит наиболее полезные опции(на самом деле описывать некоторые
параметры конфигурации ssh не имеет смысла, т.к. употребляются они очень редко):

# Определение хоста, в данном случае включает все хосты домена test.ru, можно
# использовать одиночный символ * чтобы указать параметры доступа к любому хосту
Host *.test.ru
# Эта опция определяет, будет ли ssh использовать передачу данных от удалённого
# X сервера через свой безопасный канал. Далее будет описано, каким образом
# организуются безопасные туннели через ssh. Данная возможность позволяет
# защищать по идее небезопасные протоколы(X, pop, smtp, ftp) шифрованием ssh. По
# умолчанию данная опция no
ForwardX11 yes
# Список предпочтительных методов аутентификации через ssh версии 2. Первым
# стоит самый предпочтительный протокол, думаю, значения данного параметра ясны
PreferredAuthentications hostbased,publickey,keyboard-interactive
# Этот параметр определяет, будет ли производится стандартная парольная проверка
# По умолчанию yes
PasswordAuthentication yes
# Число попыток ввода пароля перед тем, как клиент отсоединяется от сервера. По
# умолчанию пароль можно вводить трижды
NumberOfPasswordPrompts 3
# Список допустимых пользователей для данного сервера. Можно применять два
# формата: список пользователей, разделённых пробелом, и список пользователей и
# хостов, разделённых пробелом(USER@HOST - разрешает данному пользователю доступ
# только с данного адреса). Можно использовать выражения * и ?. Подобное же
# назначение имеют опции AllowGroups, DenyUsers и DenyGroups(для групп нельзя
# указывать адрес клиента)
AllowUsers *@*.test.ru
DenyUsers xakep lamer
DenyGroups x*
# Использование ssh(2 версия) аутентификации через rhosts и RSA ключи. По
# умолчанию no.
HostbasedAuthentication yes
# Будет ли клиент пытаться работать по rsh, если ssh недоступен или по каким-то
# причинам работает неправильно. По умолчанию no
FallBackToRsh no
# Используем ли rsh. По умолчанию no
UseRsh no
# Режим скрипта, когда не спрашиваются пароли с терминала. По умолчанию no
BatchMode no
# Дополнительно проверяется ключ хоста удалённой машины в
# known_hosts, что исключает подмену ip. По умолчанию yes.
CheckHostIP yes
# Данный параметр означает, будет ли клиент доверять полученным от серверов
# ключам. Параметр может принимать следующие значения: yes - ключи никогда
# автоматически не помещаются в known_hosts, ask - ключ может быть помещён в
# known_hosts только после подтверждения пользователя, no - все ключи
# автоматически размещаются в known_hosts(небезопасно). По умолчанию ask.
StrictHostKeyChecking ask
# Следующие параметры определяют секретные ключи ssh различных форматов:
# rsa и dsa
IdentityFile $HOME/.ssh/id_rsa
IdentityFile $HOME/.ssh/id_dsa
# Порт, на удалённой машине используемый ssh. По умолчанию 22
Port 22
# Версии протоколов, используемые клиентом в порядке убывания приоритета.
Protocol 2
# Протокол шифрования для версии 1 протокола ssh
Cipher 3des
# Возможные протоколы шифрования в порядке убывания приоритета для протокола
# версии 2
Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc
# Значение escape-символа, сигнализирующего, что идущие за ним символы
# необходимо воспринимать специальным образом(например ~. вызовет немедленное
# отключение клиента от сервера) при передаче двоичных данных необходимо
# установить этот параметр в none, что выключает escape последовательности. По
# умолчанию ~
EscapeChar ~
# Управление работой компрессии зашифрованнного трафика. Полезный параметр для
# медленных сетей, т.к. зашифрованные данные обычно увеличиваются в размере за
# счёт фиксированной длины ключа. Компрессия позволяет уменьшить количество
# данных, передаваемых через сеть, но увеличит время работы самого протокола.
# Так что включать этот параметр желательно на медленных соединениях. По
# умолчанию no.
Compression yes
# Управляет посылкой сообщений о доступности клиента серверу, что позволяет
# нормально разорвать соединение, если произошла неполадка в сети или иная,
# приведшая к разрыва соединения. Если связь плохая, то лучше эту опцию
# отключить, чтобы дисконнект не происходил после каждой ошибки сети. По
# умолчанию yes.
KeepAlive yes


Я думаю, что в данном примере всё объяснено достаточно подробно и скажу только
вот что: в большинстве случаев опции по умолчанию работают неплохо, необходимо
только отключить поддержку ssh версии 1 и настроить необходимые методы
аутентификации(кроме парольной) и указать пути доступа к ключам. На этом
закончим с настройкой клиента и настроим сервер. Файл конфигурации сервера sshd
находится в /etc/ssh/sshd_config, и многие его параметры совпадают с аналогичными
в ssh_config, но здесь нет определений хостов, как это было в ssh_config. Я всё
же приведу пример sshd_config, чтобы далее не возникало вопросов:

# Номер порта и версия протокола
Port 22
Protocol 2

# Адреса, на которых слушает сервер, можно также указывать
# порт(server.test.ru:2022), но назначение ssh нестандартного порта
# нецелесообразно, т.к. заинтересует потенциальных взломщиков("А чего это там
# они прячут?")
ListenAddress server.test.ru

# Ключ сервера для протокола версии 1
HostKey /etc/ssh/ssh_host_key
# Ключи rsa и dsa для ssh версии 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key

# Данные значения определяют длину ключа сервера и его время жизни для
# использования ssh версии 1(данный ключ будет заново генерироваться через
# заданное время)
#KeyRegenerationInterval 3600
#ServerKeyBits 768

# Далее определяем методы аутентификации для данного сервера и её параметры

# Сервер отсоединяется по происшествии данного времени в секундах, если клиент
# не проходит аутентификацию
LoginGraceTime 600
# Разрешаем заходить по ssh руту. Долгое время эта тема обсуждалась на форуме,
# но я думаю всё же, что со внутренней сети рут может заходить и по ssh(для
# этого надо настроить должным образом iptables). Также можно запретить руту
# входить по паролю: without-password, разрешая вход только по публичному ключу
PermitRootLogin yes
# Проверка sshd прав доступа и владельцев домашних каталогов. Полезно для тех
# пользователей, что дают права всему 0777. Хотя таких болванов лучше держать на
# расстоянии от сервера(лучше всего это делать бревном, подвешенным в серверной
# к потолку, чтобы придать нежеланному гостю должное ускорение, и не забудьте
# оббить конец бревна какой-нибудь железкой, иначе брёвна придётся менять
# слишком часто ;)
StrictModes yes

# Аутентификация через RSA(версия 1)
RSAAuthentication yes
# Аутентификация пользователя по ключу(версия 2)
PubkeyAuthentication yes
# Определяет публичный ключ пользователя для аутентификации по ключу. Можно
# применять шаблоны: %u - имя пользователя, %h - домашний каталог пользователя.
AuthorizedKeysFile .ssh/authorized_keys

# Не используем аутентификацию rhosts
RhostsAuthentication no
# Можно также игнорировать rhosts и shosts при hostbased autentification,
# используя только known_hosts файл.
#IgnoreRhosts yes
# Используем ли аутентификацию через known_hosts совместно с .rhosts или
# .shosts. Опция действительна только для протокола версии 1.
RhostsRSAAuthentication no
# То же самое, что и предыдущее только для версии 2
HostbasedAuthentication yes
# Если нет доверия к known_hosts, то их можно не использовать при hostbased
# autentification. По умолчанию no
IgnoreUserKnownHosts no

# Чтобы запретить посылку хешей паролей через туннель ssh задайте значение
# данной опции no. По умолчанию аутентификация по паролю разрешена
PasswordAuthentication yes
# Можно также разрешить пустые пароли, но это полный отстой, т.к. это огромная
# дыра на сервере, через которую можно наделать много гадостей! Поэтому должно
# быть no(по умолчанию)
PermitEmptyPasswords no

# Аутентификация через механизм PAM.
PAMAuthenticationViaKbdInt no

# Передача протокола иксов через туннель ssh
X11Forwarding yes
# Используем в качестве x-сервера данный, т.е. клиент, запуская у себя x-клиента
# будет фактически использовать наш сервер, но все данные от сервера к клиенту
# будут шифроваться, что есть хорошо!
X11UseLocalhost yes
# При логине пользователя выводим /etc/motd: в некоторых системах это отменено в
# целях безопасности
PrintMotd yes
# Сообщаем пользователю время и место последнего логина, ситуация, аналогичная
# предыдущей
PrintLastLog yes
# Посылать клиенту сообщения о доступности
KeepAlive yes
# Максимальное число возможных соединений, где не произошло аутентификации. Если
# клиентов, не прошедших аутентификацию больше, то новые соединения не будут
# обрабатываться
MaxStartups 10
# Путь к файлу, который будет отображаться при входе клиента ДО аутентификации
Banner /etc/ssh_message
# Проверка соответствия ip адреса клиента и его символического имени в backzone,
# затем снова сравнение имени с ip адресом. Таким образом(извращённым)
# проверяется подлинность ip, но метод этот достаточно тормозной и по умолчанию
# он отключен
VerifyReverseMapping no

# Новые системы, работающие через ssh. В данном примере определяется
# "безопасный" ftp сервер - sftp, аналогичный доступ пользователя, но с
# возможностью передачи файлов(т.е. пользователь получает доступ ко всем своим
# файлам и нет возможности настройки разрешений и виртуальных пользователей,
# как, например в proftpd). По сути дела подсистемы ssh могут обеспечивать
# прохождение других протоколов по сети, но под "крылышком" ssh. Например, для
# sftp сервера есть одноимённый sftp клиент. Его интерфейс полностью идентичен
# оригинальному ftp, но с одним отличием: происходит та же самая аутентификация
# пользователя на удалённом сервере(методами ssh), но вместо оболочки с
# пользователем взаимодействует подсистема, в данном случае sftp.
Subsystem sftp /usr/lib/ssh/sftp-server


Ну вот, вроде бы всё настроено! Теперь я бы хотел поговорить о некоторых фичах,
работающих в ssh. Для начала я бы хотел рассказать о туннелях. SSH имеет
встроенную возможность передавать данные с локального порта на удалённый,
используя сетевой туннель, причём данные, передаваемые через данный туннель
будут шифроваться. То есть происходит аутентификация на удалённой системе, а
затем начинается перенаправление трафика через туннель. Таким образом, можно
перенаправлять любой трафик, а протокол иксов может работать в интерактивном
режиме, для этого необходимо включить соответствующие опции в файлах
конфигурации сервера и клиента(это было описано ранее). Для других же портов
необходимо вызывать ssh с параметром -L{LOCAL_PORT}:{LOCAL_ADDRESS}:{REMOTE_PORT}:

# ssh -L10101:localhost:101 server.test.ru


Такой туннель довольно быстро умирает, т.к. сервер автоматически убивает
"ленивых" клиентов. Поэтому можно применить метод, который позволяет
устанавливать произвольное время удержания туннеля: выполнить sleep на удалённом
сервере

# ssh -f -L10101:loclahost:101 server.test.ru sleep 100


Данная команда держит туннель 100 секунд, чего достаточно для любого соединения.
И ещё одна вещь: когда по туннелю передаются данные, то он не уничтожается, что
хорошо для реализации безопасного ftp smtp и pop3 протоколов(впрочем, sftp сервер
имеется уже и в поставке openssh, применение его не должно вызвать затруднений
sftp [user@]hostname, т.к. фактически это особая реализация ssh протокола и
механизм работы sftp абсолютно идентичен механизму ssh). Чтобы отключить
перенаправление портов, необходимо установить опцию sshd AllowTcpForwarding в
no. Использование длительной задержки ssh туннеля несколько уменьшает
безопасность, т.к. во время ожидания злоумышленник имеет больше шансов на
атаку(но механизм ssh версии 2 позволяет избежать подобной ситуации
подписыванием передаваемых сообщений).

Вот что сделал бы я для безопасного ssh. Для начала создал бы rsa ключ длиной
4096 бит:

# ssh-keygen -t rsa -b 4096


Затем скопировал бы данный ключ с помощью дискеты или ssh-copy-id на удалённый
сервер(а):

# ssh-copy-id -i $HOME/.ssh/id_rsa remote_host


После этого запретил бы парольную и всякую hostbased аутентификацию в

sshd_config:
IgnoreHosts yes
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
HostbasedAutentification no
PasswordAuthentication no
PermitEmptyPasswords no
UseLogin no
PermitRootLogin without-password


И отключим потокол версии 1(по умолчанию Protocol 2,1 и сервер падает к ssh 1,
при неудаче ssh 2):

Protocol 2


Ну вот теперь, чтобы зайти на сервак по ssh надо ввести нехилый(а он должен быть
нехилый!) пароль секретного ключа. Немножко неудобно, не правда ли? Можно
хранить пароль для секретного ключа в памяти на протяжении работы некоторой
программы(например, bash) и при запросе его ssh клиентом доставать из памяти.
Для этой цели служит программа ssh-agent(агент аутентификации ssh). Агент
запускает необходимую программу и ждёт добавления новых секретных
ключей(ssh-agent хранит расшифрованные секретные ключи). Для этой цели есть
другая программа ssh-add, которая добавляет в агент ключи $HOME/.ssh/id_rsa,
id_dsa, identity. Если необходимо добавить другие ключи, то надо запустить
ssh-add с именем файла: ssh-add filename. Учтите, что при добавлении ключа в
агент ssh-add вам всё равно необходимо ввести пароль для его расшифровки, но
пока агент находится в памяти(пока вызванная им программа не завершилась),
вводить пароль секретного ключа не надо: ключ берётся из ssh-agent. Причём
контакт с ssh-agent может устанавливать только программа, запущенная им(и все её
дочерние процессы), т.к. устанавливаются переменные окружения. Обычный метод
запуска ssh-agent:

# ssh-agent bash
# ssh-add
Enter passphrase for '.ssh/id_rsa':
Enter passphrase for '.ssh/id_dsa':
.ssh/identity : No such file or directory


После завершения работы оболочки ssh-agent завершается, а ключи удаляются из
памяти.

Ну и наконец можно разрешить доступ определённых пользователей с определённых
машин. Это делается полем AllowUsers в sshd_config или правилами iptables.
Думаю, этого достаточно для нормальной и безопасной работы на удалённом сервере
через ssh. Особо мнительные могут запретить доступ рута по ssh(PermitRootLogin no)
и делегировать часть его прав с помощью sudo. Ну и использовать протокол версии
2(такие плюсы как алгоритм вычисления симметрического ключа на основании пары
асимметрических и подписывание сообщений, передаваемых по сети, а также 2 версия
протокола ssh быстрее первой). Существует множество клиентов ssh, работающих на
разных ОС:

windows:
- putty IMHO лучший виндовый клиент http://www.chiark.greenend.org.uk/~sgtatham/putty.html
- raju: ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin32/porters/mathur_raju
- cigaly: http://www.doc.ic.ac.uk/~ci2/ssh/
- f-secure: http://www.datafellows.com/f-secure/fclintp.htm
- secure crt: http://www.vandyke.com/products/securecrt/
- ttssh: http://www.zip.com.au/~roca/ttssh.html
- therapy: http://guardian.htu.tuwien.ac.at/therapy/ssh/
- chaffee: http://bmrc.berkeley.edu/people/chaffee/winntutil.html
- sergey okhapkin: http://www.lexa.ru/sos/
- fissh: http://www.massconfusion.com/ssh/
mac:
- niftytelnet+ssh: http://www.lysator.liu.se/~jonasw/freeware.html
- f-secure: http://www.datafellows.com/f-secure/fclintp.htm

Хороший список ссылок по ssh находится на http://www.heimhardt.com, полезным мне
показался также сайт http://www.openssh.com, ну и есть документация по ssh (правда
версии 1) на сайте http://www.opennet.ru.


aria2c (1)

  • 23.10.09, 08:25
aria2c (1) Name

aria2c - The high speed download utility

Synopsis

aria2c [options] URL ... aria2c [options] -T TORRENT_FILE FILE ... aria2c [options] -M METALINK_FILE

Description

aria2 is a utility for downloading files. It has completely new design concept from its predecessor, Aria, and is written from scratch. aria2 has a segmented downloading engine in its core. It can download one file from multiple URLs or multiple connections from one URL. This results in very high speed downloading, much faster than ordinary browsers. This engine in was implemented in a single-thread model. The architecture is clean and easy to extend. aria2 currently supports HTTP, FTP, and BitTorrent. It also supports Metalink version 3.0.

Please visit the project web site at http://aria2.sourceforge.net.

Options

-d, --dir=DIR The directory to store downloaded file.

-o, --out=FILE The file name for downloaded file.

-l, --log=LOG The file path to store log. If ‘-’ is specified, log is written to stdout.

-D, --daemon Run as daemon.

-s, --split=N Download a file using N connections. N must be between 1 and 5. This option affects all URLs. Thus, aria2 connects to each URL with N connections.

--retry-wait=SEC Set amount of time in second between requests for errors. Specify a value between 0 and 60. Default: 5

-t, --timeout=SEC Set timeout in second. Default: 60

-m, --max-tries=N Set number of tries. 0 means unlimited. Default: 5

--http-proxy=HOST:PORT Use HTTP proxy server. This affects to all URLs.

--http-user=USER Set HTTP user. This affects to all URLs.

--http-passwd=PASSWD Set HTTP password. This affects to all URLs.

--http-proxy-user=USER Set HTTP proxy user. This affects to all URLs

--http-proxy-passwd=PASSWD Set HTTP proxy password. This affects to all URLs.

--http-proxy-method=METHOD Set the method to use in proxy request. METHOD is either ‘get’ or ‘tunnel’. Default: tunnel

--http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, basic is the only supported scheme. Default: basic

--referer=REFERER Set Referer. This affects to all URLs.

--ftp-user=USER Set FTP user. This affects to all URLs. Default: anonymous

--ftp-passwd=PASSWD Set FTP password. This affects to all URLs. Default: ARIA2USER@

--ftp-type=TYPE Set FTP transfer type. TYPE is either ‘binary’ or ‘ascii’. Default: binary

-p, --ftp-pasv Use passive mode in FTP.

--ftp-via-http-proxy=METHOD Use HTTP proxy in FTP. METHOD is either ‘get’ or ‘tunnel’. Default: tunnel

--lowest-speed-limit=SPEEDClose connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not care lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent download. Default: 0

--max-download-limit=SPEED Set max download speed in bytes per sec. 0 means unrestricted. You can append K or M(1K = 1024, 1M = 1024K). Default: 0

-T, --torrent-file=TORRENT_FILE The file path to .torrent file.

--follow-torrent=true|falseSetting this option to false prevents aria2 to enter BitTorrent mode even if the filename of downloaded file ends with .torrent. Default: true

-S, --show-files Print file listing of .torrent file and exit.

--direct-file-mapping=true|false Directly read from and write to each file mentioned in .torrent file. Default: true

--listen-port=PORT Set port number to listen to for peer connection.

--max-upload-limit=SPEED Set max upload speed in bytes per sec. 0 means unrestricted. You can append K or M(1K = 1024, 1M = 1024K). Default: 0

--select-file=INDEX... Set file to download by specifing its index. You can know file index through --show-files option. Multiple indexes can be specified by using ‘,’ like “3,6". You can also use ‘-’ to specify rangelike “1-5". ‘,’ and ‘-’ can be used together.

--seed-time=MINUTES Specify seeding time in minutes. See also --seed-ratio option.

--seed-ratio=RATIO Specify share ratio. Seed completed torrents until share ratio reaches RATIO. 1.0 is encouraged. If --seed-time option is specified along with this option, seeding ends when at least one of the conditions is satisfied.

-M, --metalink-file=METALINK_FILE The file path to .metalink file.

-C, --metalink-servers=NUM_SERVERS The number of servers to connect to simultaneously. If more than one connection per server is required, use -s option. Default: 15

--metalink-version=VERSION The version of file to download.

--metalink-language=LANGUAGE The language of file to download.

--metalink-os=OS The operating system the file is targeted.

--follow-metalink=true|falseSetting this option to false prevents aria2 to enter Metalink mode even if the filename of downloaded file ends with .metalink. Default: true

-v, --version Print the version number and exit.

-h, --help Print this message and exit.

URL You can specify multiple URLs. All URLs must point to the same file or downloading fails.

FILE Specify files in multi-file torrent to download. Use conjunction with -T option. This arguments are ignored if you specify --select-file option.