linux 系統安全
新裝機器的配置
1 設置密碼複雜一點
2 禁止root 遠程ssh 登陸
3 修改ssh端口
4 設置防火牆
5 使用tcp_wrapper
6 禁止control+alt+delelte 重啓
7 檢查:重要文件權限設置
8 限制外來IP地址ping 主機(根據實際情況確定)
9 selinux
已經運行過的服務器,檢查系統安全
1 檢查服務
netstat -an
top
ps -elf
2 檢查哪些用戶在線
w
who
who /var/log/wtmp
users
last
3 檢查安全日誌
less /var/log/secure
專題:linux 系統安全
1 密碼設置複雜一點
2 禁止root本地登錄
vi /etc/pam.d/login
auth required pam_succeed_if.so user != root quiet
禁止root遠程ssh登陸
vi /etc/ssh/sshd_config
PermitRootLogin no
3 修改ssh登陸端口
vi /etc/ssh/sshd_config
修改#port 22爲port 47777
自定義端口選擇建議在萬位的端口(如:10000-65535之間)
重啓SSH服務/etc/init.d/sshd restart
友情小提示:建議不要着急退出本ssh鏈接,新ssh鏈接測試,以防新手設置錯誤登不進來
4 設置防火牆
=================================================================
一 硬件安全
1 bios安全(硬件上的安全)
設置bios密碼
2 禁止使用control+alt+delete 重啓機器
vi /etc/inittab
# ca::ctrlaltdel:/sbin/shutdown -t3 -r now
二 賬號安全
1 vi /etc/login.defs login程序的配置文件,修改密碼長度和有效期
2 vi /etc/profile 環境變量設置文件
3 vi /etc/passwd
4 特別賬號處理
如果不啓動用sendmail,刪除如下用戶
[root@tp wh]# userdel adm
[root@tp wh]# userdel lp
[root@tp wh]# userdel sync
[root@tp wh]# userdel shudown
[root@tp wh]# userdel halt
[root@tp wh]# userdel mail
如果不用X windows服務器.可有刪除
[root@tp wh]# userdel news
[root@tp wh]# userdel uucp
[root@tp wh]# userdel operator
[root@tp wh]# userdel games
如果不允許匿名FTP帳號登陸,可刪除
[root@tp wh]# userdel gopher
[root@tp wh]# userdel ftp
三 重要文件安全設置
1 chmod 改變文件的屬主
2 chattr 改變文件的屬性
我們要做的是把重要文件的屬主改成root並給相應的權限,還有就是改變文件的屬性讓它禁止被修改
1,/etc/passwd,passwd-,passwd.OLD,group,group- 用戶,組的ID等信息文件.
2,/etc/shadow,shadow-,gshadow,gshadow- 用戶,組密碼加密文件.
3,/etc/xinetd.conf 網絡守護進程主配置文件
4,/etc/inittab 系統在啓動是會讀取這個文件裏的內容.
5,/etc/services 防止未經許可的刪除或添加服務
6,/etc/rc.d/rc.sysinit 系統啓動是需要讀取的文件,
7,/etc/rc.d/init.d/*
以一個文件爲例,其它都一樣
[root@tp etc]# chmod 700 passwd
[root@tp etc]# chattr +i passwd
當chattr +i時就是禁止對文件進行修改,當我們要添加用戶時,就會有麻煩,因爲passwd文件禁止修改寫入.所以
我們還要該掉它的屬性.chattr -i.
四 防止***系統安全的設置
1 限制用戶使用系統資源,主要包括資源最大進程數,內存使用量等.這樣可以防止DOS類型***
vi /etc/security/limits.conf
2 vi /etc/pam.d/login
3 vi /etc/securetty 限制控制檯的訪問
4 禁止外來的ping 請求
vi /etc/rc.d/rc.local
在最後加入一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
5 防止IP地址欺騙
vi /etc/host.conf
加入如下幾行
order bind,hosts
multi off
nospoof on
6 禁止su 命令進入root
vi /etc/pam.d/su
...
在下面加入如下兩行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=xxx
這表示只有xxx組的用戶可以su成root.
7 使用tcp_wrapper
vi /etc/hosts.deny
vi /etc/hosts.allow
8 刪減登陸信息
[root@tp ~]# rm -f /etc/issue
[root@tp ~]# rm -f /etc/issue.net
[root@tp ~]# touch /etc/issue
[root@tp ~]# touch /etc/issue.net
五 確保開啓服務的安全性
ps -eaf | wc -l
ps -aux
ntsysv 前面有*號就是開機自動啓動的服務
netstat -an 正在運行的服務
六 日誌文件
通過日誌查看哪些可疑的用戶登錄過機器
三個重要的日誌文件
/var/log/wtmp 記錄每個用戶登陸和推出時間的永久記錄.
/var/run/utmp 記錄當前登陸到系統的每個用戶信息.
/var/log/lastlog 每個用戶最後一次登陸的信息(最新的信息)
wtmp和utmp都是二進制文件,它們要用命令來查看內容.
1,命令who,查看utmp文件當前的每個用戶的信息,它默認輸出包括用戶名,終端類型,登陸時間及遠程主機.
who /var/log/wtmp 如果指明瞭文件,則回顯示自wtmp創建以來所有登陸的用戶信息
2 命令w,查看utmp文件並顯示當前系統中每個用戶和它所運行的進程信息.
3 users,顯示當前當前登陸的用戶數量.
4 last命令,用來顯示wtmp文件第一次 創建以來所有登陸過的用戶.
我們也可以指明用戶,[root@tp log]# last root
5,命令ac,根據wtmp文件中每個用戶進入和退出時間.(以小時計算),不用參數代表全部
1 top命令,查看有沒有異常進程佔用大量的CPU或者是內存資源;
2 查看less /var/log/secure文件,查看ssh日誌,看是否有非法用戶大量嘗試ssh;
3 who命令,查看目前ssh到linux服務器的用戶,是否是合法的;
4 查看在linux服務器上部署的應用是否有漏洞,有的話很容易受到***。
pam 相關內容後續上傳