以下操作旨在通過一些基本操作提升Linux系統(tǒng)的安全性,都是在XShell中連接遠程Ubuntu(16.04版本)服務(wù)器陌粹、用root用戶執(zhí)行的撒犀,文中所寫的命令代碼一開始的$
只是一個標(biāo)志,用來表示后面的文本是命令行命令掏秩,$
符號本身并不代表實際要輸入的命令內(nèi)容或舞。
修改root密碼
先登錄root用戶,輸入命令:
$ passwd
然后輸入新的密碼蒙幻、重復(fù)輸入新的密碼映凳,即可完成修改root密碼。
創(chuàng)建用戶并指定密碼
- 創(chuàng)建用戶:
$ adduser zhangsan
- 其中
zhangsan
為用戶名邮破,新創(chuàng)建的用戶是默認(rèn)沒有密碼的诈豌,還需要繼續(xù)設(shè)置密碼:
$ passwd zhangsan
然后輸入密碼、重復(fù)輸入密碼决乎,即可完成為用戶zhangsan
設(shè)置密碼队询。
禁止root用戶登錄ssh,指定普通用戶才可以登錄
- 打開ssh配置文件:
$ vim /etc/ssh/sshd_config
- 找到
# PermitRootLogin yes
這一行构诚,去掉行首的#
號蚌斩,并把yes
改為no
,然后保存文件。 - 重啟ssh服務(wù):
$ service ssh restart
- 此時不要關(guān)閉當(dāng)前XShell頁(防止出現(xiàn)什么幺蛾子)送膳,打開新的XShell頁用新創(chuàng)建的
zhangsan
用戶看能否通過ssh連上服務(wù)器员魏。
修改ssh登錄端口(默認(rèn)為22)
- 打開ssh配置文件:
$ vim /etc/ssh/sshd_config
- 找到
# Port 22
所在的一行,去掉行首的#
號叠聋,然后在這一行的下方加入新的一行內(nèi)容:Port 2222
這里的2222
就是為ssh新指定的端口號(可以取1024~65535之間的任一個端口) - 保存文件撕阎,重啟ssh服務(wù):
$ service ssh restart
- 看能否通過
2222
端口ssh連上服務(wù)器,如果可以碌补,則繼續(xù)修改ssh配置文件:
$ vim /etc/ssh/sshd_config
- 刪掉
Port 22
所在的一行虏束,保存文件,重啟ssh服務(wù):
$ service ssh restart
- 此時ssh只能通過
2222
端口連接厦章,而通過默認(rèn)的22端口則不再能連接上镇匀。
firewalld防火墻
firewalld是CentOS系統(tǒng)上基于iptables的一個防火墻軟件,也可以在ubuntu上安裝使用袜啃。
安裝firewalld
- 安裝:
$ apt-get install firewalld
- 查看firewalld的幫助:
$ firewall-cmd --help
- 查看防火墻的狀態(tài):
$ firewall-cmd --state
將新指定的ssh端口加入防火墻白名單
只有在防火墻白名單中的端口才允許外界訪問汗侵,而這個白名單默認(rèn)是空的,從而大大保證了安全性群发。
- 增加新指定的ssh端口到防火墻白名單:
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent
其中2222
為新指定的ssh端口晰韵,tcp
表示協(xié)議類型,--permanent
表示持久化保存熟妓。 - 重啟防火墻使其生效:
$ firewall-cmd --reload
- 查看防火墻白名單中的端口:
$ firewall-cmd --list-ports
可以發(fā)現(xiàn)2222
端口已經(jīng)被添加到了防火墻的白名單中雪猪。
添加其他需要的端口到防火墻白名單
比如添加TCP協(xié)議的9999端口:
$ firewall-cmd --zone=public --add-port=9999/tcp --permanent
$ firewall-cmd --reload
$ firewall-cmd --list-ports
測試能否遠程連接到某個端口
$ telnet 1.1.1.123 2333
:測試能否連上IP地址為1.1.1.123
的主機的2333端口。
關(guān)閉firewalld
$ systemctl stop firewalld.service
卸載firewalld
- 查找當(dāng)前firewalld的安裝名:
$ dpkg --list | grep firewalld
- 卸載firewalld:
$ apt-get --purge remove firewalld
注:--purge
表示完全卸載起愈,不保留任何配置文件浪蹂。
ufw防火墻
ufw(Uncomplicated Firewall)也是一種基于iptables的防火墻,Ubuntu 16.04自帶ufw防火墻告材,是其默認(rèn)防火墻,不需要安裝古劲。
安裝ufw
$ apt-get install ufw
查看幫助
$ ufw -h
幫助內(nèi)容如下:
root@vultr:~# ufw --help
Usage: ufw COMMAND
Commands:
enable enables the firewall
disable disables the firewall
default ARG set default policy
logging LEVEL set logging to LEVEL
allow ARGS add allow rule
deny ARGS add deny rule
reject ARGS add reject rule
limit ARGS add limit rule
delete RULE|NUM delete RULE
insert NUM RULE insert RULE at NUM
route RULE add route RULE
route delete RULE|NUM delete route RULE
route insert NUM RULE insert route RULE at NUM
reload reload firewall
reset reset firewall
status show firewall status
status numbered show firewall status as numbered list of RULES
status verbose show verbose firewall status
show ARG show firewall report
version display version information
Application profile commands:
app list list application profiles
app info PROFILE show information on PROFILE
app update PROFILE update PROFILE
app default ARG set default application policy
可以看到斥赋,ufw命令比firewalld是更為簡潔的。
查看ufw狀態(tài)
$ ufw status
開啟ufw
$ ufw enable
關(guān)閉ufw
$ ufw disable
添加一個允許規(guī)則
$ ufw allow 2333/tcp
:允許來自2333端口的tcp請求产艾。
添加一個拒絕規(guī)則
$ ufw deny 2333/tcp
:拒絕來自2333端口的tcp請求疤剑。
刪除一個規(guī)則
$ ufw delete allow 2333/tcp
:刪除"允許來自2333端口的tcp請求"這條規(guī)則。
重啟ufw
$ ufw reload