[ 
https://issues.apache.org/jira/browse/VCL-753?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Thompson updated VCL-753:
------------------------------
    Fix Version/s:     (was: 2.4)

> Improve user connection checking and how firewall is locked down
> ----------------------------------------------------------------
>
>                 Key: VCL-753
>                 URL: https://issues.apache.org/jira/browse/VCL-753
>             Project: VCL
>          Issue Type: Improvement
>          Components: database, vcld (backend), web gui (frontend)
>    Affects Versions: 2.3.2
>            Reporter: Andy Kurth
>            Priority: Minor
>
> The backend code which detects when a user is logged in and secures the 
> firewall currently relies on the reservation.IPaddress column.  This does not 
> work correctly under some conditions if the IP address the user connects to 
> the website differs from the IP address used to connect to the remote 
> computer -- such as when a user connects to either the website or remote 
> computer through a proxy.
> The backend code can be improved to temporarily open the firewall to any IP 
> address when the request is in the reserved state or when the user clicks the 
> Connect button from a different IP address.  Once a connection is detected, 
> the actual remote IP is retrieved from the OS and the firewall is locked down 
> appropriately.
> This is a fairly complicated change and several things need to be changed in 
> order for everything to work correctly.
> Database changes:
> Add changelog.reservationid column
> The changelog table will be used to record every IP address detected 
> throughout a reservation.  This table does not currently have a reservation 
> ID column and there is no way to determine which reservation a changelog 
> entry refers to -- only which request.  This is needed for cluster requests 
> in order to track which remote IP address was detected on which computer.  
> The changelog.reservationid and changelog.remoteIP columns will have a unique 
> key added in order to prevent an excessive number of rows from being added 
> since a row would be added by every 'inuse' check.
> Add changelog.userid column
> This is needed for server/shared requests. If a user clicks the Connect 
> button and another user is already connected, the backend code will quickly 
> detect the connection from the existing user and lock the firewall down to 
> that user before the user who recently clicked Connect can connect. A 
> changelog.userid column will allow the backend to loop until a connection 
> from a particular user is detected.
> Web front end changes:
> Whenever a user clicks Connect, add a changelog entry with the remoteIP and 
> userid set.  The changelog.reservationid column should be null due to cluster 
> requests.  Clicking Connect for a cluster request applies to all reservations 
> in the cluster.
> Backend changes:
> Rework much of inuse.pm.  Modify the OS module connection method and firewall 
> subroutines as necessary.
> Whenever a connection is detected, add a row to changelog including the 
> reservationid.  If an existing row exists with the same 
> reservationid/remoteIP values, update the timestamp.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to