Category: 網路相關

  • IPsec IKEv2 server on Fedora 35

    2022年更新至Fedora 35適用 伺服器的設定 首先把strongSwan裝起來 接著調整sysctl和防火牆的設定檔,我這邊的設定是讓使用者連上VPN之後直接往外網送,當作跳板使用 ipsec要建一個xfrm interface讓防火牆知道來源,但因為每次開機都要做一次,所以直接寫在crontab裡面 Fedora 35開始用Firewalld 1.0,已不提供direct interface修改底層防火牆操作,需另外透過rich rules調整 然後就開始設定strongswan 新版strongswan已經不使用ipsec.conf,一律改用swanctl來做設定 /etc/strongswan/swanctl/conf.d/vpn.conf 接著來產生憑證,這邊會用strongswan內建的pki來處理,這邊要注意的是產生server憑證時,一定要有ikeIntermediate的EKU,並且將主機的CN name加進SAN名單裏頭,這樣跨平台才不容易有問題 到這邊就完成了,可以先將服務打開 用戶端的設定 Windows 1.將CA憑證下載到電腦裡 2.打開MMC,嵌入憑證管理,記得要選電腦帳戶(重要) 3.依照指示將CA憑證匯入到「信任的根憑證」 4.建立VPN連線,主機記得要填與憑證符合的名字,並選擇「單純建立不要立即連線」 5.打開VPN連線的設定,把安全性改成下面的樣子 6.完成 OSX 1.將CA憑證下載到電腦裡 2.點兩下匯入到系統裡 3.打開keychain,點選System,對著剛剛加進來的CA憑證按右鍵看內容,然後選取永遠信任 4.新增VPN連線,記得選IKEv2 5.Server Address跟Remote ID都填主機的名字,認證設定裡面給帳號密碼 6.完成 Android 1.將CA憑證下載到手機裡 2.安裝strongSwan VPN Client 3.打開設定->安全性->從儲存裝置安裝憑證。如果你的檔案選單全部都是灰色的,參照3-1步 3-1.安裝Astro文件管理器,從Astro裡面點選憑證,選取「透過憑證安裝程式開啟」 4.打開strongSwan,點選Add VPN Profile,依照圖中設定 5.從strongSwan點選已設定好的VPN進行連線 6.完成

  • 透過 PPPoE Gateway 上網在特定網站會連線失敗

    一直都是用 rp-pppoe 讓 linux 撥號當路由器,但最近用起來怪怪的,剛好看到 NetworkManager 也可以做撥號,就換過去試看看 只要有裝 NetworkManager-ppp 就可以直接從 nmcli 設定,如以下範例: 值得注意的是,網路上都會教 ifname 用網路卡的代號,但這樣做會導致撥號後 LAN 會斷線,所以這邊用 ppp0 當作連線裝置 到這邊都沒什麼問題,等我開始用個兩天之後,就發現特定網站,連線會整個卡住,最後就 timeout 稍微 google 一下看起來是 mtu 的問題,裝了 wireshark 來看,確實有很多封包是 TCP Out of Order 所以我試著把內網的電腦網卡 mtu 調低看看,果然馬上就好了 造成的原因不難理解,就是 Ethernet 和 PPPoE 最大能乘載的資料量不同,TCP 在建立連線時提供的 MSS(max segment size) 要和底層相應,不然資料會對不上 只是原本 rp-pppoe 似乎有處理這個情況,而 NetworkManager 就沒有 知道原因之後,查到解決的方法是用 iptables 在 TCP SYN…

  • Mail server on Fedora 26

    備註:這篇是修改自三年前的「Mail server on CentOS 6」,加上些新的內容和補充 本文開始~~ 一般來說email是由三個部分組成,Mail (Transfer/Delivery/User) Agent,為什麼wiki上說有五種呢?因為MSA和MRA通常是包含在前面三種裡 在伺服端的重點是MTA跟MDA,負責收發跟儲存信的兩個部分,這邊我們用postfix和dovecot來實作 套件 在開始之前,先安裝必須的軟體 SSL憑證 由於這個教學會設定成提供加密連線,憑證是必需品 dovecot在安裝後會自動產生一組self-signed cert,放在/etc/pki/dovecot裡面,不過還是建議向CA申請,避免使用者在連線時會出現錯誤 向CA拿到憑證之後,就直接放在/etc/pki/dovecot/certs/裡面,私鑰則是/etc/pki/dovecot/private/ 如果CA有中繼憑證(intermediate certificate)的話,只需把中繼憑證以倒敘的方式append在自己的憑證後面即可 最後,檢查憑證跟私鑰的selinux context和存取權限,權限建議是root:root 600 selinux在enforcing的情況下,context如果不是「unconfined_u:object_r:dovecot_cert_t:s0」,會造成dovecot無法啟動的狀況(permission denied) 如果使用Let’s encrypt作為CA的話,可以不用搬到/etc/pki/dovecot/裡面,直接指向/etc/letsencrypt底下的憑證即可 MySQL 首先是產生所需的db和table,使用mysql root來執行以下語句 到這邊就新增完成了,記得先用select看一下DB的內容是否正確 Postfix 首先到/etc/postfix/main.cf去看看 基本設定主要是和本機(localhost)有關,我們的信箱會使用虛擬網域來收發信 在這之前,先把驗證和加密的功能設定好 再來是設定虛擬信箱 馬上就來新增剛剛寫的mysql檔案,總共有三個 存好之後使用chmod修改存取權限為600以免DB密碼被看到 然後使用以下指令來驗證上述三個檔案是不是正確設定 如果設定正確,應該會看到網域或是信箱,什麼都沒有代表失敗,就要檢查設定或是資料庫是否有問題 最後修改/etc/postfix/master.cf,開放465和587的port Postfix到這邊就完成了,記得要替防火牆開port 25, 465, 587,然後重開postfix服務 Dovecot dovecot的主要設定都在conf.d裡,我們逐步來修改 來弄資料夾的部分 過來是驗證的部分 來到剛剛引入的auth-sql.conf.ext 沿著剛剛的args繼續往下做回到上一層新增dovecot-sql.conf.ext pass_scheme選SHA512-CRYPT的原因是插入使用者資料時使用$6$作為參數呼叫ENCRYPT(),libc的crypt()在hash時會知道我們要使用SHA512 進入倒數第二個部分,dovecot的socket 最後是SSL的設定 大功告成! 一樣記得開防火牆的port…

  • Postfix 與 DKIM

    接續上一篇mail server的文章 這邊要來說DKIM的設定 安裝套件同樣是第一件事情,但記得要先裝EPEL 主設定檔 因為這個服務僅有內部可以使用,所以要限制存取來源 這個檔案是以refile的形式讀取,意思是可以用Regex表示,例如*.example.com 接著來產生Keypair 接著告訴opendkim哪些key是要給哪些網域用的 如此一來,opendkim本身就設定好了 剛剛產生Keypair的時候,除了myselector.private之外,還會有一個txt檔,內容大概像這樣 裡頭有兩組字串,把中間兩個雙引號去掉,將兩個字串接在一起,然後把那一串新增到DNS的TXT記錄 主機名稱填「myselector._domainkey」,內容就是那一串 好了之後就可以用dig查到 最後剩下與postfix整合 最後重開postfix和opendkim服務就行了

  • Cisco IOS 撥接 PPPoE

    之前從學校拿了一台2651XM,最近發現舊的路由器跑NAT效能不太好,想說來試試看Cisco的效能 一開始折騰很久才發現原本的IOS版本沒有pppoe-client,由於沒有支援合約,所以就到網路上去下載成12.4T 這邊是主要的config,除了PPPoE,還有內網的NAT和DHCP 這機器我弄了很久,結果最後效能還不如同時期的家用路由器(Asus RX3041) 兩張FE介面對傳:6.38MB/s 透過PPPoE+NAT下載:2.4MB/s

  • 在 CentOS 架設 L2TP/IPsec VPN

    之前嘗試過PPTP和OpenVPN,但PPTP太弱,而OpenVPN太依賴第三方軟體,因此想說來試試看L2TP/IPsec 架設的軟體使用epel上的strongSwan和xl2tpd,不用openSwan是因OSX在連線的時候會遇到伺服器端錯誤,據說是openSwan本身的問題 安裝前先把必要套件補完 strongSwan裝完之後可以在/etc/strongswan設定,裏頭的strongswan.conf沒特別設定不需要去動,預設是所有plugin都載入 在這之前,記得先調整kernel和iptables 接著開始設定IPsec連線部分,我這邊使用PSK,其他驗證方法可以上官網文件查 /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.secrets IPsec這邊設定和網路上的不一樣是因為新的strongswan使用charon來處理IKEv1,而不是以往的pluto 而且有時候設定太多反而會有一些奇怪的錯誤,於是就留預設值 如此一來IPsec的部分就完成了,再來是L2TP /etc/xl2tpd/xl2tpd.conf 如果上面的xl2tpd.conf使用了pam驗證,要修改下面這個 /etc/pam.d/ppp PPP的部分 /etc/ppp/options.xl2tpd 最後是連線密碼,CHAP和PAP的密碼檔是分開的,依照前面設定的內容和使用者的選擇而定 /etc/ppp/*-secrets 設定就到這邊為止,接著就可以啟動VPN了 成功連上VPN之後,如果無法連外,檢查看看iptables的FORWARD chain是不是有阻擋連線的行為

  • CA Cert SSL Certificate~!

    最近我不知道為什麼又老是想要弄Https的事情,找遍網路上免費的SSL憑證,找到了CA Cert和StartCom CA Cert是社群憑證,根憑證沒有被M$加到Windows裡 而今天就是要來教如何申請CA Cert的伺服器憑證,個人憑證就不要找我了喔(逃~   首先是CA Cert,先到這裡註冊,看到紅紅的SSL警告不用怕,直接噜過去XD,把東西隨便填一填,然後送出~ 接著去收個信,點裡面的連結,就會要你確認信箱,點選”Yes verify this email” 看到這個就表示註冊成功了,就可以點右邊的My Account>>Password Login,輸入信箱和密碼~ 登入成功後,點右邊的Domain>>Add,就會看到填入網域的地方 然後就會叫你選要用哪個信箱收信,那些信箱都是常用的管理員信箱,如果網域有特別設定也會列出來 一樣的,到信箱收信,點了連結之後會要你確認網域。確認好之後就進入重點部份了 點右邊的Server Certificates>>New,會出現一個很大的框框 要在裡面貼上網頁伺服器產生的憑證要求(CSR, Certificate Signing Request),下圖中間那些東西 至於IIS要怎麼樣產生CSR,之後會在別篇當中解講,其他家伺服器的就不要找我啦XDD 等CA檢查完CSR之後,就會提出確認,看看CN(Common Name)是不是正確的 確認送出後,就會出現憑證,這些東西照理是不能給別人看,不過在這邊我並沒有要用,只是當作免洗憑證w 把這些東西存成.txt,然後丟給伺服器去吃 另外還要記得,在CA Cert登出之後,點選右上角的”Root Certificate” 再點選Intermediate Certificate (DER Format)和Root Certificate (DER Format),將根憑證和中繼憑證下載下來 接著用右鍵點憑證,選”安裝憑證”,然後會跳出憑證匯入精靈,依照基本常識,點下一步 然後選”將所有憑證放入以下的存放區”,再按瀏覽,如果是根憑證(Root Cert),就選圖片中藍色的那個,而中繼憑證(Intermediate Cert)就選紅的 接著一路下一步就好了,這樣就大功告成囉 {-w-}

  • 無線網路(Wi-Fi)介紹

    這次要來談談有關Wi-Fi的事情~ Wi-Fi是一個電子設備間無線傳輸的標準,由Wi-Fi聯盟推出的,並成為IEEE的標準之一:IEEE 802.11。Wi-Fi是一種很強大的標準,從設備間點對點(P2P)、PAN、LAN甚至是WAN對它來說都不是問題! Wi-Fi網路卡有兩種連線方式:Ad hoc和Infrastructure。Ad hoc適用於機器對機器的連線,而Infrastructure則是透過AP(Access Point)來連線。 目前的Wi-Fi還可以分為IEEE 802.11a,b,g,n,詳細資料請見下表 網路標準 802.11a 802.11b 802.11g 802.11n 運作頻率 5Ghz* 2.4Ghz* 2.4Ghz* 2.4Ghz+5Ghz* 最大運作速度 54Mbps 11Mbps 54Mbps 300Mbps 相容性 不相容bg 相容g但會降到11Mbps 相容b但會降到11Mbps 可相容abg 頻寬 20Mhz 20Mhz 20Mhz 40Mhz 註*:實際工作頻率範圍是2.4~2.4835GHz與5.150~5.850GHz 提到無線網路就不能不說它的安全性,無線網路利用無線電波傳輸封包,只要有任何一個吃飽太閒或是歹人坐在訊號範圍攔截,你進行的網路活動就會被看的一清二楚。 所以我們需要使用加密協定來保護空氣中的封包們~ 現行的加密標準有WEP(Wired Equivalent Privacy), WPA(Wi-Fi Protected Access), WPA2 WEP是第一個在1999推出的加密標準,但是加密方式有重大弱點,所以Wi-Fi聯盟在2003就宣布用WPA取代WEP了~ WEP的驗證步驟為: 1. 用戶端向AP傳送驗證請求 2. AP回傳明文題目 3. 然後用戶端使用設定好的WEP金鑰加密AP的題目並回傳 4. AP解密用戶傳來的東西,並檢查是否和一開始的題目符合 至於WPA和WPA2其實是差不多的東西,大致可以整理成下面的樣子:…

  • IP? Subnet Mask? 傻傻分不清楚…

    明天就要考MCTS證照了,而我也在努力把書看完(看不完就爽了 但是IP(Internet Protocol, 網際網路協定)實在爆難 我就藉由這篇文章,來複習一下內容吧.. [more] 首先介紹IPv4,IPv4是一組由32-bits(位元)組成的號碼,每個設備單獨發給一組號碼,而其設備支援數量可達4294967296,但要區分世界上那麼多的網路設備,每台機器都只會分到一組獨特的號碼。 另外,為了要讓IP容易被人們閱讀/處理,我們通常把IP用逗點分成4個8位元的號碼(8*4=32),每個8位元號碼又稱為”Octet”,”Octet”的數字範圍從0~255(8-bits)。 除此之外,還有所謂的”廣播網區”、”子網路”、”子網路遮罩”。 廣播網區最重要的功能就是讓設備不須透過直接使用MAC位置互相溝通,這聽起來很方便,而且在小區域網路中很好用,不過他沒辦法穿透多重子網域,而且廣播在連線時會發送ARP封包確認連線途徑,這會讓網路承擔極大的負荷,你可以想像一下,四周都有一大堆人大聲喊叫尋找他們的同伴,你不會被吵死嗎?而且聲音互相蓋來蓋去,傳達資訊的效率很差,更何況你是在有N台電腦的網際網路? *按: 學校電腦教室就是用這種方式共享檔案[ \\{電腦名} ←這是直接用電腦的NetBIOS名稱連線 ],所以在打開目標電腦的時候會很慢。   再來是介紹子網路,子網路就是子網路阿(無誤),每個子網路都有個網段ID和廣播ID,他們分別是網段的第一個和最後一個IP位置,而且其IP位置不能被任何設備占用。 例如: 我有個網段192.168.1.10~192.168.1.200,其中網段ID就是192.168.1.10、廣播ID是192.168.1.200、設備可用IP範圍192.168.1.11~192.168.1.199   最後就是子網路遮罩,他用來細分網段,也因此是IP中最重要的一部分。 他的規則法大致像下圖 從圖片中紅色的字可以發現子網路遮罩其實很規則,而黃色的欄位則表示Class A,B,C的預設遮罩 子網路遮罩的功用就是”遮住”IP,舉例來說,用255.255.255.0當作遮罩,用二進位表示就會像下列一樣: 11111111  11111111  11111111  00000000 1就是遮掉,0就是保留 他把前面三組Octet的IP遮掉,剩下的機器數就會是最後一個1,也就是二進位的100000000,換算成十進位就是256,也就是256台機器 當我們想要再進一步分割,只要將1從左邊填入就可以了,舉例來說,我要把支援256台機器的範圍改成8台,就再填入5個1,用二進位表示如下: 11111111  11111111  11111111  11111000 剩下三個0,二進位1000,所以是8台機器,而子網路遮罩就變成255.255.255.248,248來自二進位的11111000 至於要增加網段範圍,只要把0從右邊加上去就行了,例如,我要把256台機器擴充為1024台機器,用二進位表示如下: 11111111  11111111  11111100  00000000 機器數是所有的0左邊加1,也就是二進位10000000000,等於十進位的1024,而子網路遮罩變成255.255.252.0   那要如何從一個IP和子網路遮罩得知整個網段的範圍呢?方法很簡單,只要有小算盤就搞定了 假設我有一個IP是10.241.168.19,子網路遮罩是255.255.192.0,而網段ID(起始點)就是10.241.128.0 操作方法就是打開小算盤,切換到”程式設計師”模式,輸入168,按”AND”鍵,再輸入192,接著按Enter,答案就出來了。 為什麼會這樣?其實我也不知道 不過”AND”在數學上是一種邏輯運算,他表示不同東西的”交集” 因此,把IP和子網路遮罩寫成二進位後,上下對齊後,兩者的交集便是答案了 範例 好啦,大概都說完了,IPv6我還沒學會,所以就不寫了

  • WordPress 根本沒辦法隱藏版本號!

    你是不是在網路上看過一大堆教你在佈景的Function.php要如何加入像下列這種東西?   remove_action(‘wp_head’, ‘wp_generator’);   [more] 這根本沒有啥用! 只要讀取RSS一切就大白了 因為裡面的資訊寫著http://wordpress.org/?v=*.*.* 而那個*.*.*正是WP版本…