Linux服務器允許和限制訪問
通過/etc/hosts.allow和/etc/hosts.deny兩個配置文件遠程限制某個IP和某段IP地址允許或拒絕訪問Linux服務器
SSH、FTP、telnet等服務,其中/etc/hosts.allow表示允許訪問的IP,/etc/hosts/deny表示拒絕訪問的IP。
hosts.allow和hosts.deny屬於tcp_Wrappers防火墻的配置文件,而用tcp_Wrappers防火墻控制某一服務訪問策
略的前提是,該服務支持tcp_Wrappers防火墻,即該服務應用了libwrapped庫文件。
可以通過以下命令查看SSH是否應用了libwrapped庫文件:
#如果有顯示下面libwrap.so.0就表示SSH應用了libwrapped庫文件,如果沒有顯示就表示SSH沒用應用了
libwrapped庫文件,可以重裝SSH可以解決。
[root@VMredhat6 etc]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f9e49a2b000)
[root@VMredhat6 ~]# vim /etc/hosts.allow
[root@VMredhat6 ~]# vim /etc/hosts.deny
標註:
1.一個IP請求連入,linux服務器首先檢查策略/etc/hosts.allow中是否允許,如果允許直接放行;如果沒有,則再看/etc/hosts.deny中是否禁止,如果禁止那麽就禁止連入。一般hosts.allow設置IP允許,hosts.deny則需要設置其它IP禁止登s錄。
2.實操CentOS發現修改/etc/hosts.allow和/etc/hosts.deny配置不用重啟就立即生效,但不管重啟不重啟當前已有會話都不會受影響;也就是說對之前已經連入的,即便IP已配置為禁止登錄會話仍不會強制斷開。但不確定其它版本Linux會不會這樣子。
3.網上發現有些教程寫成不是sshd而是in.sshd不是in.telnetd而是telnetd的,個人覺得應該是獨立啟的不用加in.托管於xinetd的需要加in.
Linux服務器允許和限制訪問