Шифрование Linux (часть 1). Полное шифрование Ubuntu/Centos при установке (LUKS,cryptsetup)
Здравствуйте. Решил написать серию статей по криптованию. Что такое криптование, и какие есть шифры, алгоритмы и т.п. рассказывать не буду, так как есть море литературы, из которой можно почерпнуть все, что интересует по данному вопросу. Я буду использовать систему криптования dm-crypt, для управления которой используется утилита cryptsetup в которой есть встроенная поддержка LUKS для криптования операционных систем семейства Linux. В данном случаи это будут самые распространенные ОС – семейство deb (Ubuntu, Debian) и семейство rpm (Centos, Red Hat).
Начнем с самого простого метода – шифрование при установке ОС. Все действия я проделал на VMware workstation. Для начала возьмем Ubuntu 12.04 server. Процесс установки – стандартный, пока не дойдем до разметки диска. Где нам нужно выбрать Guided – use entire disk and set up encrypted LVM.

Далее Вас попросят записать все изменения на диск (жмем YES) и предложат ввести пароль шифрования. На данном этапе можно ввести любой пароль, так как в дальнейшем его можно очень просто поменять.

Далее все идет по старинке.
После перезагрузки нас попросят ввести пароль для разлочки диска с файловой системой.

После введения пароля cryptsetup расшифрует зашифрованный диск и смонтирует его в рутовую файловую систему. Теперь можно войти в систему и посмотреть на смонтированные диски.
root@ubuntu:~# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/ubuntu-root ext4 19G 1.3G 17G 7% / udev devtmpfs 484M 4.0K 484M 1% /dev tmpfs tmpfs 198M 312K 198M 1% /run none tmpfs 5.0M 0 5.0M 0% /run/lock none tmpfs 495M 0 495M 0% /run/shm /dev/sda1 ext2 228M 28M 189M 13% /boot
Из вывода не понять – зашифровано диск или нет… Для этого мы можем посмотреть заголовок диска.
root@ubuntu:~# ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 10 Sep 9 08:44 2601e28d-a376-4e0c-86ca-0b0366db8b03 -> ../../dm-1 lrwxrwxrwx 1 root root 10 Sep 9 08:44 a8f47a3a-295c-4943-9612-b0ae18faa44c -> ../../sda5 lrwxrwxrwx 1 root root 10 Sep 9 08:44 ac168f69-bbad-4918-828e-9dbc45b12f11 -> ../../dm-2 lrwxrwxrwx 1 root root 10 Sep 9 08:44 dd05faae-0144-4454-8aef-175f3f362126 -> ../../sda1 root@ubuntu:~# hexdump -C /dev/sda5 | head 00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS. aes. | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |. | 00000020 00 00 00 00 00 00 00 00 63 62 63 2d 65 73 73 69 |. cbc-essi| 00000030 76 3a 73 68 61 32 35 36 00 00 00 00 00 00 00 00 |v:sha256. | 00000040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 |. sha1. | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |. | 00000060 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 20 |. | 00000070 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 |JB. @.G. >.T| 00000080 28 f2 a8 19 f9 d5 02 17 6f a6 75 8c 2a bf d5 5c |(. o.u.*..\| 00000090 c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 |.qvB..v_R$.w. |
Как видно, диск зашифровано алгоритмом AES + cbc-essiv + sha256.
Точно такие же шаги нужно сделать для шифрования ОС семейства rpm (Centos, Red Hat). Хочу заметить, в Linux можно шифровать блочные устройства из-за существования initramfs – файловой системы, которая монтируется до того, как смонтируется рутовая файловая система. Об этом пойдет речь в следующей статье. А пока можно поэкспериментировать.
Посмотрим, сколько слотов ключей используется на данный момент для зашифрованного диска.
root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: DISABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED
Как видно, используется только один ключ для шифрования/дешифрования (ключ, который вводили при установке ОС для криптования раздела). Добавим еще один ключ.
root@ubuntu:~# cryptsetup luksAddKey /dev/sda5 Enter any passphrase: Enter new passphrase for key slot: Verify passphrase: root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: ENABLED Iterations: 130410 Salt: b3 2e ca 72 ca c7 58 16 f5 b1 51 fb 57 6f 7d 9c 20 69 4e a4 e4 e1 6b 17 d7 21 51 9c 46 a9 87 7a Key material offset: 264 AF stripes: 4000 Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED
Теперь у нас есть 2 ключа для расшифровки диска. Так же мы можем добавить бинарный ключ, или же записать длинный пароль в текстовый документ и добавить к ключам.
root@ubuntu:~# echo -ne `openssl rand -base64 32` > key.txt root@ubuntu:~# cat key.txt w3loOHwRiyS6Xv28M7FpoGqJ+Kp27MWcZ5j51+9EOKA=root@ubuntu:~# root@ubuntu:~# cryptsetup -q luksAddKey /dev/sda5 /home/alex/key.txt Enter any passphrase: root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: ENABLED Iterations: 130410 Salt: b3 2e ca 72 ca c7 58 16 f5 b1 51 fb 57 6f 7d 9c 20 69 4e a4 e4 e1 6b 17 d7 21 51 9c 46 a9 87 7a Key material offset: 264 AF stripes: 4000 Key Slot 2: ENABLED Iterations: 143385 Salt: de c0 16 f9 c9 6d 76 1c f3 3b 50 7c b8 90 1a 87 67 e8 90 24 6a ac 92 a8 ca b3 1f 8e bd 5d 80 77 Key material offset: 520 AF stripes: 4000
Здесь мы добавили 256 битный ключ, который можно ввести из клавиатуры (используется кодировка base64 ). Также можно добавить бинарный ключ, который с клавиатуры ввести нереально (для простых смертных). Такие ключики нужно сохранять на съемном носителе, на незашифрованной файловой системе или где-то на удаленном сервере. Это ключи типа
root@ubuntu:~# dd if=/dev/urandom of=my.key bs=1 count=256 256+0 records in 256+0 records out 256 bytes (256 B) copied, 0.00294037 s, 87.1 kB/s root@ubuntu:~# less my.key "my.key" may be a binary file. See it anyway? i^F0Mrq<8C>Vl^VT-^G<8C>d<81>;^?^V<8D><81>4d<98>g^Y,z pZaU^V0б„Ћ*R@<гџЄ_!K0Ъ‰B<9F>m6^G<9B>ЕЇ<8D>ШЏ5<88>О‰<8C> f<91>? ^Cg<85>Un9<86><81>\w:О¤<96>]I^C ^_C-VX|4<82>^S,Yx<86>^U|L|^Q<87>M^\<83>x<99>Е“O<99>6I^M^N^Tk<96>%^W^Yn^W6^R^X^]<8A><92>^L^QJ^Qv#C^K<91>5<9C>]<95>$P<9D>^KНЅMW<^_yМіVk<8F>
Теперь удалим ключ (в конце строки указывается номер слота, который нужно удалить).
root@ubuntu:~# cryptsetup luksKillSlot /dev/sda5 1 Enter any remaining LUKS passphrase: root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: DISABLED Key Slot 2: ENABLED Iterations: 143385 Salt: de c0 16 f9 c9 6d 76 1c f3 3b 50 7c b8 90 1a 87 67 e8 90 24 6a ac 92 a8 ca b3 1f 8e bd 5d 80 77 Key material offset: 520 AF stripes: 4000
Если у нас есть ключ в виде файла, то удалять и добавлять ключи можно используя опцию.
root@ubuntu:~# cryptsetup --key-file /home/alex/my.key luksKillSlot /dev/sda5 0
Немного полезной информации можно почерпнуть здесь
root@ubuntu:~# less /usr/share/doc/cryptsetup/README.Debian.gz
Проверить какие алгоритмы шифрования поддерживаться в вашем ядре и какая минимальная и максимальная длинна ключа.
root@ubuntu:~# cat /proc/crypto name : cbc(aes) driver : cbc(aes-generic) module : kernel priority : 100 refcnt : 65 selftest : passed type : givcipher async : no blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : eseqiv name : cbc(aes) driver : cbc(aes-generic) module : kernel priority : 100 refcnt : 65 selftest : passed type : blkcipher blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : name : hmac(sha256) driver : hmac(sha256-generic) module : kernel priority : 0 refcnt : 2 selftest : passed type : shash blocksize : 64 digestsize : 32 name : hmac(sha1) driver : hmac(sha1-generic) module : kernel priority : 0 refcnt : 2 selftest : passed type : shash blocksize : 64 digestsize : 20 name : stdrng driver : krng module : kernel priority : 200 refcnt : 2 selftest : passed type : rng seedsize : 0 name : crc32c driver : crc32c-generic module : kernel priority : 100 refcnt : 1 selftest : passed type : shash blocksize : 1 digestsize : 4 name : aes driver : aes-generic module : kernel priority : 100 refcnt : 129 selftest : passed type : cipher blocksize : 16 min keysize : 16 max keysize : 32 name : sha256 driver : sha256-generic module : kernel priority : 0 refcnt : 5 selftest : passed type : shash blocksize : 64 digestsize : 32 name : sha224 driver : sha224-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 28 name : sha1 driver : sha1-generic module : kernel priority : 0 refcnt : 3 selftest : passed type : shash blocksize : 64 digestsize : 20 name : md5 driver : md5-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 16
В следующей статье пойдет речь об конкретной установке и настройке зашифрованной Ubuntu и удаленной разлочке.
Команда top в Linux
Любой сервер, каким бы мощным он ни был, имеет ограниченный объем ресурсов. Каждая программа, работающая в активном или фоновом режиме, использует определенное количество виртуальной и физической памяти, процессорного времени и т.д. Иными словами, создает определенную нагрузку на сервер. Чтобы посмотреть, насколько система загружена в данный момент времени, используют консольную команду top.
Команда top в Linux системах позволяет вывести в виде таблицы перечень запущенных процессов и оценить, какой объем ресурсов они потребляют, т.е., какую нагрузку создают на сервер и дисковую подсистему. Такая информация помогает в дальнейшем оптимизировать работу системы.
Запуск команды top и расшифровка таблицы
Подключитесь к серверу по SSH и введите в консоли top – Enter и вы увидите таблицу, в которой выведен список запущенных процессов. Изначально перечень составлен в порядке убывания нагрузки, приходящейся на процессор.

О том, как сортировать данные по критерию, который нужен вам, поговорим дальше. А сейчас давайте рассмотрим, как расшифровать столбцы в таблице и о чем свидетельствуют значения в каждом из них.
Первые два столбика – номер процесса (PID) и имя пользователя, его запустившего (USER).
Следующие 2 столбца показывают, какой приоритет имеет процесс в данный момент (PR) и приоритет, присвоенный ему командой NICE (NI).
Информация, содержащаяся в других колонках, характеризует непосредственно уровень потребления ресурсов. Расшифровываются они следующим образом:
**VIRT – виртуальная память, которую использует процесс
**RES – физическая память, занятая данным процессом
**SHR – общий объем памяти, которую данный процесс делит с другими
**S – текущий статус процесса: R – running; S – sleeping, Z – zombie
**%CPU – процент используемого времени центрального процессора
**%MEM – процент ОЗУ, используемой процессом
**TIME+ – продолжительность работы процесса с момента запуска
**COMMAND – название команды (программы), которая инициировала процесс.
Расшифровка данных перед таблицей
Полезная информация об использовании ресурсов содержится не только в самой таблице, но и в пяти строках, которые ей предшествуют. Они являются своего рода summary по всем процессам.
Первая строчка (top) дает нам общее представление о загрузке системы. Здесь указано:
** текущее время
** up – продолжительность работы системы с момента запуска
** user – текущее количество пользователей системы
** load average – средняя загруженность системы одну минуту назад, пять и 15 соответственно.
Считается, что в норме данный показатель не должен превышать 1 для одноядерных процессоров. Соответственно, значение load average, равное количеству ядер, является предельным.
Вторая строка данных дает информацию об общем количестве процессов в системе, а также об их статусе: выполняемые (running), в ожидании (sleeping), приостановленные (stopped), zombie.
Далее идет информация о состоянии процессора (%Cpu), ОЗУ (Mem), SWAP.
Добавление столбцов и сортировка таблицы top
Теперь вы знаете, какая информация зашифрована в каждом столбце таблицы top. Как было отмечено в начале, базовая сортировка данных осуществляется по уровню использования времени ЦПУ, оно же %CPU. Чтобы выполнить в top сортировку по памяти (%MEM), достаточно ввести Shift+M в режиме работы команды top. Если интересует, какой из процессов дольше всего работает, нажмите Shift+T, и увидите интересующую информацию в колонке TIME+. Можно отсортировать процессы по их номеру (PID), набрав на клавиатуре Shift+N.
Чтобы вернуться к режиму сортировки по уровню потребления ресурсов процессора, воспользуйтесь комбинацией Shift+P.
Далеко не все способы сортировки можно задать с помощью “горячих клавиш”. Например, для определения процессов, которые больше всего потребляют SWAP, используйте меню выбора полей, которое вызывается комбинацией Shift+F.

С помощью клавиш навигации находим SWAP (или любой другой нужный параметр), клавишей “d” закрепляем его добавление в общую таблицу команды top (в качестве подтверждения вашего выбора рядом появится символ “*”). Чтобы задать сортировку по SWAP, здесь же нажимаем “s” и выходим из меню (ESC). Готово!
Убедиться, что сортировка работает по заданному признаку, можно нажав “x”. Колонка с соответствующим признаком будет подсвечена (выделена жирным шрифтом).

Теперь вы не только знаете, как расшифровать содержащуюся в таблице информацию, но и умеете добавлять в нее необходимые параметры, работать с фильтрами. Благодаря команде top вы легко найдете процессы, которые потребляют наибольшее количество ресурсов и/или работают без надобности.
Теперь оптимизировать работу сервера гораздо проще!
On-line журнал o Linux
Начинающий пользователь, естественно начинает осваивать OS Linux с графического интерфейса. Но через некоторое время решает попробовать и работу в командной строке linux.В конечном счёте, к этому подойдёт практически каждый. Это довольно интересный и увлекательный процесс.Только в командной строке открывается вся мощь этой операционной системы. В этом обозрении идет перечисление самых основных команд. Всё это есть в справочном руководстве — man, но сначала, возможно будет не с руки им пользоваться. Сперва попробуйте просто набирать команды данные ниже без дополнительных параметров (которых довольно много и можно узнать задав “команду –help”или “man имя команды”.
Просьба по возможности корректировать или дополнять этот список в комментариях. Многи из нижеприведенных комманд — “Unix like”, это значит что Вы сможите их использовать также, в основаных на Unix операционных системах, например — Mac OS X и др.
- login запрос от пользователя имени и пароля (запрос от системы к пользователю) для входа в систему( по умолчанию, при наборе пароля, он не отображается).
- logout выход из текущего сеанса оболочки.
- startx команда для запуска графического интерфейса X Window (не путайте с системой Windows.Не бойтесь. Это не она:)).
- shutdown останавливает систему и предотвращает повреждение файловой системы при этом, но,используется только при работе в консольном режиме.При работе в режиме X Window, не используйте.
- halt быстрое и корректное выключение системы.
- poweroff корректное выключение системы.
- reboot корректное выключение с последущей загрузкой.Перезагрузка.
- vmstat выдаёт сведения о процессах, памяти и загруженности центрального процессора.
- su вход в сеанс администратора, но прийдётся ввести пароль.Для выхода из этого сеанса наберите exit и нажмите ENTER.
- apropos поиск строки в заголовках и названиях документации ( дополнительно вводится слово для поиска). Выдаёт список всего найденного.
- cal форматированный календарь на текущий месяц ( добавить y и будет календарь на весь текущий год).
- date отображает текущие дату и время, по системным часам ядра.
- oclock простые часы, которые висят на рабочем столе (много дополнительных параметров).
- finger отображение информации о пользователе, имя которого указано в команде.
- hostname команда отображает идентификатор данного узла сети ( его имя). root может изменить имя узла на новое.
- hwclock встроенные часы Вашего компьютера.Для изменения даты и времени и синхронизации с системными часами, необходимы привелегии root.
- pwd отображает полный путь к текущему каталогу.
- tzselect запуск утилиты, которая позволяет выбрать часовой пояс.
- uname выводит информацию об используемой операционной системе (при вводе дополнительных параметров команды , выдаёт довольно много информации).
- uptime показывает текущее время, продолжительность сеанса , количество пользователей и загруженность процессора.
- users отображает краткий список пользователей работающих в системе в данный момент.
- w подробная информация о всех пользователях, работающих в данный момент и также простой, вход в систему и др.Если нужен один пользователь, то указать имя в параметре.
- whatis поиск по базе данных страниц руководства и отображение краткого описания.
- who список пользователей работающих в системе в данный момент.
- whereiz находит файлы, страницы справочного руководства для указанной команды.
- which показывает полный путь к исполняемому файлу команды.
- whoami показывает текущий идентификатор пользователя, работающего в данном терминале.
- write отправляет сообщение другому пользователю, находящемуся в системе, путём копирования строк с терминала отправителя на терминал получателя.
- wall отправляет сообщение на терминал каждого пользователя находящегося в системе в данный момент.
- history показывает пронумерованный список команд, которые Вы выполняли в этом и предыдущем сеансе. Если в списке историии их довольно много, то увидите последние.
- jobs выводит список всех выполняемых и приостановленных задач.
- kill завершить процесс (необходимо указать какой).
- killall позволят управлять процессами используя их имена или имена файлов, а не идентификаторы как в kill. Завершаются все указанные процессы.
- kernelversion показывает основную и дополнительную версии ядра.
- nice позволяет отобразить или настроить приоритет задачи.
- ps выводит список всех работающих процессов.
- pstree показывает иерархию процессов системы, что хорошо показывает их взаимозависимость.
- renice задаёт приоритет для указанной задачи.
- script позволяет записывать весь вывод с терминала в файл.Что бы остановить запись нажмите Ctrl+d.Если имя файла не указано то записывается в typescript.
- times показывает полное время выполнения процессов для всей системы и данного пользователя.
- top запускает программу , которая позволяет управлять процессами.И ещё много дополнительной, полезной информации.
- cd смена текущего каталога.По умолчанию переходит в домашний каталог текущего пользователя (если без параметров).
- dir отображает файлы в текущем каталоге в алфавитном порядке и с учётом регистра.
- file показывает тип содержимого указанного файла(текст, выполняемый, данные).
- find поиск файлов в текущем каталоге.Если указать путь, можно искать везде.
- free отображает информацию об оперативной памяти, подкачки, кэше,свободная памать, общая и т.д.
- ls показывает все файлы в текущем каталоге в алфавитном порядке.Аналогична dir.
- last показывает список пользователей, которые заходили в систему с момента создания файла /var/log/wtmp.
- lastlog проверяет историю входа в систему зарегистрированных пользователей.Форматирует и выводит на печать файл /var/log/lastlog.
- logger посылает запрос демону syslogd с просьбой поместить сообщение в системный журнал.
- lpr отправляет документ на печать демону печати.
- chmod изменяет режим доступа к файлу.Символьный или числовой формат.
- chown смена владельца указанного файла.Требуется доступ root.
- chage применяется для изменения срока действия учетной записи.Для администрирования.
- chfn изменяет сведения о пользователе в файле /etc/passwd из которого берёт информацию команда finger .
- chgrp команда для администратора,для изменения группы владельцев файла.
- clear очищает экран терминала (если это возможно).
- crontab обеспечивает возможность выполнения определённых задач по расписанию. Чаще используется администратором, хотя свои задачи могут быть и у пользователей.
- csplit разбивает файл на несколько частей.Надо задать метод разбивки (строки и т.д.).
- cp копирует один файл в другой, или несколько файлов в каталог.
- dd копирование файла с одновременным выполнением различных, дополнительных преобразований.
- dc калькулятор.
- debugfs применяется для восстановления файловой системы (ext2,ext3) если недостаточно команды fsck.
- df показывает количество используемого и свободного дискового пространства для всех подключенных разделов файловой системы.
- du показывает количество блоков диска, занятых каждым из файлов каталога.
- mc запускает программу Midnight Commander диспетчер файлов в текстовой консоли. Напоминает MSDOS менеджеры и довольно проста и удобна в использовании.Очень много нужных и удобных функций.
- mkdir создание указанного каталога.
- man справочное руководство.
- mcat копирует необработанные данные на дискету.
- mcopy использует отформатированную дискету MSDOS для копирования файлов в Линукс и из Линукс без предварительного подключения дискеты к файловой системе.
- mdel удаляет файл на отформатированной дискете MSDOS.
- mdir отображает содержимое каталога на дискете MSDOS.
- mdu показывает дисковое пространство занятое каталогом MSDOS.
- mesg контролирует доступ к Вашему терминалу, что бы коллеги не могли засыпать Вас сообщениями с помощью команды write
- mformat создаёт на дискете файловую систему MSDOS.
- mkbootdisk применяется в некоторых дистрибутивах, для создания загрузочной дискеты, содержащей всё необходимое для аварийной загрузки.
- mktemp создаёт уникальное имя файла для временной работы.
- mlabel создаёт метку тома на MSDOS на отформатированной дискете.
- mmd создаёт подкаталог MSDOS на отформатированной дискете.
- mmount подключает к файловой системе отформатированное устройство MSDOS.
- mmove перемещает или переименовывает файл на дискете MSDOS.
- more средство постраничного просмотра текстового файла.
- mv переименовывает или перемещает файлы или каталоги.
- rm удаление указанного файла.Можно и много удалить.
- rmdir удаление указанного пустого каталога.
- safedelete удалиние указанного файла в каталог safedelete,где он хранится некоторое время перед необратимым удалением.
- stat отображение всей доступной информации об указанном файле.
- touch изменяет время последнего доступа или изменения файла на текущее время.
- undelete восстанавливает файлы удалённые командой safedelete.
- wc показывает число строк, слов и символов в файле.
- bunzip2 распаковывает указанный файл на 30%быстрей чем gzip.
- bzip2 сжимает указанный файл по ускоренному алгоритму.
- bzip2recover делает попытку восстановить данные из повреждённого файла сжатого bzip2.
- compress сжимает указанный файл по другому алгоритму.
- uncompress распаковывает файл сжатый предыдущей командой.
- cpio позволяет создавать архивы и извлекать из архивов файлы.Позволяет копировать файлы. Необходимо указывать соответствующие параметры.
- gpg позволяет зашифровать и расшифровать файл.Метод шифрования открытым ключом. Позволяет создавать электронные подписи.Если этой программы нет у Вас, скачайте http://www.gnupg.org
- gzip сжимает указанный файл.
- gunzip распаковывает указанный файл (расширения .Z,.gz,.tgz,.zip ).
- gzexe позволяет сжать исполняемый файл с указанным именем так, что бы он автоматически распаковывался и выполнялся, когда пользователь даёт команду на выполнение сжатого файла.
- gpasswd устанавливает пароль группы.
- mcrypt Шифрует указанный файл.Создаётся новый файл в рабочем каталоге с расширением .enc. Вам будет предложено ввести пароль.Не забудьте его.
- mdecrypt расшифровывает это же файл.Если этих утилит нет, скачайте http://mcrypt/hellug.grl
- tar помещает два и более файлов в новый или существующий архив или извлекает их из архива.При задании каталога, заархивирует все файлы в каталоге и подкаталоге.
- talk позволяет вести интерактивный диалог с пользователем сети ИНТЕРНЕТ.
- tee отсылет выходные данные на два устройства вывода.Можно одновременно вывести на экран и в файл.
- toe выдаёт сведения о существующих терминалах, которые могут быть использованы для дальнейшей работы.
- touch изменяет время создания файла на текущее.Если файл не существует, то создаёт новый, пустой файл.
- unarj распаковывает или выводит список содержимого указанного архива в формате .ARJ(формат сжатия MS DOS).
- unzip распаковывает и извлекает файлы из архивов , созданных утилитами ZIP ( Linux,MS DOS,Microsoft Windows ).
- zip архивирует и сжимает файлы.
- zipinfo отображает информацию о содержимом архива.Если указать имя, то выдаст информацию о конкретном файле.
- zipnote позволяет вывести и отредактировать комментарии к файлам из архива ZIP.
- zipsplit позволяет разделить архив zip на достаточно маленькие части, для записи их на сменные носители, и записывает файлы на указанное устройство(дискеты).
- zforce добавляет расширение .gz ко всем файлам в рабочем каталоге, или к указанному файлу, которые были сжаты, но не имеют расширения.Т.е. предотвращает повторное сжатие.
- uuencode кодирует двоичный файл для передачи по ASC11сетям.
- uudecode декодирует выше названный файл.
- autorun автоматически распознаёт все доступные приводы CDROM в системе, монтирует их при вставке диска и может запускать отдельные приложения (например проигрыватель).Для использования, необходимо добавить параметры в файл привода.
- badblocks проверить указанное устройство на наличие повреждённых секторов (указать устройство).
- eject извлекает носитель из указанного устройства.Если устройство смонтировано то команда производит размонтирование перед извлечением носителя.
- e2fsck проверяет и при необходимости восстанавливает повреждённый том файловой системы (ext2,ext3).
- echo выводит строку текста на стандартное устройство вывода.
- fdformat форматирование гибкого диска.Дополнительно вводится имя устройства и необходимый вид форматирования.
- fg переводит процесс выполняемый в фоновом режиме в приоритетный режим.
- fgconsole показывает количество активных виртуальных консолей.
- fsck проверяет и восстанавливает файловую систему.
- mount монтирование файловой системы.
- umount отмонтирование файловой системы (в обоих командах необходимо указать, что именно).
- rdev при вызове без параметров выводит информацию о текущей файловой системе.
- rcp применяется для копирования файлов с одного компьютера на другой.
- rdate получает значение даты и времени от другого узла сети.Используется для синхронизации системного времени узлов.
- rename переименовывает файлы.Очень удобно, когда много файлов.
- resize изменяет размер окна виртуального терминала в графическом окружении.
- restore восстанавливает файлы заархивированные с помощью команды dump.
- runlevel отображает текущий и предыдущий уровни выполнения.
- shred выполняет безопасное удаление файла предварительно перезаписав его содержимое на другой диск.
- sleep приостанавливает начало выполнения процесса на заданное количество секунд.
- usleep приостанавливает на микросекунды.
- sync очищает буферы файловой системы.
- cmp производит быстрое сравнение двух указанных файлов.Если они идентичны, то никакие сообщения не выводятся.
- column форматирует входной текст из указанного файла в список из пяти колонок.
- diff сравнивает два указанных текстовых файла.Каждое отличие выводится в контексте. Позволяет сравнивать каталоги.
- diff3 сравнивает три указанных файла и выводит результаты.
- enscript преобразует указанный текстовый файл в формат Post Script.Вывод может быть направлен на печать или записан в файл.
- fmt данная утилита производит форматирование каждой строки в указанном файле таким образом, что все строки имеют одинаковую ширину.
- head утилита выводит первые десять строк файла.Можно и несколько файлов.
- ispell запуск интерактивной утилиты для проверки орфографии в указанном файле.
- id отображает действующие значения идентификаторов пользователя и группы для текущего пользователя.
- ifconfig отображает состояние текущей конфигурации сети или настраивает сетевой интерфейс.
- less отображает содержимое указанного файла на экране и позволяет удобно просмотреть.
- nl команда нумерует строки в указанном файле.
- paste обьединяет соответствующие строки файлов в колонки.При желании можно обьединить несколько файлов.
- pdf2ps преобразует файл формата PDF в Post Script.Результат записывает на диск.
- pdftotext преобразует файл из формата PDF в текст и записывает результат на диск.
- pr подготавливает текст к печати, осуществляя форматирование с разбиением на страницы.Можно подготовить несколько файлов.
- sort команда позволяет отсортировать строки файла в алфавитном порядке.
- split разбивает файл на части.
- zcat;zmore выводит содержимое файла сжатого gzip на экран без распаковки.
- zcmp сравнивает сжатые gzip два файла без распаковки.
- zdiff сравнивает сжатые gzip два файла без распаковки.
- zegrep;zfgrep;zgrep осуществляют поиск указанной строки, выражения в файле сжатом gzip, без распаковки.
- aumix запускает в интерактивном режиме утилиту, которая управляет различными настройками звуковой карты.
- cdda2wav утилита предназначена для записи звуковых дорожек с аудиокомпакт диска в файлы формата WAV.Если имя файла не указано, то запись идёт в файл audio.wav в текущем каталоге.
- cdlabelgen команда предназначена для подготовки обложек к коробкам компакт дисков. Результат в файле формата Post Script.Требуется наличие интерпретатора языка Perl не ниже 5.003 версии.
- cdp запуск проигрывателя аудиокомпакт дисков в текстовом режиме.
- cdparanoia считывает звуковые дорожки с аудиокомпактов и записывает в файлы WAV,AIFF,RAW.
- combine обьединяет два и более графических файла в один.Огромное количество спецэффектов.Является частью пакета Image Magick и можно взять http://www.imagemagick.org
- convert преобразует указанный входной графический файл, в выходной.Распознаёт множество форматов. Скачать так же как и предидущую.
- identify определяет формат и характеристики графического файла и проверяет целостность и наличие ошибок.
- mogrify преобразует графический файл и перезаписывает исходный.
- montage преобразование нескольких файлов в обьединённое изображение.Скачать http://www.imagemagick.org
- mpg123 воспроизводит на основном устройстве воспроизведения аудио файл в формате MP3. Вписывается имя файла или его адрес в Интернет.Чтобы остановить воспроизведение Ctrl+c.Что бы остановить и выйти из программы Ctrl+c нажать дважды.
- play воспроизводит звуковой файл с указанным именем.Автоматически распознаёт тип файла. Позволяет добавлять различные звуковые эффекты к воспроизводимым файлам.
- playmidi воспроизводит зуковые файлы в формате MIDI.
- rec записывает входной сигнал с микрофона или других входов в звуковой файл. Тип файла следует указать с помощью параметра (type).Есть возможность добавить звуковые эффекты.
- sox преобразует сэмплы из формата входного сигнала, на выходной с добавлением эффектов.
- emacs запуск текстового редактора Emacs.
- joe простой в использовании редактор работающий в текстовом режиме.
- pico простой и удобный в использовании текстовый редактор.Удобен для редактирования конфигурационных и простых файлов.
- vi запуск классического текстового редактора VI для UNIX систем.
- dmesg выводит на экран сообщения ядра, включая отображаемые при запуске и потом. Что бы удобней читать, вводите dmesg|less.
- groupadd создание группы пользователей с указанным именем.
- groupdel удаляет группу с указанным именем.
- groupmod изменяет параметры группы с указанным именем.
- mkpasswd создаёт высококачественный пароль, состоящий по умолчанию из девяти символов и содержащий по крайней мере буквы в разном регистре и цифры.
- passwd позволяет пользователю с указанным именем изменять пароль своей учётной записи. root может изменить пароль любого пользователя.
- pwgen создаёт высококачественный пароль,который хорошо запоминается.Длинна пароля указывается числом. Если этой утилиты нет, скачать http://metalab.unc.edu/pub/Linux/system/security
- quota показывает текущую статистику использования диска и текущие ограничения для пользователя или группы с указанным именем.
- quotacheck исследует файловую систему на предмет использования дискового пространства.
- quotaon включает и отключает ограничения на использование дискового пространства.
- rpm запускает менеджер пакетов, утилиту,позволяющую устанавливать , проверять и обновлять пакеты с расширением rpm.
- rpmfind поиск нужного пакета в базе пакетов RPM через ИНТЕРНЕТ.Последняя версия утилиты http://www.rpm.org
- tmpwatch удаление всех файлов в указанном каталоге, если к ним не осуществлялся доступ в течении последних n часов.Очищает временные каталоги.
- useradd создание нового пользователя с указанным именем.
- userdel удаляет пользователя с указанным именем.
- usermod изменяет параметры пользователя с указанным именем.
- fetchmail утилита получения почты.Роботает в фоновом режиме.Скачивает почту с указанного сервера. Если её нет, скачать можно http://www.freshmeat.net
- ftp устанавливает соединение с указанным узлом и позволяет скачивать или закачивать файлы.
- lynx запуск консольного WEBброузера.
- mail утилита редактирования и просмотра электронной почты.Отправка и получение писем.
- netstat вывод информации о сетевой подсистеме.Очень много настроек и параметров.
- ping отправка на указанный адрес пакетов для проверки возможности соединения с этим узлом.
- telnet открывает окно терминала на удалённом узле и запускает интерактивный сеанс.
- wvdial программа подключается к ИНТЕРНЕТ по протоколу PPP с использованием параметров, хранящихся в файле /etc/wvdial.conf
- wvdialconf осуществляет поиск модема, определяет порт, к которому он подключен, его строку инициализации и максимальную скорость передачи данных.Эта информация автоматически записывается в файл (смотри выше).Требуется доступ root.
- ar средство архивирования, предназначено для создания и распаковки архива.
- arch отображает данные об архитектуре центрального процессора.
- at ставит задания в очередь для последующего выполнения в указанное время.
- atq показывает список заданий которые поставлены в очередь на выполнение.
Командная строка linux все же это сила
- Обзор игр в GNU Linux
- Обзор игр в GNU Linux
- Find, или поиск в Linux.
- Пользователи и группы в Linux
- Выбираем для себя Helpdesk (Service Desk)
Расшифровать текст
У меня есть самопальный скриптик на Perl (Сам писал), который шифрует текст. Принцип простой до безобразия — каждая буква обрабатывается в циферное свое представление, сверху присыпается солью, перцем, возводится в квадрат и прочее. Ну и пишется назад в файл. Расшифровка происходит обратным способом по все той же формуле. Кому интересно, могу подкинуть скриптик. И вот на днях посеял флешку с паролями. (Дурак, балбес). Насколько велика вероятность что ее расшифруют. И, собственно чем? От простого обывателя и такая шифровка поможет, а кто задастся целью разобраться в наборе бессвязных цифр. В общем, чем это можно сделать?

asid
10.03.13 11:57:39 MSK
а кто задастся целью разобраться в наборе бессвязных цифр
тот разберётся. Ещё Шнайер говорил — шифрование самопальными алгоритмами без соотвествующего опыта и наывков спасёт инфо только от вашей младшей сестрёнки.
Reinar ★
( 10.03.13 12:12:51 MSK )

Security by obscurity
edigaryev ★★★★★
( 10.03.13 12:15:19 MSK )
Ответ на: Security by obscurity от edigaryev 10.03.13 12:15:19 MSK

«Реквестировать» — это, типа, в студию)?
asid
( 10.03.13 12:18:51 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:18:51 MSK

edigaryev ★★★★★
( 10.03.13 12:20:44 MSK )
Ответ на: комментарий от edigaryev 10.03.13 12:20:44 MSK

#!/usr/bin/perl #Вариант под виндовс несколько урезаннее, так как им не ползуюсь и #вообще его нет, но он рабочий #Вариант под виндовс if ($^O eq 'MSWin32') < print "ਯ⮣à ä¨ç¥áª ï ®¡à ¡®âª ä ©« . ª ¦¨â¥ ¯ãâì ª ä ©«ã: "; chomp ($put = ); if ($put !~ /kr$/) < open (FILE, "$put") || die $! && <>; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (//, $str); foreach $znak (@el_str) < #Тут оставьте сво. формулу $znak_sch = (ord($znak) -1); $znak_sch_pr = $znak_sch." "; @el_str_sch = (@el_str_sch, $znak_sch_pr); >@el_str_sch = (@el_str_sch, "\n"); > unlink $put; open (FILE, ">$put.kr") || die $! && <>; print FILE @el_str_sch; close (FILE); > else < open (FILE, "$put") || die $! && <>; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (/\n/, $str); foreach $znak (@el_str) < @znak_sch = split (/ /,$znak); foreach $zn (@znak_sch) < $znak_ras = chr($zn +1); @el_str_ras = (@el_str_ras, $znak_ras); >@el_srt_ras = (@el_str_ras, "\n"); > > $im_f = substr ($put,0, -3); unlink $put; open (FILE, ">$im_f") || die $! && <>; print FILE @el_str_ras ; close (FILE); > > else < print "Криптографическая обработка файла. Укажите путь к файлу: "; chomp ($put = ); while (1) < if ($put !~ /kr$/) < open (FILE, "$put") || die $!; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (//, $str); foreach $znak (@el_str) < $znak_sch = ord($znak) - 1); $znak_sch_pr = $znak_sch." "; @el_str_sch = (@el_str_sch, $znak_sch_pr); >@el_str_sch = (@el_str_sch, "\n"); > unlink $put; open (FILE, ">$put.kr") || die $!; print FILE @el_str_sch; close (FILE); exit; > else < open (FILE, "$put") || die $!; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (/\n/, $str); foreach $znak (@el_str) < @znak_sch = split (/ /,$znak); foreach $zn (@znak_sch) < $znak_ras = chr($zn + 1); @el_str_ras = (@el_str_ras, $znak_ras); >@el_srt_ras = (@el_str_ras, "\n"); > > $im_f = substr ($put,0, -3); unlink $put; open (FILE, ">$im_f") || die $!; print FILE @el_str_ras ; close (FILE); `gedit $im_f`; > $put = $im_f; next; > >
asid
( 10.03.13 12:26:23 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:26:23 MSK
Deleted
( 10.03.13 12:28:00 MSK )
Ответ на: комментарий от edigaryev 10.03.13 12:20:44 MSK

В общем происходит расшифровка,открывается блокнот с текстом. После его изменения, сохранения и закрытия, скрипт обратно все кодирует. Формулу подставьте свою, если надо,моя в тайне. Ну там идет n-действий с тем же арифметич принципом:)
asid
( 10.03.13 12:29:58 MSK ) автор топика
Ответ на: комментарий от Deleted 10.03.13 12:28:00 MSK

Поподронее. Не вьехал.
asid
( 10.03.13 12:31:10 MSK ) автор топика
Ответ на: Security by obscurity от edigaryev 10.03.13 12:15:19 MSK
Re: Security by obscurity
Код на перле — сам по себе шифротекст.
Reinar ★
( 10.03.13 12:34:50 MSK )
Ответ на: Re: Security by obscurity от Reinar 10.03.13 12:34:50 MSK

Мне это расценить как комплимент?
asid
( 10.03.13 12:36:40 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:36:40 MSK
Расценивай как легкую попытку троллинга.
И да, чего ты хотел узнать этим топиком? С твоими паролями вряд ли что-то случится — даже если на флешке есть файл, мудро названный pass.txt, то подавляющая часть народу дальше попытки открыть его notepad’ом не пойдут. А остальные подумают, что он пошифрован чем-то толковым и смысла нет пытаться.
Вероятность того, что найдётся упоротый упорный, который увидит этот файл и засядет делать криптоанализ — прикинь сам.
Reinar ★
( 10.03.13 12:46:36 MSK )
Ответ на: комментарий от Reinar 10.03.13 12:46:36 MSK

Уфффффф! Утешил. А вообще такие программы по расшифровке есть или файлы расшифровываются, как бы это выразиться, вручную. Вооще, как такие вещи происходят, сам принцип какой?
asid
( 10.03.13 12:50:50 MSK ) автор топика

Откуда нашедшему знать алгоритм шифровки и расшифровки? Он может расшифровать твой текст в что-нибудь совсем другое, чем то, что ты имел в виду.
KendovNorok ★
( 10.03.13 12:55:35 MSK )
Ответ на: комментарий от KendovNorok 10.03.13 12:55:35 MSK

Ну, тогда можно считать абсолютно лююбой алгоритм надежным на 100%. Гм. Надо взять файл, перевести его в двоичный вид, так же обработать. Добавить не много для веса лишнего. Тогда пожалуй, можно не только текст, но и изображения, pdf спрятать.
asid
( 10.03.13 13:01:43 MSK ) автор топика

Ну если у тебя пароли хорошие (типа malaeJ7iey2yishaevei), то не расшифруют.
В смысле если у тебя в файле и так высокая энтропия и мало поясняющих строк (типа Моё мыло и т.д.) то это нереально.
ziemin ★★
( 10.03.13 13:05:18 MSK )
Ответ на: комментарий от ziemin 10.03.13 13:05:18 MSK

В том то и дело, что черным по белому написано: «http://www.linux.org» rgh4759ghrbsj (к примеру) и так далее.
asid
( 10.03.13 13:09:37 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 13:09:37 MSK

А чем keepasx не устроил? Ключевой файл, мастер пароль, база — можно потерять сразу два элемента и пофиг.
ziemin ★★
( 10.03.13 13:12:28 MSK )
Ответ на: комментарий от ziemin 10.03.13 13:12:28 MSK

Да я про нее и не знал. К тому же мне просто было интересно написать скрипт самому, а не пользоваться чужими трудами. Кто знает, вдруг автор оставил там где лазейку?!
asid
( 10.03.13 13:17:03 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 13:17:03 MSK

ziemin ★★
( 10.03.13 13:20:46 MSK )
Ответ на: комментарий от ziemin 10.03.13 13:20:46 MSK

И? Когда я его писал, у меня еще в то время винда стояла. Не просто же так она в тексте предусмотрена. А тогда фраза «Open source» мне еще ни о чем не говорила. От линукса глаза были как уличный фонарь. Вот и пользовался тем что сам делал. И вообще виндовс веры нет, никаким ее программам ни открытым, ни закрытым. Вобщем, можно сильно не париться. Всем спасибо.
asid
( 10.03.13 13:29:25 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:50:50 MSK
Руками — алгоритм свой, и не думаю, что какая-то волшебная тулза что-то подберёт. В твоём случае (я надеюсь) доступен только 1 шифротекст с паролями. Основной способ атаковать шифротексты (с неизвестным исходным текстом) — частотный анализ.
//Посмотрел скрипт
Страшно слабенький скрипт, и вряд ли кто-то примет твой шифротекст за что-то серьёзное (потому как шифровать надо в бинарном виде и тогда файл будет хотя бы минимально похож на мусор). В данном случае спасает только то, что шифротекст только один. Впрочем, не сильно, поскольку исходное форматирование текста и переносы строк остаются и можно выделить зависимости.
Reinar ★
( 10.03.13 13:37:26 MSK )
Ответ на: комментарий от asid 10.03.13 13:01:43 MSK

Вот представь, есть какое-то число. Даже зная, что оно представляет из себя по какой-то логике измененные числовые значения букв (допустим, пароль только из букв), можно будет нарасшифровывать из этого числа дофига разных буквенных паролей.
KendovNorok ★
( 10.03.13 13:52:31 MSK )
Ответ на: комментарий от Reinar 10.03.13 13:37:26 MSK

плюсую, конечно в бинарном, а сейчас что в текстовом?
//Совсем не знаю perl
XoFfiCEr ★★☆☆
( 10.03.13 13:54:42 MSK )
Ответ на: комментарий от asid 10.03.13 12:26:23 MSK

Не хотите изучить модули Encode, Path::Class, прагму encoding? Дублирование кода — плохо.
AITap ★★★★★
( 10.03.13 14:01:16 MSK )
Ответ на: комментарий от XoFfiCEr 10.03.13 13:54:42 MSK
А сейчас там в текстовом виде ascii-коды символов (ну ладно, ascii-код -1) разделённые пробелами.
//Да я тоже