示例#1
0
 def test_record_as_admin_user(self):
     """
     Check tlog-rec preserves sudo activity of admin user in
     recordings
     """
     logfile = mklogfile(self.tempdir)
     cfg = '''
     %wheel        ALL=(ALL)       NOPASSWD: ALL
     '''
     mkcfgfile('/etc/sudoers.d/01_wheel_nopass', cfg)
     shell = ssh_pexpect(self.admin1, 'Secret123', 'localhost')
     shell.sendline('tlog-rec -o {}'.format(logfile))
     shell.sendline('whoami')
     shell.expect(self.admin1)
     shell.sendline('sleep 2')
     shell.sendline('echo test1223')
     shell.expect('test1223')
     shell.sendline('sudo ls -ltr /var/log/audit')
     shell.expect('audit.log')
     shell.sendline('exit')
     check_outfile('test1223', logfile)
     check_recording(shell, 'test1223', logfile)
     shell.close()
     shell = ssh_pexpect(self.admin1, 'Secret123', 'localhost')
     check_recording(shell, 'audit.log', logfile)
     shell.close()
示例#2
0
 def test_record_as_admin_user(self):
     """
     Check tlog-rec preserves sudo activity of admin user in
     recordings
     """
     logfile = mklogfile(self.tempdir)
     cfg = '''
     %wheel        ALL=(ALL)       NOPASSWD: ALL
     '''
     mkcfgfile('/etc/sudoers.d/01_wheel_nopass', cfg)
     shell = ssh_pexpect(self.admin1, 'Secret123', 'localhost')
     shell.sendline('tlog-rec -o {}'.format(logfile))
     shell.sendline('whoami')
     shell.expect(self.admin1)
     shell.sendline('sleep 2')
     shell.sendline('echo test1223')
     shell.expect('test1223')
     shell.sendline('sudo ls -ltr /var/log/audit')
     shell.expect('audit.log')
     shell.sendline('exit')
     check_outfile('test1223', logfile)
     check_recording(shell, 'test1223', logfile)
     shell.close()
     shell = ssh_pexpect(self.admin1, 'Secret123', 'localhost')
     check_recording(shell, 'audit.log', logfile)
     shell.close()
示例#3
0
 def test_record_command_to_file(self):
     """
     Check tlog-rec preserves output when reording to file
     """
     logfile = mklogfile(self.tempdir)
     shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
     shell.sendline('tlog-rec -o {} whoami'.format(logfile))
     check_outfile('out_txt\":\"{}'.format(self.user1), logfile)
     check_recording(shell, self.user1, logfile)
     shell.close()
示例#4
0
 def test_record_command_to_file(self):
     """
     Check tlog-rec preserves output when reording to file
     """
     logfile = mklogfile(self.tempdir)
     shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
     shell.sendline('tlog-rec -o {} whoami'.format(logfile))
     check_outfile('out_txt\":\"{}'.format(self.user1), logfile)
     check_recording(shell, self.user1, logfile)
     shell.close()
示例#5
0
 def test_record_fast_input_with_limit_action_delay(self):
     """
     Check tlog-rec delays recording when logging limit reached
     """
     logfile = mklogfile(self.tempdir)
     shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
     opts = '--limit-rate=10 --limit-action=delay'
     shell.sendline('tlog-rec {} ' '-o {} /bin/bash'.format(opts, logfile))
     for num in range(0, 200):
         shell.sendline('echo test_{}'.format(num))
     check_outfile('test_199', logfile, maxchecks=100)
     shell.sendline('exit')
     check_recording(shell, 'test_199', logfile)
     shell.close()
示例#6
0
 def test_record_fast_input_with_limit_action_delay(self):
     """
     Check tlog-rec delays recording when logging limit reached
     """
     logfile = mklogfile(self.tempdir)
     shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
     opts = '--limit-rate=10 --limit-action=delay'
     shell.sendline('tlog-rec {} '
                    '-o {} /bin/bash'.format(opts, logfile))
     for num in range(0, 200):
         shell.sendline('echo test_{}'.format(num))
     check_outfile('test_199', logfile)
     shell.sendline('exit')
     check_recording(shell, 'test_199', logfile)
     shell.close()
示例#7
0
 def test_record_interactive_session(self):
     """
     Check tlog-rec preserves activity during interactive
     session in recordings
     """
     logfile = mklogfile(self.tempdir)
     shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
     shell.sendline('tlog-rec -o {}'.format(logfile))
     shell.sendline('whoami')
     shell.expect(self.user1)
     shell.sendline('sleep 2')
     shell.sendline('echo test123')
     shell.expect('test123')
     shell.sendline('echo test1123out>/tmp/pexpect.test1123out')
     check_outfile('test1123out', logfile)
     check_recording(shell, 'test1123out', logfile)
     shell.close()
示例#8
0
 def test_record_interactive_session(self):
     """
     Check tlog-rec preserves activity during interactive
     session in recordings
     """
     logfile = mklogfile(self.tempdir)
     shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
     shell.sendline('tlog-rec -o {}'.format(logfile))
     shell.sendline('whoami')
     shell.expect(self.user1)
     shell.sendline('sleep 2')
     shell.sendline('echo test123')
     shell.expect('test123')
     shell.sendline('echo test1123out>/tmp/pexpect.test1123out')
     check_outfile('test1123out', logfile)
     check_recording(shell, 'test1123out', logfile)
     shell.close()
示例#9
0
    def test_record_diff_char_sets(self):
        """
        Check tlog-rec preserves non-English I/O in recordings
        """
        logfile = '{}-ru_RU'.format(mklogfile(self.tempdir))
        shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
        shell.sendline('tlog-rec -o {} /bin/bash'.format(logfile))
        shell.sendline('export LANG=ru_RU.utf8')
        shell.sendline('badcommand')
        shell.sendline('exit')
        check_outfile('найдена', logfile)
        check_recording(shell, 'найдена', logfile)
        shell.close()

        logfile = '{}-el_GR'.format(mklogfile(self.tempdir))
        shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
        shell.sendline('tlog-rec -o {} /bin/bash'.format(logfile))
        shell.sendline('export LANG=el_GR.utf8')
        shell.sendline('badcommand')
        shell.sendline('exit')
        check_outfile('βρέθηκε', logfile)
        check_recording(shell, 'βρέθηκε', logfile)
        shell.close()

        logfile = '{}-en_US'.format(mklogfile(self.tempdir))
        shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
        shell.sendline('tlog-rec -o {} /bin/bash'.format(logfile))
        shell.sendline('export LANG=en_US.utf8')
        shell.sendline('echo Watérmân')
        shell.sendline('exit')
        check_outfile('Watérmân', logfile)
        check_recording(shell, 'Watérmân', logfile)
        shell.expect('Watérmân')
        shell.close()
示例#10
0
    def test_record_diff_char_sets(self):
        """
        Check tlog-rec preserves non-English I/O in recordings
        """
        logfile = '{}-ru_RU'.format(mklogfile(self.tempdir))
        shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
        shell.sendline('tlog-rec -o {} /bin/bash'.format(logfile))
        shell.sendline('export LANG=ru_RU.utf8')
        shell.sendline('badcommand')
        shell.sendline('exit')
        check_outfile('найдена', logfile)
        check_recording(shell, 'найдена', logfile)
        shell.close()

        logfile = '{}-el_GR'.format(mklogfile(self.tempdir))
        shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
        shell.sendline('tlog-rec -o {} /bin/bash'.format(logfile))
        shell.sendline('export LANG=el_GR.utf8')
        shell.sendline('badcommand')
        shell.sendline('exit')
        check_outfile('βρέθηκε', logfile)
        check_recording(shell, 'βρέθηκε', logfile)
        shell.close()

        logfile = '{}-en_US'.format(mklogfile(self.tempdir))
        shell = ssh_pexpect(self.user1, 'Secret123', 'localhost')
        shell.sendline('tlog-rec -o {} /bin/bash'.format(logfile))
        shell.sendline('export LANG=en_US.utf8')
        shell.sendline('echo Watérmân')
        shell.sendline('exit')
        check_outfile('Watérmân', logfile)
        check_recording(shell, 'Watérmân', logfile)
        shell.expect('Watérmân')
        shell.close()