IdsProtectSetTable.java
4.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.sitech.ismp.coll.net.juniper.table;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import org.apache.log4j.Logger;
import org.snmp4j.smi.VariableBinding;
import com.sitech.ismp.snmp.CommSnmpGet;
public class IdsProtectSetTable {
private Logger logger = Logger.getLogger("COLL");
public static final String ROOT_OID = "1.3.6.1.4.1.3224.3.1.1.1.1";
public static final int ATTRIBCOUNT = 13;
private String IP;
Vector rowVector = new Vector();
private void addRow(IdsProtectSetTableRow row) {
rowVector.add(row);
}
public void FillTable(String ip, int port, String community) {
this.IP = ip;
CommSnmpGet snmpGet = new CommSnmpGet(ip, port, community);
snmpGet.init();
snmpGet.setRootOid(ROOT_OID);
try {
snmpGet.workTable(ROOT_OID);
} catch (IOException e) {
// TODO Auto-generated catch block
logger.error("[IP: " + IP + " Coll IdsProtectSetTable failed]");
}
HashMap hm = snmpGet.getWalkHashMap();
Set set = hm.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = (String) hm.get(key);
IdsProtectSetTableRow row = new IdsProtectSetTableRow();
row.setRowIndex(key);
row.setZoneIndex(value);
this.addRow(row);
}
try {
for (int i = 0; i < rowVector.size(); i++) {
IdsProtectSetTableRow row = (IdsProtectSetTableRow) rowVector
.elementAt(i);
String rowIndex = row.getRowIndex();
Vector oidsVector = getOtherOids(rowIndex, ATTRIBCOUNT);
Vector resultVector = snmpGet.getPDU(oidsVector);
for (int j = 0; j < resultVector.size(); j++) {
VariableBinding vb = (VariableBinding) resultVector.get(j);
String oid = vb.getOid().toString();
String var = vb.getVariable().toString();
if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.2.")) {
row.setDetectPOD(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.3.")) {
row.setTearDrop(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.4.")) {
row.setDetectWinNuke(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.5.")) {
row.setFilterIpSrcRoute(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.6.")) {
row.setPortScan(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.7.")) {
row.setAddrSweep(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.8.")) {
row.setLandAttack(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.10.")) {
row.setIPSpoofing(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.11.")) {
row.setSYNAttack(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.12.")) {
row.setICMPFlood(var);
} else if (oid.startsWith("1.3.6.1.4.1.3224.3.1.1.1.13.")) {
row.setUDPFlood(var);
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error("[IP: " + IP + " Coll IdsProtectSetTable failed]");
}
snmpGet.release();
}
public Vector getRrows() {
return rowVector;
}
private Vector getOtherOids(String rowIndex, int attribCount) {
Vector vector = new Vector();
for (int i = 2; i <= attribCount; i++) {
String oid = releaseRootOidLast(ROOT_OID, rowIndex, i);
vector.add(oid);
}
return vector;
}
private String releaseRootOidLast(String rootOid, String rowIndex, int int_i) {
String result = "";
String rowIndexLast = rowIndex.substring(rootOid.length(), rowIndex
.length());
String rootOidStart = rootOid.substring(0, rootOid.length() - 1);
result = rootOidStart + int_i + rowIndexLast;
return result;
}
public static void main(String args[]) {
IdsProtectSetTable idsPSTable = new IdsProtectSetTable();
idsPSTable.FillTable("130.30.15.6", 161, "ahnms2008");
Vector vector = idsPSTable.getRrows();
for (int i = 0; i < vector.size(); i++) {
IdsProtectSetTableRow row = (IdsProtectSetTableRow) vector.get(i);
System.out.println("[ZoneIndex: " + row.getZoneIndex()
+ "] [DetecPODS: " + row.getDetectPOD()
+ "] [DetecTearDrop: " + row.getTearDrop()
+ "] [DetecWinNuke: " + row.getDetectWinNuke()
+ "] [DetecFilterIP: " + row.getFilterIpSrcRoute()
+ "] [DetecPortScan: " + row.getPortScan()
+ "] [DetecAddrSweep: " + row.getAddrSweep()
+ "] [DetecLand: " + row.getLandAttack()
+ "] [DetecIPSpoofing: " + row.getIPSpoofing()
+ "] [DetecSYN: " + row.getSYNAttack() + "] [DetecICMP: "
+ row.getICMPFlood() + "] [DetecUDP: " + row.getUDPFlood()
+ "]");
}
}
}