Table of Contents
1. Account number and password
1.1 Disable or delete useless accounts
1.2 Check special accounts
4. Log
4.1 syslogd log
Home Operation and Maintenance Linux Operation and Maintenance How to harden Linux server operating system

How to harden Linux server operating system

Feb 24, 2018 am 09:57 AM
linux operating system server

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.

1. Account number and password

1.1 Disable or delete useless accounts

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.

1.2 Check special accounts

Check whether there is an account with empty password and root authority.

Operation steps

  1. 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:

    • ##Use the command

      passwd Set a password for the empty password account.

    • Confirm that the account with UID zero is only the root account.

    1.3 Add password policy

    Enhance the complexity of passwords and reduce the possibility of being guessed.

    Operation steps

    1. Use the command

      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

  • Use the chage command to modify user settings.

    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.

  • If you enter the wrong password three times in a row, your account will be locked for five minutes. Use the command

    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.

  • 1.4 Restrict user su

    Restrict users who can su to root.

    Operation steps

    Use the command

    vi /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.

    1.4 Prohibit root users from logging in directly

    Restrict root users from logging in directly.

    Operation steps

    1. Create a normal permission account and configure a password to prevent remote login;

    2. Use the command

      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.

    2. Service

    2.1 Shut down unnecessary services

    Close unnecessary services (such as ordinary services and xinetd services) to reduce risks.

    Operation steps

    Use command

    chkconfig --level on|off|reset Setting Whether the service is started when the system is powered on at the specified init level.

    2.2 SSH service security

    Strengthen the security of the SSH service to prevent successful brute force cracking.

    Operation steps

    Use the command

    vim /etc/ssh/sshd_config to edit the configuration file.

    • The root account is not allowed to log in to the system directly.

      Set the value of PermitRootLogin to no.

    • Modify the protocol version used by SSH.

      Set Protocol version to 2.

    • Modify the number of allowed password errors (default 6).

      Set the value of MaxAuthTries to 3.

    After the configuration file modification is completed, restart the sshd service to take effect.

    3. File system

    3.1 Set the umask value

    Set the default umask value to enhance security.

    Operation steps

    Use the command

    vi /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.

    3.2 Set login timeout

    Set the connection timeout after system login to enhance security.

    Operation steps

    Use the command

    vi /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.

    4. Log

    4.1 syslogd log

    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

    • ##Security log (default)/var/log/secure

    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 users

    Record 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 &#39;{print $NF}&#39;|sed -e &#39;s/[()]//g&#39;`
    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
    Copy after login

    3. Run [root@xxx /]# source /etc/profile to load the configuration to take effect. .

    Note: /var/log/history is the storage location of logs and can be customized.

    Through the above steps, you can create a new folder named for each user in the /var/log/history directory. Every time a user logs out, a log file with user name, login IP, and time will be generated. Contains all operations performed by this user (except root user).

    At the same time, it is recommended that you use the OSS service to collect storage logs.

    Related recommendations:

    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!

    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    AI Hentai Generator

    AI Hentai Generator

    Generate AI Hentai for free.

    Hot Article

    R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
    4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Best Graphic Settings
    4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. How to Fix Audio if You Can't Hear Anyone
    4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Chat Commands and How to Use Them
    4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    Difference between centos and ubuntu Difference between centos and ubuntu Apr 14, 2025 pm 09:09 PM

    The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

    Centos stops maintenance 2024 Centos stops maintenance 2024 Apr 14, 2025 pm 08:39 PM

    CentOS will be shut down in 2024 because its upstream distribution, RHEL 8, has been shut down. This shutdown will affect the CentOS 8 system, preventing it from continuing to receive updates. Users should plan for migration, and recommended options include CentOS Stream, AlmaLinux, and Rocky Linux to keep the system safe and stable.

    Detailed explanation of docker principle Detailed explanation of docker principle Apr 14, 2025 pm 11:57 PM

    Docker uses Linux kernel features to provide an efficient and isolated application running environment. Its working principle is as follows: 1. The mirror is used as a read-only template, which contains everything you need to run the application; 2. The Union File System (UnionFS) stacks multiple file systems, only storing the differences, saving space and speeding up; 3. The daemon manages the mirrors and containers, and the client uses them for interaction; 4. Namespaces and cgroups implement container isolation and resource limitations; 5. Multiple network modes support container interconnection. Only by understanding these core concepts can you better utilize Docker.

    How to install centos How to install centos Apr 14, 2025 pm 09:03 PM

    CentOS installation steps: Download the ISO image and burn bootable media; boot and select the installation source; select the language and keyboard layout; configure the network; partition the hard disk; set the system clock; create the root user; select the software package; start the installation; restart and boot from the hard disk after the installation is completed.

    How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

    How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

    What to do after centos stops maintenance What to do after centos stops maintenance Apr 14, 2025 pm 08:48 PM

    After CentOS is stopped, users can take the following measures to deal with it: Select a compatible distribution: such as AlmaLinux, Rocky Linux, and CentOS Stream. Migrate to commercial distributions: such as Red Hat Enterprise Linux, Oracle Linux. Upgrade to CentOS 9 Stream: Rolling distribution, providing the latest technology. Select other Linux distributions: such as Ubuntu, Debian. Evaluate other options such as containers, virtual machines, or cloud platforms.

    vscode cannot install extension vscode cannot install extension Apr 15, 2025 pm 07:18 PM

    The reasons for the installation of VS Code extensions may be: network instability, insufficient permissions, system compatibility issues, VS Code version is too old, antivirus software or firewall interference. By checking network connections, permissions, log files, updating VS Code, disabling security software, and restarting VS Code or computers, you can gradually troubleshoot and resolve issues.

    Centos options after stopping maintenance Centos options after stopping maintenance Apr 14, 2025 pm 08:51 PM

    CentOS has been discontinued, alternatives include: 1. Rocky Linux (best compatibility); 2. AlmaLinux (compatible with CentOS); 3. Ubuntu Server (configuration required); 4. Red Hat Enterprise Linux (commercial version, paid license); 5. Oracle Linux (compatible with CentOS and RHEL). When migrating, considerations are: compatibility, availability, support, cost, and community support.

    See all articles