Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SITCON2014 How I learned to build a website fro...

Avatar for M157q M157q
March 15, 2014

SITCON2014 How I learned to build a website from buttom to up in one and a half years

2014/03/15 SITCON 2014
我的演講會分享我從 2012 年 8 月中旬至今為止,自不會寫網站、不會系統及網路管理,開始學習如何管理 Arch Linux 主機、QEMU 中的 BBS 系統、Postfix Mail Server、vsftpd FTP Server及使用 Yii 架設網站的過程。還有接任組長後,使我儼然置身小型企業的奇聞軼事。

Avatar for M157q

M157q

March 15, 2014
Tweet

More Decks by M157q

Other Decks in Programming

Transcript

  1. • aka m157q • 生性害羞、慢熟、常被說看起來很兇 • 國立交作業大學程序猿系大三牲 • 現任 OH

    資訊組組長 • 現任交大網路福利社社長 • 現任交大資工系計中助教 • ... Mr.Q
  2. 分享我從 2012 年 8 月中旬至今為止 自什麼都不會起,開始學習 Arch Linux, QEMU, BBS,

    Postfix, vsftpd, Yii 的心得 還有接任組長後的奇聞軼事 自己看議程簡介啦!!
  3. • What 寫網站 • Why 年輕不懂事,誤入歧途 • Where 腳痛大學 •

    When 升大二的暑假 • Who 學長(前任資訊組組長) • How 學長:「跟我簽下契約吧」 加入 OH 的 5W1H
  4. • Arch Linux • QEMU & Maple BBS • SSHGuard

    & Logwatch • Postfix • vsftpd • Yii (PHP) • MySQL • HTML / CSS / JavaScript • 重灌電腦 / 修電腦 / 修網路 / 修印表機 要學的東西
  5. Arch Linux • 2012 年 9 月 22 日 ◦

    從 Debian 移植到 Arch ◦ 強者學長只花了 2hr 完工 • 因為 Arch 簡潔 • 我開始成為 Arch Linux User ◦ 每次登入都會不自覺打完 $ sudo pacman -Syu • 學習如何安裝 Arch、LAMP、mdadm
  6. QEMU & BBS • BBS 無法直接在 x86_64 Arch 上正常 運作

    ◦ 將舊的 Debian 系統包成 .img ◦ 將舊系統運行在 QEMU 中 ◦ 只運行 BBS 的部份 • 利用 QEMU 參數將 BBS 綁在 Host 的 23 port
  7. SSHGuard & Logwatch • SSHGuard ◦ 防止 brute force 攻擊

    ◦ 可以和許多 daemon 整合 ◦ 可以記錄相關資訊 ◦ 可以和防火牆的 rule 整合 • Logwatch ◦ 彙整系統上的 Log ,格式可自訂 ◦ 每天固定把彙整的系統 Log 寄到信箱 ◦ 方便快速檢視系統記錄
  8. vsftpd • 提供存放歷屆相關資料 • 設定簡單 • 可使用 Virtual User ◦

    設定密碼是明碼,要注意讀取權限的設定 ◦ 權限是系統的 ftp 帳號,無法做太複雜的權 限設定 ◦ pam1.1.8-3 因為不支援 BerkelyDB 導致此 功能失效 • 可設定 Root Directory
  9. Yii • 提供廠商人資及工作人員許多功能 ◦ 填寫資訊、線上選位、報帳、金額計算 • MVC, PHP framework •

    Gii ◦ Yii 的 Code Generator ◦ 透過 model 直接產生 CRUD code 超方便 • 安裝第三方套件很方便 ◦ 解壓縮後丟到 extension 資料夾下就行了
  10. MySQL • SQL 語法 ◦ select, join, update, delete, …

    ◦ 主要是匯出資料時使用 • 欄位設定、Foreign Key 的使用 • 某一次 Arch 升級後換成 MariaDB
  11. HTML / CSS / JavaScript • 基本上都是直接拿 Bootstrap 來用 XDrz

    • YiiBooster - 將 Yii 和 Bootstrap 整合 (造福我這種不會前端的網站開發者) • 研究學長留下來的 JS code
  12. 交給資訊組就對了 • 網路連不上 ⇒ 修網路 • 印表機卡紙 ⇒ 修印表機 •

    電腦太慢了 ⇒ 找原因 • 電腦中毒了 ⇒ 重灌電腦 • 電腦壞掉了 ⇒ 修電腦 • 網頁不會用 ⇒ 問資訊組
  13. • 基本上要做的事都被組長處理光了 ◦ 很多東西都是自己看自己學 • 大二上選修計算機系統管理 ◦ 教的主要是 FreeBSD ◦

    架個有 CRUD 的網站, FTP Server • 大二下選修計算機網路管理 ◦ Mail Server • 大二下資料庫必修 • 組長消失了,沒交接到,自行摸索。 擔任組員的一年中
  14. • 要下 $ sudo pacman -Syu 之前 先看 官網 的

    Latest News 有無公告 養成習慣後就比較不會有問題 • Ignore Kernel Update • 就叫你別用 Rolling-Release Distro Arch Linux - Solution
  15. QEMU & BBS # qemu-system-x86_64 -runas qemu - vnc :0,password

    -monitor telnet: 127.0.0.1:50652,server,nowait -net nic, model=rtl8139 -net user,hostfwd=tcp:: 23-:23,hostfwd=tcp::2222-:22 -hda /home/qemu/debian.img >& /dev/null &
  16. QEMU & BBS - Solution • 將此指令寫成 [email protected] • 把此

    service enable ◦ 讓 systemd 在每次主機重開機之後自動執 行指令
  17. Postfix - Solution • 加上 SpamAssassin 過濾垃圾郵件 • 在垃圾郵件的標題加上 label

    ◦ [****SPAM****] • 使用者設定過濾條件 ◦ 收到標題含有該 label 的信件就直接丟到垃 圾信件夾 ◦ 或是自行檢查
  18. • 沒有 UPS • 斷電後還得手動重啓 • 考慮轉移到 VM 上 ◦

    容量問題 ◦ 備份問題 ◦ 責任歸屬問題 ◦ 便利性考量 主機只是一台自組PC
  19. • 不會操作 MySQL cli-mode 或覺得很 麻煩就得使用 phpMyAdmin 這種提高 資安風險的東西 •

    Django (Python Framework) 就可以 直接寫好 model 的 code 然後幫你產 生 table Yii: model
  20. • IPSCA 不再提供免費憑證給學網 • 本校沒有可用憑證 • 目前仍使用過期的 IPSCA 憑證 •

    之前嘗試申請 StartSSL ◦ 但因為不是 nctu.edu.tw 的管理者,所以無 法成功申請 Orz Web: SSL Cert
  21. Q&A