PIXNET Logo登入

Elegance

跳到主文

My life,my experience...

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 3月 14 週日 202121:56
  • Build Shadowsocks


之前在trace code研究shadowsocks時在container裡面build
碰到一些error.
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(15)

  • 個人分類:
▲top
  • 2月 02 週二 202106:21
  • 幫朋友的企業導入S/MIME


最近因為朋友公司的客戶遭受到Email spoofing攻擊
但他們和客戶都沒有自架mail server
都用免費的ISP信箱或Yahoo mail , Gmail
因此採用 Email authentication 的方法來解決.
因為雙方都沒有自架mail server,
因此就不考慮 SPF or DKIM ,
解決方法有兩個:PGP 或 S/MIME
都是屬於 End-to-End 的加密方案.
但PGP一般人比較以難接受,
所以就採用S/MIME
--
1.
在Comodo S/MIME Certificate網站 申請免費憑證
或 google search "free s/mime certificate"
https://www.comodo.com/home/email-security/free-email-certificate.php
2.
填完表格後,會發一封信到你填的信箱
3.
信裡面有一封連結,用Firefox 42.0版打開連結後
會自動匯入帶有 private key and public key的 certificate
到你的Firefox 憑證管理中心
4.
在Firefox 的備好設定->進階->檢視憑證
裡面會有個 你的憑證 的分頁
點選裡面你的憑證,再按下方的 備份
可以輸入private key檔案的密碼
(用來防止就算單獨private key被偷也無法使用)
5.
備份完成後,在這邊我以thunderbird為例
在thunderbird你已經建立好的帳戶內
按右鍵->設定->選擇你設定好的帳戶->安全
裡面有一個檢視憑證,在這邊匯入你剛剛備份出來的憑證
輸入密碼後就可以匯入了.
6.
這分頁的 簽名&加密 就選擇剛剛那個匯入的憑證就OK了
然後 下方的 數位簽名我的信件 確認有沒有打勾 就行了
7.
要加密郵件的話,你要有收信者的 public key才行
最常見的方法就是,先收到對方的 簽署過的郵件
thunderbird就會自動匯入
這樣子以後你們彼此的郵件,
不僅保證了 完整性、認證、不可否認性
還保證了 機密性 !
8.
通常用這方法的話,大多數的webmail並不支援
因為webmail他們並沒有你的私鑰.
但奇怪的是,只做 數位簽章 的話,
目前我的測試,也只有Gmail會在郵件中的 箭頭下方選單
會顯示出 這個寄件者 已經確認過了
其它yahoo mail , hinet webmail 都沒有顯示此封信有數位簽章的圖示和文字
因此,採用後,最好雙方都以email client來彼此通信了.
9.
如果懷疑私鑰被偷了,最好趕快到comodo那邊輸入 revocation密碼
申請撤銷憑證,否則如果是無密碼私鑰,有密碼但私鑰密碼又外流,
這種情況下,被別人拿去亂簽
你就算跳到黃河也洗不清了...
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(231)

  • 個人分類:
▲top
  • 12月 20 週日 201505:09
  • Linux之procfs裡面maps的內容


在Linux裡面有一個虛擬的檔案系統,由kernel提供的, 位置在/proc 
裡面有關於整個系統的資訊,像是
/proc/uptime 存放開機時間,你下指令uptime就是從這邊讀的
不然就是htop, glances, ps, free 等proc工具也會來讀這個目錄
另外就是修改kernel的參數也是來這邊改的(也能用sysctl指令來改)
像是最常見的就是,讓系統可以當router轉發封包的指令
echo 1 > /proc/sys/net/ipv4/ip_forward
 
這個資料夾裡面最多的就是目前系統上面跑的行程PID
裡面有status,maps等虛擬檔案
其中maps是紀錄著這個process在memory中的Layout配置
一般來說,一個執行檔在磁碟中,只有code(也稱作text)段和 data段
載入到記憶體中執行時,才會額外多出bss , heap , stack 段
code段,就是存放程式碼的區段,這一區是唯讀的,而且可執行
data段,就是存放初始化的全域變數,static區域變數等的地方
bss段,就是存放 未初始變數的地方,像是全域變數等等(注意,全域變數你assign一個0值仍然算是未初始化)
heap段,就是給malloc動態配置記憶體用的區段,這一區是往高位址的方向成長
stack段,就是給function裡面的auto區域變數、return address , parameter放的地方
這一段是往低位址的方向成長.
另外,如果你的C code有用VLA(Variable Length Array)讓陣列大小可以在runtime時
再來決定的話,那麼你用GCC編譯,GCC會將VLA放在stack這一段空間,
而不像malloc放在heap段.
 
 
搞懂這些區域對於組合語言的學習有很大的幫助,另外就是可以了解C語言的設計
像是
char *s1="string1";
char s2[]="string2";
為什麼前者s1不能更改字串內容(因為位於.rodata段),而後者s2卻可以(因為位於.data段)
或者是說auto的區域變數為什麼離開function後生命周期會消失
還有像是安全方面的 buffer-overflow、heap-overflow, heap-overread 等知識
 
Linux裡面有個size指令可以看一個執行檔的這些區段內容
 
譬如以我目前本機的 bash 為例
 
mint@mint ~ $ size `which bash`
   text         data       bss     dec           hex  filename
 977292   36536   23448 1037276   fd3dc /bin/bash
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(210)

  • 個人分類:
▲top
  • 12月 12 週六 201521:28
  • 原來Linux的目錄setuid是無意義的


最近在想Linux下的執行檔setuid/setgid的意思還滿容易理解的

就是非owner在執行該檔時,在runtime期間會暫時擁有該檔的owner/group權限

而且在這期間,你的euid(effective uid)就會是該owner id
http://fvalinux.pixnet.net/blog/post/7248043
但是目錄的setuid/setgid就沒那麼好懂
查了一下這篇有詳細解說
https://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories
在Linux下,一個目錄設了setuid沒有意義,但是設了setgid就有意義了

如果這個目錄設了setgid,那麼之後在這個目錄內新增檔案或資料夾

這些檔案或資料夾的group就會繼承這個設了setgid的目錄之group

而不是建立者的group,這樣可以避免多人協作上的不便
這些檔案或資料夾的owner仍是建立者的.
而且這個動作是不會溯及既往的,也就是在你對這個目錄
設了setgid前的檔案/目錄都不會變動.
只有設了setgid後,在裡面新增的檔案/目錄才有效果,
所以如果你想要變動設定setgid之前的檔案/目錄
只能寫shell或用工具一個一個設了.
目錄還有所謂的sticky bit
也就是像/tmp目錄一樣
任何人都可以寫東西進去,但寫進去的東西只有該目錄owner
或寫進去的人或root可以更名/刪除,
除此之外其他人沒辦法動你的東西.

檔案的sticky bit看起來好像比較少在用,
維基裡面舉了Solaris的 swap file當例子
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(109)

  • 個人分類:
▲top
  • 10月 22 週四 201512:12
  • Linux裡面ls -l長列表對於目錄的意義

在Linux裡面常常輸入ls -l顯示目錄和檔案的長列表詳細結果
這個列表裡面很多欄位的數值對於檔案很容易理解,
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(308)

  • 個人分類:
▲top
  • 10月 06 週二 201516:00
  • Let's Encrypt的免費SSL CA憑證簽發

今年網路安全界有一個好消息就是,幾個大型網路公司聯合起來
成立了一個CA憑證發放組織叫做Let's Encrypt
https://letsencrypt.org/
申請過SSL CA憑證的人都知道,每年都要繳固定的年費給這些公司
尤其當你申請EV SSL的憑證又更貴,雖然之前已經有些免費的CA
像是Start SSL,但好像用起來有點問題,有些系統或瀏覽器預設
沒裝這些免費的Root CA.
最近這家Let's Encrypt開始向各大瀏覽器廠商提出申請
將Let's Encrypt的根憑證納入這些瀏覽器中,這樣使用者遇到這家CA所簽發的憑證時
就不會跳出警告訊息了.
如果你想先試試看這家CA的憑證,可以自己先手動安裝,讓瀏覽器信任這家CA根憑證
https://letsencrypt.org/certificates/
在Firefox裡面,直接點選這頁裡面Root Certificates的pem或der格式憑證的連結
就會跳出視窗問你要不要安裝了,打勾信任安裝之後到以下網站測試看看.
測試網站:如果瀏覽器沒跳出警告訊息就成功了!
https://helloworld.letsencrypt.org/
 
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(206)

  • 個人分類:
▲top
  • 7月 15 週三 201523:26
  • Tsunami SYN Flood Attack

今天在新聞上看到關於 Telegram 說被LINE攻擊,使用了新型態的DDOS方法
Tsunami SYN Flood Attack
查了一下相關的文件,它是利用TCP封包的header欄位去塞入一千多bytes的任意資料
(起初以為是放在TCP payload)
TCP header的欄位最後面是Option,它的長度上限並沒有在RFC document被規範.
https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure
然後這樣的一堆TCP SYN封包送到目標的主機後,就可以把對方的頻寬塞爆...
與傳統的SYN Flood目的是把對方的主機資源耗光不同.
解決方法我想可以利用跟上游的網路商(ISP或CDN)一起合作使用anycast或clean pipe
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(50)

  • 個人分類:
▲top
  • 5月 27 週三 201500:51
  • 關於Linux下的 rm -rf / 保護機制

關於Linux下的 rm -rf / 保護機制
之前在COSCUP的會場聽到一位KKBOX的工程師講到shell在使用上會遇到的問題
不過很可惜他沒提到一個重點就是linux目前已經會限制rm -rf / 的這種指令了.
很多人在系統管理時會誤打rm -rf / 或是在寫shell 時,執行刪除特定的暫存目錄
rm -rf /${var}
在script裡面沒有去檢查var這個變數的內容就直接rm -rf ,如果這個var變數
忘記給它設值,或是不小心給了它一個空值
(譬如要將執行結果的內容assign給它,但執行內容卻沒得到結果)
就很容易造成系統整個被誤砍.
因此,後來Gnu Core Utility (原始碼) 在6.4版(2006年)時,就引進了保護機制,
新增了一個option叫做 --preserve-root
而且預設它是開啟的,所以你在linux下面直接以root身份打rm -rf / 會跳出錯誤訊息
但如果你堅持要刪根目錄的話,參考它的警告提示 或者 rm的manpage後發現
可以加入 --no-preserve-root 這個option.
或者是根目錄底下的所有檔案、目錄各別去刪應該也行 (或者用 rm -rf /* 指令?)
因此如果遇到惡意的shell script以root權限執行還是要多加小心.
另外,我記得Mac OS目前底下的rm 是沒有這種保護措施的(手邊沒機器可以測試)
所以mac user只好自求多福了XD
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(4,718)

  • 個人分類:
▲top
  • 4月 13 週一 201513:26
  • Linux裡面hard link對於目錄的限制

以前沒有仔細想過這個問題,看鳥哥的網站也沒有寫得很清楚.
不過沒關係,自己來研究!!
hard link 不能跨 file system 比較好懂,
對於目錄的限制就複雜一點!
最近終於搞懂了.
假設你在
/home/abc下面建一個目錄叫
xyz
/home/abc/xyz下又hard link 一個目錄 ghi指向 /home/abc 這個目錄
那麼你在 du /home/abc 這個目錄計算它的大小時會發生什麼事??
呵呵,無窮迴圈..
http://unix.stackexchange.com/questions/22394/why-...
不過事實上, 每個目錄都有「..」這個指向它老爸的 hard link directory.
這個目錄 「..」 的 inode和它老爸一樣,也就是你兒子等於你爸爸...= =
這是屬於特殊情況.
--------------------------------------
另外一個原因是
If hard links to directories were allowed, which one of the multiple parents should .. point to? That is one compelling reason why hardlinks to directories are not allowed.
也就是你建立一個 hard link目錄 /home/jacky/xyz_hd 指向 /home/abc/xyz
那麼 xyz 和 xyz_hd 下面的隱目錄「..」要指向誰???
這兩部份也就是維基百科講的
http://en.wikipedia.org/wiki/Hard_link#Limitations...
To prevent loops in the filesystem, and to keep the interpretation of .. (parent directory) consistent, many modern operating systems do not allow hard links to directories.
所以其實 系統是可以有 hard link directory的,也就是「.」和「..」
但是為了防止以上兩種情況,就不讓使用者自己建了.
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(898)

  • 個人分類:
▲top
  • 1月 21 週三 201503:18
  • Size Balanced Tree

http://www.nocow.cn/index.php/Size_Balanced_Tree

最近在跟一個程式高手的朋友聊天,聊到AVL-tree和RB-tree時
他跟我提到了這個最近幾年被發明出來也是高度平衡的tree
叫做Size Balanced Tree (SBT)
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(49)

  • 個人分類:
▲top
«123...8»

近期文章

  • Devcore shellcode 2024
  • 解決wget遇到Let's Encrypt爆Error的訊息
  • UDP協定的 ESTABLISHED 狀態
  • 《圖解Linux核心工作原理》
  • Format指令詳細的未公開參數
  • HackMe的ROP1題目
  • 不規格陣列 Jagged Array
  • CIH的Hello World
  • 用grep指令玩spelling bee
  • 用grep指令玩wordle game

文章彙整

最新迴響

  • [24/02/21] fvalinux 於文章「bash之命令執行的順序...」留言:
    補充:在alias跟function之間,應該要多出一個ke...
  • [15/12/29] fvalinux 於文章「Unix Shell...」留言:
    更正一下,再次翻這本書時,只把stderr流進pipe 正...
  • [15/12/21] fvalinux 於文章「真好玩的Netcat......」留言:
    原來telnet也可以直接吃pipe丟進來的資料,不過要先用...
  • [15/10/06] fvalinux 於文章「bash之命令執行的順序...」留言:
    補充一下 第二順位的alias 當你的指令搭配xargs使...
  • [15/05/26] fvalinux 於文章「TraceRoute怪象?...」留言:
    2015年註記 http://superuser.com/...
  • [14/06/21] Fva... 於文章「Root Name Server...」留言:
    目前root dns server有3個instance放在...
  • [14/06/21] Fva... 於文章「Root Name Server...」留言:
    http://upload.wikimedia.org/wi...
  • [14/04/27] fvalinux 於文章「查詢、刪除Windows系統下的DNS ...」留言:
    補充一下 root DNS幫你查詢時,運作有分成itera...
  • [13/05/03] fvalinux 於文章「使用GPG驗證檔案的方法...」留言:
    http://www.cyberciti.biz/faq/p...
  • [12/07/27] 訪客 於文章「Unix Shell...」留言:
    忘了記錄一下.. 要同時將std out跟std err輸...

參觀人氣

  • 本日人氣:
  • 累積人氣: