中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • 通過網站不能跳轉登錄的案例來看IP白名單的設置

通過網站不能跳轉登錄的案例來看IP白名單的設置

發布時間:2020-08-06 09:31:49 來源:網絡 閱讀:1896 作者:2012hjtwyf 欄目:數據庫



最近在公司遇到一個問題,進入公司的游戲產品官網注冊一個普通用戶賬號,登錄官網

然后點擊進入該游戲產品的論壇,不能自動跳轉到論壇實現自動登錄


于是自己去官網注冊了一個普通用戶賬號,登錄官網,測試看看,發現確實不能自動跳轉到論壇

登錄論壇的服務器數據庫,查看到數據庫里已經有剛剛注冊的用戶數據了,但密碼沒有同步過來

 

經過和開發的一起分析和故障排查,發現一個報錯程序

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

通過網站不能跳轉登錄的案例來看IP白名單的設置


一.異常信息以及解決辦法

      com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure org.springframework.transaction.CannotCreateTransactionException: 
    Could not open JDBC Connection for transaction; 
    nested exception iscom.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 
    Communications link failureThe last packet successfully received from the server was 6,388 milliseconds ago.  The last packet sent successfully to the server was 1,504 milliseconds ago.at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:240)

異常分析:程序與MySQL通訊失敗了,即連接失敗了。

此為程序打開數據庫連接后,等到做數據庫操作時,發現連接被MySQL關閉掉了

而在MySQL這一層,MySQL5配置上默認將連接的等待時間(wait_timeout)缺省為8小時

連接超過8小時,會導致mysql認為這個連接超時無效,然后進行關閉。

mysql﹥ 
mysql﹥ show global variables like 'wait_timeout'; 
+---------------+---------+ | Variable_name | Value | 
+---------------+---------+ | wait_timeout | 28800 | 
+---------------+---------+ 1 row in set (0.00 sec) 28800 seconds,也就是8小時。

解決辦法(嘗試方案順序可為:(1)(3)(2)):
(1)在jdbc連接url的配置中,你可以附上“autoReconnect=true”,但這僅對mysql5以前的版本起作用。

(2)既然問題是由mysql5的全局變量wait_timeout的缺省值太小引起的,我們將其改大就好了。 
查看mysql5的手冊,發現對wait_timeout的最大值分別是24天/365天(windows/linux)

以windows為 例,假設我們要將其設為21天,我們只要修改mysql5的配置文件“my.ini”(mysql5 installation dir)

增加一行:wait_timeout=1814400 ,需要重新啟動mysql5。 
linux系統配置文件:/etc/my.cnf 

(3)我們可以將數據庫連接池的 validateQuery、testOnBorrow(testOnReturn)打開,這樣在 每次從連接池中取出且準備使用之前(或者使用完且在放入連接池之前)先測試下當前使用是否好用,如果不好用,系統就會自動destory掉
或者testWhileIdle項是設置是否讓后臺線程定時檢查連接池中連接的可用性。


二.根本解決辦法:代碼優化

通過網站不能跳轉登錄的案例來看IP白名單的設置

通過網站不能跳轉登錄的案例來看IP白名單的設置

通過網站不能跳轉登錄的案例來看IP白名單的設置

最終發現是服務器的IP沒有漂白,需要添加IP白名單就可以了

[root@localhost ~]# cat /etc/sysconfig/iptables

################################ db #####################################

-A INPUT -s server IP1/32 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

-A INPUT -s server IP2/32 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


通過這個公司網站跳轉登錄的問題,下面介紹一下Linux如何設置 IP 白名單黑名單


防***可以增加IP白名單/etc/hosts.allow和黑名單/etc/hosts.deny

配置文件格式參考:


修改/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完全可以省略的。www.111cn.net
當然如果管理員集中在一個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設置為準


注意修改完后:www.111Cn.net
service xinetd restart 才能讓剛才的更改生效


/etc/hosts.allow(允許)和/etc/hosts.deny(禁止)這兩個文件是tcpd服務器的配置文件
tcpd服務器可以控制外部IP對本機服務的訪問
linux 系統會先檢查/etc/hosts.deny規則,再檢查/etc/hosts.allow規則,如果有沖突 按/etc/hosts.allow規則處理

 

比如:
1.禁止所有ip訪問linux 的ssh功能
可以在/etc/hosts.deny添加一行 sshd:all:deny

2.禁止某一個ip(192.168.11.112)訪問ssh功能
可以在/etc/hosts.deny添加一行sshd:192.168.11.112

3.如果在/etc/hosts.deny和/etc/hosts.allow同時 有sshd:192.168.11.112 規則,則192.168.11.112可以訪問主機的ssh服務


總結:通過這種方法可以控制部分非授權訪問,但不是一勞永逸的方法!我們在看服務日志的時候或許會看到很多掃描記錄,不是還是直接針對root用戶的,這時控制你的訪問列表就非常有作用了!

 

 Linux下防火墻增加白名單

Linux系統中安裝yum install iptables-services

然后 vim /etc/sysconfig/iptables

 

# Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]


-N whitelist
-A whitelist -s 8.8.8.8 -j ACCEPT
-A whitelist -s x.x.x.x -j ACCEPT

-A whitelist -s x.x.x.x -j ACCEPT

-A whitelist -s x.x.x.x -j ACCEPT

-A whitelist -s x.x.x.x -j ACCEPT

-A whitelist -s x.x.x.x -j ACCEPT


-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j whitelist
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

 

上邊是白名單的IP列表

下邊是針對白名單里的內容開啟的一些端口

要把ACCEPT的寫在上邊

把REJECT的內容寫在下邊

這樣白名單里的IP就可以訪問我們限制的端口及服務了,而沒有在白名單里的IP則會被拒絕

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist 這種是針對白名單里的端口開啟,即只能白名單里的IP能夠通過這個端口訪問

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT這種是全白的開啟,即任何機器都能通過這個端口訪問



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

儋州市| 镇康县| 玛沁县| 格尔木市| 施秉县| 康马县| 垣曲县| 泰兴市| 芦溪县| 赣州市| 鹰潭市| 台东市| 万盛区| 溧阳市| 察哈| 醴陵市| 宜兴市| 吐鲁番市| 惠水县| 南涧| 五常市| 广德县| 天柱县| 奎屯市| 中宁县| 临夏市| 台北县| 越西县| 沅江市| 衢州市| 咸阳市| 荔波县| 郸城县| 临汾市| 仁怀市| 宜黄县| 民勤县| 玉山县| 新和县| 漯河市| 兴仁县|