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

Содержание

Журнал

Среда (03/18/09)

/dev/ttyp2
12:10:53
#iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
12:11:00
#iptables
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
12:11:03
#tcpd
tcpd       tcpdchk    tcpdmatch  tcpdump
12:11:03
#tcpd
tcpd       tcpdchk    tcpdmatch  tcpdump
12:11:03
#tcpdump -i eth0 -n port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
прошло 13 минут
12:24:09
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:00:03
          inet addr:192.168.16.3  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2762 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1387 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:227999 (222.6 KiB)  TX bytes:403662 (394.2 KiB)
eth1      Link encap:Ethernet  HWaddr 00:16:3E:00:01:03
          inet addr:192.168.23.1  Bcast:192.168.23.255  Mask:255.255.255.0
...
          collisions:0 txqueuelen:1000
          RX bytes:8615815 (8.2 MiB)  TX bytes:431651 (421.5 KiB)
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:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2978 (2.9 KiB)  TX bytes:2978 (2.9 KiB)
12:24:14
#ping 192.168.22.1
PING 192.168.22.1 (192.168.22.1) 56(84) bytes of data.
64 bytes from 192.168.22.1: icmp_seq=1 ttl=64 time=0.279 ms
--- 192.168.22.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.279/0.279/0.279/0.000 ms
12:24:29
#ssh 192.168.22.1
The authenticity of host '192.168.22.1 (192.168.22.1)' can't be established.
RSA key fingerprint is 51:5b:32:d8:70:19:6d:04:c7:b4:11:49:13:74:dc:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.22.1' (RSA) to the list of known hosts.
root@192.168.22.1's password:
Last login: Wed Mar 18 11:19:35 2009 from 192.168.16.1
Linux debiant 2.6.18-5-xen-686 #1 SMP Fri Jun 1 05:05:24 UTC 2007 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
l3-agent is already running: pid=1290; pidfile=/root/.lilalo/l3-agent.pid
12:24:36
#apt-get install apache
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Будут установлены следующие дополнительные пакеты:
  apache-common apache2-utils libapr1 libaprutil1 libpcre3 libpq4 libsqlite3-0
Предлагаемые пакеты:
  apache-doc apache-ssl apache-perl
НОВЫЕ пакеты, которые будут установлены:
  apache apache-common apache2-utils libapr1 libaprutil1 libpcre3 libpq4
  libsqlite3-0
обновлено 0, установлено 8 новых пакетов, для удаления отмечено 0 пакетов, и 55 пакетов не обновлено.
Необходимо скачать 2448kБ архивов.
После распаковки объем занятого дискового пространства возрастёт на 6004kB.
Хотите продолжить [Д/н]?
0% [Соединение с debian.org.ua (62.149.27.59)]
12:24:48
#vim /etc/apt/sources.list
12:25:16
#apt-get install apache
[root@debian2:~]# apt-get update
Получено:1 http://10.0.35.1 etch Release.gpg [386B]
Получено:2 http://10.0.35.1 etch Release [58,2kB]
Ign http://10.0.35.1 etch/main Packages
Получено:3 http://10.0.35.1 etch/main Packages [5620kB]
Получено 5678kB за 2s (2757kB/c)
Чтение списков пакетов... Готово
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Будут установлены следующие дополнительные пакеты:
...
Настраивается пакет libsqlite3-0 (3.3.8-1.1) ...
Настраивается пакет libaprutil1 (1.2.7+dfsg-2) ...
Настраивается пакет apache2-utils (2.2.3-4+etch6) ...
Настраивается пакет apache-common (1.3.34-4.1+etch1) ...
Настраивается пакет apache (1.3.34-4.1+etch1) ...
Creating config file /etc/apache/httpd.conf with new version
Creating config file /etc/apache/srm.conf with new version
Creating config file /etc/apache/access.conf with new version
Creating config file /etc/apache/modules.conf with new version
Starting apache 1.3 web server....
12:25:29
#cd /var/www/

12:25:33
#hostname -f
debian2.net.nt
12:25:41
#hostname -f > index.html

12:26:47
#iptables -t nat -A PREROUTING -p tcp

12:26:57
#ssh 192.168.22.1

12:26:57
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 123 packets, 8296 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.10       tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 109 packets, 7139 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 37 packets, 2603 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:27:06
#iptables -t nat -D

12:27:28
#iptables -t nat -L -v -n

12:27:35
#iptables -t nat -D
3
12:27:35
#iptables -t nat -L -v -n

12:27:35
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 123 packets, 8296 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 111 packets, 7259 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 39 packets, 2723 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:27:37
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 123 packets, 8296 bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    60 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 113 packets, 7379 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 40 packets, 2783 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:28:12
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 123 packets, 8296 bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    60 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 113 packets, 7379 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 40 packets, 2783 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:28:13
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 123 packets, 8296 bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    60 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 113 packets, 7379 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 40 packets, 2783 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:28:14
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 123 packets, 8296 bytes)
 pkts bytes target     prot opt in     out     source               destination
    2   120 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 115 packets, 7499 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 41 packets, 2843 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:29:24
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 124 packets, 8356 bytes)
 pkts bytes target     prot opt in     out     source               destination
    3   180 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 118 packets, 7679 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 42 packets, 2903 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:30:12
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 124 packets, 8356 bytes)
 pkts bytes target     prot opt in     out     source               destination
    3   180 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 118 packets, 7679 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 42 packets, 2903 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:30:24
#tcpdump -n -i eth0 not port 5900 and not port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:31:56.484422 IP 192.168.16.254.45878 > 192.168.16.3.80: S 1218713895:1218713895(0) win 5840 <mss 1460,sackOK,timestamp 684061 0,nop,wscale 4>
12:31:57.069458 arp who-has 192.168.16.5 tell 192.168.16.254
12:31:57.089468 arp who-has 192.168.16.1 tell 192.168.16.254
12:31:59.479559 IP 192.168.16.254.45878 > 192.168.16.3.80: S 1218713895:1218713895(0) win 5840 <mss 1460,sackOK,timestamp 684361 0,nop,wscale 4>
12:32:04.479863 arp who-has 192.168.16.3 tell 192.168.16.254
12:32:04.479878 arp reply 192.168.16.3 is-at 00:16:3e:00:00:03
12:32:05.479924 IP 192.168.16.254.45878 > 192.168.16.3.80: S 1218713895:1218713895(0) win 5840 <mss 1460,sackOK,timestamp 684961 0,nop,wscale 4>
12:32:17.480656 IP 192.168.16.254.45878 > 192.168.16.3.80: S 1218713895:1218713895(0) win 5840 <mss 1460,sackOK,timestamp 686161 0,nop,wscale 4>
...
12:37:49.201504 IP 192.168.16.254.48748 > 192.168.16.3.80: S 1585728487:1585728487(0) win 5840 <mss 1460,sackOK,timestamp 719331 0,nop,wscale 4>
12:37:52.201615 IP 192.168.16.254.48748 > 192.168.16.3.80: S 1585728487:1585728487(0) win 5840 <mss 1460,sackOK,timestamp 719631 0,nop,wscale 4>
12:37:54.199946 arp who-has 192.168.16.3 tell 192.168.16.10
12:37:54.199967 arp reply 192.168.16.3 is-at 00:16:3e:00:00:03
12:37:54.201689 arp who-has 192.168.16.3 tell 192.168.16.254
12:37:54.201698 arp reply 192.168.16.3 is-at 00:16:3e:00:00:03
12:37:58.201986 IP 192.168.16.254.48748 > 192.168.16.3.80: S 1585728487:1585728487(0) win 5840 <mss 1460,sackOK,timestamp 720231 0,nop,wscale 4>
53 packets captured
53 packets received by filter
0 packets dropped by kernel
12:38:00
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 145 packets, 9779 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   360 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 136 packets, 8751 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 45 packets, 3075 bytes)
 pkts bytes target     prot opt in     out     source               destination
прошло 11 минут
12:49:47
#iptables -t nat -L -v -n

12:49:47
#iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 164 packets, 11015 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   360 DNAT       tcp  --  *      *       192.168.16.254       192.168.16.3        tcp dpt:80 to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT 151 packets, 9651 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 46 packets, 3135 bytes)
 pkts bytes target     prot opt in     out     source               destination
12:49:52
#iptables -t nat -A POSTROUTING -p tcp --dst 192.168.16.2 --dport 8
 -j SNAT --to-source $192.168.16.254
12:51:01
#iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  debian.net.nt        debian3.net.nt      tcp dpt:www to:192.168.22.1:80
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
12:51:06
#iptables -t nat -F PREROUTING

12:51:13
#netstat -an | less

Статистика

Время первой команды журнала12:10:53 2009- 3-18
Время последней команды журнала12:51:13 2009- 3-18
Количество командных строк в журнале36
Процент команд с ненулевым кодом завершения, % 5.56
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.67
Количество командных строк в единицу времени, команда/мин 0.89
Частота использования команд
iptables21|=======================================================| 55.26%
apt-get2|=====| 5.26%
tcpdump2|=====| 5.26%
hostname2|=====| 5.26%
ssh2|=====| 5.26%
tcpd2|=====| 5.26%
ifconfig1|==| 2.63%
index.html1|==| 2.63%
netstat1|==| 2.63%
less1|==| 2.63%
ping1|==| 2.63%
vim1|==| 2.63%
cd1|==| 2.63%
____
*) Интервалы неактивности длительностью 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$