Compare commits

..

8 commits

Author SHA1 Message Date
Fedora Release Engineering
57b868b94f dist-git conversion 2010-07-29 12:19:59 +00:00
Bill Nottingham
afd51f19c3 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:38:24 +00:00
Daniel Kopeček
73cf3a40e0 release++ 2009-01-26 10:46:23 +00:00
Daniel Kopeček
7e9614cad7 removed showvars.dsc 2009-01-26 10:41:39 +00:00
Daniel Kopeček
da4698daab - removed showvars.sh
- added dist macro to Release:
2009-01-23 13:33:21 +00:00
Daniel Kopeček
b6f73d090e bugfix release 2008-12-01 23:16:56 +00:00
Daniel Kopeček
85a1acecfd new bugfix release, see changelog 2008-11-24 10:27:48 +00:00
Jesse Keating
a9a54fe7c4 Initialize branch F-10 for sectool 2008-11-07 05:08:56 +00:00
11 changed files with 2226 additions and 1 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
sectool-0.9.2.tar.bz2

View file

@ -1 +0,0 @@
The sectool project is no longer developed nor maintained upstream. As a replacement, try the OpenSCAP project (https://www.open-scap.org) and its sectool SCL content (openscap-content-sectool package).

View file

@ -0,0 +1,11 @@
diff -up sectool-0.9.1/tests/12_cron.dsc.cronieReq sectool-0.9.1/tests/12_cron.dsc
--- sectool-0.9.1/tests/12_cron.dsc.cronieReq 2008-10-23 14:10:21.000000000 +0200
+++ sectool-0.9.1/tests/12_cron.dsc 2008-10-23 14:10:34.000000000 +0200
@@ -6,6 +6,7 @@ DESCRIPTION="Basic crontab checking.
permissions of cron related dirs and commands listed in crontab."
LEVELS="1 2 3 4 5"
GROUPS="daemons"
+REQUIRES="cronie"
AUTHOR="Daniel Kopecek <dkopecek@redhat.com>"
[DEFAULT]

View file

@ -0,0 +1,106 @@
diff --git a/tests/bash_defs.sh b/tests/bash_defs.sh
index 47aa4ec..09e06b3 100644
--- a/tests/bash_defs.sh
+++ b/tests/bash_defs.sh
@@ -187,16 +187,17 @@ function canLogIn {
# getValueFromH '/usr/include/bits/utmp.h' 'UT_NAMESIZE'
# echo $ReturnVal
function getValueFromH {
- if ! [[ -r "$1" ]]
- then
- report 'WARNING' 0 "Can't read a constant $2, header file $1 not found"
+ if ! [[ -r "$1" ]]; then
+ report 'WARNING' 1234 "Can't read a constant $2, header file $1 not found"
+ return 0
else
line="$(egrep "^#define $2..*" $1)"
- if [[ -n "$line" ]]
- then
- ReturnVal="$(echo "$line" | cut -f2)"
+ if [[ -n "$line" ]]; then
+ l_int retval=$(echo "$line" | cut -f2)
+ return $retval
else
- report 'WARNING' 0 "Can't read a constant $2 from file $1, definition of the constant not found in this file"
+ report 'WARNING' 1234 "Can't read a constant $2 from file $1, definition of the constant not found in this file"
+ return 0
fi
fi
}
diff --git a/tests/bash_defs_debug.sh b/tests/bash_defs_debug.sh
index a0d548d..d3beeff 100644
--- a/tests/bash_defs_debug.sh
+++ b/tests/bash_defs_debug.sh
@@ -352,18 +352,19 @@ function canLogIn {
# getValueFromH '/usr/include/bits/utmp.h' 'UT_NAMESIZE'
# echo $ReturnVal
function getValueFromH {
- if ! [[ -r "$1" ]]
- then
- report 'WARNING' 0 "Can't read a constant $2, header file $1 not found"
- else
- line="$(egrep "^#define $2..*" $1)"
- if [[ -n "$line" ]]
- then
- ReturnVal="$(echo "$line" | cut -f2)"
- else
- report 'WARNING' 0 "Can't read a constant $2 from file $1, definition of the constant not found in this file"
- fi
- fi
+ if ! [[ -r "$1" ]]; then
+ report 'WARNING' 1234 "Can't read a constant $2, header file $1 not found"
+ return 0
+ else
+ line="$(egrep "^#define $2..*" $1)"
+ if [[ -n "$line" ]]; then
+ l_int retval=$(echo "$line" | cut -f2)
+ return $retval
+ else
+ report 'WARNING' 1234 "Can't read a constant $2 from file $1, definition of the constant not found in this file"
+ return 0
+ fi
+ fi
}
# function isValidName
diff --git a/tests/group.sh b/tests/group.sh
index ef24886..4c43d94 100755
--- a/tests/group.sh
+++ b/tests/group.sh
@@ -106,7 +106,7 @@ fi
##### too long groupname #####
getValueFromH '/usr/include/bits/utmp.h' 'UT_NAMESIZE'
- MaxLength=$ReturnVal
+ MaxLength=$?
length="`echo \"$groupname\" | wc -m`"
if [ $length -gt $MaxLength ]
then
diff --git a/tests/passwd.sh b/tests/passwd.sh
index 536697f..c1bf10d 100755
--- a/tests/passwd.sh
+++ b/tests/passwd.sh
@@ -123,8 +123,8 @@ check_file_perm $group_shadow 400 root:root 1 $E_BAD_PERMISSIONS "Shadow group
##### too long username #####
getValueFromH '/usr/include/bits/utmp.h' 'UT_NAMESIZE'
- MaxLength=$ReturnVal
- length="`echo \"$username\" | wc -m`"
+ MaxLength=$?
+ length=$(echo "$username" | wc -m)
if [ $length -gt $MaxLength ]
then
report 'ERROR' $E_LONG_USERNAME "\$passwd: Line \$i: User \$username has too long username."
diff --git a/tests/shadow.sh b/tests/shadow.sh
index 778f39e..48773e2 100755
--- a/tests/shadow.sh
+++ b/tests/shadow.sh
@@ -104,7 +104,7 @@ check_file_perm $group_shadow 400 root:root 1 $E_BAD_PERMISSIONS_SHADOW "Group
##### too long username #####
getValueFromH '/usr/include/bits/utmp.h' 'UT_NAMESIZE'
- MaxLength=$ReturnVal
+ MaxLength=$?
length=`echo "$username" | wc -m`
if [ $length -gt $MaxLength ]
then

View file

@ -0,0 +1,33 @@
diff --git a/tests/selinuxtest.py b/tests/selinuxtest.py
index 1e04813..e4d655b 100755
--- a/tests/selinuxtest.py
+++ b/tests/selinuxtest.py
@@ -108,6 +108,7 @@ def bool_state_to_id(state, was = False):
def bools_test():
+ report(INFO, 0, "Starting booleans change test")
old_fname = os.path.join(testenv['TDATA_DIR'], testenv['OLDBOOLS_FILE'])
bools = get_bools()
testname = testenv['NAME']
@@ -134,16 +135,16 @@ def get_msgtype(str):
if str == 'HINT' : return HINT
def enabled_test():
- mode = cmd.getoutput('getenforce')
- if mode != testenv['MODE'] and mode != 'Enforcing':
+ (status, mode) = cmd.getstatusoutput('getenforce')
+ if status != 0 or (mode != testenv['MODE'] and mode != 'Enforcing'):
+ if (mode == ''): mode = 'disabled'
report(get_msgtype(testenv['DISABLED_MSGTYPE']), ID_ENABLED, "Selinux is in " + mode + " mode.")
report(HINT, ID_ENABLED, "Using Enforing mode is highly recommended. See selinux manual page for switching to Enforcing mode.")
def main():
- report(INFO, 0, "Starting booleans change test")
- bools_test()
enabled_test()
+ if se.is_selinux_enabled(): bools_test()
if __name__ == '__main__':
main()

View file

@ -0,0 +1,46 @@
diff --git a/src/sectool-gui.py b/src/sectool-gui.py
index 9b6faeb..608d6af 100755
--- a/src/sectool-gui.py
+++ b/src/sectool-gui.py
@@ -500,6 +500,7 @@ class TestHandler( Handler ):
self.environ.update( dict([ (key.upper(), self.scheduler_conf['ENVIRONMENT'][key]) for key in self.scheduler_conf['ENVIRONMENT'] ]) )
self.environ.update( { 'TDATA_DIR_BASE' : self.environ['TDATA_DIR_BASE'] } )
self.environ.update( { 'PATH' : self.environ['PATH'] } )
+ self.environ.update( DEBUG='0' )
self.suitesAll = self.ST_TestLoader.loadFromPath( self.environ["DSC_DIR"], self.environ["TESTS_DIRS"] )
def __remove_mark( self, string ):
@@ -511,6 +512,12 @@ class TestHandler( Handler ):
return str.group(0)[1:-1]
else: return string
+ def set_environ( REFRESH=None, LEVEL=None, DEBUG=None ):
+
+ if REFRESH != None: self.environ.update( REFRESH = REFRESH )
+ if DEBUG != None: self.environ.update( DEBUG = DEBUG )
+ if LEVEL != None: self.environ.update( LEVEL = LEVEL )
+
def set_default_level( self ):
self.__formatter.select_level( self.scheduler_conf['ACTION']['LEVEL'] )
@@ -586,6 +593,8 @@ class TestHandler( Handler ):
if len( test_list ) == 0: return
suite = self.suitesAll.filter( self.filterTestNames, test_list=test_list )
+ if level == -1: self.environ.update( REFRESH = '1' )
+ else: self.environ.update( REFRESH = '0' )
suite.updateEnviron(self.environ)
self.threadHandler = ThreadHandler( self.__formatter, suite, test_list, level ) #: run tests in new thread
@@ -734,8 +743,9 @@ class ThreadHandler(threading.Thread, Handler):
gtk.gdk.threads_leave()
#self.__formatter.show_test_summary( test.dsc['HEADER']['NAME'] )
# TODO: update selected test
-
+
else:
+
for test in self.__suite:
if self.__stopthread.isSet(): break

18
sectool-0.9.1-zsh.patch Normal file
View file

@ -0,0 +1,18 @@
diff --git a/tests/home_files.sh b/tests/home_files.sh
index 9faaff5..ea016f0 100755
--- a/tests/home_files.sh
+++ b/tests/home_files.sh
@@ -80,7 +80,12 @@ NO_WRITE_FILES="\
.viminfo \
.xsession \
.xinitrc \
- .Xdefaults"
+ .Xdefaults \
+ .zshenv \
+ .zprofile \
+ .zshrc \
+ .zlogin \
+ .zlogout"
if (( ${REFRESH} == 1 )); then
test_exit ${E_OK}

1778
sectool-0.9.2-fixing.patch Normal file

File diff suppressed because it is too large Load diff

7
sectool.log Normal file
View file

@ -0,0 +1,7 @@
/var/log/sectool.log {
missingok
notifempty
size 250k
create 0644 root root
}

225
sectool.spec Normal file
View file

@ -0,0 +1,225 @@
Summary: A security audit system and intrusion detection system
Name: sectool
Version: 0.9.2
Release: 4%{?dist}
URL: https://hosted.fedoraproject.org/sectool/wiki/WikiStart
Source0: %{name}-%{version}.tar.bz2
Source1: sectool.log
Patch1: sectool-0.9.1-cronieReq.patch
Patch2: sectool-0.9.2-fixing.patch
#Patch2: sectool-0.9.1-setVar.patch
#Patch3: sectool-0.9.1-getValueFromH.patch
#Patch4: sectool-0.9.1-selinux.patch
#Patch5: sectool-0.9.1-zsh.patch
License: GPLv2+
Group: Applications/System
Requires: gettext coreutils libselinux
Requires: python2 rpm-python libselinux-python glibc-headers
BuildRequires: desktop-file-utils gettext intltool rpm-devel asciidoc
BuildRequires: libselinux-devel glibc-headers
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%package gui
Summary: GUI for sectool - security audit system and intrusion detection system
License: GPLv2+
Group: Applications/System
Requires: sectool = %{version}-%{release}
Requires: pygtk2 usermode
%description
sectool is a security tool that can be used both as a security audit
and intrusion detection system. It consists of set of tests, library
and command line interface tool. Tests are sorted into groups and security
levels. Admins can run certain tests, groups or whole security levels.
The library and the tools are implemented in python and tests are
language independent.
%description gui
sectool-gui provides a GTK-based graphical user interface to sectool.
%prep
%setup -q
%patch1 -p1 -b .cronieReq
%patch2 -p1 -b .fixing
#%patch2 -p1 -b .setVar
#%patch3 -p1 -b .getValueFromH
#%patch4 -p1 -b .selinux
#%patch5 -p1 -b .zsh
%build
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
desktop-file-install --delete-original \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
--vendor=fedora \
$RPM_BUILD_ROOT%{_datadir}/applications/sectool.desktop
#logrotate
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/sectool
#adjust paths in sectool.conf
sed -i 's,DSC_DIR=\(.*\),DSC_DIR=%{_sysconfdir}/sectool/tests,' $RPM_BUILD_ROOT%{_sysconfdir}/sectool/sectool.conf
sed -i 's,TESTS_DIRS=\(.*\),TESTS_DIRS=%{_datadir}/sectool/tests,' $RPM_BUILD_ROOT%{_sysconfdir}/sectool/sectool.conf
sed -i 's,TDATA_DIR_BASE=\(.*\),TDATA_DIR_BASE=%{_localstatedir}/lib/sectool,' $RPM_BUILD_ROOT%{_sysconfdir}/sectool/sectool.conf
#adjust icons path in guiOutput.py
sed -i 's,__ico_path = \(.*\),__ico_path = "%{_datadir}/pixmaps/sectool/",' $RPM_BUILD_ROOT%{_datadir}/sectool/guiOutput.py
#this file is just for development
rm $RPM_BUILD_ROOT/%{_datadir}/sectool/scheduler/selftest.py
# remove debug stuff
rm -f $RPM_BUILD_ROOT/%{_datadir}/sectool/tests/showvars.sh
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/sectool/tests/00_showvars.dsc
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{name}.lang
%defattr(-,root,root)
%doc COPYING AUTHORS README doc/tests_documentation.html
%config(noreplace) %{_sysconfdir}/sectool/
%config(noreplace) %{_sysconfdir}/logrotate.d/sectool
%dir %{_localstatedir}/lib/sectool
%dir %{_datadir}/sectool
%{_sbindir}/sectool
#library with tests
%{_datadir}/sectool/scheduler
%{_datadir}/sectool/tests
# command line tool
%{_datadir}/sectool/actions.py*
%{_datadir}/sectool/__init__.py*
%{_datadir}/sectool/output.py*
%{_datadir}/sectool/mailoutput.py*
%{_datadir}/sectool/sectool.py*
%{_datadir}/sectool/tuierrors.py*
%{_mandir}/man8/sectool.8.gz
%files gui
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/pam.d/sectool-gui
%config(noreplace) %{_sysconfdir}/security/console.apps/sectool-gui
%{_bindir}/sectool-gui
%{_datadir}/sectool/gui*.py*
%{_datadir}/sectool/sectool-gui.py*
%{_datadir}/pixmaps/sectool-gui.png
%{_datadir}/pixmaps/sectool-min.png
%{_datadir}/applications/fedora-sectool.desktop
%{_datadir}/pixmaps/sectool/*.png
%changelog
* Mon Jan 26 2009 Daniel Kopecek <dkopecek@redhat.com> - 0.9.2-4
- removed showvars.dsc
* Fri Jan 23 2009 Daniel Kopecek <dkopecek@redhat.com> - 0.9.2-3
- removed showvars.sh
- added dist macro to Release:
* Tue Dec 02 2008 Daniel Kopecek <dkopecek@redhat.com> - 0.9.2-2
- bugfix release
* Mon Nov 24 2008 Daniel Kopecek <dkopecek@redhat.com> - 0.9.2-1
- upgrade, see changelog for changes
* Mon Nov 03 2008 Peter Vrabec <pvrabec@redhat.com> - 0.9.1-4
- checking zsh home files (#469913)
- fix selinux test failure (#469910)
* Mon Nov 03 2008 Peter Vrabec <pvrabec@redhat.com> - 0.9.1-3
- fix getValueFromH() (#469368)
- fix GUI: set REFRESH, DEBUG, LEVEL
* Thu Oct 23 2008 Peter Vrabec <pvrabec@redhat.com> - 0.9.1-2
- add missing requirement (468033)
- fix deps of cron test (468033)
* Wed Oct 22 2008 Peter Vrabec <pvrabec@redhat.com> - 0.9.1-1
- upgrade, bugfix release
* Thu Oct 09 2008 Peter Vrabec <pvrabec@redhat.com> - 0.9.0-1
- upgrade, see changelog for changes
* Sat Sep 06 2008 Peter Vrabec <pvrabec@redhat.com> - 0.8.6-2
- fix selinux DEPS, quick workaround
* Fri Sep 05 2008 Peter Vrabec <pvrabec@redhat.com> - 0.8.6-1
- upgrade, see changelog
* Thu Jul 03 2008 Peter Vrabec <pvrabec@redhat.com> - 0.8.0-1
- upgrade
* Fri Jun 06 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.6-1
- upgrade
* Mon May 26 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.5-1
- upgrade
* Wed May 21 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.4-1
- new upstream release, lots of fixes and improvements,
see changelog
* Mon Apr 28 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.3-1
- new upstream release
- better test integration
* Fri Apr 25 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.2-1
- new upstream release
- Support overriding level configuration in ~/.sectoolrc
- Add saving level configuration in GUI:
* Mon Apr 21 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.1-1
- new upstream release
* Tue Apr 08 2008 Peter Vrabec <pvrabec@redhat.com> - 0.7.0-1
- new upstream release
* Mon Mar 31 2008 Maros Barabas <mbarabas@redhat.com> - 0.6.0-4
- improved killing system in gui
* Fri Mar 28 2008 Maros Barabas <mbarabas@redhat.com> - 0.6.0-3
- code review: cleaning code in OuputFormatter
adding comments
migrating public formatter methods to private
* Tue Mar 25 2008 Maros Barabas <mbarabas@redhat.com> - 0.6.0-2
- repaired sensitivity of popup buttons
- code review: migrating public methods to private
more comments
* Fri Mar 21 2008 Peter Vrabec <pvrabec@redhat.com> - 0.6.0-1
- gui improvements
- new feature include/exclude tests
- new sectool.conf
* Mon Mar 18 2008 Jakub Hrozek <jhrozek@redhat.com> - 0.5.1-1
- Fix mail output
* Wed Mar 05 2008 Peter Vrabec <pvrabec@redhat.com> - 0.5.0-1
- email sending support
* Wed Mar 05 2008 Peter Vrabec <pvrabec@redhat.com> - 0.4.0-1
- new tests
- bugfixes
- support diff results
- improved GUI
* Wed Jan 23 2008 Peter Vrabec <pvrabec@redhat.com> - 0.2.0-1
- stable demo release
* Fri Jan 18 2008 Peter Vrabec <pvrabec@redhat.com> - 0.1.0-4
- fix rpmbuild on fc8
* Wed Jan 16 2008 Peter Vrabec <pvrabec@redhat.com> - 0.1.0-3
- fix license issues
- some macros clean up in makefile and spec
* Wed Jan 16 2008 Peter Vrabec <pvrabec@redhat.com> - 0.1.0-2
- make rpmlint happy, very important cleanup
* Tue Jan 15 2008 Peter Vrabec <pvrabec@redhat.com> - 0.1.0-1
- initial packaging

1
sources Normal file
View file

@ -0,0 +1 @@
6d145a49ffbd0ce1876099208ec59bda sectool-0.9.2.tar.bz2