Manual merge of abusehelper and abusesa from parameterize branch
This commit is contained in:
parent
f517230310
commit
09ae1aa84b
10 changed files with 501 additions and 354 deletions
|
@ -1,15 +1,15 @@
|
||||||
Facter.add(:botnets) do
|
Facter.add(:botnets) do
|
||||||
setcode do
|
setcode do
|
||||||
botnets = []
|
botnets = []
|
||||||
if File.executable?("/usr/bin/botnet")
|
if File.executable?('/usr/bin/botnet')
|
||||||
listcmd = "su -s /bin/sh - nobody -c '/usr/bin/botnet list'"
|
listcmd = "su -s /bin/sh - nobody -c '/usr/bin/botnet list'"
|
||||||
output = Facter::Util::Resolution.exec(listcmd)
|
output = Facter::Util::Resolution.exec(listcmd)
|
||||||
output.each_line do |line|
|
output.each_line do |line|
|
||||||
if m = line.match(/^\[\d+\]\s+(.*\.py)/)
|
if m = line.match(/^\[\d+\]\s+(.*\.py)/)
|
||||||
botnets << File.basename(File.dirname(m[1]))
|
botnets << File.basename(File.dirname(m[1]))
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
botnets.sort.join(',')
|
end
|
||||||
end
|
end
|
||||||
|
botnets.sort.join(',')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,171 +1,173 @@
|
||||||
# Install abusehelper.
|
# Install abusehelper.
|
||||||
#
|
#
|
||||||
# === Global variables
|
# === Parameters
|
||||||
#
|
#
|
||||||
# $abusehelper_datadir:
|
# $datadir:
|
||||||
# Abusehelper home directory. Defaults to /var/lib/ah2.
|
# Abusehelper home directory. Defaults to /var/lib/ah2.
|
||||||
#
|
#
|
||||||
# $abusehelper_botnets:
|
# $botnets:
|
||||||
# Array of botnet paths to start at boot.
|
# Array of botnet paths to start at boot.
|
||||||
#
|
#
|
||||||
class abusehelper {
|
# $botuser:
|
||||||
|
# User to run bots as. Defaults to abusehel.
|
||||||
|
#
|
||||||
|
class abusehelper(
|
||||||
|
$datadir='/var/lib/ah2',
|
||||||
|
$botnets=undef,
|
||||||
|
$botuser='abusehel'
|
||||||
|
) {
|
||||||
|
|
||||||
case $::operatingsystem {
|
case $::operatingsystem {
|
||||||
"ubuntu": {
|
'ubuntu': {
|
||||||
package { [ "python-pyme", "python-tz" ]:
|
package { [ 'python-pyme', 'python-tz' ]:
|
||||||
ensure => installed,
|
ensure => installed,
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
default: { }
|
||||||
|
}
|
||||||
|
|
||||||
if !$abusehelper_package {
|
if ! $abusehelper_package {
|
||||||
if $abusehelper_package_latest {
|
if $::abusehelper_package_latest {
|
||||||
$abusehelper_package = $abusehelper_package_latest
|
$abusehelper_package = $::abusehelper_package_latest
|
||||||
} else {
|
|
||||||
fail("Must define \$abusehelper_package or \$abusehelper_package_latest")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !$idiokit_package {
|
|
||||||
if $idiokit_package_latest {
|
|
||||||
$idiokit_package = $idiokit_package_latest
|
|
||||||
} else {
|
|
||||||
fail("Must define \$idiokit_package or \$idiokit_package_latest")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "/usr/local/src/abusehelper.tar.gz":
|
|
||||||
ensure => present,
|
|
||||||
mode => "0644",
|
|
||||||
owner => "root",
|
|
||||||
group => $::operatingsystem ? {
|
|
||||||
"openbsd" => "wheel",
|
|
||||||
default => "root",
|
|
||||||
},
|
|
||||||
source => "puppet:///files/packages/${abusehelper_package}",
|
|
||||||
}
|
|
||||||
util::extract::tar { "/usr/local/src/abusehelper":
|
|
||||||
ensure => latest,
|
|
||||||
strip => 1,
|
|
||||||
source => "/usr/local/src/abusehelper.tar.gz",
|
|
||||||
require => File["/usr/local/src/abusehelper.tar.gz"],
|
|
||||||
before => Python::Setup::Install["/usr/local/src/abusehelper"],
|
|
||||||
}
|
|
||||||
file { "/usr/local/src/idiokit.tar.gz":
|
|
||||||
ensure => present,
|
|
||||||
mode => "0644",
|
|
||||||
owner => "root",
|
|
||||||
group => $::operatingsystem ? {
|
|
||||||
"openbsd" => "wheel",
|
|
||||||
default => "root",
|
|
||||||
},
|
|
||||||
source => "puppet:///files/packages/${idiokit_package}",
|
|
||||||
}
|
|
||||||
util::extract::tar { "/usr/local/src/idiokit":
|
|
||||||
ensure => latest,
|
|
||||||
strip => 1,
|
|
||||||
source => "/usr/local/src/idiokit.tar.gz",
|
|
||||||
require => File["/usr/local/src/idiokit.tar.gz"],
|
|
||||||
before => Python::Setup::Install["/usr/local/src/idiokit"],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $::operatingsystem in ["CentOS","RedHat"] and versioncmp($::operatingsystemrelease, "6") < 0 {
|
|
||||||
include python::python26
|
|
||||||
python::setup::install { [ "/usr/local/src/abusehelper",
|
|
||||||
"/usr/local/src/idiokit", ]:
|
|
||||||
python => "python2.6",
|
|
||||||
require => Package["python26"],
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
python::setup::install { [ "/usr/local/src/abusehelper",
|
fail('Must define $abusehelper_package or $abusehelper_package_latest')
|
||||||
"/usr/local/src/idiokit", ]:
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
include user::system
|
if ! $idiokit_package {
|
||||||
realize(User["abusehel"], Group["abusehel"])
|
if $::idiokit_package_latest {
|
||||||
|
$idiokit_package = $::idiokit_package_latest
|
||||||
if $abusehelper_datadir {
|
|
||||||
file { $abusehelper_datadir:
|
|
||||||
ensure => directory,
|
|
||||||
mode => "2770",
|
|
||||||
owner => "abusehel",
|
|
||||||
group => "abusehel",
|
|
||||||
require => User["abusehel"],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "/var/lib/ah2":
|
|
||||||
ensure => link,
|
|
||||||
target => $abusehelper_datadir,
|
|
||||||
require => File[$abusehelper_datadir],
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
file { "/var/lib/ah2":
|
fail('Must define $idiokit_package or $idiokit_package_latest')
|
||||||
ensure => directory,
|
|
||||||
mode => "2770",
|
|
||||||
owner => "abusehel",
|
|
||||||
group => "abusehel",
|
|
||||||
require => User["abusehel"],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
file { "/var/lib/ah2/.profile":
|
file { '/usr/local/src/abusehelper.tar.gz':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0600",
|
mode => '0644',
|
||||||
owner => "abusehel",
|
owner => 'root',
|
||||||
group => "abusehel",
|
group => $::operatingsystem ? {
|
||||||
content => "umask 007\n",
|
'openbsd' => 'wheel',
|
||||||
require => File["/var/lib/ah2"],
|
default => 'root',
|
||||||
}
|
},
|
||||||
|
source => "puppet:///files/packages/${abusehelper_package}",
|
||||||
|
}
|
||||||
|
util::extract::tar { '/usr/local/src/abusehelper':
|
||||||
|
ensure => latest,
|
||||||
|
strip => '1',
|
||||||
|
source => '/usr/local/src/abusehelper.tar.gz',
|
||||||
|
require => File['/usr/local/src/abusehelper.tar.gz'],
|
||||||
|
before => Python::Setup::Install['/usr/local/src/abusehelper'],
|
||||||
|
}
|
||||||
|
|
||||||
if $abusehelper_botnets {
|
file { '/usr/local/src/idiokit.tar.gz':
|
||||||
class { "abusehelper::init":
|
ensure => present,
|
||||||
botnets => $abusehelper_botnets,
|
mode => '0644',
|
||||||
}
|
owner => 'root',
|
||||||
|
group => $::operatingsystem ? {
|
||||||
|
'openbsd' => 'wheel',
|
||||||
|
default => 'root',
|
||||||
|
},
|
||||||
|
source => "puppet:///files/packages/${idiokit_package}",
|
||||||
|
}
|
||||||
|
util::extract::tar { '/usr/local/src/idiokit':
|
||||||
|
ensure => latest,
|
||||||
|
strip => '1',
|
||||||
|
source => '/usr/local/src/idiokit.tar.gz',
|
||||||
|
require => File['/usr/local/src/idiokit.tar.gz'],
|
||||||
|
before => Python::Setup::Install['/usr/local/src/idiokit'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $::operatingsystem in ['CentOS','RedHat'] and versioncmp($::operatingsystemrelease, '6') < 0 {
|
||||||
|
include python::python26
|
||||||
|
python::setup::install { [
|
||||||
|
'/usr/local/src/abusehelper',
|
||||||
|
'/usr/local/src/idiokit',
|
||||||
|
]:
|
||||||
|
python => 'python2.6',
|
||||||
|
require => Package['python26'],
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
python::setup::install { [
|
||||||
|
'/usr/local/src/abusehelper',
|
||||||
|
'/usr/local/src/idiokit',
|
||||||
|
]: }
|
||||||
|
}
|
||||||
|
|
||||||
|
include user::system
|
||||||
|
realize(User['abusehel'], Group['abusehel'])
|
||||||
|
|
||||||
|
if $datadir != '/var/lib/ah2' {
|
||||||
|
file { '/var/lib/ah2':
|
||||||
|
ensure => link,
|
||||||
|
target => $datadir,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file { $datadir:
|
||||||
|
ensure => directory,
|
||||||
|
mode => '2770',
|
||||||
|
owner => 'abusehel',
|
||||||
|
group => 'abusehel',
|
||||||
|
}
|
||||||
|
|
||||||
|
file { '/var/lib/ah2/.profile':
|
||||||
|
ensure => present,
|
||||||
|
mode => '0600',
|
||||||
|
owner => 'abusehel',
|
||||||
|
group => 'abusehel',
|
||||||
|
content => "umask 007\n",
|
||||||
|
}
|
||||||
|
|
||||||
|
if $botnets {
|
||||||
|
class { 'abusehelper::init':
|
||||||
|
botnets => $botnets,
|
||||||
|
botuser => $botuser,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Install abusehelper init script.
|
# Install abusehelper init script.
|
||||||
#
|
#
|
||||||
class abusehelper::init($botnets, $botuser="abusehel") {
|
class abusehelper::init($botnets, $botuser) {
|
||||||
|
|
||||||
file { "/etc/sysconfig/botnet":
|
file { '/etc/sysconfig/botnet':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
name => $::operatingsystem ? {
|
name => $::operatingsystem ? {
|
||||||
"debian" => "/etc/default/botnet",
|
'debian' => '/etc/default/botnet',
|
||||||
"ubuntu" => "/etc/default/botnet",
|
'ubuntu' => '/etc/default/botnet',
|
||||||
default => "/etc/sysconfig/botnet",
|
default => '/etc/sysconfig/botnet',
|
||||||
},
|
},
|
||||||
mode => "0644",
|
mode => '0644',
|
||||||
owner => "root",
|
owner => 'root',
|
||||||
group => "root",
|
group => 'root',
|
||||||
content => template("abusehelper/botnet.sysconfig.erb"),
|
content => template('abusehelper/botnet.sysconfig.erb'),
|
||||||
before => Service["botnet"],
|
before => Service['botnet'],
|
||||||
}
|
}
|
||||||
|
|
||||||
file { "/etc/init.d/botnet":
|
file { '/etc/init.d/botnet':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0755",
|
mode => '0755',
|
||||||
owner => "root",
|
owner => 'root',
|
||||||
group => "root",
|
group => 'root',
|
||||||
source => "puppet:///modules/abusehelper/botnet.init",
|
source => 'puppet:///modules/abusehelper/botnet.init',
|
||||||
notify => Exec["add-service-botnet"],
|
notify => Exec['add-service-botnet'],
|
||||||
}
|
}
|
||||||
exec { "add-service-botnet":
|
exec { 'add-service-botnet':
|
||||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
path => '/bin:/usr/bin:/sbin:/usr/sbin',
|
||||||
command => $::operatingsystem ? {
|
command => $::operatingsystem ? {
|
||||||
"debian" => "update-rc.d botnet defaults",
|
'debian' => 'update-rc.d botnet defaults',
|
||||||
"ubuntu" => "update-rc.d botnet defaults",
|
'ubuntu' => 'update-rc.d botnet defaults',
|
||||||
default => "chkconfig --add botnet",
|
default => 'chkconfig --add botnet',
|
||||||
},
|
},
|
||||||
refreshonly => true,
|
refreshonly => true,
|
||||||
before => Service["botnet"],
|
before => Service['botnet'],
|
||||||
}
|
}
|
||||||
|
|
||||||
service { "botnet":
|
service { 'botnet':
|
||||||
enable => true,
|
enable => true,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,16 +5,23 @@ BRANCH = default
|
||||||
SOURCE = https://bitbucket.org/clarifiednetworks/abusesa/get/$(BRANCH).tar.gz
|
SOURCE = https://bitbucket.org/clarifiednetworks/abusesa/get/$(BRANCH).tar.gz
|
||||||
TARGET = abusesa-$(BRANCH)-$(TIMESTAMP).tar.gz
|
TARGET = abusesa-$(BRANCH)-$(TIMESTAMP).tar.gz
|
||||||
|
|
||||||
|
LIVESOURCE = https://bitbucket.org/codenomicon/abusesa-live/get/$(BRANCH).tar.gz
|
||||||
|
LIVETARGET = abusesa-live-$(BRANCH)-$(TIMESTAMP).tar.gz
|
||||||
|
|
||||||
PASSIVEDNSSOURCE = https://bitbucket.org/clarifiednetworks/abusesa-passivedns/get/$(BRANCH).tar.gz
|
PASSIVEDNSSOURCE = https://bitbucket.org/clarifiednetworks/abusesa-passivedns/get/$(BRANCH).tar.gz
|
||||||
PASSIVEDNSTARGET = abusesa-passivedns-$(BRANCH)-$(TIMESTAMP).tar.gz
|
PASSIVEDNSTARGET = abusesa-passivedns-$(BRANCH)-$(TIMESTAMP).tar.gz
|
||||||
|
|
||||||
SEARCHSOURCE = https://bitbucket.org/clarifiednetworks/abusesa-search/get/$(BRANCH).tar.gz
|
SEARCHSOURCE = https://bitbucket.org/codenomicon/abusesa-search/get/$(BRANCH).tar.gz
|
||||||
SEARCHTARGET = abusesa-search-$(BRANCH)-$(TIMESTAMP).tar.gz
|
SEARCHTARGET = abusesa-search-$(BRANCH)-$(TIMESTAMP).tar.gz
|
||||||
|
|
||||||
all: tarball manifest
|
all: tarball manifest
|
||||||
tarball: $(PACKAGES)/$(TARGET)
|
tarball: $(PACKAGES)/$(TARGET)
|
||||||
manifest: $(MANIFESTS)/abusesa.pp
|
manifest: $(MANIFESTS)/abusesa.pp
|
||||||
|
|
||||||
|
live: livetarball livemanifest
|
||||||
|
livetarball: $(PACKAGES)/$(LIVETARGET)
|
||||||
|
livemanifest: $(MANIFESTS)/abusesa_live.pp
|
||||||
|
|
||||||
passivedns: passivednstarball passivednsmanifest
|
passivedns: passivednstarball passivednsmanifest
|
||||||
passivednstarball: $(PACKAGES)/$(PASSIVEDNSTARGET)
|
passivednstarball: $(PACKAGES)/$(PASSIVEDNSTARGET)
|
||||||
passivednsmanifest: $(MANIFESTS)/abusesa_passivedns.pp
|
passivednsmanifest: $(MANIFESTS)/abusesa_passivedns.pp
|
||||||
|
@ -31,6 +38,14 @@ $(MANIFESTS)/abusesa.pp: $(PACKAGES)/$(TARGET)
|
||||||
@umask 022; echo $@; \
|
@umask 022; echo $@; \
|
||||||
echo "\$$abusesa_package_latest = '$(TARGET)'"> $@
|
echo "\$$abusesa_package_latest = '$(TARGET)'"> $@
|
||||||
|
|
||||||
|
$(PACKAGES)/$(LIVETARGET):
|
||||||
|
@umask 022; echo $@; \
|
||||||
|
test -f $@ || curl -f --digest -u $(USER) -o $@ $(LIVESOURCE)
|
||||||
|
|
||||||
|
$(MANIFESTS)/abusesa_live.pp: $(PACKAGES)/$(LIVETARGET)
|
||||||
|
@umask 022; echo $@; \
|
||||||
|
echo "\$$abusesa_live_package_latest = '$(LIVETARGET)'" > $@
|
||||||
|
|
||||||
$(PACKAGES)/$(PASSIVEDNSTARGET):
|
$(PACKAGES)/$(PASSIVEDNSTARGET):
|
||||||
@umask 022; echo $@; \
|
@umask 022; echo $@; \
|
||||||
test -f $@ || curl -f --digest -u $(USER) -o $@ $(PASSIVEDNSSOURCE)
|
test -f $@ || curl -f --digest -u $(USER) -o $@ $(PASSIVEDNSSOURCE)
|
||||||
|
|
3
abusesa/files/vsroom-httpd.conf
Normal file
3
abusesa/files/vsroom-httpd.conf
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<Directory "/srv/www/https/*/vsroom">
|
||||||
|
AllowOverride All
|
||||||
|
</Directory>
|
|
@ -1,91 +1,88 @@
|
||||||
# Install AbuseSA.
|
# Install AbuseSA.
|
||||||
#
|
#
|
||||||
# === Global variables
|
# === Parameters
|
||||||
#
|
#
|
||||||
# $abusesa_datadir:
|
# $datadir:
|
||||||
# AbuseSA home directory. Defaults to /var/lib/abusesa.
|
# AbuseSA home directory. Defaults to /var/lib/abusesa.
|
||||||
#
|
#
|
||||||
# $abusesa_botnets:
|
# $botnets:
|
||||||
# Array of botnet paths to start at boot.
|
# Array of botnet paths to start at boot.
|
||||||
#
|
#
|
||||||
class abusesa {
|
# $botuser:
|
||||||
|
# User to run bots as. Defaults to abusesa.
|
||||||
|
#
|
||||||
|
class abusesa(
|
||||||
|
$datadir='/var/lib/abusesa',
|
||||||
|
$botnets=undef,
|
||||||
|
$botuser='abusesa',
|
||||||
|
) {
|
||||||
|
|
||||||
if ! $abusesa_package {
|
if ! $abusesa_package {
|
||||||
if $::abusesa_package_latest {
|
if $::abusesa_package_latest {
|
||||||
$abusesa_package = $::abusesa_package_latest
|
$abusesa_package = $::abusesa_package_latest
|
||||||
} else {
|
|
||||||
fail('Must define $abusesa_package or $abusesa_package_latest')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include user::system
|
|
||||||
realize(User["abusesa"], Group["abusesa"])
|
|
||||||
|
|
||||||
if $abusesa_datadir {
|
|
||||||
file { $abusesa_datadir:
|
|
||||||
ensure => directory,
|
|
||||||
mode => "2770",
|
|
||||||
owner => "abusesa",
|
|
||||||
group => "abusesa",
|
|
||||||
require => User["abusesa"],
|
|
||||||
}
|
|
||||||
file { "/var/lib/abusesa":
|
|
||||||
ensure => link,
|
|
||||||
target => $abusesa_datadir,
|
|
||||||
require => File[$abusesa_datadir],
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
file { "/var/lib/abusesa":
|
fail('Must define $abusesa_package or $abusesa_package_latest')
|
||||||
ensure => directory,
|
|
||||||
mode => "2770",
|
|
||||||
owner => "abusesa",
|
|
||||||
group => "abusesa",
|
|
||||||
require => User["abusesa"],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
file { "/var/lib/abusesa/.profile":
|
include user::system
|
||||||
ensure => present,
|
realize(User['abusesa'], Group['abusesa'])
|
||||||
mode => "0600",
|
|
||||||
owner => "abusesa",
|
|
||||||
group => "abusesa",
|
|
||||||
content => "umask 007\n",
|
|
||||||
require => File["/var/lib/abusesa"],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "/usr/local/src/abusesa.tar.gz":
|
if $datadir != '/var/lib/abusesa' {
|
||||||
ensure => present,
|
file { '/var/lib/abusesa':
|
||||||
mode => "0644",
|
ensure => link,
|
||||||
owner => "root",
|
target => $datadir,
|
||||||
group => $::operatingsystem ? {
|
|
||||||
"openbsd" => "wheel",
|
|
||||||
default => "root",
|
|
||||||
},
|
|
||||||
source => "puppet:///files/packages/${abusesa_package}",
|
|
||||||
}
|
|
||||||
util::extract::tar { "/usr/local/src/abusesa":
|
|
||||||
ensure => latest,
|
|
||||||
strip => 1,
|
|
||||||
source => "/usr/local/src/abusesa.tar.gz",
|
|
||||||
require => File["/usr/local/src/abusesa.tar.gz"],
|
|
||||||
before => Python::Setup::Install["/usr/local/src/abusesa"],
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if $::operatingsystem in ["CentOS","RedHat"] and versioncmp($::operatingsystemrelease, "6") < 0 {
|
file { $datadir:
|
||||||
include python::python26
|
ensure => directory,
|
||||||
python::setup::install { "/usr/local/src/abusesa":
|
mode => '2770',
|
||||||
python => "python2.6",
|
owner => 'abusesa',
|
||||||
require => Package["python26"],
|
group => 'abusesa',
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
python::setup::install { "/usr/local/src/abusesa": }
|
|
||||||
}
|
|
||||||
|
|
||||||
if $abusesa_botnets {
|
file { '/var/lib/abusesa/.profile':
|
||||||
class { "abusehelper::init":
|
ensure => present,
|
||||||
botnets => $abusesa_botnets,
|
mode => '0600',
|
||||||
botuser => "abusesa",
|
owner => 'abusesa',
|
||||||
}
|
group => 'abusesa',
|
||||||
|
content => "umask 007\n",
|
||||||
|
}
|
||||||
|
|
||||||
|
file { '/usr/local/src/abusesa.tar.gz':
|
||||||
|
ensure => present,
|
||||||
|
mode => '0644',
|
||||||
|
owner => 'root',
|
||||||
|
group => $::operatingsystem ? {
|
||||||
|
'openbsd' => 'wheel',
|
||||||
|
default => 'root',
|
||||||
|
},
|
||||||
|
source => "puppet:///files/packages/${abusesa_package}",
|
||||||
|
}
|
||||||
|
util::extract::tar { '/usr/local/src/abusesa':
|
||||||
|
ensure => latest,
|
||||||
|
strip => '1',
|
||||||
|
source => '/usr/local/src/abusesa.tar.gz',
|
||||||
|
require => File['/usr/local/src/abusesa.tar.gz'],
|
||||||
|
before => Python::Setup::Install['/usr/local/src/abusesa'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $::operatingsystem in ['CentOS','RedHat'] and versioncmp($::operatingsystemrelease, '6') < 0 {
|
||||||
|
include python::python26
|
||||||
|
python::setup::install { '/usr/local/src/abusesa':
|
||||||
|
python => 'python2.6',
|
||||||
|
require => Package['python26'],
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
python::setup::install { '/usr/local/src/abusesa': }
|
||||||
|
}
|
||||||
|
|
||||||
|
if $botnets {
|
||||||
|
class { 'abusehelper::init':
|
||||||
|
botnets => $botnets,
|
||||||
|
botuser => $botuser,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
117
abusesa/manifests/live.pp
Normal file
117
abusesa/manifests/live.pp
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
# Install AbuseSA Live.
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
#
|
||||||
|
# $authurl:
|
||||||
|
# Authentication path. Defaults to '/collab/?action=authcredentials'.
|
||||||
|
#
|
||||||
|
# $boshurl:
|
||||||
|
# XMPP BOSH path. Defaults to '/bosh/'.
|
||||||
|
#
|
||||||
|
# $config:
|
||||||
|
# Source URL of custom config file.
|
||||||
|
#
|
||||||
|
# $webhosts:
|
||||||
|
# List of live virtual hosts.
|
||||||
|
#
|
||||||
|
class abusesa::live(
|
||||||
|
$authurl='/collab/?action=authcredentials',
|
||||||
|
$boshurl='/bosh/',
|
||||||
|
$config=undef,
|
||||||
|
$webhosts=undef,
|
||||||
|
) {
|
||||||
|
|
||||||
|
if ! $abusesa_live_package {
|
||||||
|
if $::abusesa_live_package_latest {
|
||||||
|
$abusesa_live_package = $::abusesa_live_package_latest
|
||||||
|
} else {
|
||||||
|
fail('Must define $abusesa_live_package or $abusesa_live_package_latest')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file { '/usr/local/src/abusesa-live.tar.gz':
|
||||||
|
ensure => present,
|
||||||
|
mode => '0644',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
source => "puppet:///files/packages/${abusesa_live_package}",
|
||||||
|
}
|
||||||
|
util::extract::tar { '/usr/local/src/abusesa-live':
|
||||||
|
ensure => latest,
|
||||||
|
strip => '1',
|
||||||
|
source => '/usr/local/src/abusesa-live.tar.gz',
|
||||||
|
require => File['/usr/local/src/abusesa-live.tar.gz'],
|
||||||
|
}
|
||||||
|
python::setup::install { '/usr/local/src/abusesa-live':
|
||||||
|
require => Util::Extract::Tar['/usr/local/src/abusesa-live'],
|
||||||
|
}
|
||||||
|
|
||||||
|
$htdocs = $::operatingsystem ? {
|
||||||
|
'ubuntu' => '/usr/local/share/abusesa-live/htdocs',
|
||||||
|
default => '/usr/share/abusesa-live/htdocs',
|
||||||
|
}
|
||||||
|
|
||||||
|
if $config {
|
||||||
|
$config_content = undef
|
||||||
|
} else {
|
||||||
|
$config_content = template('abusesa/live/config.json.erb')
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "${htdocs}/config.json":
|
||||||
|
ensure => present,
|
||||||
|
mode => '0644',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
source => $config,
|
||||||
|
content => $config_content,
|
||||||
|
require => Python::Setup::Install['/usr/local/src/abusesa-live'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $webhosts {
|
||||||
|
apache::configfile { 'vsroom.conf':
|
||||||
|
http => false,
|
||||||
|
source => 'puppet:///modules/abusesa/vsroom-httpd.conf',
|
||||||
|
}
|
||||||
|
|
||||||
|
abusesa::live::configwebhost { $webhosts:
|
||||||
|
htdocs => $htdocs,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Enable AbuseSA Live for virtual host.
|
||||||
|
#
|
||||||
|
define abusesa::live::configwebhost($htdocs) {
|
||||||
|
|
||||||
|
if ! defined(File["/srv/www/https/${name}/abusesa"]) {
|
||||||
|
file { "/srv/www/https/${name}/abusesa":
|
||||||
|
ensure => directory,
|
||||||
|
mode => '0755',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "/srv/www/https/${name}/abusesa/live":
|
||||||
|
ensure => link,
|
||||||
|
target => $htdocs,
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "/srv/www/https/${name}/vsroom":
|
||||||
|
ensure => directory,
|
||||||
|
force => true,
|
||||||
|
mode => '0755',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
}
|
||||||
|
file { "/srv/www/https/${name}/vsroom/.htaccess":
|
||||||
|
ensure => present,
|
||||||
|
mode => '0644',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
content => "Redirect permanent /vsroom/ /abusesa/live/\n",
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -27,18 +27,16 @@ class abusesa::passivedns(
|
||||||
|
|
||||||
if $datadir != '/var/lib/passivedns' {
|
if $datadir != '/var/lib/passivedns' {
|
||||||
file { '/var/lib/passivedns':
|
file { '/var/lib/passivedns':
|
||||||
ensure => link,
|
ensure => link,
|
||||||
target => $datadir,
|
target => $datadir,
|
||||||
require => File[$datadir],
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
file { $datadir:
|
file { $datadir:
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
mode => '2770',
|
mode => '2770',
|
||||||
owner => 'passdns',
|
owner => 'passdns',
|
||||||
group => 'passdns',
|
group => 'passdns',
|
||||||
require => User['passdns'],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/var/lib/passivedns/.profile':
|
file { '/var/lib/passivedns/.profile':
|
||||||
|
@ -61,7 +59,7 @@ class abusesa::passivedns(
|
||||||
}
|
}
|
||||||
util::extract::tar { '/usr/local/src/abusesa-passivedns':
|
util::extract::tar { '/usr/local/src/abusesa-passivedns':
|
||||||
ensure => latest,
|
ensure => latest,
|
||||||
strip => 1,
|
strip => '1',
|
||||||
source => '/usr/local/src/abusesa-passivedns.tar.gz',
|
source => '/usr/local/src/abusesa-passivedns.tar.gz',
|
||||||
require => File['/usr/local/src/abusesa-passivedns.tar.gz'],
|
require => File['/usr/local/src/abusesa-passivedns.tar.gz'],
|
||||||
before => Python::Setup::Install['/usr/local/src/abusesa-passivedns'],
|
before => Python::Setup::Install['/usr/local/src/abusesa-passivedns'],
|
||||||
|
|
|
@ -2,135 +2,132 @@
|
||||||
#
|
#
|
||||||
# === Parameters
|
# === Parameters
|
||||||
#
|
#
|
||||||
# $plugin:
|
# $plugin:
|
||||||
# Analysis plugin file.
|
# Analysis plugin file.
|
||||||
#
|
#
|
||||||
# $solrurl:
|
# $solrurl:
|
||||||
# URL to sorl.
|
# URL to sorl.
|
||||||
#
|
#
|
||||||
# $logourl:
|
# $logourl:
|
||||||
# Path to logo image.
|
# Path to logo image.
|
||||||
#
|
#
|
||||||
# $cssfile:
|
# $cssfile:
|
||||||
# Path to css file.
|
# Path to css file.
|
||||||
#
|
#
|
||||||
# $webhosts:
|
# $webhosts:
|
||||||
# List of search virtual hosts.
|
# List of search virtual hosts.
|
||||||
#
|
#
|
||||||
class abusesa::search(
|
class abusesa::search(
|
||||||
$plugin="solr-4.10.2-analysis-codenomicon.jar",
|
$plugin='solr-4.10.2-analysis-codenomicon.jar',
|
||||||
$solrurl="https://${::homename}/solr/generic/",
|
$solrurl="https://${::homename}/solr/generic/",
|
||||||
$logourl="img/Codenomicon_logo_small.png",
|
$logourl='img/Codenomicon_logo_small.png',
|
||||||
$cssfile="css/code.css",
|
$cssfile='css/code.css',
|
||||||
$webhosts=undef,
|
$webhosts=undef,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
if ! $abusesa_search_package {
|
if ! $abusesa_search_package {
|
||||||
if $::abusesa_search_package_latest {
|
if $::abusesa_search_package_latest {
|
||||||
$abusesa_search_package = $::abusesa_search_package_latest
|
$abusesa_search_package = $::abusesa_search_package_latest
|
||||||
} else {
|
} else {
|
||||||
fail('Must define $abusesa_search_package or $abusesa_search_package_latest')
|
fail('Must define $abusesa_search_package or $abusesa_search_package_latest')
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
file { "/usr/local/src/abusesa-search.tar.gz":
|
file { '/usr/local/src/abusesa-search.tar.gz':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0644",
|
mode => '0644',
|
||||||
owner => "root",
|
owner => 'root',
|
||||||
group => "root",
|
group => 'root',
|
||||||
source => "puppet:///files/packages/${abusesa_search_package}",
|
source => "puppet:///files/packages/${abusesa_search_package}",
|
||||||
}
|
}
|
||||||
|
|
||||||
util::extract::tar { "/usr/local/src/abusesa-search":
|
util::extract::tar { '/usr/local/src/abusesa-search':
|
||||||
ensure => latest,
|
ensure => latest,
|
||||||
strip => 1,
|
strip => '1',
|
||||||
source => "/usr/local/src/abusesa-search.tar.gz",
|
source => '/usr/local/src/abusesa-search.tar.gz',
|
||||||
require => File["/usr/local/src/abusesa-search.tar.gz"],
|
require => File['/usr/local/src/abusesa-search.tar.gz'],
|
||||||
before => Python::Setup::Install["/usr/local/src/abusesa-search"],
|
before => Python::Setup::Install['/usr/local/src/abusesa-search'],
|
||||||
}
|
}
|
||||||
|
|
||||||
python::setup::install { "/usr/local/src/abusesa-search": }
|
python::setup::install { '/usr/local/src/abusesa-search': }
|
||||||
|
|
||||||
package { "python-BeautifulSoup":
|
package { 'python-BeautifulSoup':
|
||||||
ensure => installed,
|
ensure => installed,
|
||||||
name => $::operatingsystem ? {
|
name => $::operatingsystem ? {
|
||||||
"debian" => "python-beautifulsoup",
|
'debian' => 'python-beautifulsoup',
|
||||||
"ubuntu" => "python-beautifulsoup",
|
'ubuntu' => 'python-beautifulsoup',
|
||||||
default => "python-BeautifulSoup",
|
default => 'python-BeautifulSoup',
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
file { "/srv/solr/cores/generic":
|
file { '/srv/solr/cores/generic':
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
mode => "0660",
|
mode => '0660',
|
||||||
owner => "solr",
|
owner => 'solr',
|
||||||
group => "solr",
|
group => 'solr',
|
||||||
source => "/usr/local/src/abusesa-search/config/solr/cores/generic",
|
source => '/usr/local/src/abusesa-search/config/solr/cores/generic',
|
||||||
recurse => true,
|
recurse => true,
|
||||||
purge => true,
|
purge => true,
|
||||||
force => true,
|
force => true,
|
||||||
require => [
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
||||||
File["/srv/solr/cores"],
|
notify => Service['solr'],
|
||||||
Util::Extract::Tar["/usr/local/src/abusesa-search"],
|
}
|
||||||
],
|
|
||||||
notify => Service["solr"],
|
|
||||||
}
|
|
||||||
file { "/srv/solr/cores/lib/solr-analysis-codenomicon.jar":
|
|
||||||
ensure => present,
|
|
||||||
mode => "0660",
|
|
||||||
owner => "solr",
|
|
||||||
group => "solr",
|
|
||||||
source => "/usr/local/src/abusesa-search/bin/${plugin}",
|
|
||||||
require => [
|
|
||||||
File["/srv/solr/cores/lib"],
|
|
||||||
Util::Extract::Tar["/usr/local/src/abusesa-search"],
|
|
||||||
],
|
|
||||||
notify => Service["solr"],
|
|
||||||
}
|
|
||||||
file { "/srv/solr/cores/lib/commons-net-3.1.jar":
|
|
||||||
ensure => present,
|
|
||||||
mode => "0660",
|
|
||||||
owner => "solr",
|
|
||||||
group => "solr",
|
|
||||||
source => "/usr/local/src/abusesa-search/search/analysis-codenomicon/lib/commons-net-3.1.jar",
|
|
||||||
require => [
|
|
||||||
File["/srv/solr/cores/lib"],
|
|
||||||
Util::Extract::Tar["/usr/local/src/abusesa-search"],
|
|
||||||
],
|
|
||||||
notify => Service["solr"],
|
|
||||||
}
|
|
||||||
file { "/srv/solr/cores/lib/java-ipv6-0.8.jar":
|
|
||||||
ensure => present,
|
|
||||||
mode => "0660",
|
|
||||||
owner => "solr",
|
|
||||||
group => "solr",
|
|
||||||
source => "/usr/local/src/abusesa-search/search/analysis-codenomicon/lib/java-ipv6-0.8.jar",
|
|
||||||
require => [
|
|
||||||
File["/srv/solr/cores/lib"],
|
|
||||||
Util::Extract::Tar["/usr/local/src/abusesa-search"],
|
|
||||||
],
|
|
||||||
notify => Service["solr"],
|
|
||||||
}
|
|
||||||
|
|
||||||
$htdocs = $::operatingsystem ? {
|
file { '/srv/solr/cores/generic/conf/_rest_managed.json':
|
||||||
"ubuntu" => "/usr/local/share/abusesa-search/htdocs",
|
ensure => present,
|
||||||
default => "/usr/share/abusesa-search/htdocs",
|
mode => '0660',
|
||||||
}
|
owner => 'solr',
|
||||||
|
group => 'solr',
|
||||||
|
before => Service['solr'],
|
||||||
|
}
|
||||||
|
|
||||||
file { "${htdocs}/js/Config.js":
|
file { '/srv/solr/cores/lib/solr-analysis-codenomicon.jar':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0644",
|
mode => '0660',
|
||||||
owner => "root",
|
owner => 'solr',
|
||||||
group => "root",
|
group => 'solr',
|
||||||
content => template("abusesa/Config.js.erb"),
|
source => "/usr/local/src/abusesa-search/bin/${plugin}",
|
||||||
require => Python::Setup::Install["/usr/local/src/abusesa-search"],
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
||||||
}
|
notify => Service['solr'],
|
||||||
|
}
|
||||||
|
file { '/srv/solr/cores/lib/commons-net-3.1.jar':
|
||||||
|
ensure => present,
|
||||||
|
mode => '0660',
|
||||||
|
owner => 'solr',
|
||||||
|
group => 'solr',
|
||||||
|
source => '/usr/local/src/abusesa-search/search/analysis-codenomicon/lib/commons-net-3.1.jar',
|
||||||
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
||||||
|
notify => Service['solr'],
|
||||||
|
}
|
||||||
|
file { '/srv/solr/cores/lib/java-ipv6-0.8.jar':
|
||||||
|
ensure => present,
|
||||||
|
mode => '0660',
|
||||||
|
owner => 'solr',
|
||||||
|
group => 'solr',
|
||||||
|
source => '/usr/local/src/abusesa-search/search/analysis-codenomicon/lib/java-ipv6-0.8.jar',
|
||||||
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
||||||
|
notify => Service['solr'],
|
||||||
|
}
|
||||||
|
|
||||||
if $webhosts {
|
$htdocs = $::operatingsystem ? {
|
||||||
abusesa::search::configwebhost { $webhosts:
|
'ubuntu' => '/usr/local/share/abusesa-search/htdocs',
|
||||||
htdocs => $htdocs,
|
default => '/usr/share/abusesa-search/htdocs',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
file { "${htdocs}/js/Config.js":
|
||||||
|
ensure => present,
|
||||||
|
mode => '0644',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
content => template('abusesa/search/Config.js.erb'),
|
||||||
|
require => Python::Setup::Install['/usr/local/src/abusesa-search'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $webhosts {
|
||||||
|
abusesa::search::configwebhost { $webhosts:
|
||||||
|
htdocs => $htdocs,
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,10 +136,18 @@ class abusesa::search(
|
||||||
#
|
#
|
||||||
define abusesa::search::configwebhost($htdocs) {
|
define abusesa::search::configwebhost($htdocs) {
|
||||||
|
|
||||||
file { "/srv/www/https/${name}/search":
|
if ! defined(File["/srv/www/https/${name}/abusesa"]) {
|
||||||
ensure => link,
|
file { "/srv/www/https/${name}/abusesa":
|
||||||
target => $htdocs,
|
ensure => directory,
|
||||||
require => File["/srv/www/https/${name}"],
|
mode => '0755',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "/srv/www/https/${name}/abusesa/search":
|
||||||
|
ensure => link,
|
||||||
|
target => $htdocs,
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
4
abusesa/templates/live/config.json.erb
Normal file
4
abusesa/templates/live/config.json.erb
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"authUrl": "<%= @authurl %>",
|
||||||
|
"boshUrl": "<%= @boshurl %>"
|
||||||
|
}
|
6
abusesa/templates/search/Config.js.erb
Normal file
6
abusesa/templates/search/Config.js.erb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
var config = {
|
||||||
|
servlet: "select",
|
||||||
|
solrUrl: "<%= @solrurl %>",
|
||||||
|
logoUrl: "<%= @logourl %>",
|
||||||
|
cssFile: "<%= @cssfile %>"
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue