今天遇到一臺服務器22端口正常,可是經過ssh鏈接的問題。排查了防火牆和端口問題,半天沒有找出來緣由,後來求助大神,終於明白了經過etc目錄下hosts.deny和hosts.allow文件能夠限制遠程訪問,使用方法以下:linux
修改/etc/hosts.allow文件
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
sshd:210.13.218.*:allow
sshd:222.77.15.*:allow
以上寫法表示容許210和222兩個ip段鏈接sshd服務(這必然須要hosts.deny這個文件配合使用),固然:allow徹底能夠省略的。
固然若是管理員集中在一個IP那麼這樣寫是比較省事的
all:218.24.129.110//他表示接受110這個ip的全部請求!服務器
/etc/hosts.deny文件,此文件是拒絕服務列表,文件內容以下:
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd:all:deny
注意看:sshd:all:deny表示拒絕了全部sshd遠程鏈接。:deny能夠省略。
因此:當hosts.allow和 host.deny相沖突時,以hosts.allow設置爲準。網絡
注意修改完後:
service network restart
重啓網絡服務才能讓剛纔的更改生效ssh
配置優先級:
linux 系統會先檢查/etc/hosts.deny規則,再檢查/etc/hosts.allow規則,若是有衝突 按/etc/hosts.allow規則處理tcp