Пример #1
0
	def testJailActionBrokenDef(self):
		jail = JailReader('brokenactiondef', basedir=os.path.join('testcases','config'))
		self.assertTrue(jail.read())
		self.assertFalse(jail.getOptions())
		self.assertTrue(jail.isEnabled())
		self.assertTrue(self._is_logged('Error in action definition joho[foo'))
		self.assertTrue(self._is_logged('Caught exception: While reading action joho[foo we should have got 1 or 2 groups. Got: 0'))
Пример #2
0
	def testJailActionFilterMissing(self):
		jail = JailReader('missingbitsjail', basedir=os.path.join('testcases','config'))
		self.assertTrue(jail.read())
		self.assertFalse(jail.getOptions())
		self.assertTrue(jail.isEnabled())
		self.assertTrue(self._is_logged("Found no accessible config files for 'filter.d/catchallthebadies' under testcases/config"))
		self.assertTrue(self._is_logged('Unable to read the filter'))
Пример #3
0
	def testJailActionEmpty(self):
		jail = JailReader('emptyaction', basedir=os.path.join('testcases','config'))
		self.assertTrue(jail.read())
		self.assertTrue(jail.getOptions())
		self.assertTrue(jail.isEnabled())
		self.assertTrue(self._is_logged('No filter set for jail emptyaction'))
		self.assertTrue(self._is_logged('No actions were defined for emptyaction'))
Пример #4
0
	def testStockSSHJail(self):
		jail = JailReader('ssh-iptables', basedir='config') # we are running tests from root project dir atm
		self.assertTrue(jail.read())
		self.assertTrue(jail.getOptions())
		self.assertFalse(jail.isEnabled())
		self.assertEqual(jail.getName(), 'ssh-iptables')
		jail.setName('ssh-funky-blocker')
		self.assertEqual(jail.getName(), 'ssh-funky-blocker')
Пример #5
0
	def testGlob(self):
		d = tempfile.mkdtemp(prefix="f2b-temp")
		# Generate few files
		# regular file
		open(os.path.join(d, 'f1'), 'w').close()
		# dangling link
		os.symlink('nonexisting', os.path.join(d, 'f2'))

		# must be only f1
		self.assertEqual(JailReader._glob(os.path.join(d, '*')), [os.path.join(d, 'f1')])
		# since f2 is dangling -- empty list
		self.assertEqual(JailReader._glob(os.path.join(d, 'f2')), [])
Пример #6
0
    def testGlob(self):
        d = tempfile.mkdtemp(prefix="f2b-temp")
        # Generate few files
        # regular file
        open(os.path.join(d, 'f1'), 'w').close()
        # dangling link
        os.symlink('nonexisting', os.path.join(d, 'f2'))

        # must be only f1
        self.assertEqual(JailReader._glob(os.path.join(d, '*')),
                         [os.path.join(d, 'f1')])
        # since f2 is dangling -- empty list
        self.assertEqual(JailReader._glob(os.path.join(d, 'f2')), [])
Пример #7
0
	def testGlob(self):
		d = tempfile.mkdtemp(prefix="f2b-temp")
		# Generate few files
		# regular file
		f1 = os.path.join(d, 'f1')
		open(f1, 'w').close()
		# dangling link
		
		f2 = os.path.join(d, 'f2')
		os.symlink('nonexisting',f2)

		# must be only f1
		self.assertEqual(JailReader._glob(os.path.join(d, '*')), [f1])
		# since f2 is dangling -- empty list
		self.assertEqual(JailReader._glob(f2), [])
		self.assertTrue(self._is_logged('File %s is a dangling link, thus cannot be monitored' % f2))
		self.assertEqual(JailReader._glob(os.path.join(d, 'nonexisting')), [])
		os.remove(f1)
		os.remove(f2)
		os.rmdir(d)
Пример #8
0
	def testFailModelRead(self):
		"""
		Test that the client can successfully read a fail model and
		send it to the server
		"""
		#Naive way to reach "testcases/files"
		#TODO: Look at other tests and see how thay do that. I suspect
		#that it all happens in fail2ban-testcases
		from os.path import dirname
		test_dir  = dirname(__file__)

		
		fail_model_jail = JailReader("ats-ddos-model")
		fail_model_jail.setBaseDir(test_dir + "/files")
		fail_model_jail.read()
		fail_model_jail.getOptions()
Пример #9
0
	def testSplitAction(self):
		action = "mail-whois[name=SSH]"
		expected = ['mail-whois', {'name': 'SSH'}]
		result = JailReader.splitAction(action)
		self.assertEqual(expected, result)

		self.assertEqual(['mail.who_is', {}], JailReader.splitAction("mail.who_is"))
		self.assertEqual(['mail.who_is', {'a':'cat', 'b':'dog'}], JailReader.splitAction("mail.who_is[a=cat,b=dog]"))
		self.assertEqual(['mail--ho_is', {}], JailReader.splitAction("mail--ho_is"))

		self.assertEqual(['mail--ho_is', {}], JailReader.splitAction("mail--ho_is['s']"))
		self.assertTrue(self._is_logged("Invalid argument ['s'] in ''s''"))

		self.assertEqual(['mail', {'a': ','}], JailReader.splitAction("mail[a=',']"))
		
		self.assertRaises(ValueError, JailReader.splitAction ,'mail-how[')
Пример #10
0
	def testSplitAction(self):
		action = "mail-whois[name=SSH]"
		expected = ['mail-whois', {'name': 'SSH'}]
		result = JailReader.splitAction(action)
		self.assertEquals(expected, result)
Пример #11
0
 def testSplitAction(self):
     action = "mail-whois[name=SSH]"
     expected = ['mail-whois', {'name': 'SSH'}]
     result = JailReader.splitAction(action)
     self.assertEqual(expected, result)