besides the code above I used these 2 commands to get things working
Set lock out at 3 failed login attempts:
faillog -m 3
Exclude root from this lockout mechanism:
faillog -u root -m 0
as you see I have not defined the lock_time=180 yet since no matter where I put it up there it won't work
where should it be? in order that after 3 or more failed attempts and after wait 3 minutes user can log to the system since for instance he now remember his correct password
Now I can unblock his account manually by faillog -r -u username but I want to avoid that admin task
In my interpretation (tho I'm not sure) this means that lock_time will block access for a certain time after each failed attempt, which would be useful to slow down a brute-force attack. unlock_time, however, sets the time until an account is automatically unlocked after the maximum number of tries.
You do not want accounts like oracle, root, or other major resource owners accounts locked on a production system. If you have people hacking accounts on a production system you should consider other approaches - than lockout.