source: n4d-epoptes-server/trunk/fuentes/install-files/usr/share/n4d/python-plugins/EpoptesServer.py

Last change on this file was 3423, checked in by daduve, 3 years ago

Adding new methods to share new n4d variable as EPOPTES_GROUPS

File size: 2.5 KB
Line 
1import subprocess
2import os
3
4class EpoptesVariables:
5
6       
7        def __init__(self):
8                pass
9               
10        #def __init__
11       
12        def add_group(self,n4d_mode=None):
13               
14                try:
15               
16                        import xmlrpclib as x
17                        c=x.ServerProxy("https://server:9779")
18                        VALOR=c.get_variable(n4d_mode,"VariablesManager","EPOPTES_GROUPS")
19                        #print ("VALOR VARIABLE EPOPTES_GROUPS %s" %VALOR)
20                        if  VALOR==None:
21                                objects["VariablesManager"].add_variable("EPOPTES_GROUPS",{},"","Epoptes Groups",[],False,False)
22                                #print c.add_variable(n4d_mode,"VariablesManager","EPOPTES_GROUPS",{},"","Epoptes Groups",[],False,False)
23                                COMMENT = "[EpoptesVariables] Added variable EPOPTES_GROUPS to VariablesManager"
24                                print ("%s" %COMMENT)
25                                return [True,str(COMMENT)]
26                        else:
27                                COMMENT="[EpoptesVariables] EPOPTES_GROUPS Variable exists in your system, it hasn't been created again"
28                                return [True,str(COMMENT)]
29                except Exception as e:
30                        return [False,str(e)]
31               
32        #def add_group
33       
34       
35        def set_group(self,n4d_mode=None,data=None):
36               
37                try:
38               
39                        import xmlrpclib as x
40                        c=x.ServerProxy("https://server:9779")
41                        objects["VariablesManager"].set_variable("EPOPTES_GROUPS",data)
42                        #c.set_variable(n4d_mode,"VariablesManager","EPOPTES_GROUPS",data)
43                        COMMENT="[EpoptesVariables] EPOPTES_GROUPS has been updated"
44                        print ("%s" %COMMENT)
45                        return [True,str(COMMENT)]
46                               
47                except Exception as e:
48                        return [False,str(e)]
49               
50        #def set_group
51       
52
53
54class EpoptesServer:
55       
56        def __init__(self):
57               
58                self.allowed_ips=set()
59                self.del_epoptes_from_iptables()
60                self.set_drop_epoptes()
61               
62        #def init
63       
64        def del_epoptes_from_iptables(self):
65               
66                p=subprocess.Popen(["iptables-save"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
67                output=p.communicate()[0].split("\n")
68               
69                ret=[]
70               
71                for item in output:
72                        if "--dport 10000" in item:
73                                ret.append("iptables " + item.replace("-A","-D"))
74               
75               
76                for item in ret:
77                        #print(item)
78                        os.system(item)
79               
80               
81        #def parse_iptables
82       
83        def register_ip(self,ip):
84               
85                self.allowed_ips.add(ip)
86                self.set_epoptes_in_iptables()
87                return True
88               
89        #def register_ip
90       
91        def set_drop_epoptes(self):
92               
93                cmd="iptables -A INPUT -p tcp --dport 10000 -j DROP"
94                #print(cmd)
95                os.system(cmd)
96               
97        #
98       
99       
100        def set_epoptes_in_iptables(self):
101               
102                self.del_epoptes_from_iptables()
103                       
104                for item in self.allowed_ips:
105                       
106                        cmd="iptables -A INPUT -p tcp --dport 10000 -s %s -j ACCEPT"%item
107                        #print(cmd)
108                        os.system(cmd)
109                       
110               
111
112                self.set_drop_epoptes()
113               
114                return True
115               
116        #def set_iptables
117       
118       
119#class EpoptesServer
120
121
122if __name__=="__main__":
123       
124        es=EpoptesServer()
125        es.register_ip("10.2.1.189")
126        es.parse_iptables()
Note: See TracBrowser for help on using the repository browser.