說明
沒有絕對(duì)的安全梗搅,只有相對(duì)的安全
1. 修改root密碼
root作為超級(jí)管理員可以做很多事情(甚至刪除系統(tǒng))吵冒,密碼簡(jiǎn)單了容易被暴力破解歼捏,建議使用密碼生成器生成一個(gè)16位復(fù)雜的密碼(暴力破解也需要更長(zhǎng)的時(shí)間)代态,不要想著記住密碼了慧起,使用的時(shí)候就復(fù)制-粘貼吧,畢竟作為服務(wù)器當(dāng)上線運(yùn)行的時(shí)候不會(huì)經(jīng)常有用到root權(quán)限祈远。
計(jì)算一下暴力破解16位密碼的時(shí)間(此段可跳過直接往下看)
單個(gè)密碼的可能(95)=(26)小寫字母+(26)大寫字母+(10)數(shù)字+(32)鍵盤上的符號(hào)+(1)空格
16位密碼共有多少種組合呢呆万?
如果普通計(jì)算機(jī)的破解速度為每秒10000000個(gè)(一千萬(wàn)個(gè)還不包括軟件運(yùn)算和網(wǎng)絡(luò)卡頓延遲時(shí)間。车份。谋减。)
一天=60×60×24=86400秒
假設(shè)黑客運(yùn)氣好點(diǎn),暴力嘗試一半就破解了扫沼,我們計(jì)算一下需要多少天
后面還有兩個(gè)個(gè)0呢出爹。。缎除。严就。
需要25470293324750000000天。器罐。梢为。自己計(jì)算一下需要多少年吧。一般別人不會(huì)跟你有生死仇吧轰坊,你的服務(wù)器也不會(huì)重要到國(guó)家戰(zhàn)爭(zhēng)級(jí)別吧铸董。。不會(huì)有人從出生到入土都在破解你一臺(tái)服務(wù)器肴沫。
計(jì)算了這么多粟害,就是說明密碼越長(zhǎng)越好,多一位數(shù)就是指數(shù)級(jí)上升颤芬,自己記不住沒關(guān)系悲幅,可以復(fù)制粘貼嘛。
密碼長(zhǎng)了就安全嗎站蝠?當(dāng)然不是汰具,人家可以攔截你在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包,你輸入了什么都有可能看到沉衣,你復(fù)制-粘貼郁副,人家也復(fù)制-粘貼减牺。豌习。存谎。密碼長(zhǎng)度越長(zhǎng)可防止暴力破解
2. 添加其他用戶,將用戶分組肥隆。
各司其職既荚,權(quán)限不是越大越好,用戶需要什么權(quán)限就分配什么權(quán)限栋艳,可將不同功能的用戶分為不同的組恰聘。
比如:ftp用戶分配在ftp組內(nèi),git分配到git組中吸占。晴叨。。
具體方法如下
linux添加用戶矾屯,用戶組(centos7)傳送門:http://www.reibang.com/p/f468e02f38a0
3. 更換ssh登錄端口
ssh默認(rèn)端口為22兼蕊。默認(rèn)的東西你知我知。
- 修改sshd_config文件(關(guān)于ssh的配置大多都在這個(gè)文件中)
vim /etc/ssh/sshd_config
搜索Port修改為2222端口(端口可自行更改)
理論上可以改成隨意端口件蚕,可是這些端口可能會(huì)和其他服務(wù)沖突孙技,可以參考這里
Port 2222
firewall-cmd --zone=public --add-port=2222/tcp --permanent #開啟防火墻2222端口
systemctl restart firewalld.service #重啟防火墻
systemctl restart sshd.service #重啟ssh服務(wù)
4. 使用密鑰+密碼登錄(雙層保障)
當(dāng)別人通過非暴力破解方式獲取了你的服務(wù)器登錄密碼之后,密碼再長(zhǎng)也沒有用了排作。這個(gè)時(shí)候就需要使用密鑰文件驗(yàn)證了牵啦。如果加上密碼安全系數(shù)相對(duì)會(huì)更高一點(diǎn)。
密鑰是提前生成的妄痪。想要登錄哈雏,必須拿到密鑰文件。拿到密鑰文件后才有資格輸入密碼拌夏。密鑰文件也可以單獨(dú)加密僧著,這樣要登錄服務(wù)器就要獲取到密鑰文件,輸入兩個(gè)密碼障簿。
同時(shí)獲取到這個(gè)三個(gè)條件(密鑰文件盹愚,密鑰密碼,用戶密碼)難度可不是×3了站故。皆怕。。再被別人莫名其妙的登錄那就要想想自己得罪誰(shuí)了西篓,被人家針對(duì)了愈腾。。
使用密鑰+密碼登錄傳送門:http://www.reibang.com/p/b1eeb3f1a2c1
5. 防火墻端口配置
用到什么端口就開什么端口岂津,千萬(wàn)不要為了省事虱黄,直接關(guān)閉防火墻。
防火墻端口設(shè)置常用命令吮成,添加/禁用橱乱,操作后需要重啟或重載防火墻生效辜梳。
systemctl start firewalld #啟動(dòng)防火墻
systemctl stop firewalld #禁用防火墻(防火墻全部關(guān)閉)
systemctl restart firewalld.service #重啟防火墻
firewall-cmd --reload #重啟載入防火配置
systemctl enable firewalld.service #將防火墻加入開機(jī)自啟動(dòng)
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加開啟80端口
firewall-cmd --zone=public --add-port=4000-4010/tcp --permanent #添加開啟4000-4010端口
firewall-cmd --zone=public --remove-port=21/tcp --permanent #禁用21端口
firewall-cmd --query-port=80/tcp #查詢80端口是否開啟
netstat -tunlp |grep ftp #查看ftp端口使用端口情況
netstat -ntlp #查看監(jiān)聽(Listen)的端口
netstat -antp #查看所有建立的TCP連接
iptables -L #查看防火墻規(guī)則
6. 設(shè)置日志文件系統(tǒng)
使用history命令查看當(dāng)前系統(tǒng)用戶操作日志是默認(rèn)10000行這樣的用戶是不夠的。
而且同一個(gè)用戶多個(gè)地方同時(shí)登錄我們就查不到具體那條命令是哪個(gè)用戶在哪個(gè)ip登錄并執(zhí)行的泳叠。
所以我們需要自己創(chuàng)建ssh日志記錄作瞄。
- 編輯profile文件
vi /etc/profile
使用戶登錄后在/tmp/dbasky
目錄生成日志(目錄可自定義修改,修改下面代碼對(duì)應(yīng)目錄即可)
將以下內(nèi)容粘貼到文件底部
#########################日志記錄##############################
PS1="`whoami`@`hostname`:"'[$PWD]'
history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null
使用腳本生效
source /etc/profile
退出用戶危纫,重新登錄
查看日志(默認(rèn)只有root有權(quán)限查看)宗挥,不同用戶會(huì)以用戶名名單獨(dú)創(chuàng)建目錄,使用vi即可查看
7. 最后禁止 root 用戶使用 ssh 登入
當(dāng)服務(wù)器基礎(chǔ)環(huán)境搭建好之后就可以禁用掉root賬號(hào)登錄种蝶,平時(shí)只使用普通賬號(hào)契耿。
如果需要管理員權(quán)限可以在命令前加sudo◇φ鳎或者登錄后切換到root用戶(切換root也盡量少用)宵喂。
禁用root配置
- 修改sshd_config文件
vim /etc/ssh/sshd_config
搜索PermitRootLogin修改為no,yes為允許root賬號(hào)登錄
PermitRootLogin no
重啟ssh服務(wù)
systemctl restart sshd.service
**這個(gè)時(shí)候不要關(guān)閉當(dāng)前的連接会傲,另外開一個(gè)連接進(jìn)行測(cè)試root是否能登錄锅棕。同時(shí)保證有其他用戶可以登錄,如果其他用戶不能登錄還能改回來(lái)淌山。否則你關(guān)閉了連接又沒有其他賬號(hào)可登錄裸燎。想要控制遠(yuǎn)程的服務(wù)器,呵呵F靡伞德绿!→_→ **
(真的關(guān)閉了當(dāng)然不是不能連接,麻煩點(diǎn)退渗。如果自建機(jī)房移稳,帶著鍵盤和顯示器去機(jī)房吧。如果是云服務(wù)器会油,一般登錄管理頁(yè)面都有控制臺(tái)个粱。)