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

Содержание

Журнал

Вторник (06/02/09)

/dev/pts/2
16:32:54
$ssh -l root 192.168.102.2
root@192.168.102.2's password:
16:33:17
$ssh -l root 192.168.105Ñ.1
The authenticity of host '192.168.15.1 (192.168.15.1)' can't be established.
RSA key fingerprint is 34:6c:c2:da:38:7c:d7:17:e9:cd:17:8d:e7:cf:f1:a6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.1' (RSA) to the list of known hosts.
root@192.168.15.1's password:
Permission denied, please try again.
root@192.168.15.1's password:
Linux linux1 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 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.
Last login: Tue Jun  2 16:33:26 2009 from linux6.unix.nt
l3-agent is already running: pid=4334; pidfile=/root/.lilalo/l3-agent.pid
16:35:20
#tcpdump -i eth0 -n host 192.168.15.1 port 22
tcpdump: syntax error
16:36:14
#tcpdump -i eth0 -n host 192.168.15.1 and port 22
16:36:21.943975 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 32528:32736, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
16:36:21.943989 IP 192.168.15.3.56278 > 192.168.15.1.22: Flags [.], ack 31920, win 1002, options [nop,nop,TS val 6014309 ecr 6337599], length 0
16:36:21.944042 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 32736:32944, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
16:36:21.944095 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 32944:33152, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
16:36:21.944147 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 33152:33344, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 192
16:36:21.944193 IP 192.168.15.3.56278 > 192.168.15.1.22: Flags [.], ack 32736, win 1002, options [nop,nop,TS val 6014309 ecr 6337599], length 0
16:36:21.944211 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 33344:33552, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
16:36:21.944266 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 33552:33760, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
16:36:21.944319 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 33760:33968, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
16:36:21.944372 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 33968:34176, ack 1, win 239, options [nop,nop,TS val 6337599 ecr 6014309], length 208
...
16:36:21.950338 IP 192.168.15.3.56278 > 192.168.15.1.22: Flags [.], ack 54672, win 1002, options [nop,nop,TS val 6014311 ecr 6337600], length 0
16:36:21.950397 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 55904:56112, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 208
16:36:21.950450 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 56112:56320, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 208
16:36:21.950503 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 56320:56528, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 208
16:36:21.950541 IP 192.168.15.3.56278 > 192.168.15.1.22: Flags [.], ack 55488, win 1002, options [nop,nop,TS val 6014311 ecr 6337600], length 0
16:36:21.950566 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 56528:56736, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 208
16:36:21.950620 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 56736:56944, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 208
16:36:21.950672 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 56944:57136, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 192
16:36:21.950725 IP 192.168.15.1.22 > 192.168.15.3.56278: Flags [P.], seq 57136:57344, ack 1, win 239, options [nop,nop,TS val 6337600 ecr 6014311], length 208
16:36:21.950748 IP 192.168.15.3.56278 > 192.168.15.1.22: Flags [.], ack 56528, win 1002, options [nop,nop,TS val 6014311 ecr 6337600], length 0
/dev/pts/4
16:39:32
#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.102.0/32 -d 192.168.15.0/24 -j MASQUERADE

16:40:11
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.15.3

/dev/pts/8
16:41:56
$sudo man iptables
/dev/pts/2
16:45:13
#192.168.15.1 and port 22

прошло 16 минут
/dev/pts/4
17:02:07
#iptables -t nat -A PREROUTING -i eth0 --sport 8080 -j DNAT --to-destination 192.168.102.2:80
iptables v1.4.3.2: unknown option `--sport'
Try `iptables -h' or 'iptables --help' for more information.
17:04:21
#iptables -t nat -A PREROUTING -i eth0 --dport 8080 -j DNAT --to-destination 192.168.102.2:80
iptables v1.4.3.2: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.
17:04:28
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.102.2:80

17:04:50
#iptables -t nat -A POSTROUTING -o eth0.102 -p tcp --sport 80 -j SNAT --to 192.168.102.1

17:06:28
#iptables -t nat -D POSTROUTING -o eth0.102 -p tcp --sport 80 -j SNAT --to 192.168.102.1

17:11:00
#iptables -t nat -A OUTPUT -o eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.102.2:80

прошло 10 минут
17:21:32
#exit
exit
прошло 15 минут
/dev/pts/2
17:37:15
#exit
exit
Connection to 192.168.15.1 closed.
/dev/pts/0
17:40:08
$man logger
/dev/pts/0
17:42:09
$sudo vi /etc/network/interfaces
17:43:46
$sudo iptables-save > /etc/network/iptables_2
bash: /etc/network/iptables_2: Permission denied
17:44:20
$sudo ( iptables-save > /etc/network/iptables_2 )
bash: syntax error near unexpected token `iptables-save'
прошло 57 минут
/dev/pts/1
18:42:13
$su - root
Password:
l3-agent is already running: pid=3316; pidfile=/root/.lilalo/l3-agent.pid
18:42:29
#cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
18:42:36
#tail -f -n 30 /var/log/syslog
Jun  2 18:41:06 linux4 monit[2812]: 'cron' start: /etc/init.d/cron
Jun  2 18:41:06 linux4 monit[2812]: 'cron' failed to start
Jun  2 18:41:26 linux4 monit[2812]: 'cron' process is not running
Jun  2 18:41:26 linux4 monit[2812]: 'cron' trying to restart
Jun  2 18:41:26 linux4 monit[2812]: 'cron' start: /etc/init.d/cron
Jun  2 18:41:26 linux4 monit[2812]: 'cron' failed to start
Jun  2 18:41:46 linux4 monit[2812]: 'cron' process is not running
Jun  2 18:41:46 linux4 monit[2812]: 'cron' trying to restart
Jun  2 18:41:46 linux4 monit[2812]: 'cron' start: /etc/init.d/cron
Jun  2 18:41:46 linux4 monit[2812]: 'cron' failed to start
...
Jun  2 18:43:26 linux4 monit[2812]: 'cron' start: /etc/init.d/cron
Jun  2 18:43:47 linux4 monit[2812]: 'cron' process is not running
Jun  2 18:43:47 linux4 monit[2812]: 'cron' trying to restart
Jun  2 18:43:47 linux4 monit[2812]: 'cron' start: /etc/init.d/cron
Jun  2 18:43:47 linux4 monit[2812]: 'cron' failed to start
Jun  2 18:44:07 linux4 monit[2812]: 'cron' process is not running
Jun  2 18:44:07 linux4 monit[2812]: 'cron' failed to start
Jun  2 18:44:07 linux4 monit[2812]: 'cron' trying to restart
Jun  2 18:44:07 linux4 monit[2812]: 'cron' start: /etc/init.d/cron
^C
18:44:21
#vi /etc/mo
18:44:21
#vi /etc/mo
18:44:21
#vi /etc/monit/monitrc
18:45:36
#pkill -HUP monit

18:47:00
#grep sys /etc/passwd
sys:x:3:3:sys:/dev:/bin/sh
18:47:16
#grep adm /etc/gro
groff/  group   group-
18:47:16
#grep adm /etc/group
adm:x:4:
18:47:48
#cat /etc/syslog.conf
cat: /etc/syslog.conf: No such file or directory
18:49:57
#cat /etc/r
rc0.d/        rc2.d/        rc4.d/        rc6.d/        rcS.d/        rmt           rsyslog.conf
rc1.d/        rc3.d/        rc5.d/        rc.local      resolv.conf   rpc
18:49:57
#cat /etc/rsyslog.conf
#  /etc/rsyslog.conf    Configuration file for rsyslog v3.
#
#                       For more information see
#                       /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability
...
#
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
daemon.*;mail.*;\
        news.err;\
        *.=debug;*.=info;\
        *.=notice;*.=warn       |/dev/xconsole
18:50:13
#exit
exit

Файлы

  • /etc/crontab
  • /etc/rsyslog.conf
  • /etc/crontab
    >
    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file
    # and files in /etc/cron.d. These files also have username fields,
    # that none of the other crontabs do.
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    # m h dom mon dow user  command
    17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
    25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
    #
    
    /etc/rsyslog.conf
    >
    #  /etc/rsyslog.conf    Configuration file for rsyslog v3.
    #
    #                       For more information see
    #                       /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
    #################
    #### MODULES ####
    #################
    $ModLoad imuxsock # provides support for local system logging
    $ModLoad imklog   # provides kernel logging support (previously done by rklogd)
    #$ModLoad immark  # provides --MARK-- message capability
    # provides UDP syslog reception
    #$ModLoad imudp
    #$UDPServerRun 514
    # provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    ###########################
    #### GLOBAL DIRECTIVES ####
    ###########################
    #
    # Use traditional timestamp format.
    # To enable high precision timestamps, comment out the following line.
    #
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    #
    # Set the default permissions for all log files.
    #
    $FileOwner root
    $FileGroup adm
    $FileCreateMode 0640
    $DirCreateMode 0755
    $Umask 0022
    #
    # Include all config files in /etc/rsyslog.d/
    #
    $IncludeConfig /etc/rsyslog.d/*.conf
    ###############
    #### RULES ####
    ###############
    #
    # First some standard log files.  Log by facility.
    #
    auth,authpriv.*                 /var/log/auth.log
    *.*;auth,authpriv.none          -/var/log/syslog
    #cron.*                         /var/log/cron.log
    daemon.*                        -/var/log/daemon.log
    kern.*                          -/var/log/kern.log
    lpr.*                           -/var/log/lpr.log
    mail.*                          -/var/log/mail.log
    user.*                          -/var/log/user.log
    #*.*                        @192.168.15.3
    #
    # Logging for the mail system.  Split it up so that
    # it is easy to write scripts to parse these files.
    #
    mail.info                       -/var/log/mail.info
    mail.warn                       -/var/log/mail.warn
    mail.err                        /var/log/mail.err
    #
    # Logging for INN news system.
    #
    news.crit                       /var/log/news/news.crit
    news.err                        /var/log/news/news.err
    news.notice                     -/var/log/news/news.notice
    #
    # Some "catch-all" log files.
    #
    *.=debug;\
            auth,authpriv.none;\
            news.none;mail.none     -/var/log/debug
    *.=info;*.=notice;*.=warn;\
            auth,authpriv.none;\
            cron,daemon.none;\
            mail,news.none          -/var/log/messages
    #
    # Emergencies are sent to everybody logged in.
    #
    *.emerg                         *
    #
    # I like to have messages displayed on the console, but only on a virtual
    # console I usually leave idle.
    #
    #daemon,mail.*;\
    #       news.=crit;news.=err;news.=notice;\
    #       *.=debug;*.=info;\
    #       *.=notice;*.=warn       /dev/tty8
    # The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
    # you must invoke `xconsole' with the `-file' option:
    #
    #    $ xconsole -file /dev/xconsole [...]
    #
    # NOTE: adjust the list below, or you'll go crazy if you have a reasonably
    #      busy site..
    #
    daemon.*;mail.*;\
            news.err;\
            *.=debug;*.=info;\
            *.=notice;*.=warn       |/dev/xconsole
    

    Статистика

    Время первой команды журнала16:32:54 2009- 6- 2
    Время последней команды журнала18:50:13 2009- 6- 2
    Количество командных строк в журнале34
    Процент команд с ненулевым кодом завершения, %20.59
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.32
    Количество командных строк в единицу времени, команда/мин 0.43
    Частота использования команд
    iptables8|====================| 20.00%
    sudo4|==========| 10.00%
    vi4|==========| 10.00%
    cat4|==========| 10.00%
    grep3|=======| 7.50%
    exit3|=======| 7.50%
    man2|=====| 5.00%
    tcpdump2|=====| 5.00%
    /etc/network/iptables_22|=====| 5.00%
    ssh2|=====| 5.00%
    (1|==| 2.50%
    tail1|==| 2.50%
    iptables-save1|==| 2.50%
    pkill1|==| 2.50%
    192.168.15.11|==| 2.50%
    su1|==| 2.50%
    ____
    *) Интервалы неактивности длительностью 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$