cat /etc/redhat-release
chage -l webapp
cat /etc/passwd
ll /etc/passwd
ll /etc/shadow
ll /etc/profile
cat /etc/security/limits.conf
ps aux |grep syslog
ps aux |grep audit
service --status-all |grep mysqld
############################################################
Linux的敏感標記采用SELINUX
#############################################################
查看系統密碼修改記錄:
一:查看shadow第三字段
[root@localhost etc]# date -u -d "1970-01-01 UTC $((17856*86400)) second"
Wed Nov 21 00:00:00 UTC 2018
17856是/etc/shadow中第三字段的數字
二:查看日志文件:
[root@localhost pam.d]# cat /var/log/secure |grep 'password changed'
Nov 21 13:41:28 localhost passwd: pam_unix(passwd:chauthtok): password changed for d
Nov 21 23:39:56 localhost passwd: pam_unix(passwd:chauthtok): password changed for d
三:chage -l d
[root@localhost pam.d]# chage -l d
Last password change : Nov 21, 2018
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
##############################SSH登錄限制配置##################################
SSH登錄限制指定ip:
vi /etc/hosts.allow
sshd:192.168.0.100:allow //允許IP 192.168.0.100 登錄
sshd:192.168.0.:allow //允許IP 192.168.0. ?網段登錄
sshd:all:deny //禁止其他的所有IP登錄
限制指定用戶:
vi /etc/ssh/sshd_config 末尾添加下面一行
AllowUsers root@192.168.198.1 表示只允許root用戶從192.168.198.1 Ip登錄
還可以使用PAM模塊:
僅僅允許kevin用戶可以通過ssh遠程登錄。做法如下:
在/etc/pam.d/sshd文件中添加一條(務必添加到文件的第一行!):
auth required pam_listfile.so item=user sense=allow file=/etc/sshdusers onerr=succeed
接着echo "kevin" >/etc/sshdusers //文件/etc/sshdusers是在上面添加到/etc/pam.d/sshd中定義的
#################################主機安全-資源控制-C#################################
******c) 應限制單個用戶對系統資源的最大或最小使用限度
ulimit -a 用來顯示當前的各種用戶進程限制
有個open files (-n) 1024 表示最大打開文件數
硬限制是實際的限制,而軟限制,是warnning限制,只會做出warning;其實ulimit命令本身就有分軟硬設置,加-H就是硬,加-S就是軟
默認顯示的是軟限制,如果運行ulimit命令修改的時候沒有加上的話,就是兩個參數一起改變。
ulimit -n 查詢當前終端的文件句柄數(查看Linux系統里打開文件描述符的最大值,缺省1024)
ulimit -Hn Hard
Linux 系統的最大進程數和最大文件打開數限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
說明:* 代表針對所有用戶
noproc 代表最大進程數
nofile 代表最大文件打開數
soft是一個警告值,而hard則是一個真正意義的閥值,超過就會報錯
##################################查看所有用戶創建的進程數###############################
查看所有用戶創建的進程數
[root@localhost security]# ps h -Led -o user | sort | uniq -c | sort -n
1 dbus
2 postfix
6 polkitd
101 root
#####################################用戶密碼的強健性配置################################
用戶密碼的強健性進行檢測:
pam_cracklib.so模塊
pam_cracklib.so是一個常用並且非常重要的PAM模塊。該模塊主要的作用是對用戶密碼的強健性進行檢測。即檢查和限制用戶自定義密碼的長度、復雜度和歷史等。如不滿足上述強度的密碼將拒絕用戶使用。pam_cracklib.so比較重要和難於理解的是它的一些參數和計數方法,其常用參數包括:
=============================================
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:定義用戶密碼中必須至少包含多少個特殊字符(除數字、字母之外);
特別要注意:
當N>0時,N代表新密碼中最多可以有N個指定的字符!!
當N<0時,N代表新密碼中最少可以有N個指定的字符!!
同時建議重啟系統使之生效!
===============================================
/etc/pam.d/login文件里包含了/etc/pam.d/system-auth文件的配置
/etc/pam.d/system-auth
【pam_cracklib.so的參數按如下方式指定:
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=2 ucredit=0 lcredit=0 ocredit=0
強迫用戶設置的密碼不能與過去3次內的密碼重復
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=3
特別注意:/etc/pam.d/system-auth下的配置針對的是普通用戶,在root用戶下是無效的
】
【限制kevin用戶最多同時登陸4個?(同時可以限制root用戶)
這需要pam_limits.so模塊。由於/etc/pam.d/system-auth中,默認就會通過pam_limits.so 限制用戶最多使用多少系統資源.
[root@centos6-test06 ~]# cat /etc/pam.d/system-auth|grep limits.so
session required pam_limits.so
因此只需要在/etc/security/limits.conf 中加入以下內容:
[root@centos6-test06 ~]# vim /etc/security/limits.conf
......
kevin hard maxlogins 4
】
【某用戶連續登陸失敗2次就鎖定該賬號,禁止登陸
pam_tally2.so的PAM模塊,來限定用戶的登錄失敗次數,如果次數達到設置的閾值,則鎖定用戶
[root@centos6-test06 ~]# vi /etc/pam.d/login //在#%PAM-1.0下面添加一行,否則還是可以
#%PAM-1.0
auth required pam_tally2.so onerr=fail deny=2 unlock_time=300 even_deny_root root_unlock_time=10
如果不支持pam_tally2,可以使用pam_tally模塊
上面的配置只是限制了用戶從tty終端登錄,而沒有限制遠程ssh登錄,如果想限制遠程登錄,需要在/etc/pam.d/sshd文件里配置
vim /etc/pam.d/sshd
even_deny_root 也限制root用戶;
deny 設置普通用戶和root用戶連續錯誤登陸的最大次數,超過最大次數,則鎖定該用戶
unlock_time 設定普通用戶鎖定后,多少時間后解鎖,單位是秒;
root_unlock_time 設定root用戶鎖定后,多少時間后解鎖,單位是秒;
####################################查看用戶登錄失敗次數###############################
查看用戶登錄失敗次數
[root@localhost pam.d]# pam_tally2 --user root
Login Failures Latest failure From
root 0
解鎖指定用戶
pam_tally2 -r -u root
##############################shadow和passwd組成########################################
/etc/shadow字段組成
登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:
第二列:
①.該列留空,即”::”,表示該用戶沒有密碼。
②.該列為”!”,即”:!:”,表示該用戶被鎖,被鎖將無法登陸,但是可能其他的登錄方式是不受限制的,如ssh公鑰認證的方式,su的方式。
③.該列為”“,即”::”,也表示該用戶被鎖,和”!”效果是一樣的。
④.該列以”!”或”!!”開頭,則也表示該用戶被鎖。
⑤.該列為”!!”,即”:!!:”,表示該用戶從來沒設置過密碼。
⑥.如果格式為”$id$salt$hashed”,則表示該用戶密碼正常。其中$id$的id表示密碼的加密算法,$1$表示使用MD5算法,$2a$表示使用Blowfish算法,”$2y$”是另一算法長度的Blowfish,”$5$”表示SHA-256算法,而”$6$”表示SHA-512算法,
目前基本上都使用sha-512算法的,但無論是md5還是sha-256都仍然支持。$salt$是加密時使用的salt,hashed才是真正的密碼部分。
如果為空,則對應用戶沒有口令,登錄時不需要口令;
星號代表帳號被鎖定;
雙嘆號表示這個密碼已經過期了;
$6$開頭的,表明是用SHA-512加密;
$1$表明是用MD5加密;
$2$ 是用Blowfish加密;
$5$ 是用 SHA-256加密;
/etc/passwd字段組成
注冊名:口令:用戶標識號:組標識號:用戶名:用戶主目錄:命令解釋程序
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
用戶標識號:1-99由系統保留,作為管理賬號,普通用戶的標識號從100開始。在Linux系統中,這個界限是500。
組標識號:對應着/etc/group文件中的一條記錄
####################################文件默認權限:umask################################
文件默認權限:umask 反碼計算
[root@localhost pam.d]# umask
0022 第一位0是特殊權限,不用管
700-022=755 這是目錄,那文件就是644
臨時修改就是再umask 后面加數字
永久修改需要 /etc /profile中末尾加上umask *** 及其他umask值
一般來說,umask命令是在/etc /profile文件中設置的,每個用戶在登錄時都會引用這個文件,所以如果希望改變所有用戶的umask,可以在該文件中加入相應的條目。如果希望永久 性地設置自己的umask值,那么就把它放在自己$HOME目錄下的.profile或.bash_profile文件中。
##################################SSH 連接超時####################################
SSH 連接超時
1.修改sshd_config文件
vim /etc/ssh/sshd_config
ClientAliveInterval 0 修改保持連接時間,
ClientAliveCountMax 3 修改保持連接次數。
說明: 保持連接為60(秒),嘗試連接數為3(次):表明每隔1分鍾觸發一次連接,3次連續失敗后,自動斷開連接。
---------------------
2.設置ssh超時斷連
vim /etc/profile
在
HOSTNAME
HISTIZE
后追加timeout超時時間
TMOUT=300;300表示超過300秒無操作即斷開連接。
#######################################################################################
密碼強度要求:
/etc/login.defs (對root用戶無效)
PASS_MAX_DAYS99999注:用戶的密碼不過期最多的天數;
PASS_MIN_DAYS0注:密碼修改之間最小的天數;
PASS_MIN_LEN5注:密碼最小長度;
PASS_WARN_AGE7注:
######################################################################################
檢查除了root以外是否還有其它賬號的UID為0:
awk -F: '($3==0){print $1}' /etc/passwd
===========================================
查看ssl版本,是否有漏洞
openssl version -a
=============================================
groups 查看當前登錄用戶的組內成員
groups gliethttp 查看gliethttp用戶所在的組,以及組內成員
whoami 查看當前登錄用戶名
