服務器安全標準文檔html
#修改ssh配置文件,開啓 RermitRootLogin, 並改成 no; vim /etc/ssh/sshd_config #LoginGraceTime 2m PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #重啓 sshd 服務 /etc/init.d/sshd restart
#針對指定用戶設置, 首先進入用戶的家目錄, 修改 .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 #聲明生效, 或者退出終端從新登陸生效;
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
# 密碼必須符合複雜度的要求: 字母, 數字, 特殊符號組成, 且長度大於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: 定義用戶密碼中必須包含多少個特殊字符(除數字,字母以外);
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:::
# 查看用戶的按期修改的信息 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 用戶名
# remember=5 表示 5 次 vim /etc/pam.d/system-auth password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
# 查看系統中是否含有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
禁止外網開放ssh映射端口shell
#服務器但凡開放到ssh端口至公網,都會有風險。因此咱們建議不用ssh直連的方式,能夠經過專門的跳板機進行跳轉登陸
10.採用jumpserver跳板機機制,進行登陸服務器操做vim
新搭建的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 #重載設置
12.配置history時間戳,服務器信息加固bash
1.備份配置文件: 略 2.編輯配置文件: vi /etc/profile 在文件的末尾添加參數 export HISTTIMEFORMAT="%F %T `whoami` " 3.保存配置文件 4.服務器日誌信息加固(宿主機手動執行,不能用腳本) export HISTTIMEFORMAT="%F %T `whoami`" export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; }); logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg";}'
13.設置grup密碼服務器
1.備份配置文件 cp -a /etc/grub.d/00_header /etc/grub.d/00_header.default 2.使用grub2-mkpasswd-pbkdf2 加密密碼(密碼本身定義,可是必定得保存好不然最後連本身都登陸不進去) [root@localhost ~]# grub2-mkpasswd-pbkdf2 Enter password: Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A 3.添加如下配置到該文件的最後面(特別須要注意 用戶名root和密文之間是空格分隔,而不是換行) cat <<EOF set superusers='root' password_pbkdf2 root grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A E0F 4.執行命令grub2-mkconfig -o /boot/grub2/grub.cfg 從新編譯生成grub.cfg文件
14.最大文件打開數(文件句柄數)cookie
1.備份配置文件 cp -a /etc/security/limits.conf /etc/security/limits.conf.default 2.添加如下兩行配置到該文件最後 * soft nofile 65535 * hard nofile 65535
15.用戶最大進程數運維
1.備份配置文件 cp -a /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.default 2.修改配置文件vim /etc/security/limits.d/20-nproc.conf * soft nproc 65535 * hard nproc 65535
16.系統參數調優ssh
1.備份配置文件 cp -a /etc/sysctl.conf /etc/sysctl.conf.default 2.添加如下調優參數到該文件中 net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.route.gc_timeout = 20 net.ipv4.tcp_retries2 = 5 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_wmem = 8192 131072 16777216 net.ipv4.tcp_rmem = 32768 131072 16777216 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.core.somaxconn = 262144 net.core.netdev_max_backlog = 262144 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.route.gc_timeout = 20 net.ipv4.ip_local_port_range = 10024 65535 net.ipv4.tcp_retries2 = 5 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_wmem = 8192 131072 16777216 net.ipv4.tcp_rmem = 32768 131072 16777216 net.ipv4.tcp_mem = 94500000 915000000 927000000 fs.file-max = 65535 kernel.pid_max = 65536 net.ipv4.tcp_wmem = 4096 87380 8388608 net.core.wmem_max = 8388608 net.core.netdev_max_backlog = 5000 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_max_syn_backlog = 10240 net.core.netdev_max_backlog = 262144 net.core.somaxconn = 262144 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 120 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_max_tw_buckets = 36000
引用:
https://www.cnblogs.com/haorong/p/10569688.html
https://www.cnblogs.com/heaven-xi/p/9984561.htmltcp