#!/usr/bin/perl
##############################################################################
# Copyright (C) 1999, 2000 Jay Beale
# Licensed under the GNU General Public License
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#############################################################################

##############################################################################
# This is the Back End to Bastille Linux, a hardening program for Linux.     #
# Its counterpart is found in the InteractiveBastille or AutomatedBastille   #
# program, which writes the configuration file used for this.                #
#                                                                            #
# The Bastille Front End and Back End were written by and are currently      #
# maintained by Bastille Linux's Lead Developer, Jay Beale.                  #
#                                                                            #
# The original content for Bastille was assembled by Jay Beale using many    #
# documents, including SANS' Securing Linux Step by Step, Kurt Seifried's    #
# Linux Administrators Security Guide, and many other pieces, including the  #
# Security HOWTO, the Unix Security Handbook, the Solaris Security FAQ and   #
# various magazine articles in LinuxWorld and SunWorld.                      #
#                                                                            #
##############################################################################


## Our use of modules is somewhat strange for Perl: we have a main routine
## in each module which runs on the "use" command.

use lib "/usr/lib";
push (@INC,"/usr/lib/perl5/site_perl/");
push (@INC,"/usr/lib/Bastille");

require Bastille::API;
import Bastille::API;
&PrepareToRun;

#######################################################################
##     Network Interface Protection/IPCHAINS/Personal Firewalling    ##
#######################################################################

require Bastille::Firewall;
import Bastille::Firewall;

#######################################################################
##                            File Permissions                       ##
#######################################################################

require Bastille::FilePermissions;
import Bastille::FilePermissions;


#######################################################################
##                     Account Creation/Security                     ##
#######################################################################

require Bastille::AccountSecurity;
import Bastille::AccountSecurity; 

#######################################################################
##                Protecting LILO and single user mode               ##
#######################################################################

require Bastille::BootSecurity;
import Bastille::BootSecurity;

#######################################################################
##                    inetd / TCP Wrappers Configuration             ##
#######################################################################

require  Bastille::SecureInetd; 
import Bastille::SecureInetd;


#######################################################################
##                      Disabling of User Space Tools                ##
#######################################################################

require Bastille::DisableUserTools;   
import Bastille::DisableUserTools;


#######################################################################
##    Misc. Pluggable Authentication Modules (PAM) Configuration     ##
#######################################################################

require Bastille::ConfigureMiscPAM; 
import Bastille::ConfigureMiscPAM;

#######################################################################
##                               Logging                             ##
#######################################################################

require  Bastille::Logging; 
import Bastille::Logging;


#######################################################################
#######################################################################
####                            System Daemons                     ####
#######################################################################
#######################################################################

#######################################################################
##                          Miscellaneous Daemons                    ##
#######################################################################

require  Bastille::MiscellaneousDaemons;  
import Bastille::MiscellaneousDaemons;

#######################################################################
##                               Sendmail                            ##
#######################################################################

require Bastille::Sendmail; 
import Bastille::Sendmail;


#######################################################################
##                            Remote Access                          ##
#######################################################################

# version 1.2.0 -- removed this module temporarily from run -- let's
# 		   make this smarter
#
#use Bastille::RemoteAccess;

#######################################################################
##                             DNS/BIND/NAMED                        ##
#######################################################################

require Bastille::DNS;  
import Bastille::DNS;

#######################################################################
##                              HTTP/APACHE                          ##
#######################################################################

require  Bastille::Apache; 
import Bastille::Apache; 

#######################################################################
##                                lpr/lpd                            ##
#######################################################################

require  Bastille::Printing;
import Bastille::Printing;

#######################################################################
##                                  FTP                              ##
#######################################################################

require Bastille::FTP;
import Bastille::FTP; 

#######################################################################
##                                 TMPDIR			    ## 
#######################################################################

require Bastille::TMPDIR;
import Bastille::TMPDIR; 

#######################################################################
##                            Patch Download                         ##
#######################################################################

#use Bastille::PatchDownload;


