Ejemplo n.º 1
0
	def remove_all_ips(self):
		if not self.require("real_id"):
			return errors.throw(errors.BACKEND_INVALID_INPUT)

		# vps IP addresses
		ac = api.api_call("vm_ips", {
			'vps_id': self.vps_id
		})
		ret = ac.execute()
		if ret != errors.ERR_SUCCESS: return ret

		# remove IPs from iptables
		try:
			ips = ac.output()[0]['ip']

			# loop through IPs and remove
			for ip in ips:
				iptables.delete_rule(
					"PANENTHE_BW", "-d %s" % ip, self.do_execute
				)
				iptables.delete_rule(
					"PANENTHE_BW", "-s %s" % ip, self.do_execute
				)

		except (IndexError, KeyError): pass

		# save rules
		srv = self.get_server()
		error = iptables.save(srv.do_execute, srv.get_remote_distro())

		if error != errors.ERR_SUCCESS:
			return error
Ejemplo n.º 2
0
	def cleanup_bw(self):
		self.require_remote()

		# delete rules
		iptables.delete_rule("FORWARD", "-j PANENTHE_BW", self.do_execute)

		# delete chains
		iptables.delete_chain("PANENTHE_BW", self.do_execute)

		# delete cron
		self.do_execute("sed -r \"/# panenthe_bw$/d\" -i \"%s\"" %
			glob.config.get("paths", "crontab")
		)

		# save iptables rules
		error = iptables.save(self.do_execute, self.get_remote_distro())

		return error
Ejemplo n.º 3
0
	def remove_ip(self):
		if not self.require(["real_id", "ip"]):
			return errors.throw(errors.BACKEND_INVALID_INPUT)

		# incoming traffic
		iptables.delete_rule(
			"PANENTHE_BW", "-d %s" % self.ip, self.do_execute
		)

		# outgoing traffic
		iptables.delete_rule(
			"PANENTHE_BW", "-s %s" % self.ip, self.do_execute
		)

		# save rules
		srv = self.get_server()
		error = iptables.save(srv.do_execute, srv.get_remote_distro())

		if error != errors.ERR_SUCCESS:
			return error
Ejemplo n.º 4
0
	def unsuspend_ip(self):
		if not self.require("ip"):
			return errors.throw(errors.BACKEND_INVALID_INPUT)

		# FORWARD table incoming
		iptables.delete_rule(
			"FORWARD", "-d %s -m comment --comment panenthe_suspend -j %s" % (
				executer.escape(self.ip),
				glob.config.get("server", "suspend_mode")
			),
			self.do_execute
		)

		# FORWARD table outgoing
		iptables.delete_rule(
			"FORWARD", "-s %s -m comment --comment panenthe_suspend -j %s" % (
				executer.escape(self.ip),
				glob.config.get("server", "suspend_mode")
			),
			self.do_execute
		)

		# INPUT table incoming
		iptables.delete_rule(
			"INPUT", "-d %s -m comment --comment panenthe_suspend -j %s" % (
				executer.escape(self.ip),
				glob.config.get("server", "suspend_mode")
			),
			self.do_execute
		)

		# INPUT table outgoing
		iptables.delete_rule(
			"INPUT", "-s %s -m comment --comment panenthe_suspend -j %s" % (
				executer.escape(self.ip),
				glob.config.get("server", "suspend_mode")
			),
			self.do_execute
		)

		# OUTPUT table incoming
		iptables.delete_rule(
			"OUTPUT", "-d %s -m comment --comment panenthe_suspend -j %s" % (
				executer.escape(self.ip),
				glob.config.get("server", "suspend_mode")
			),
			self.do_execute
		)

		# OUTPUT table outgoing
		iptables.delete_rule(
			"OUTPUT", "-s %s -m comment --comment panenthe_suspend -j %s" % (
				executer.escape(self.ip),
				glob.config.get("server", "suspend_mode")
			),
			self.do_execute
		)

		# save rules
		srv = self.get_server()
		error = iptables.save(srv.do_execute, srv.get_remote_distro())

		if error != errors.ERR_SUCCESS:
			return error