服務器安全配置

服務器安全標準文檔

  1. 禁止root用戶直接登錄
    #修改ssh配置文件,開啓 RermitRootLogin, 並改爲 no;
    vim /etc/ssh/sshd_config
    #LoginGraceTime 2m
    PermitRootLogin no
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    #重啓 sshd 服務
    /etc/init.d/sshd restart
  2. 設置用戶無操作超時自動退出
    #針對指定用戶設置, 首先進入用戶的家目錄, 修改 .bash_profile 文件, 300秒;
    cd /home/tian
    ls -a
    .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc
    vim .bash_profile
    export TMOUT=300
    #修改 /etc/profile 文件, 全局所有用戶生效;
    vim /etc/profile
    ... ...
    export TMOUT=300
    source /etc/profile                #聲明生效, 或者退出終端重新登錄生效;
  3. 修改系統的ssh登錄端口
    vim /etc/ssh/sshd_config        # 修改ssh配置文件
    #Port 22                 # 默認爲22端口,可去掉註釋直接修改,也可以如下行;
    Port 52353               # 修改爲想要設置的端口號
    # 端口的取值範圍是 0--65535; 1024以下是系統使用的端口, 我們可使用的端口是1024--65535;
    # 沒有關閉防火牆的情況下,修改端口後,一定要修改防火牆規則;否則重啓了sshd服務後,遠程連接不上;
    # 添加防火牆規則,進入服務器,端口52353;
    firewall-cmd --zone=public --add-port=52353/tcp --permanent
    # 保存添加的防火牆規則;
    firewall-cmd --reload
    # 重啓sshd服務,修改ssh登錄端口生效;
    systemctl restart firewalld
  4. 設置密碼複雜度
    # 密碼必須符合複雜度的要求: 字母, 數字, 特殊符號組成, 且長度大於8位
    vim /etc/pam.d/system-auth
    # password    requisite   pam_cracklib.so try_first_pass retry=3 type=
    password    requisite     pam_cracklib.so retry=3 difok=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1
    # 參數
    * try_first_pass: 表明該模塊首先應當使用前一個模塊從用戶那裏得到的密碼,如果該密碼不通過,再提示用戶輸入新的密碼;
    * debug:將調試信息寫入日誌;
    * type=xxx:當天價/修改密碼時, 系統給出的缺省提示符是"New UNIX password:"以及"Retype UNIX password:", 而使用該參數可以自定義輸入密碼的提示符,比如制定type=your own word;
    * retry=N:定義登錄/修改密碼失敗時,可以重試的次數;
    * Difok=N:定義新密碼中必須有幾個字符要與舊密碼不同.但是如果新密碼中有1/2以上的字符與舊密碼不同時,該新密碼將被接受;
    * minlen=N: 定義用戶密碼的最小長度;
    * dcredit=-N: 定義用戶密碼中必須包含多少個數字;
    * ucredit=-N: 定義用戶密碼中必須包含多個大寫字母;
    * lcredit=-N: 定義用戶密碼中必須包含多少個小寫字母;
    * ocredit=-N: 定義用戶密碼中必須包含多少個特殊字符(除數字,字母之外);
  5. 設置密碼有效期
    chage -M 天數 用戶名            # 方法一
    passwd -x 天數 用戶名            # 方法二
    # 操作
    grep tian /etc/shadow
    tian:!!:17976:0:99999:7:::
    chage -M 60 tian
    grep tian /etc/shadow
    tian:!!:17976:0:60:7:::
  6. 密碼定期修改
    # 查看用戶的定期修改的信息
    chage -l tian
    Last password change                    : Mar 21, 2019
    Password expires                    : never
    Password inactive                    : never
    Account expires                        : never
    Minimum number of days between password change        : 0
    Maximum number of days between password change        : 99999
    Number of days of warning before password expires    : 7
    # 配置用戶密碼定期修改
    vim /etc/login.defs
    ......
    MAIL_DIR /var/spool/mail # 當你在創建用戶的同時,再/var/spool/mail目錄下創建mail文件;
    ......
    PASS_MAX_DAYS   90       # 用戶密碼不過期最多的天數;
    PASS_MIN_DAYS   0        # 密碼修改之間的最小天數;
    PASS_MIN_LEN    8        # 密碼最小長度;
    PASS_WARN_AGE   7        # 密碼過期提前的警告天數;
    ......
    UID_MIN                   500   # 此處兩行設置創建用戶的最小uid和最大uid範圍;
    UID_MAX                 60000
    ......
    GID_MIN                   500   # 此處兩行是設置GID;
    GID_MAX                 60000
    ......
    CREATE_HOME     yes     # 創建用戶的時候是否創建家目錄;
    UMASK       077         # 家目錄的權限初始值;
    ......
    USERGROUPS_ENAB yes     # 當一個組只有一個用戶存在的時候,刪除用戶的同時刪除組;
    ENCRYPT_METHOD SHA512   # 指定password的機密方法;
    # 要求用戶下次登錄時修改密碼
    chage -d 0 用戶名
  7. 重設密碼5次不能重複
    # remember=5 表示 5 次
    vim /etc/pam.d/system-auth
    password    sufficient    pam_unix.so sha512 shadow nullok     try_first_pass use_authtok remember=5
  8. 限定登錄錯誤次數,超時鎖定時長
    # 查看系統中是否含有pam_tally2.so模塊
    find / -type f -name "pam_tally2.so"
    ......
    # 修改配置文件, 設置密碼錯誤 5 次, 鎖定 20 分鐘; 第二行添加以下內容;
    vim /etc/pam.d/sshd
    auth   required     pam_tally2.so deny=5 unlock_time=12000
  9. 禁止外網開放ssh映射端口

    #服務器但凡開放到ssh端口至公網,都會有風險。所以我們建議不用ssh直連的方式,可以通過專門的跳板機進行跳轉登錄
    10.採用jumpserver跳板機機制,進行登錄服務器操作

    新搭建的jumpserver堡壘機可以很好的解決關於登錄服務器操作的問題,服務器無需對公網開放ssh端口,只需要對jumpserver所在服務器開放內網訪問即可,更安全,而且我們可以通過對不同用戶設定不通的組別,比如,開發,運維,分別使用不通的組,有着不同的權限管理,對應着不同的系統管理用戶,比如開發是沒有sudo權限,但是運維需要管理服務器,則會需要有sudo權限。
    11.開啓firewalld防火牆,對非必須對外端口進行嚴格管控

    systemctl start firewalld #開啓防火牆
    firewall-cmd --zone=public --add-port=80/tcp --permanent #開通80端口,其他端口一樣。
    firewall-cmd --add-service=http --permanent #開通http訪問
    firewall-cmd --reload  #重載設置

引用:
https://www.cnblogs.com/haorong/p/10569688.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章