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

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

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 架設網站的過程。還有接任組長後,使我儼然置身小型企業的奇聞軼事。

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