Subversion Repositories configs

Rev

Rev 70 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 70 Rev 86
Line 78... Line 78...
78
	------
78
	------
79
	ValueError
79
	ValueError
80
		If invalid `category`, `score`, `banaction` or `updateperiod`.
80
		If invalid `category`, `score`, `banaction` or `updateperiod`.
81
	"""
81
	"""
82
 
82
 
-
 
83
	TIMEOUT = 10
83
	_badips = "http://www.badips.com"
84
	_badips = "http://www.badips.com"
84
	def _Request(self, url, **argv):
85
	def _Request(self, url, **argv):
85
		return Request(url, headers={'User-Agent': self.agent}, **argv)
86
		return Request(url, headers={'User-Agent': self.agent}, **argv)
86
 
87
 
87
	def __init__(self, jail, name, category, score=3, age="24h", key=None,
88
	def __init__(self, jail, name, category, score=3, age="24h", key=None,
88
		banaction=None, bancategory=None, bankey=None, updateperiod=900, agent="Fail2Ban"):
89
		banaction=None, bancategory=None, bankey=None, updateperiod=900, agent="Fail2Ban", 
-
 
90
		timeout=TIMEOUT):
89
		super(BadIPsAction, self).__init__(jail, name)
91
		super(BadIPsAction, self).__init__(jail, name)
90
 
92
 
-
 
93
		self.timeout = timeout
91
		self.agent = agent
94
		self.agent = agent
92
		self.category = category
95
		self.category = category
93
		self.score = score
96
		self.score = score
94
		self.age = age
97
		self.age = age
95
		self.key = key
98
		self.key = key
Line 117... Line 120...
117
		ValueError
120
		ValueError
118
			If badips.com response didn't contain necessary information
121
			If badips.com response didn't contain necessary information
119
		"""
122
		"""
120
		try:
123
		try:
121
			response = urlopen(
124
			response = urlopen(
122
				self._Request("/".join([self._badips, "get", "categories"])), None, 3)
125
				self._Request("/".join([self._badips, "get", "categories"])), timeout=self.timeout)
123
		except HTTPError as response:
126
		except HTTPError as response:
124
			messages = json.loads(response.read().decode('utf-8'))
127
			messages = json.loads(response.read().decode('utf-8'))
125
			self._logSys.error(
128
			self._logSys.error(
126
				"Failed to fetch categories. badips.com response: '%s'",
129
				"Failed to fetch categories. badips.com response: '%s'",
127
				messages['err'])
130
				messages['err'])
Line 171... Line 174...
171
			url = "?".join([
174
			url = "?".join([
172
				"/".join([self._badips, "get", "list", category, str(score)]),
175
				"/".join([self._badips, "get", "list", category, str(score)]),
173
				urlencode({'age': age})])
176
				urlencode({'age': age})])
174
			if key:
177
			if key:
175
				url = "&".join([url, urlencode({'key': key})])
178
				url = "&".join([url, urlencode({'key': key})])
176
			response = urlopen(self._Request(url))
179
			response = urlopen(self._Request(url), timeout=self.timeout)
177
		except HTTPError as response:
180
		except HTTPError as response:
178
			messages = json.loads(response.read().decode('utf-8'))
181
			messages = json.loads(response.read().decode('utf-8'))
179
			self._logSys.error(
182
			self._logSys.error(
180
				"Failed to fetch bad IP list. badips.com response: '%s'",
183
				"Failed to fetch bad IP list. badips.com response: '%s'",
181
				messages['err'])
184
				messages['err'])
Line 356... Line 359...
356
		"""
359
		"""
357
		try:
360
		try:
358
			url = "/".join([self._badips, "add", self.category, aInfo['ip']])
361
			url = "/".join([self._badips, "add", self.category, aInfo['ip']])
359
			if self.key:
362
			if self.key:
360
				url = "?".join([url, urlencode({'key': self.key})])
363
				url = "?".join([url, urlencode({'key': self.key})])
361
			response = urlopen(self._Request(url))
364
			response = urlopen(self._Request(url), timeout=self.timeout)
362
		except HTTPError as response:
365
		except HTTPError as response:
363
			messages = json.loads(response.read().decode('utf-8'))
366
			messages = json.loads(response.read().decode('utf-8'))
364
			self._logSys.error(
367
			self._logSys.error(
365
				"Response from badips.com report: '%s'",
368
				"Response from badips.com report: '%s'",
366
				messages['err'])
369
				messages['err'])