blob: ff5911b9cf424ffdb49554d80e5f1c6501ab7998 (
plain)
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
|
* Write firewall (iptables) implementation
- Add function declarations in eurephia_firewall.h (DONE)
- Enable firewall functionality by checking if firewall_interface
config variable is set. (DONE)
- Add eDBget_firewall_profile(ctx, session) in eurephiadb (DONE)
- Add eurephia_firewall(ctx, mode{ADD|DELETE}, {profilename|macaddr},
(eurephiaCTX *, const int mode, char *) (DONE)
- This function is located in eurephia_fw_iptables.c (DONE)
- iptables -I {INSERT place} is taken from config:
firewall_destination (DONE)
- iptables -j {vpnuser_profile} is taken from VPN users
accessprofile (DONE)
- Needs probably to be an own thread with root permission and a
socket to send ADD/DELETE commands (DONE)
- Flush iptables chain on startup
* Implement logging of env.variable time_duration on disconnect
- Needs to expand the openvpn_lastlog table with connection_duration
field.
* Log MACaddresses per session into openvpn_macaddr_history
- Can change during a session
CREATE TABLE openvpn_macaddr_history (
sessionkey varchar(64) NOT NULL,
macaddr varchar(20) NOT NULL,
registered timestamp DEFAULT CURRENT_TIMESTAMP,
semaid integer PRIMARY KEY AUTOINCREMENT,
KEY(sessionkey),
KEY(macaddr)
);
- Add insert in database/sqlite/eurphia-sqlite.c -- eDBregister_vpnaddr(...)
* Write admin program
- Add / Delete / Modify users
- Add / Delete / Modify certificates (by loading the certfile)
- Add / Remove user->certlink
- Add / Delete blacklisted users/cert/IP addr
- Show lastlog
- Show blacklist
- Admin program should use eurephiaDB
* Make new eurephiadb-driver_template.c - template for creating db driver
- add new parameter to eDBregister_attempt(...) -- attempt_mode
* Write PostgreSQL driver
* A lot of QA
- Writing test program for DB drivers
- which tests only the driver (loads .so file)
- which tests the API, simulating openvpn calls
- Check that user gets blocked and blacklisted on too many failing attempts
- Check that right connection profiles are used
- Check that user/cert matches
|