![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I have a modem connected to the first serial port on my machine and would like to restrict dial-in access to one specific user. This user is mobile so dial-back is not appropriate. Is this possible through some trick or will it be neccessary to run "IF" s in the SYLOGIN.COM to check the port then another to check the username. I am quite new to VMS and as much help as possible would be appreciated. Thanks in advance The Answer is : No tricks, just straight DCL or OpenVMS security features -- take your pick. You can determine a port name using the F$GETDVI lexical function. The item code "TT_PHYDEVNAM" will return the physical device name. Use the logical name "TT" or SYS$COMMAND to refer to the terminal. You should also check for an interactive login (though your SYLOGIN.COM procedure should already be coded to distinguish the different login modes. Suppose the terminal name is _TTA0:, the relevant fragments of SYLOGIN.COM are as follows: $ Set NoOn $ VERIFY = F$VERIFY(F$TRNLNM("SYLOGIN_VERIFY")) $ Goto MODE_'F$MODE()' ... $MODE_INTERACTIVE: ... $ IF F$GETDVI("TT","TT_PHYDEVNAM").EQS."_TTA0:" $ THEN $! login is on TTA0 $! $ ENDIF To check the username, use the lexical function F$GETJPI: user=F$GETJPI("","USERNAME") though, you should note that this value is space filled to 12 characters, so it's probably better to remove blanks it with F$EDIT to simplify comparisons: user=F$EDIT(F$GETJPI("","USERNAME"),"COLLAPSE") So, you can test for specific username(s) and take appropriate action. The problem with this scheme is that it doesn't scale very well. Adding extra dialin ports and/or users is very cumbersome. A better way to handle the issue is to use the built in VMS features to restrict different types of access. First you need to declare the terminal as "DIALUP". Place the following in your SYSTARTUP_VMS.COM procedure: $ SET TERMINAL/PERMANENT/DIALUP TTA0: Any user who logs in on this terminal, or any other with the DIALUP characteristic will have the DIALUP identifier. You can use ACL to grant or deny access to objects by users connected to that port. For example: $ SET SECURITY/ACL=(IDENTIFIER=DIALUP,ACCESS=NONE) filespec The UAF can also be used to restrict dialup access to particular times of the day, or deny access altogether. For example, to deny all DIALUP access for a particular user: UAF> MODIFY user/NODIALUP If this user attempts to login at the DIALUP port, they will get an error message "You are not authorized to login from this source". The benefits of using the UAF are you don't need any code in SYLOGIN.COM, you can add as many dialup modems as you like (a properly configured terminal server will also be recognised as a DIALUP port), you have much greater control over who can dialin and when they can dialin (see the UAF documentation for details on specifying date and time windows), you can selectively protect resources from access by people when dialed in, and you can configure the AUDIT journal to record dialup logins and resource access independently from local accesses. See OpenVMS Guide to System Security, Chapter 3 for discussion of how to usew dialup access in a secure manner.
|