This article mainly shares with you how to harden the Linux server operating system. This help manual is designed to guide system managers or security inspectors to check and harden the security compliance of the Linux operating system. Friends in need can refer to it. I hope it can Help everyone.
Reduce useless accounts in the system and reduce security risks.
Operation steps
Use the command userdel <username>
to delete unnecessary accounts.
Use the command passwd -l <username>
to lock unnecessary accounts.
Use the command passwd -u <username>
to unlock the necessary account.
Check whether there is an account with empty password and root authority.
Operation steps
Check the empty password and root permission account to confirm whether there is an abnormal account:
Use the commandawk -F: '($2=="")' /etc/shadow
View the empty password account.
Use the command awk -F: '($3==0)' /etc/passwd
View the account with UID zero.
Reinforce the empty password account:
passwd Set a password for the empty password account.
Operation steps
vi /etc/login.defs to modify the configuration file.
PASS_MAX_DAYS 90 #The maximum number of days for the new user’s password
PASS_MIN_DAYS 0 # The minimum number of days for the password of a new user
PASS_WARN_AGE 7 #The number of days to be reminded in advance for the password expiration of a new user
For example,
chage -m 0 -M 30 -E 2000-01-01 -W 7 means that the maximum number of days for this user's password is set to 30, and the minimum number of days is set to 0, the password will expire on January 1, 2000, and the user will be warned seven days before expiration.
vi /etc/pam.d/common-auth to modify the configuration file and add
auth required pam_tally.so onerr=fail deny=3 unlock_time=300 in the configuration file.
Operation steps
Use the commandvi /etc/pam.d/su to modify the configuration file and add lines in the configuration file. For example, to only allow users in the test group to su to root, add
auth required pam_wheel.so group=test.
Operation steps
vi /etc/ssh/sshd_configModify the configuration file to change the value of PermitRootLogin to no, save it, and then use
service sshd restart to restart the service.
Operation steps
Use commandchkconfig --level Setting Whether the service is started when the system is powered on at the specified init level.
Operation steps
Use the commandvim /etc/ssh/sshd_config to edit the configuration file.
Set the value of PermitRootLogin to no.
Set Protocol version to 2.
Set the value of MaxAuthTries to 3.
Operation steps
Use the commandvi /etc/profile to modify the configuration file and add the line
umask 027, which is the new The owner of the created file has read, write and execute permissions, users in the same group have read and execute permissions, and other users have no permissions.
Operation steps
Use the commandvi /etc/profile to modify the configuration file. The lines starting with
TMOUT= Note, set to
TMOUT=180, that is, the timeout period is three minutes.
Enable the logging function and configure logging.
Operation steps
Linux system enables the following types of logs by default:
System log (default)/var/log/ messages
cron log (default)/var/log/cron
Note: Some systems may use syslog-ng logs. The configuration file is: /etc/syslog-ng/syslog-ng.conf.
You can configure detailed logs according to your needs. 4.2 Record the login and operation logs of all usersRecord the login operation logs of all users through script code to prevent no evidence after a security incident occurs.Operation steps
1. Run [root@xxx /]# vim /etc/profile to open the configuration file. 2. Enter the following content in the configuration file:history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ]; then USER_IP=`hostname` fi if [ ! -d /var/log/history ]; then mkdir /var/log/history chmod 777 /var/log/history fi if [ ! -d /var/log/history/${LOGNAME} ]; then mkdir /var/log/history/${LOGNAME} chmod 300 /var/log/history/${LOGNAME} fi export HISTSIZE=4096 DT=`date +"%Y%m%d_%H:%M:%S"` export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT" chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
Note: /var/log/history is the storage location of logs and can be customized.
php Detailed explanation of the most complete basic commands to obtain server operating system information
php Get server operating system related information Method
php Determine the type of server operating system_PHP tutorial
The above is the detailed content of How to harden Linux server operating system. For more information, please follow other related articles on the PHP Chinese website!