def __init__(self): self.listing = Listing() self.whitelisting = WhiteListing() self.rule = Rule() self.asnum = ASNum() self.subnet = Subnet() self.rir = RIR() self.country = Country() self.peering = Peering()
def listings(request): errmsg = "" if "q" in request.GET.keys() and len(request.GET["q"]) != 0: s = Search(model=Listing(), fields={ "ip": "ip__ip", "reason": "reason__reason", "sensor": "sensor__name", "sensor_host": "sensor_host__hostname", "timestamp": "timestamp", "duration": "duration__duration", "reporter": "reporter", }) (result, listing_data) = s.find(request.GET["q"]) if not result: errmsg = listing_data, (result, listing_data) = listing.all() else: (result, listing_data) = listing.all() if not result: return HttpResponseRedirect("/") try: page = int(request.GET.get('page', '1')) except: page = 1 listing_table = ListingTable(listing_data, order_by=request.GET.get('sort', 'title')) if request.method == "GET": search_form = SearchForm(request.GET) else: search_form = SearchForm() return render_to_response("listing/overview.html", { "errmsg": errmsg, "search_form": search_form, "listing_table": listing_table, }, context_instance=RequestContext(request))
#!/usr/bin/env python import socket import sys import os sys.path.append("/www/blacklist/app") os.environ["DJANGO_SETTINGS_MODULE"] = "settings" from blacklist.middleware.listing import Listing from blacklist.middleware.whitelisting import WhiteListing listing = Listing() whitelisting = WhiteListing() def help(): print "Usage: %s (listing|whitelisting) (add|del|list) [<value>]" % (os.path.basename(sys.argv[0])) print "" print "Examples:" print "* listing add 192.0.2.1 reason someuser" print "* listing add 192.0.2.0/24 reason someuser" print "* listing del 192.0.2.1" print "* listing list" print "* whitelisting add 192.0.2.1 host.example.com someuser" print "* whitelisting add 192.0.2.0/24 net.example.com someuser" print "* whitelisting del 192.0.2.1" print "* whitelisting list" sys.exit(1) if __name__ == "__main__": if not len(sys.argv) in range(3,7):
class API: def __init__(self): self.listing = Listing() self.whitelisting = WhiteListing() self.rule = Rule() self.asnum = ASNum() self.subnet = Subnet() self.rir = RIR() self.country = Country() self.peering = Peering() def add(self, data): (result, listing) = self.listing.add( ip=data['ip'], sensor=data['sensor'], sensor_host=data['sensor_host'], reason=data['reason'], reporter=data['username'], ) return (result, str(listing)) def get_rules(self): rules = {} (result, db_rules) = self.rule.all() if result: for r in db_rules: if not rules.has_key(r.sensor.name): rules[r.sensor.name] = [] rules[r.sensor.name].append([r.rule, r.pos_ip, r.pos_reason]) return (True, rules) else: return (False, db_rules) def get_peerings(self): peerings = [] (result, db_peerings) = self.peering.all() if result: for p in db_peerings: peerings.append({ "hostname": p.peer.hostname, "ip": p.peer.ip.ip, "af": p.peer.ip.af, "asnum": p.asnum.asnum, "key": p.key.data, }) return (True, peerings) else: return (False, db_peerings) def get_listings(self): listings = [] (result, db_listings) = self.listing.all() if result: for l in db_listings: listings.append((l.ip.ip, l.ip.last, l.ip.mask, l.ip.af)) (result, rir_listings) = self.rir.filter(listed=True) if result: for rir in rir_listings: (result, rir_subnets) = self.subnet.filter(rir=rir) if result: for s in rir_subnets: listings.append((s.subnet, s.last, s.mask, s.af)) (result, country_listings) = self.country.filter(listed=True) if result: for country in country_listings: (result, country_subnets) = self.subnet.filter(country=country) if result: for s in country_subnets: listings.append((s.subnet, s.last, s.mask, s.af)) (result, provider_listings) = self.asnum.filter(listed=True) if result: for asnum in provider_listings: (result, provider_subnets) = self.subnet.filter(asnum=asnum) if result: for s in provider_subnets: listings.append((s.subnet, s.last, s.mask, s.af)) (result, subnet_listings) = self.subnet.filter(listed=True) if result: for s in subnet_listings: listings.append((s.subnet, s.last, s.mask, s.af)) return (True, list(set(listings))) def get_whitelistings(self): listings = [] (result, db_listings) = self.whitelisting.all() if result: for l in db_listings: listings.append((l.ip.ip, l.ip.last, l.ip.mask, l.ip.af)) (result, rir_listings) = self.rir.filter(whitelisted=True) if result: for rir in rir_listings: (result, rir_subnets) = self.subnet.filter(rir=rir) if result: for s in rir_subnets: listings.append((s.subnet, s.last, s.mask, s.af)) (result, country_listings) = self.country.filter(whitelisted=True) if result: for country in country_listings: (result, country_subnets) = self.subnet.filter(country=country) if result: for s in country_subnets: listings.append((s.subnet, s.last, s.mask, s.af)) (result, provider_listings) = self.asnum.filter(whitelisted=True) if result: for asnum in provider_listings: (result, provider_subnets) = self.subnet.filter(asnum=asnum) if result: for s in provider_subnets: listings.append((s.subnet, s.last, s.mask, s.af)) (result, subnet_listings) = self.subnet.filter(whitelisted=True) if result: for s in subnet_listings: listings.append((s.subnet, s.last, s.mask, s.af)) return (True, list(set(listings)))
from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext from blacklist.common.broker import Broker from blacklist.common.ipcalc import IPCalc from blacklist.common.search import Search from blacklist.middleware.listing import Listing from blacklist.table.listing import ListingTable from blacklist.forms.listing import ListingForm from blacklist.forms.search import SearchForm import socket listing = Listing() ipcalc = IPCalc() broker = Broker() @login_required def listings(request): errmsg = "" if "q" in request.GET.keys() and len(request.GET["q"]) != 0: s = Search(model=Listing(), fields={ "ip": "ip__ip", "reason": "reason__reason", "sensor": "sensor__name", "sensor_host": "sensor_host__hostname",