Журнал лабораторных работ

Содержание

Журнал

Пятница (07/31/09)

/dev/ttyp7
19:47:13
$sudo vim /etc/inetd.conf
19:47:53
$sudo invoke-rc.d openbsd-inetd restart
Restarting internet superserver: inetd.
19:47:57
$sudo netstat -lnp | less
19:48:57
$nc 127.0.0.1
[user@debian7:~]$ nc 127.0.0.1 bash
nobody@debian7:/$ ls
bin
boot
dev
etc
home
initrd
lib
lost+found
...
touch: невозможно выполнить touch для `/home/user/test': Permission denied
nobody@debian7:/$ sudo /etc/init.d/openbsd-inetd restart
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
Password:
nobody@debian7:/$ exit
exit
19:49:10
$grep bash /etc/services
bash   65533/tcp
19:49:28
$nc 192.168.16.7
[user@debian7:~]$ nc 127.0.0.1 65533
nobody@debian7:/$ exit
exit
19:49:48
$telnet 192.168.16.7 65533
Trying 192.168.16.7...
Connected to 192.168.16.7.
Escape character is '^]'.
Connection closed by foreign host.
19:50:04
$vim /etc/hosts.allow
19:50:14
$vim /etc/hosts.deny
19:50:19
$vim /etc/hosts.allow
19:50:24
$ifconfig
bash: ifconfig: command not found
19:50:26
$sudo
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:00:07
          inet addr:192.168.16.7  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45170 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61127 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5299258 (5.0 MiB)  TX bytes:16053259 (15.3 MiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:157 errors:0 dropped:0 overruns:0 frame:0
          TX packets:157 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:10489 (10.2 KiB)  TX bytes:10489 (10.2 KiB)
19:50:38
$telnet 192.168.16.7 65533
Trying 192.168.16.7...
Connected to 192.168.16.7.
Escape character is '^]'.
Connection closed by foreign host.
19:51:17
$telnet 192.168.16.7 65533
Trying 192.168.16.7...
Connected to 192.168.16.7.
Escape character is '^]'.
Connection closed by foreign host.
19:51:19
$telnet 192.168.16.7 65533
Trying 192.168.16.7...
Connected to 192.168.16.7.
Escape character is '^]'.
Connection closed by foreign host.
19:51:33
$sudo
#:BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
#:RPC: RPC based services
#:HAM-RADIO: amateur-radio services
#:OTHER: Other services
#vnc1 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd  -query 127.0.0.1 -oncee
 -geometry 1024x768 -depth 24
bash stream tcp nowait nobody  /bin/bash bash -i
"/etc/inetd.conf" 40L, 1214C записано
19:52:01
$telnet 192.168.16.7 65533
NC(1)                                                                    NC(1)
NAME
       nc - TCP/IP swiss army knife
SYNOPSIS
       nc [-options] hostname port[s] [ports] ...
       nc -l -p port [-options] [hostname] [port]
DESCRIPTION
       netcat is a simple unix utility which reads and writes data across net‐
       work connections, using TCP or UDP protocol. It is  designed  to  be  a
       reliable  "back-end" tool that can be used directly or easily driven by
...
SEE ALSO
       /usr/share/doc/netcat/README.gz
AUTHOR
       This manual page was written by Joey Hess <joeyh@debian.org> and Robert
       Woodcock  <rcw@debian.org>, cribbing heavily from Netcat’s README file.
       Netcat was written by a guy we know as the Hobbit <hobbit@avian.org>.
                                                                         NC(1)
nobody@debian7:/$ nobody@debian7:/$ exit
exit
Connection closed by foreign host.
19:52:49
$man nc
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:53:10
$sudo vim /etc/hosts.deny
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:28
$:wq!
bash: :wq!: command not found
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
19:55:29
$sudo vim /etc/hosts.deny
20:02:15
$screen
/dev/ttyp4
20:02:47
$screen -x
/dev/ttyp5
20:02:47
$screen -x
20:02:56
$sudo vim /etc/inetd.conf
/dev/ttyp9
20:02:58
$screen -x
/dev/ttypd
20:03:02
$screen -x
/dev/ttypa
20:03:18
$screen -x
20:03:25
$/sbin/ifconfig -a

20:03:29
$sudo /etc/init.d/openbsd-inetd restart
Restarting internet superserver: inetd.
20:03:37
$sudo netstat -lnp | less
20:03:48
$nc 192.168.16.7 65533

20:04:09
$nc 192.168.16.7 653
(UNKNOWN) [192.168.16.7] 65333 (?) : Connection refused
20:04:14
$nc 192.168.16.7 65533

20:04:16
$nc 192.168.16.7 65533

20:04:40
$sudo /etc/init.d/openbsd-inetd restart
#:BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
#:RPC: RPC based servicesndard services.                      1,1       Наверху
#:HAM-RADIO: amateur-radio services
#:OTHER: Other services
 -geometry 1024x768 -depth 24
                nowait root /bin/bash bash -i                 40,17       Внизу
"/etc/inetd.conf" 40L, 1212C записано
Restarting internet superserver: inetd.
20:04:44
$nc 192.168.16.7 65533
dircolors: либо переменная окружения SHELL отсутствует, либо не задан тип интерпретатора
openpty failed
20:04:51
$sudo vim /etc/inetd.conf
20:05:23
$bc
bash: bc: command not found
20:05:24
$apt-get install bcudo a
E: Не могу открыть файл блокировки /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
20:05:31
$sudo apt-get install bc
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
НОВЫЕ пакеты, которые будут установлены:
  bc
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 55 пакетов не обновлено.
Необходимо скачать 66,2kБ архивов.
После распаковки объем занятого дискового пространства возрастёт на 193kB.
Получено:1 http://debian.org.ua etch/main bc 1.06-20 [66,2kB]
Получено 66,2kB за 0s (657kB/c)
Выбор ранее не выбранного пакета bc.
(Чтение базы данных... на данный момент установлено 22620 файлов и каталогов.)
Распаковывается пакет bc (из файла .../archives/bc_1.06-20_i386.deb)...
Настраивается пакет bc (1.06-20) ...
20:05:40
$whereis bc
bc: /usr/bin/bc /usr/X11R6/bin/bc /usr/bin/X11/bc /usr/share/man/man1/bc.1.gz
20:05:57
$sudo /etc/init.d/openbsd-inetd restart
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
bc:
"/etc/inetd.conf" 41L, 1207C записано
Restarting internet superserver: inetd.
20:06:03
$nc 192.168.16.7 65533
2+2
4
20:06:18
$telnet 192.168.16.7 65533
Trying 192.168.16.7...
Connected to 192.168.16.7.
Escape character is '^]'.
2+2
(standard_in) 1: illegal character: ^M
2+2#
4
^]
telnet> q
Connection closed.
20:07:10
$vim /etc/hosts.deny
20:08:12
$sudo vim /etc/inetd.conf
20:09:15
$sudo /etc/init.d/openbsd-inetd restart
Restarting internet superserver: inetd.
20:09:27
$tail /etc/inetd.conf
[user@debian7:~]$ nc 192.168.16.7 65533
2+2
#:RPC: RPC based services
#:HAM-RADIO: amateur-radio services
#:OTHER: Other services
#vnc1 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd  -query 127.0.0.1 -once -geometry 1024x768 -depth 24
bash stream tcp nowait root /usr/sbin/tcpd /usr/bin/bc
20:09:37
$sudo vim /etc/hosts.deny
20:10:26
$nc 192.168.16.7 65533
#
# If you're going to protect the portmapper use the name "portmap" for the
bash: 192.168.16.7
~
~
~
~
~
~
~
~
~
"/etc/hosts.allow" 14L, 696C записано
2+2
^]q
20:10:44
$nc 192.168.16.7 65533
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
ALL: 192.168.16.7
~
~
~
~
~
~
~
~
"/etc/hosts.allow" 14L, 695C записано
2+2
4
20:10:50
$sudo vim /etc/hosts.allow
20:11:04
$sudo vim /etc/hosts.allow
20:11:38
$sudo vim /etc/hosts.allow
20:14:18
$sudo apt-get install xinetd
После распаковки объем занятого дискового пространства возрастёт на 369kB.
Получено:1 http://debian.org.ua etch/main xinetd 1:2.3.14-1 [137kB]
Получено 137kB за 0s (956kB/c)
Выбор ранее не выбранного пакета xinetd.
(Чтение базы данных... на данный момент установлено 22635 файлов и каталогов.)
Распаковывается пакет xinetd (из файла .../xinetd_1%3a2.3.14-1_i386.deb)...
Настраивается пакет xinetd (2.3.14-1) ...
Stopping internet superserver: xinetd.
Добавляется `diversion of /etc/init.d/inetd to /etc/init.d/inetd.real by xinetd'
Starting internet superserver: xinetd.
20:15:10
$vim /etc/xinetd.conf
20:15:43
$vim /etc/xinetd.d/
20:16:33
$ps aux | grep inetd
        socket_type     = stream
service protocol        = tcp
{       user            = root
{       wait            = no
}
# This is the udp version.
}       disable         = yes
service typegen         = INTERNAL
"/etc/xiidtd.d/chargen" = chargen-dgram´Ð»Ñ чтения] 28L, 798C
{       socket_type     = dgram
root      2997  0.0  0.1   2276   804 ?        Ss   21:15   0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive
        protocol        = udp
user      3062  0.0  0.1   4620   744 ttyp3    R+   21:16   0:00 grep inetd
        user            = root
        wait            = yes
}
                                                              19,9        Внизу
20:16:40
$netstat -lnp | less
20:16:55
$sudo xconv.pl < /etc/inetd.conf > /tmp/xinetd.conf

20:17:27
$vim /tmp/xinetd.conf
--- /tmp/l3-saved-1433.17953.17582	2009-07-31 21:17:30.000000000 +0300
+++ /tmp/xinetd.conf	2009-07-31 21:18:09.000000000 +0300
@@ -1,46 +1,9 @@
-# This file generated by xconv.pl, included with the xinetd
-# package.  xconv.pl was written by Rob Braun (bbraun@synack.net)
-#
-# The file is merely a translation of your inetd.conf file into
-# the equivalent in xinetd.conf syntax.  xinetd has many 
-# features that may not be taken advantage of with this translation.
-# Please refer to the xinetd.conf man page for more information 
-# on how to properly configure xinetd.
-
-
-# The defaults section sets some information for all services
-defaults
-{
-	#The maximum number of requests a particular service may handle
-	# at once.
-	instances   = 25
-
-	# The type of logging.  This logs to a file that is specified.
-	# Another option is: SYSLOG syslog_facility [syslog_level]
-	log_type    = FILE /var/log/servicelog
-
-	# What to log when the connection succeeds.
-	# PID logs the pid of the server processing the request.
-	# HOST logs the remote host's ip address.
-	# USERID logs the remote user (using RFC 1413)
-	# EXIT logs the exit status of the server.
-	# DURATION logs the duration of the session.
-	log_on_success = HOST PID
-
-	# What to log when the connection fails.  Same options as above
-	log_on_failure = HOST
-
-	# The maximum number of connections a specific IP address can
-	# have to a specific service.  
-	per_source  = 5
-}
-
 service bash
 {
+	disable     = no
 	socket_type = stream
 	protocol    = tcp
 	wait        = no
 	user        = root
 	server      = /usr/bin/bc
 }
-
20:18:10
$sudo cp /tmp/xinetd.conf /etc/xinetd.d/bc

20:18:54
$sudo
service bash
{       disable     = no
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = root
        server      = /usr/bin/bc
}
"/etc/xinetd.d/bc" 9L, 141C
20:19:00
$sudo invoke-rc.d xinetd res
Stopping internet superserver: xinetd.
Starting internet superserver: xinetd.
20:19:15
$netstat -lnp | less
20:19:29
$nc 127.0.0.1 65533

20:19:37
$nc 192.168.16.7
1+1
2
20:19:54
$sudo
{       disable     = no
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = root
        server      = /usr/bin/bc
        only_from   = 192.168.16.
        access_times = 21:00-22:00
}
}
...
~
~
~
~
~
~
~
~
~
"/etc/xinetd.d/bc" 11L, 196C записано
20:21:10
$sudo less /var/log/daemon.log
20:21:21
$q
bash: q: command not found
20:21:22
$sudo invoke-rc.d xinetd restart
Stopping internet superserver: xinetd.
Starting internet superserver: xinetd.
20:21:34
$nc 192.168.16.7 65533

20:21:38
$nc 192.168.16.7 65533

Статистика

Время первой команды журнала19:47:13 2009- 7-31
Время последней команды журнала20:21:38 2009- 7-31
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %22.77
Процент синтаксически неверно набранных команд, %12.87
Суммарное время работы с терминалом *, час 0.57
Количество командных строк в единицу времени, команда/мин 2.93
Частота использования команд
sudo46|==============================| 30.67%
vim35|=======================| 23.33%
nc14|=========| 9.33%
:wq!10|======| 6.67%
telnet6|====| 4.00%
screen6|====| 4.00%
less5|===| 3.33%
/etc/init.d/openbsd-inetd4|==| 2.67%
netstat4|==| 2.67%
invoke-rc.d3|==| 2.00%
apt-get3|==| 2.00%
ifconfig2|=| 1.33%
grep2|=| 1.33%
ps1|| 0.67%
q1|| 0.67%
man1|| 0.67%
xinetd.conf1|| 0.67%
cp1|| 0.67%
whereis1|| 0.67%
xconv.pl1|| 0.67%
bc1|| 0.67%
tail1|| 0.67%
/etc/inetd.conf1|| 0.67%
____
*) Интервалы неактивности длительностью 30 минут и более не учитываются

Справка

Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
  1. В журнал автоматически попадают все команды, данные в любом терминале системы.

  2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

  3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
    $ l s-l
    bash: l: command not found
    

  4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
    $ test 5 -lt 4
    Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

  5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
    $ find / -name abc
    find: /home/devi-orig/.gnome2: Keine Berechtigung
    find: /home/devi-orig/.gnome2_private: Keine Berechtigung
    find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
    find: /home/devi-orig/.metacity: Keine Berechtigung
    find: /home/devi-orig/.inkscape: Keine Berechtigung
    ^C
    

  6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
    # id
    uid=0(root) gid=0(root) Gruppen=0(root)
    

  7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
    $ vi ~/.bashrc
    2a3,5
    >    if [ -f /usr/local/etc/bash_completion ]; then
    >         . /usr/local/etc/bash_completion
    >        fi
    

  8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
    $ patch ~/.bashrc
    В данном случае изменения применяются к файлу ~/.bashrc

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

    Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

  10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

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

  12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

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

  14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

    $ whoami
    
    user
    
    $ #^ Интересно, кто я?
    
    в журнале это будет выглядеть так:
    $ whoami
    
    user
    
    Интересно, кто я?

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

    $ whoami
    
    user
    
    $ cat > /dev/null #^ Интересно, кто я?
    
    Программа whoami выводит имя пользователя, под которым 
    мы зарегистрировались в системе.
    -
    Она не может ответить на вопрос о нашем назначении 
    в этом мире.
    
    В журнале это будет выглядеть так:
    $ whoami
    user
    
    Интересно, кто я?
    Программа whoami выводит имя пользователя, под которым
    мы зарегистрировались в системе.

    Она не может ответить на вопрос о нашем назначении
    в этом мире.
    Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

  16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

  17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
  18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
  19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
    1
        2
    3   
        4
    
    Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

О программе

LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008

$Id$