The New IBM I 7.5 Security and Auditing Features

Three years later and we finally have a new version of the premium operating system from IBM. Big Blue introduced the arrival of IBM i 7.5 earlier this May and continued to disclose upgrades to the system last month.

There are a lot i 7.4 users can expect with this new addition to the IBM iseries, from updated auditing features to security.

Wondering what IBM i 7.5 means for your business? We have your answers below.

Improved System Security (QSECURITY)

With the i 7.5, users can expect two major security changes: first, system security level 20 is no longer available. What this means is that, with the new i 7.5, IBM has eliminated QSECURITY level 20.

Systems that were already set to level 20 will remain at this level. However, System Security levels that were set to other values can no longer be changed to 20. Even if the value was set on the save for that particular system. If it wasn’t already at level 20 at the time of an update or installation, it won’t be possible to set it to this level.

For the second change, IBM i 7.5 users will also see restrictions on sign-ons. Users who don’t possess a valid profile and have their system security set at 10 will not be able to sign on.

The End of System Service Tools/Dedicated Service Tools (SST/DST) Profiles

Yet another feature users will have to do without on the i 7.5 are the common System Service Tools/Dedicated Service Tools profiles. But not entirely.

The new version in the iseries is only eliminating the eight-digit profiles and replacing them with the newly supported QSCOEN and QSRV SST/DST profiles.

Better Encryption for User Passwords and SST/DST Passwords

Users can expect to see better encryption when it comes to setting passwords on i 7.5. Where the system used to end with a system password level 3, the system has added a QPWDLVL level 4.

And for every level, passwords are not stored on the OS. This step proves IBM’s commitment to the safety of its users by restricting the access and retrieval of users’ passwords.

Due to the different QPWDLVL levels available, password encryption on i 7.5 is different at every level. For example, at QPWDLVL level 0 or 1, the password is only used as a key for string encryption using the DES algorithm. While at level 2 or 3, the encryption is carried out using a cryptographic hash algorithm, SHA-1.

And for the new QPWDLVL level 4, the system relies on Password-Based Key Derivation Function 2.

When the user signs in, the system will compare encryption results, thus ensuring that users’ passwords remain inaccessible to anyone besides the users.

For the SST/DST passwords, IBM has a specialized set of rules used to ensure the safety of the profiles. These are three sets of rules that interact with the QPWDLVL levels according to their encryption language.

Stronger NetServer Server and File Share Security

IBM i 7.5 adds another layer to its security features with NetServer security. This new layer allows administrators to restrict access to files.

The new version goes further by adding hardware and software upgrades to the Integrated File System. Some new features include resilient file sharing.

With these new changes also come the exit points. These points are the Integrated File System Open Exit Program (QIBM_QPOL_OBJ_OPEN) and the Integrated File System Close Exit Program (QIBM_QPOL_OBJ_CLOSE).

You can find these points in both the system and basic ASP. But not in the independent ASP.

Changes to the *PUBLIC rights Settings

Yet another anticipated new feature is the change in the *Public authority. Files with the authority *CHANGE or the authority *ALL will be changed to *USE. This change applies to several files, including those in the QSYS29xx or as it is also known, the secondary language library.

New Journal Entry Table Functions and Graphical Views for Auditing Features

Navigation on i 7.5 leaps beyond what we saw with the earlier versions of the IBM i. One such example is what we see in the Audit Journal function.

Users can now enjoy graphical presentations of their Audit Journal.

Entry tables are also included in the SYSTOOLS to give users enhanced auditing automation.

i 7.5 Navigator Access Changed to DENIED

With i 7.5’s new and more stringent security features, users will experience even more restrictions. Navigator access has also been changed to *DENIED, meaning the QIBM_NAV_ALL_FUNCTION has moved from *ALLOWED to *DENIED. This leaves the power to grant users access in the hands of administrators.

IBM i Job Scheduler Updates

IBM i Job Scheduler has gotten better with the 7.5 version. This new update allows users to pick times when they want the Scheduler to submit or even hold back jobs. All these functions are backed by two commands: the Hold Job Schedule Entry (HLDJOBSCDE) and Release Job Schedule Entry (RLSJOBSCDE).

ZLIB Algorithm for Data Compression

In comes better data compression thanks to the ZLIB algorithm. IBM also announced that with the new system comes better and faster compressions.
In i 7.5, ZLIB will operate on the Nest Accelerator (NX) GZIP on the Power10 microprocessor. The algorithm is also useful for a range of activities on the OS, such as the save command and Geographic Mirroring Synchronization.

Is IBM i 7.5 a Good Investment?

IBM iseries is a force of nature. And we are not just talking about its unparalleled security features. But also its auditing features.

Carrying off from its predecessor, i 7.5 promises easier integrations and supports an impressive 240 processors in Lab Services. It is simply a must for any business.

At Programmers.oi, we help businesses reach their full potential through our robust team of industry experts.

Hire an expert for your business.

I’ve been using Microsoft Visual Studio CODE for years and its capability to support RPG and now C/COBOL for #IBMi is growing stronger. When it matures (and it isn’t there yet) it will wholesale replace RDi as the goto IDE for #IBMi development. So start…

I’ve been using Microsoft Visual Studio CODE for years and its capability to support RPG and now C/COBOL for #IBMi is growing stronger. When it matures (and it isn’t there yet) it will wholesale replace RDi as the goto IDE for #IBMi development. So start…lnkd.in/gbYz7veC

– SQL iQuery for #IBMi (@sqliquery)05:39 – Nov 23, 2022

Happy Thanksgiving from @ngs_software, whether you and your company use #IBMi and #Db2 to quietly manage purchases and inventory, track shipments, update bank accounts and loan payments, produce invoices, record orders, process claims, or maintain ledgers and balance sheets.

Happy Thanksgiving from @ngs_software, whether you and your company use #IBMi and #Db2 to quietly manage purchases and inventory, track shipments, update bank accounts and loan payments, produce invoices, record orders, process claims, or maintain ledgers and balance sheets. pic.twitter.com/jTCx9db3yM

– NGS (@ngs_software)08:09 – Nov 23, 2022

Improvement to GENERATE_PDF

The GENERATE_PDF scalar function has been a wonderful addition to Db2 for i providing a simple way to convert a spool file to a PDF in the IFS.

My only complaint about it has been that I have to pass the spool file number to it, there was no ‘*LAST’ option for the last spool file with that name. Fortunately with IBM i 7.5 and 7.4 TR6 came an enhancement to GENERATEPDF that allows ‘*LAST’.

Using ACS’s “Run SQL Scripts” I could just do the following:

01 VALUES SYSTOOLS.GENERATE_PDF
02 (JOB_NAME => ‘504185/SIMON/SIMON_1’,
03 SPOOLED_FILE_NAME => ‘QSYSPRT’,
04 SPOOLED_FILE_NUMBER => ‘*LAST’,
06 PATH_NAME => ‘/home/simon/file1.pdf’)

I can use the VALUES statement followed by the scalar function, no need for a Select statement. You can see on line 4 that I have used ‘*LAST’, which means it will find the most recent QSYSPRT spool file in that job and use that. The other parameters have not changed.

When I run the statement the returned value of ‘1’ informs me that the statement was successful:

In reality I am more likely to use this is a program or procedure to copy a spool file that the program had just created. This small RPG program is an example of just the part that would convert the spool file to a PDF:

01 **free
02 ctl-opt option(*srcstmt) ;

03 dcl-s ReturnCode packed(1) ;

04 exec sql CALL QSYS2.QCMDEXC(‘DEL OBJLNK(”/home/simon/file1.pdf”)’) ;

05 exec sql SELECT SYSTOOLS.GENERATE_PDF
(JOB_NAME => ‘*’,
SPOOLED_FILE_NAME => ‘QSYSPRT’,
SPOOLED_FILE_NUMBER => ‘*LAST’,
PATH_NAME => ‘/home/SIMON/file1.pdf’)
INTO :ReturnCode
FROM SYSIBM.SYSDUMMY1 ;

06 dsply (‘ReturnCode = ‘ + %char(ReturnCode)) ;

07 *inlr = *on ;

Line 1: In 2022 it has to be totally free RPG.

Line 2: I always add this control option to make it easier for me when the program errors.

Line 3: This is the definition of the variable that will contain the value returned from GENERATE_PDF.

Line 4: I am using the QCMDEXC SQL procedure to execute the Delete object command, DEL, to delete the PDF if it already exists in my folder in the IFS.

Line 5: I have used a Select statement, rather than a Values, in this program. Even though I do not have a file I am getting data from I still need to define one. Here I have used Db2’s dummy file, SYSDUMMY1 in the library SYSIBM. There is only one difference with parameters passed to the scalar function compared to what I showed above. In this statement I am only looking for spool file belonging to the current job, which is indicated by using ‘*’ for the job name. The INTO moves the results from the Select statement into a variable, ReturnCode. As the scalar function returns a value I need a define a variable for it to be returned in.

Line 6: After the SQL statement is executed I am using RPG’s Display operation code, DSPLY, to show the code returned by GENERATE_PDF.

After compiling this program when I call it the value returned by GENERATE_PDF is display on my monitor:

This means I successfully converted my spool file to PDF and copied it to the IFS.

In both of the SQL statements above I have given the parameter names as well as the values for them. The parameter names are optional, I can just list the values. This would change line 5 of the program to:

05 exec sql SELECT SYSTOOLS.GENERATE_PDF
(‘*’,’QSYSPRT’,’*LAST’,’/home/simon/file1.pdf’)
INTO :ReturnCode
FROM SYSIBM.SYSDUMMY1 ;

I will leave you to make up your mind which one to use. Personally I prefer the first version as it is “self-documenting”, meaning by listing the parameter’s names everyone know what the parameters are.

 

You can learn more about the GENERATE_PDF SQL scalar function from the IBM website here.

 

This article was written for IBM i 7.5 and 7.4 TR6.

Verified by MonsterInsights