Just wondering if anyone was able to get OSSEC working in rPath Linux. We have 
tried several ways and we run into problems such as the ar socket not being 
created and file permissions screwed up. I am sure this is because of the 
install script.

 

class Ossec(CPackageRecipe):

    name="ossec"

    version="2.2"

    buildRequires=[

        "info-ossec:user","which:runtime","net-tools:runtime","expect:runtime", 
'bind-utils:runtime',

        "info-ossecr:user", 'glibc:config'

    ]

 

    

    default=('root', 'ossec', 0750)

    ossec=('ossec','ossec', 0750)

    gossec=('ossec','ossec', 0770)

    srvSubDirs={

        'logs':ossec, 'logs/archives':default, 'logs/alerts':default, 
'logs/firewall':default, 'bin':default, 'stats':ossec,

        'rules':default, 'queue':default, 'queue/alerts':gossec, 
'queue/ossec':gossec, 'queue/fts':ossec, 'queue/syscheck':ossec,

        'queue/rootcheck':ossec, 'queue/diff':ossec, 
'queue/agent-info':('ossecr','ossec',0755), 
'queue/rids':('ossecr','ossec',0755),

        'queue/agentless':('ossec','ossec',0755), 'tmp':default, 'var':default, 
'var/run':('root','ossec',0770), 'etc':default,

        'etc/shared':('root','ossec',0770), 'active-response':default, 
'active-response/bin':default, 'agentless':default, 

        '.ssh':('ossec','ossec',0700), 'var/start-script-lock':gossec

    }

    agtSubDirs={

        'queue':default, 'queue/ossec':gossec, 'logs':ossec, 
'queue/rids':gossec, 'etc':default, 'bin':default,

        'queue/alerts':default, 'queue/syscheck':default, 'var':default, 
'var/run':default, 'etc':default,

        'etc/shared':default, 'active-response':default, 
'active-response/bin':default, 'agentless':default,

        '.ssh':('ossec','ossec',0700), 'var/start-script-lock':gossec

    }

    

    def unpack(r):

        r.macros.answerSrv = 'server.answers'

        r.macros.answerAgt = 'agent.answers'

        
r.addArchive("http://www.ossec.net/files/%(name)s-hids-%(version)s.tar.gz")

        r.addSource("%(answerSrv)s", macros=True)

        r.addSource("%(answerAgt)s", macros=True)

        r.addSource('ossec-server.init', dest='%(initdir)s/ossec-server', 
mode=0755)

        r.addSource('ossec-agent.init', dest='%(initdir)s/ossec-agent', 
mode=0755)

 

    def setup(r):

        r.unpack()

        r.build()

        r.policy()

 

    def build(r):

        #r.Replace('CEXTRA=.*-DDEFAULTDIR=.*$', '#', 'install.sh')

        r.Run('echo ME="root" >> src/init/functions.sh && printf 
"#!/bin/bash\nexit 0" > src/InstallServer.sh')

        r.Run('./install.sh < %(answerSrv)s')

        r.Create('%(servicedir)s/ossec-server/logs/ossec.log', mode=0664)

        r.installServer()

        r.Run('make clean', dir='src/')

        r.Run('printf "#!/bin/bash\nexit 0" > src/InstallAgent.sh')

        r.Run('./install.sh < %(answerAgt)s')

        r.Create('%(servicedir)s/ossec-server/logs/ossec.log', mode=0644)

        r.installAgent()

        

    def installServer(r):

        binaries = (

            'ossec*', 'manage_agents', 'syscheck_update', 'clear_stats', 
'list_agents', 'agent_control', 'syscheck_control',

            'rootcheck_control'

        )

 

        for k,v  in r.srvSubDirs.iteritems():

            r.MakeDirs('%(servicedir)s/ossec-server/' + k, mode=v[2])

           

        for bin in binaries:

            r.Install('bin/' + bin, '%(servicedir)s/ossec-server/bin/', 
mode=0750)

 

        r.Install('etc/rules/*', '%(servicedir)s/ossec-server/rules/', 
mode=0750)

        r.Install('etc/decoder.xml', '%(servicedir)s/ossec-server/etc/', 
mode=0640)

        r.Install('src/agentlessd/scripts/*', 
'%(servicedir)s/ossec-server/agentless/', mode=0750)

        r.Install('etc/internal_options.conf', 
'%(servicedir)s/ossec-server/etc/', mode=0640)

        r.Install('src/rootcheck/db/*.txt', 
'%(servicedir)s/ossec-server/etc/shared/', mode=0640)

        r.Install('active-response/*.sh', 
'%(servicedir)s/ossec-server/active-response/bin/', mode=0755)

        r.Install('active-response/firewalls/*.sh', 
'%(servicedir)s/ossec-server/active-response/bin/', mode=0755)

        r.Install('etc/ossec-server.conf', 
'%(servicedir)s/ossec-server/etc/ossec.conf', mode=0640)

        r.Install('src/init/ossec-server.sh', 
'%(servicedir)s/ossec-server/ossec-control', mode=0750)

 

    def installAgent(r):

        binaries = (

            'ossec-agentd', 'ossec-logcollector', 'ossec-syscheckd', 
'ossec-execd', 'manage_agents'

        )

        for k,v in r.agtSubDirs.iteritems():

            r.MakeDirs('%(servicedir)s/ossec-agent/' + k, mode=v[2])

 

        for bin in binaries:

            r.Install('bin/' + bin, '%(servicedir)s/ossec-agent/bin/', 
mode=0750)

 

        r.Symlink('/etc/localtime', '%(servicedir)s/ossec-agent/etc/')

        r.Install('src/init/ossec-client.sh', 
'%(servicedir)s/ossec-agent/bin/ossec-control', mode=0750)

        r.Install('src/rootcheck/db/*.txt', 
'%(servicedir)s/ossec-agent/etc/shared/', mode=0770)

        r.Install('src/agentlessd/scripts/*', 
'%(servicedir)s/ossec-agent/agentless/', mode=750)

        r.Install('active-response/*.sh', 
'%(servicedir)s/ossec-agent/active-response/bin/', mode=0755)

        r.Install('active-response/firewalls/*.sh', 
'%(servicedir)s/ossec-agent/active-response/bin/', mode=0755)

        r.Install('etc/ossec-agent.conf', 
'%(servicedir)s/ossec-agent/ossec.conf', mode=0640)

        

 

    def policy(r):

        for k,v in r.srvSubDirs.iteritems():

            r.Ownership(v[0], v[1], '%(servicedir)s/ossec-server/' + k)

                     r.Ownership('root', 'ossec', 
'%(servicedir)s/ossec-server/etc/.*')

        r.Ownership('root', 'ossec', '%(servicedir)s/ossec-server/bin/.*')

        r.Ownership('root', 'ossec', '%(servicedir)s/ossec-server/agentless/.*')

        r.Ownership('root', 'ossec', 
'%(servicedir)s/ossec-server/etc/shared/.*')

        r.Ownership('root', 'ossec', 
'%(servicedir)s/ossec-server/active-response/bin/.*')

        r.Ownership('root', 'ossec', 
'%(servicedir)s/ossec-server/etc/ossec.conf')

        r.Ownership('root', 'ossec', '%(servicedir)s/ossec-server/rules/.*')

        r.Ownership('ossec', 'ossec', 
'%(servicedir)s/ossec-server/logs/ossec.log')

        for k,v in r.agtSubDirs.iteritems():

            r.Ownership(v[0], v[1], '%(servicedir)s/ossec-agent/' + k)

        r.Ownership('ossec', 'ossec', 
'%(servicedir)s/ossec-agent/logs/ossec.log')

        r.Ownership('root', 'ossec', '%(servicedir)s/ossec-agent/agentless/.*')

        r.Ownership('root', 'ossec', '%(servicedir)s/ossec-agent/bin/.*')

        r.Ownership('root', 'ossec', 
'%(servicedir)s/ossec-agent/active-response/.*')

        r.Ownership('root', 'ossec', 
'%(servicedir)s/ossec-agent/active-response/bin/.*')

        r.Ownership('root', 'ossec', '%(servicedir)s/ossec-agent/etc/.*')

 

        r.PackageSpec('ossec-server', '%(servicedir)s/ossec-server/.*')

        r.PackageSpec('ossec-server', '%(initdir)s/ossec-server')

        r.PackageSpec('ossec-agent', '%(servicedir)s/ossec-agent/.*')

        r.PackageSpec('ossec-agent', '%(initdir)s/ossec-agent')

 

        
r.DanglingSymlinks(exceptions='%(servicedir)s/ossec-agent/etc/localtime')

 

        r.Config(exceptions='%(initdir)s/.*')

        r.TagSpec('initscript', '%(initdir)s/')

        r.ExcludeDirectories(exceptions='%(servicedir)s/ossec.*')

 

 

 

Keith

Attachment: PGP.sig
Description: PGP signature

Reply via email to