發表文章

目前顯示的是有「Ubuntu」標籤的文章

如何學習Linux

圖片
如何學習Linux 大綱 前言 選擇適合你的 Linux distribution 從頭學習 Linux基礎 選擇一本易讀的工具書 涉足 Linux社群和網站 實作、增加自身的價值 發生問題怎麼處理啊?建議流程是這樣... 前言 一開始多使用文字介面、命令提示來操作Linux比較好! 為什麼大家老是建議學習Linux最好能夠先捨棄X Window的環境呢? 這是因為X window了不起也只是Linux內的『一套軟體』而不是『Linux核心』。 此外,目前發展出來的X-Window對於系統的管理上還是有無法掌握的地方,舉個例子來說,如果 Linux本身捉不到網路卡的時候,請問如何以X Window來捉這個硬體並且驅動他呢? 還有,如果需要以Tarball(原始碼)的方式來安裝軟體並加以設定的時候,請以X Window 來架設他!這可能嗎?當然可能,但是這是在考驗『X Window開發商』的技術能力, 對於瞭解Linux架構與核心並沒有多大的幫助的!所以說,如果只是想要『會使用Linux』的角度來看, 那麼確實使用X Window也就足夠了,反正搞不定的話,花錢請專家來搞定即可;但是如果想要更深入 Linux的話,那麼指令列模式才是不二的學習方式! 以伺服器或者是嵌入式系統的應用來說,X Window是非必備的軟體,因為伺服器是要提供用戶端來連線的, 並不是要讓使用者直接在這部伺服器前面按鍵盤或滑鼠來操作的!所以圖形介面當然就不是這麼重要了! 更多的時候甚至大家會希望你不要啟動X window在伺服器主機上,這是因為X Window通常會吃掉很多系統資源的緣故! 再舉個例子來說,假如你是個軟體服務的工程師,你的客戶人在台北,而你人在遠方的台南。某一天客戶來電說他的Linux伺服器出了問題, 要你馬上解決他,請問:要您親自上台北去修理?還是他搬機器下來讓你修理?或者是直接請他開個帳號給你進去設定即可? 想當然爾,就會選擇開帳號給你進入設定即可囉!因為這是最簡單而且迅速的方法!這個方法通常使用文字介面會較為單純, 使用圖形介面則非常麻煩啦!所以啦!這時候就得要學學文字介面來操作Linux比較好啦! 另外,在伺服器的應用上,檔案的安全性、人員帳號的管理、軟體的安裝/修改/設定、 登錄檔的分析以及自動化工作排程與程式的撰寫等等,都是需要學習的, 而且這些東西都還未涉...

Linux簡介

圖片
Linux簡介 前言 相信大家對Linux核心為基礎的Android系列一定毫不陌生,但你可能不知道,從架設網站、物聯網、穿戴式設備、崁入式作業系統、工業自動控制....幾乎無所不在 OS(作業系統) 幾乎都用 Linux。 Linux的誕生,就是在1991年,一名芬蘭大學生Linus Torvalds托瓦茲 ,就藉由GNU計劃的協助下,發展出了著名的Linux,一個讓大眾可以自由參與、集體協作、開源免費的OS。 大綱 Linux 的由來 Linux 發行版 各大 Linux Distributions發行版的主要異同:支援標準! 主要的 Linux distributions發行者 Linux OS(作業系統)  架構 核心(Kernel) Linux的核心版本 奇數、偶數版本分類 主線版本、長期維護版本(longterm version) 關於 GNU計畫、自由軟體與開放原始碼 自由軟體的活動 自由軟體的版權GNU GPL 1991年:芬蘭大學生Linus Torvalds的一則簡訊 自由(Free)的真諦 自由軟體與商業行為 開放原始碼 專屬軟體/專利軟體 (close source) Linux 的發展-Torvalds 與Minix之間 對386硬體的多工測試 初次釋出Linux 0.02 Linux 的發展:虛擬團隊的產生 Linux在台灣 選擇適合你的Linux distribution Linux 的由來 Unix的前身是由 貝爾實驗室 (Bell lab.)的Ken Thompson利用組合語言寫成的。 1969年,Unix在美國 AT&T 公司的貝爾實驗室開發出來。 1977年由Bill Joy釋出 BSD (Berkeley Software Distribution),這些稱為Unix-like的作業系統。 1983年,Richard Stallman創立 GNU 計劃。這個計劃有一個目標,是為了發展一個完全自由的類Unix作業系統。 1984年由Andrew Tanenbaum開始製作 Minix 作業系統,該系統可以提供原始碼以及軟體。 1985年,發表GNU宣言。 1989年,發表GNU通用公眾授權條款( GPL )。GNU計畫中的其他部份,如編輯器、編譯器、shell等都已經完成,獨缺作業系統核心...

VirtualBox的虛擬主機網路設定

圖片
VirtualBox的虛擬主機網路設定 前言 這裡介紹如何調整 VirtualBox 的網路設定,讓開發者可透過網路連線至虛擬機器做測試。 大綱 虛擬機連網設定步驟 Virtual Box 網卡的幾種設定模式 虛擬機連網設定步驟 步驟 1 假設我們已經安裝好了一個新的 Linux 虛擬機器,此時從「檔案」中點選「主機網路管理員」 步驟 2 在主機網路管理員中,建立新的子網路。 步驟 3 在 VirtualBox 的主要控制畫面上,選擇測試用的 Linux 虛擬主機,然後點選「設定值」。 步驟 4 選擇「網路」的設定籤頁,在這裡可以設定虛擬主機的網路卡,通常第一張是預設以 NAT 上網的網路卡,所以不要更改第一張的設定,否則到時候對外連線容易出問題。 在「介面卡 2」的地方,勾選「啟用網路卡」,選擇「僅線主機」介面卡,名稱的地方就選擇剛剛上面新增的子網路。 這樣就完成 VirtualBox 的設定了,接下來就可以打開虛擬機器,讓虛擬機器裡面的 Linux 自動透過第二張網路卡取得 IP 位址,與實體的本機連線了。 如果不想要每次開機都確認 DHCP 抓到的 IP 是那一個,可以將上面子網路的 DHCP 伺服器功能關閉,並調整虛擬機的網路設定,將 IP 位址設定為靜態的,這樣就可以把 IP 固定住 Virtual Box 網卡的幾種設定模式 有關網卡幾種設定模式: Not Attached  NAT (Network Address Translation) NAT網路(Network Address Translation Service (experimental)) 橋接介面卡(Bridged networking) 僅限主機介面卡、Host-only Adapter模式(Host-only networking) 內部網路 (Internal Networking) 通過這張圖就很容易看出這4種方式的區別。 詳細說明請參閱:► VirtualBox Network Settings: Complete Guide 、 徹底理解Viutual Box四種網路連線方式(外連結) 參考資料 特色、摘要,Feature、Summary: 關鍵字、標籤,Keyword、Tag: Virtual-Box,Ubuntu,Linux,Networ...

網路服務Port(埠口)監測與管理

圖片
網路服務Port(埠口)監測與管理 1.前言 為什麼我們的主機會回應網路上面的一些要求封包呢?例如我們設定了一部 WWW 主機後,當有來自 Internet 的 WWW 要求時,我們的主機就會予以回應,這是因為我們的主機有啟用了 WWW 的監聽埠口啊!所以,當我們啟用了一個 daemon 時,就可能會造成主機的埠口在進行監聽的動作,此時該 daemon 就是已經對網路上面提供服務了!萬一這個 daemon 程式有漏洞,因為他提供了 Internet 的服務,所以就容易被 Internet 上面的 Hacker 所攻擊了!所以說,仔細的檢查自己系統上面的埠口到底開了多少個,並且予以嚴格的管理,才能夠降低被攻擊的可能性啊! 大綱 什麼是 port 埠口的觀察: netstat ,nmap 埠口與服務的啟動/關閉及開機時狀態設定 找出啟動port的服務程式 預設啟動的服務 安全性考量-關閉網路服務埠口 2.什麼是 port 當我們的主機啟動了一些服務,相對應的這些服務就會開啟一些Port (埠口) 。『服務』跟『 port 』對應表。參考下列網址: 常見的連接埠中文說明  ,  Internet Assigned Numbers Authority (IANA)連接埠的官方清單 伺服器端啟動的監聽埠口所對應的服務是固定的: 例如 WWW 服務開啟在 port 80 ,FTP 服務開啟在 port 21,email 傳送開啟在 port 25 等等,都是通訊協定上面的規範! 用戶端啟動程式時,隨機啟動一個大於 1024以上的埠口: 用戶端啟動的 port 是隨機產生的,主要是開啟在大於 1024 以上的埠口。這個 port 也是由某些軟體所產生的, 例如瀏覽器、Filezilla 這個 FTP 用戶端程式等等。 一部伺服器可以同時提供多種服務: 所謂的『監聽』是某個服務程式會一直常駐在記憶體當中,所以該程式啟動的 port 就會一直存在。 只要伺服器軟體啟動的埠口不同,那就不會造成衝突。當用戶端連接到此伺服器時,透過不同的埠口,就可以取得不同的服務資料囉。 所以,一部主機上面當然可以同時啟動很多不同的服務啊! 共 65536 個 port: TCP/UDP 表頭資料中,就知道 port 佔用 16 個位元,因此一般主機會有 65536 個 p...

PuTTY、VNC、TeamViewer

圖片
PuTTY、VNC、TeamViewer PuTTY Windows裡最受歡迎的免費SSH客戶端連線軟體 - PuTTY 參考:  SSH軟體PuTTy教學  VNC (Virtual Network Computing) 為一種使用RFB協定的螢幕畫面分享及遠端操作軟體。 此軟體藉由網路,可傳送鍵盤與滑鼠的動作及即時的螢幕畫面。 VNC與作業系統無關,因此可跨平台使用,例如可用Linux 、Windows、Mac OS 連線到某Linux的電腦。 用Ubuntu 連接 VNC Ubuntu 20.04其實已內建了預設的VNC服務,只需要設定下就可以了。 第一步 - Server 端,設定-共享-螢幕共享-開啟 第二步 - Client 在終端下執行 Linux 的話, 它自帶就有一個 VNC 軟體. 只要你在右上角搜一下 VNC, 那個被我圈出來的軟體就是一個 Client 端的 VNC. 點開它, 輸入 server 端的 IP 和他的密碼就好。 用 Windows 連接 VNC  至於 Windows 呢, 其實有很多選項, 我們已經在 Linux 端設置好了一個 VNC server. 在 Windows 端, 我們需要的只是一個 VNC client. 而有很多軟體可以實現 VNC client 這個功能. 我在下面列舉一些: TightVNC (免費) RealVNC (免費) RealVNC 有兩種選項, 一個是 VNC Viewer, 用來做 client 端的(控制). 一個是 VNC connect, 用來做 server 端的(被控制)。 Client 端的 VNC 操作流程都很簡單. 只要求要一個 server 端的 IP 和他的密碼就好。 TeamViewer TeamViewer 是一款免費、中文化、跨平台、好用的遠端控制軟體,目前已經更新為15版,只要兩台電腦都安裝這個軟體,透過中間伺服器取得一個 ID和密碼 (替代電腦的 IP),就可以遠端連線,由主控端電腦遠端控制另一台被控端電腦。您的電腦如果有問題,只要電腦還可以連上網路,將取得的ID和密碼通知您的朋友,他就可以從遠端連線到您的電腦,幫您解決問題。另外,TeamViewer還具有可穿透防火牆連線,主控端和被控端可隨時互換、傳輸檔案、遠端喚醒.....

SSH 的安裝與設定

圖片
SSH 的安裝與設定 前言 SSH(Secure Shell)是一個在應用層和傳輸層上的資料傳輸加密的協定。所以傳送出去的封包都是經過加密的,即使被擷取,也需要很大的功夫才能解開,比較安全。此外,SSH也是一個會壓縮的協定,因此可以節省頻寬、加速傳遞資料等。不只如此,SSH 不只可以達到 Telnet 的遠端連線功能,還可以提供類似FTP、但較安全的 sFTP 功能(FTP 也是明碼)....等,許多應用。 安裝SSH-Client 如果你只是想登入別的機器的 SSH 只需要安裝 openssh-client(ubuntu有默認安裝),如果要使本機開放SSH服務就需要安裝openssh-server。 查看當前的ubuntu是否安裝了ssh 服務。 $dpkg -l|grep ssh 更新系統套件 $sudo apt update -y 安裝 openssh-client ubuntu 通常會默認安裝 openssh-client,若無則使用以下指令安裝: $sudo apt install -y ssh  或是   $sudo apt install -y openssh-client 安裝 openssh-server  若要讓其他電腦連線到你的 ubuntu 系統就必須安裝 openssh-server 服務,以下指令安裝: $sudo apt install -y ssh  或是  $sudo apt install -y openssh-server 查看SSH有無被開啟 安裝完SSH套件後,一般來說會自動啟用,可以使用以下指令來檢查SSH的啟動狀況: $dpkg -l | grep ssh   或是    $netstat -a|grep ssh 手動開啟與關閉SSH 如果SSH沒有被開啟,可以使用以下指令來開啟SSH: $sudo service ssh start 關閉SSH: $sudo service ssh stop 重啟SSH: $sudo service ssh restart 用SSH連線到別台裝置 在Linux下只要使用「ssh」指令即可透過SSH來連線到別台裝置。使用帳密登入,最簡單的方式如下: $ssh username@...

主機防護的基本工作

圖片
主機防護的基本工作 前言大綱 1、隨時更新系統軟體 2、限制連線埠口與服務 3、 啟動 SELinux(AppArmor) 來限制網路服務的權限 防護工作 - 針對不同型態的攻擊 資安相關網站 台灣電腦網路危機處理暨協調中心 臺大資訊安全中心 主機防護工作、基本三步驟 1、隨時更新系統軟體 Ubuntu 安裝完畢之後,必須進行更新,以獲得最新的軟體與系統程式,平常也要經常更新,以保持系統在最穩定、最安全的狀態,指令如下: 指令一:$sudo apt update 說明:用來取得遠端更新伺服器的套件檔案清單。 指令二:$sudo apt -y dist-upgrade 說明:更新套件。 指令三:$sudo apt clean 說明:清除更新時所下載回來的更新(安裝)檔案。 指令四:$sudo apt autoremove 說明:自動清除更新後用不到的舊版本檔案(例如舊的核心程式) 細節參考 :  apt-get 或 apt:Advanced Packaging Tool 套件管理工具 2、限制連線埠口與服務 當我們的主機啟動了一些服務,相對應的這些服務就會開啟一些Port (埠口) 。 當啟動一個網路服務,這個服務會依據 TCP/IP 的相關通訊協定啟動一個埠口在進行監聽, 那就是 TCP/UDP 封包的 port (埠口) 了。我們知道網路連線是雙向的,伺服器端得要啟動一個監聽的埠口, 用戶端得要隨機啟動一個埠口來接收回應的資料才行。 再來就是要來瞭解一下,我們的主機到底是開了多少的 port 呢?由於 port 的啟動與服務有關,那麼『服務』跟『 port 』對應的檔案是哪一個?再提醒一次呦!是 『 /etc/services 』  啦! $cat /etc/services     //可以看看『服務』跟『 port 』對應表。 對應表說明,參考下列網址: 常見的連接埠中文說明 Internet Assigned Numbers Authority (IANA) 連接埠的官方清單 Linux中,主要用來觀察 port 的則有底下兩個程式: netstat:在本機上面以自己的程式監測自己的 port; nmap:透過網路的偵測軟體輔助,可偵測非本機上的其他網路主機,但有違法之虞。 細節繁多,另闢說明如下...

iptables的觀念與使用

圖片
iptables的觀念與使用 1.前言 "iptables" 主要是第一層 : 封包過濾式的 netfilter 防火牆,他不是一種服務,是操作netfilter的命令。 Ubuntu server環境,防火牆有很多選擇,從最為易用便捷的 "ufw" 防火牆(Ubuntu預設),到較新的動態防火牆 " Firewalld ",再到較為專業的防火牆 "iptables"  一應俱全,如何選擇一款合適的防火牆呢?沒有標準答案,但肯定有最合適的選擇。 其中,iptables 這個工具功能全面強大,可以實現很多 ufw 及  Firewalld無 法完成的網絡功能,推薦有一定基礎的用戶使用。 2.理論與觀念 正確的觀念,才能理解,才能正確地應對不同的入侵方式。 iptables防火牆的結構 iptables 是Linux中功能最為強大的防火牆,使用靈活,可以對流入和流出伺服器的數據包進行很精細的控制,當然如果只是用來開啟或禁止某個網絡服務的某個網絡埠,它和 ufw 以及Firewalld都差不多 iptables的三大核心要素是表,鏈和規則。 一言以蔽之,iptables是表的集合,包含四張表(常用的三張 filter, nat, mangle),表則是鏈的集合,每個表都包含若干個鏈, 而鏈則是規則的集合,真正過濾規則是屬於鏈,iptables的處理流程如下圖所示: 從上圖可觀察到Kernel處理和過濾數據包的流程,描述了封包進入主機到離開主機,會經過哪些tables,這些tables裡面會寫規則,進行放行或攔截。 大致上你可以發現數據包在主機流通時有四張表、五個階段: iptables 四張表(彩色的部分) filter :  整個iptables最關鍵的表,實現封包的過濾,可以由INPUT,FORWARD,OUTPUT這三個能夠實現過濾功能的鏈組成。 nat  :   學過網路的人應該都知道NAT(Network Address Translation)網路地址轉換,正是應為有了這項技術才使得我們現今還能夠有IPv4可以使用,在iptables中也可以實現NAT的相關功能, 例如SNAT, DNAT, MASQUERADE等功能,nat表可以由PREROUTING, FORWARD, P...