日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

记一次服务器被攻击后的经历

發布時間:2024/1/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记一次服务器被攻击后的经历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該圖片由Robinraj Premchand在Pixabay上發布

我的小程序是在5月26號的時候上線的,運行了還沒幾天,5月30號的時候就有一個學弟告訴我說小程序用不了了,晚上回家打開電腦查看數據庫的時候才發覺大事不好!

我的ytools數據庫下的數據表去哪了,怎么就剩下一個WARING了????

嚇得我趕緊百度了一下

我擦,這是被攻擊了嗎?為什么騰訊云都沒有給我安全警報啊???

不過有沒有安全警報都是次要的,最主要的事情還是要弄清楚原因是啥,然后想辦法補救和預防,僅以這篇文章記錄下自己被攻擊后的經歷。

原因

查了一些資料發現,其實被刪庫的事件屢見不鮮,2016年-2017年間,就曾出現過大量MySQL數據庫被攻擊,黑客留下QQ號,并索要高額恢復費的事情,哪怕是現在這種事情也經常發生。其實總的來說還是因為我們在服務器安全防范方面,意識相當不夠,僥幸心理嚴重(就像到現在我也不懂我這個小屁民啥事也沒做為啥還要搞我一樣)。以下兩種情況的MySQL最容易被攻擊。

服務器密碼過于簡單的

很多人圖省事,將服務器密碼設置簡單,方便記憶與登錄,這往往給黑客留下破解空間。一旦服務器密碼被破解,那黑客將可以直接登錄到服務器,肆意修改數據、刪除數據。針對這項,在設置密碼時,建議:使用字母、數字、字符組合的密碼,盡量在8位10位以上。不定期更換密碼。

網站程序直接使用root權限

很多新手在使用數據庫時,沒有進行權限設置(或者純粹就是圖省事,項目跑起來就行了),網站程序直接連接root權限,一旦網站程序被破解,root賬號密碼也將被hei客獲取。MySQL涉及權限的表一共5個,最重要的權限表:user、db。user表里除了root localhost有所有權限外,其他 xxxx %一概沒有權限。需要開通權限要在db表里。

總之千萬不要用root以及管理員權限去運行!同時將權限限制到最小!

預防

下面是我查閱資料找到的一些常規的安全防范措施:

  • 服務器的管理員密碼具備一定復雜度,建議使用字母、數字、字符組合的密碼。
  • 服務器關閉遠程訪問(或關閉外網的遠程訪問),調整遠程訪問默認的端口號。
  • MySQL的root用戶密碼具備一定復雜度,建議使用字母、數字、字符組合的密碼。
  • MySQL不允許任意遠程端連接,建議僅對協同系統所在的IP地址放開連接。
  • MySQL不使用默認的3306端口,建議修改為其他端口。(mysql的配置文件:Linux下為my.cnf)
  • MySQL設置定時備份,并將數據備份包備份在異機(或異地)。
  • 網站程序不直接使用root權限,單獨設立用戶權限。
  • 措施

    針對上述方法措施,在這給出修改過程。

    環境聲明

    此次實驗的環境為:騰訊云的Ubuntu Server 18.04,數據庫為MySQL 5.7.25。

    修改root賬戶密碼

    服務器密碼的修改我們直接去控制臺更改下就可以了,不多說,這里說下MySQL數據庫root密碼的更改。

    • 以root賬戶登錄MySQL
    mysql -u root -p 復制代碼

    然后輸入原先的root密碼進入數據庫操作(mysql shell)

    • 選擇數據庫
    use mysql; 復制代碼
    • 更新root的密碼
    update user set authentication_string=password('新密碼') where user='root' and host='localhost'; 復制代碼

    Tips:這里說明下,在MySQL 5.7 password字段已從mysql.user表中刪除,新的字段名是authenticalion_string。

    • 刷新權限
    flush privileges; 復制代碼
    • 退出MySQL的shell環境并重啟MySQL服務
    sudo service mysql restart 復制代碼

    修改MySQL的使用端口

    我們知道MySQL的默認端口是3306,為了安全起見,建議將MySQL的默認端口號修改成自己想要的(有女朋友的就改成女朋友生日,這樣就忘不掉了)。

    查了很多資料說MySQL的配置文件在/etc/mysql/my.cnf路徑下,但是當我查看內容的時候卻給我下面這樣的信息:

    這個文件里面根本沒有任何參數設置(這是由于不同的mysql版本導致的,再次申明下我的系統版本為Ubuntu18.04,MySQL 5.7.25),只看到下面兩行設置,表示導入這兩個目錄里面的配置文件。

    !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ 復制代碼

    分別嘗試打開查看內容后我們發現其實MySQL的相關配置都位于/etc/mysql/mysql.conf.d/mysqld.cnf里,進入目錄后執行cat mysql.cnf可以看到在**[mysqld]標簽下有很多參數信息,其中有一個參數就是port**,我們把它設置成自己想要的端口號就可以了(記得用vim時要加上sudo啊)。

    最后重啟下mysql就可以了。

    sudo service mysql restart 復制代碼

    關閉MySQL的遠程訪問權限

    MySQL有一套權限系統,他的主要功能是證實連接到一臺給定主機的用戶,并且賦予該用戶在數據庫上的SELECT、INSERT、UPDATE和DELETE權限。基于安全考慮root賬戶一般只能本地訪問,但是在開發過程中可能需要打開root的遠程訪問權限,如果正式上線的時候沒有關閉mysql的遠程訪問權限,就有可能會被利用然后刪庫。

    • 以root賬戶登錄MySQL
    mysql -u root -p 復制代碼

    然后輸入原先的root密碼進入數據庫操作(mysql shell)

    • 選擇數據庫
    use mysql; 復制代碼
    • 關閉遠程訪問
    update user set host = "localhost" where user = "root" and host= "%"; 復制代碼
    • 刷新權限
    flush privileges; 復制代碼
    • 退出MySQL的shell環境并重啟mysql服務
    sudo service mysql restart 復制代碼

    最后

    上述內容是我自己針對此次服務器被攻擊后查閱相關資料整理出來的,因為對這方面我也不是很懂,也只能做些簡單的防護措施,僅供參考,如果大家有什么建議的可以在評論區或者公眾號后臺給我留言。

    總結

    以上是生活随笔為你收集整理的记一次服务器被攻击后的经历的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。