成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關(guān)注微信公眾號(hào)

Linux操作系統(tǒng)下雙啟動(dòng)環(huán)境的陷阱問(wèn)題(下)
2007-01-22   中國(guó)IT實(shí)驗(yàn)室

幸運(yùn)的是,有一個(gè)解決方案不但可以消除 ssh-agent 和 ssh-add 的局限,而且可以讓我們使用 cron 來(lái)自動(dòng)進(jìn)行各種需要對(duì)其他機(jī)器進(jìn)行安全地?zé)o密碼訪問(wèn)的過(guò)程。在他 2001 年發(fā)表的三篇 developerWorks 系列文章中,即 OpenSSH key management(參閱 參考資料 以獲得鏈接),Daniel Robbins 介紹了一個(gè)名為 keychain 的 shell 腳本,它是 ssh-add 和 ssh-agent 的一個(gè)前端,簡(jiǎn)化了整個(gè)無(wú)密碼的過(guò)程。隨著時(shí)間的過(guò)去,keychain 腳本已經(jīng)經(jīng)歷了很多改進(jìn),現(xiàn)在由 Aron Griffis 維護(hù),其最新的 2.3.2-1 發(fā)布版本公布于 2004 年 6 月 17 日。

keychain shell 腳本太長(zhǎng)以致于無(wú)法在本文中列出,因?yàn)榫木帉懙哪_本中包括了很多錯(cuò)誤檢測(cè)、豐富的文檔以及非常多的跨平臺(tái)代碼。不過(guò),keychain 可以自項(xiàng)目的 Web 站點(diǎn)上方便地下載得到(參閱 參考資料 以獲得鏈接)。

下載并安裝了 keychain 后,使用它就很簡(jiǎn)單了。只需要登錄到每臺(tái)機(jī)器并將下面兩行添加到每個(gè) .bash_profile 文件:

  keychain id_dsa   . ~/.keychain/$HOSTNAME-sh

  在您第一次重新登錄到每臺(tái)機(jī)器時(shí),keychain 將向您詢問(wèn)口令。不過(guò),除非機(jī)器被重新啟動(dòng),否則,以后再登錄時(shí),keychain 將不會(huì)再要求您重新輸入口令。最好的是,cron 任務(wù)現(xiàn)在可以使用 OpenSSH 命令來(lái)安全地訪問(wèn)遠(yuǎn)程的機(jī)器,而不需要交互地使用口令。更好的安全和更容易的使用,現(xiàn)在我們已經(jīng)兼得。

    KeyChain 2.3.2; http://www.gentoo.org/projects/keychain     Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the     GPL       * Initializing /home/accountname/.keychain/localhost.localdomain-sh     file...     * Initializing /home/accountname/.keychain/localhost.localdomain-csh     file...     * Starting ssh-agent     * Adding 1 key(s)...     Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)

  

清單 9. 在每臺(tái)機(jī)器上初始化腳本化備份過(guò)程

我們的下一個(gè)任務(wù)是創(chuàng)建執(zhí)行必要的備份過(guò)程的 shell 腳本。目標(biāo)是執(zhí)行服務(wù)器 1 和 2 的完全數(shù)據(jù)庫(kù)備份。在我們的例子中,每個(gè)服務(wù)器都運(yùn)行著 MySQL 數(shù)據(jù)庫(kù)服務(wù)器,我們使用 mysqldump 命令行工具來(lái)將一些數(shù)據(jù)庫(kù)表導(dǎo)出到一個(gè) SQL 輸入文件中。

 

      #!/bin/sh       # change into the backup_agent directory where data files are stored.     cd /home/backup_agent       # use mysqldump utility to export the sites database tables     mysqldump -u sitedb -pG0oDP@sswrd --add-drop-table sitedb --tables     tbl_ccode tbl_machine tbl_session tbl_stats > userdb.sql       # compress and archive     tar czf userdb.tgz userdb.sql

 

清單 10. 服務(wù)器 1 的 dbbackup.sh shell 腳本在服務(wù)器 2 上,我們將設(shè)置一個(gè)類似的腳本來(lái)備份站點(diǎn)數(shù)據(jù)庫(kù)中給出的獨(dú)有表單。每個(gè)腳本都通過(guò)下面的步驟標(biāo)記為可執(zhí)行的:

 

  [server1]:$ chmod +x dbbackup.sh

 在服務(wù)器 1 和 2 上設(shè)置了 dbbackup.sh 后,我們返回到離線的數(shù)據(jù)服務(wù)器,在那里我們將創(chuàng)建一個(gè) shell 腳本來(lái)調(diào)用各個(gè)遠(yuǎn)程 dbbackup.sh 腳本并隨后傳輸壓縮的(.tgz)數(shù)據(jù)文件。

      #!/bin/sh       # use ssh to remotely execute the dbbackup.sh script on server 1     /usr/bin/ssh backup_agent@server1.com "/home/backup_agent/dbbackup.sh"       # use scp to securely copy the newly archived userdb.tgz file     # from server 1. Note the use of the date command to timestamp     # the file on the offsite data server.     /usr/bin/scp backup_agent@server1.com:/home/backup_agent/userdb.tgz     /home/backups/userdb-$(date +%Y%m%d-%H%M%S).tgz       # execute dbbackup.sh on server 2     /usr/bin/ssh backup_agent@server2.com "/home/backup_agent/dbbackup.sh"       # use scp to transfer transdb.tgz to offsite server.     /usr/bin/scp backup_agent@server2.com:/home/backup_agent/transdb.tgz     /home/backups/transdb-$(date +%Y%m%d-%H%M%S).tgz

  

清單 11. 用在離線的數(shù)據(jù)服務(wù)器上的 backup_remote_servers.sh shell 腳本 backup_remote_servers.sh shell 腳本使用 ssh 命令來(lái)執(zhí)行遠(yuǎn)程服務(wù)器上的腳本。由于我們已經(jīng)設(shè)置的無(wú)密碼的訪問(wèn),ssh 命令可以通過(guò)離線的服務(wù)器在服務(wù)器 1 和 2 上遠(yuǎn)程地執(zhí)行命令。感謝 keychain,整個(gè)認(rèn)證過(guò)程現(xiàn)在可以自動(dòng)完成。調(diào)度

我們的下一個(gè)步驟,也是最后一個(gè)步驟,是調(diào)度 backup_remote_servers.sh shell 腳本在離線的數(shù)據(jù)存儲(chǔ)服務(wù)器上的執(zhí)行。我們將向 cron 調(diào)度服務(wù)器中添加兩個(gè)條目,以要求每天執(zhí)行備份腳本兩次,3:34 執(zhí)行一次,8:34 再執(zhí)行一次。在離線的服務(wù)器上使用 edit(-e)選項(xiàng)調(diào)用 crontab 程序。

 

  [offsite]:$ crontab -e

  crontab 調(diào)用 VISUAL 或 EDITOR shell 環(huán)境變量所指定的默認(rèn)的編輯器。然后,輸入兩個(gè)條目并保存和關(guān)閉文件。

     34 3 * * * /home/backups/remote_db_backup.sh     34 20 * * * /home/backups/remote_db_backup.sh

  

清單 12. 離線的服務(wù)器上的 Crontab 條目一個(gè) crontab 行包括兩個(gè)主要部分,時(shí)間表部分和后面的命令部分。時(shí)間表分為多個(gè)域,用來(lái)指定一個(gè)命令應(yīng)該何時(shí)執(zhí)行:

         +---- minute        | +----- hour        | | +------ day of the month        | | | +------ month        | | | | +---- day of the week        | | | | | +-- command to execute        | | | | | |        34 3 * * * /home/backups/remote_db_backup.sh

  

清單 13. Crontab 格式檢驗(yàn)?zāi)膫浞?

您應(yīng)該對(duì)備份進(jìn)行例行地檢查,以確保程序正確進(jìn)行。自動(dòng)程序可以使煩瑣的工作得到避免,但是永遠(yuǎn)不能因此而懶惰。如果您的數(shù)據(jù)值得備份,那么它也值得您時(shí)常進(jìn)行抽樣檢查。

考慮添加一個(gè) cron 作業(yè)來(lái)提醒您自己至少每個(gè)月對(duì)備份進(jìn)行一次檢查。另外,經(jīng)常修改安全密鑰也是一個(gè)好主意,同樣您也可以調(diào)度一個(gè) cron 作業(yè)來(lái)提醒您做這件事。

另外的安全防范

要獲得更高的安全性,可以考慮在每臺(tái)機(jī)器上安裝并配置一個(gè)入侵檢測(cè)系統(tǒng)(ntrusion Detection System,IDS),比如 Snort。可以預(yù)見,當(dāng)入侵正在發(fā)生或者近期發(fā)生過(guò)時(shí),IDS 將會(huì)通知您。IDS 到位后,您將可以添加其他層次上的安全,比如對(duì)您的備份進(jìn)行數(shù)字簽名和加密。

GNU Privacy Guard(GnuPG)、OpenSSL 和 ncrypt 等流行的開放源代碼工具可以支持通過(guò) shell 腳本對(duì)存檔文件進(jìn)行加密,不過(guò)不建議在沒(méi)有 IDS 提供的額外層次保護(hù)的情況下這樣做(參閱 參考資料 以獲得關(guān)于 Snort 的更多信息)。

結(jié)束語(yǔ)

本文向您展示了如何讓您的腳本在遠(yuǎn)程服務(wù)器執(zhí)行以及如何執(zhí)行安全自動(dòng)的文件傳輸。我希望您能由此得到靈感而開始考慮保護(hù)您自己的重要數(shù)據(jù),并使用 OpenSSH 和 Snort 等開放源代碼工具來(lái)構(gòu)建新的解決方案。

熱詞搜索:

上一篇:Linux操作系統(tǒng)下雙啟動(dòng)環(huán)境的陷阱問(wèn)題(中)
下一篇:網(wǎng)站服務(wù)器通用和專用保護(hù)方法

分享到: 收藏
主站蜘蛛池模板: 接吻摸胸视频| 罗中立的《父亲》详案| 韧战作文800字初中| 珊特尔·范圣滕| 王菲电影| 抓特务电视剧大全播放| 袁冰妍个人资料| 美女mm| 淮剧赵五娘| 网络流行语| 我家来了个怪男人| 绝不放弃电影| 我的野蛮女老师2| 稻草人三年级课外阅读| 兽兽片| 大奉打更人电视剧在线观看全集免费播放| 张钰凰| 芭蕉扇图片| 根深蒂固韩国电影| 吻胸摸全身视频| 在线播放啄木乌丝袜秘书| 保证书怎么写才有法律效力| 樱花恋| 月光奏鸣曲第三乐章钢琴谱| 美女写真视频高清福利| 妻5| 《失乐园》电影| 蜘蛛夫人:超感觉醒 电影| 全国城建培训中心| 茶馆妈妈韩剧| 二年级最佳家长评语| 一个国家的诞生| 谭天| 教师政治学习笔记| 艳妇乳肉豪妇荡乳ⅹxxo| 红灯区免费在线观看| 妖精的尾巴第三季| 纵横欲海| 黄鸟电影| 喜羊羊简谱| 欧美video丝袜连裤袜|