需求:html
windows and Linux系統僅限指定的IP或網段登錄linux
解決方法和思路:nginx
1. Windows設置的方法有多種:shell
方法一:經過本機自帶的防火牆設置限制IP訪問,修改下面三個規則屬性:windows
點擊屬性,查看對應設置:安全
設定能夠訪問的地址段或IP,便可服務器
方法二:經過IP安全策略控制:app
打開本地安全策略:ssh
開始-運行-輸入secpol.msc或者開始-程序-管理工具-本地安全策略tcp
彈出來的窗口中,右擊IP安全策略,在本地計算機
鼠標右鍵,選擇管理IP篩選器列表和篩選操做:
設定源地址和目的地址:
修改訪問的協議和端口,默認全部:
再加一個deny的策略:
在篩選器裏調整策略便可:
方法三:經過AD服務器上的指定計算機登錄,這點在此不作說明。
(須要加入AD域,而後對用戶進行設置指定登錄)
參考文件地址:http://www.it165.net/os/html/201311/6707.html
Linxu 系統指定IP訪問控制:
解決方法和思路:
1.經過修改/etc/hosts/allow 和 /etc/hosts.deny 這兩個文件來控制遠程訪問,須要安裝tcp_wrappers
輸入ldd /usr/sbin/sshd ,若是輸出中有libwrap,則說明可使用tcp_wrappers,即該服務可使用/etc/hosts/allow 和 /etc/hosts.deny ,
若是沒有輸出libwrap,則須要安裝。
經過命令查看:
rpm -q tcp_wrappers 或者 rpm -qa | grep tcp
先來看容許的:
[root@nginx ~]# cat /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.
#
# for the shell
sshd:11.8.,12.1.,18.3.:allow
這個意思是容許 11.8.0.0 and 12.1.0.0 and 18.3.0.0 容許訪問服務器的sshd服務。
再看拒絕的:
編輯 /etc/hosts.deny 文件,添加以下語句,拒絕全部ssh請求
sshd:all
此時此刻還能夠繼續增強修改:
第一步: 以root身份SSH登陸到服務器。
第二步:在命令提示符下輸入:pico -w /etc/ssh/sshd_config
第三步:向下翻頁,在這個文件中找到像這樣的區域:
Port 22
Protocol 2, 1
ListenAddress 0.0.0.0
ListenAddress ::
第四步:取消註釋符號#,並修改
端口:#Port 22
改成:Port 8899
(選擇你未被使用的4到5位數字組成的端口(49151是最高端口數))
協議: #Protocol 2, 1
改成: Protocol 2
監聽地址 #ListenAddress 0.0.0.0
改成:ListenAddress 192.168.1.100(這裏的地址改成你本身訪問服務器經常使用的客戶端ip地址)
第五步 若是你想禁用直接用root登陸,向下翻知道你看見
#PermitRootLogin yes
改成PermitRootLogin no
按住Ctrl鍵保存修改,在按Ctrl + x組合鍵退出。
第六步 在命令提示符下輸入: /etc/rc.d/init.d/sshd restart
第七步 退出SSH,之後再登陸就必須使用新的端口號(如:49151),而且服務器限制只容許從一個指定的IP地址(如:192.168.1.100)SSH登陸了。
注意事項:
若是修改後出現不能登陸或者其餘問題,你只須要爲服務器接上顯示器 或者 Telnet 到你的服務器,修改設置,而後再從新SSH登陸。Telnet 是一個很是不安全的協議,因此在你使用它以後最好是修改一下你的root密碼。
或者
linux限制IP訪問ssh
在/etc/hosts.allow輸入
(其中192.168.10.88是你要容許登錄ssh的ip,或者是一個網段192.168.10.0/24)
sshd:192.168.10.88:allow
在/etc/hosts.deny輸入(表示除了上面容許的,其餘的IP都拒絕登錄ssh)
sshd:ALL
更改端口
vi /etc/ssh/sshd_config
port 3333
最後一行加上ip
allowusers root@ip ------------------容許某個ip用什麼賬戶登
最後,執行service xinetd restart重啓服務或者
# /etc/rc.d/init.d/xinetd restart
# /etc/rc.d/init.d/network restart
(the end)