文件實時同步后防篡改的操作記錄


 

需求場景:
部署一套sftp環境,用於客戶上傳電子文件(合同文件或視頻文件等),文件上傳到sftp后立即實時同步到業務應用服務器上。為了安全考慮,文件在首次同步后,后續再同步時就不覆蓋同名文件,這樣做是為了防止文件被篡改!

部署思路:
1)sftp高可用環境部署,參考:http://www.cnblogs.com/kevingrace/p/7868049.html
2)rsync+inotify實時同步環境部署,參考:http://www.cnblogs.com/kevingrace/p/6001252.html
3)防篡改做法:當文件被首次實時同步到應用服務器上后,立馬使用chattr命令將其鎖定,即禁止寫入!可以在應用服務器上寫一個鎖定文件的腳本,實時執行的!

sftp的上傳目錄是/data/test,實時同步到應用服務器上的目錄也是/data/test,那么應用服務器上的鎖定文件的腳本為:

[root@centos6-05 ~]# vim /root/chattr_test.sh 
#!/bin/bash
while [ "1" = "1" ]
do
for A in `ls -l /data/test/|grep -v total|awk '{print $9}'`;do
     /usr/bin/chattr +ai /data/test/${A}
done
done

實時執行改腳本:

[root@app01 ~]# nohup sh -x /root/chattr_test.sh &

[root@app01 ~]# ps -ef|grep chattr_test.sh
root      5684  9769  0 21:33 pts/0    00:00:00 grep chattr_test.sh
root     28227  9769 37 18:36 pts/0    01:05:48 sh -x chattr_test.sh

上面腳本針對的是上傳目錄/data/test下全是文件,沒有子目錄。如果/data/test 下面有子目錄,那么就在腳本中添加find命令查詢對應子目錄下的文件進行chattr鎖定。

測試效果:
sftp上傳一個新文件A,該文件會實時同步到應用服務器/data/test 目錄下,接着修改A文件並上傳覆蓋到sftp目錄下,則該文件不會覆蓋到應用服務器的同名文件了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM