- 確認使用中的 Ubuntu 已完成現有使用環境的系統更新或升級。
sudo apt-get update
sudo apt-get -y upgrade - 安裝在Python中管理套件的指令pip。
sudo apt-get -y install python-pip - 安裝虛擬環境virtualenv。
sudo pip install virtualenv - 建立虛擬環境VENV
virtualenv VENV - 進入已建立的虛擬開發環境,進入虛擬開發環境後,命令列會前置 (VENV)
source VENV/bin/activate - 在虛擬開發環境內安裝Django套件
pip install django - 在個人home folder下新增專案目錄 myDjango。
mkdir myDjango
cd myDjango - 在專案目錄 (myDjango) 內,建置網站專案mblog (建立相關目錄及文件)
django-admin startproject mblog - 進入網頁專案目錄mblog,新增一個網站程式功能(模組) mainsite
(一個Django project網頁專案,可以包含多個Django apps功能模組)
cd mblog
python manage.py startapp mainsite - 完成以上步驟,已大致完成網站專案的建構。
可以透過tree查看一下剛剛建置的檔案及目錄。(可以使用sudo apt install tree,安裝tree)
cd ..
tree mblog - 調整 myDjango/mblog/mblog/settings.py 的 ALLOWED_HOSTS
ALLOWED_HOSTS = ['127.0.0.1','10.0.2.15'] - 切換mblog網站專案目錄,啟動網站服務
指定IP及port:(可以使用ip a 查詢主機的IP)
python manage.py runserver 10.0.2.15:8000
不特別指定IP及port:(預設為127.0.0.1:8000)
python manage.py runserver - 以瀏覽器測試 http://10.0.2.15:8000/
- 網頁專案內的檔案內容,如有任何變動,Django會自動偵測並重新載入更新相關內容,因此開發的過程就不用一再的重新啟動網站服務。
- 離開虛擬開發環境
deactivate
站內搜尋:Yahoo搜尋的結果,如果沒有給完整的網址,請在站內再搜尋一次!
2018-11-06
在 Ubuntu (Linux) 建立Python Django 的開發環境
2018-11-05
在 Ubuntu新增建立可以執行 sudo 的使用者帳號
root 是 Linux 是系統中必須存在,且擁有系統最高權限的一個帳號。
在很多情況下,是不會也不允許使用root帳號直接登入系統,如果在某些情況下需要以root的身分去執行某些指令,可以使用 su 切換身份,或使用 sudo 以指定的帳號權限執行程式。(如果沒指定要切換的身份或要執行程式的身份,就預設切換為root)
使用 su 、 sudo,都要輸入密碼,不同的是:
su : 要切換成誰的身份,就輸入誰的密碼。
sudo : 以一般使用者是否有被授權使用sudo,來決定執行的權限,所以輸入登入者的密碼即可。
只有 root 才能新增系統的使用者或群組,所以如果要新增一個新的使用者DanielHuang,可以使用指令: (因為DanielHuang不符合系統預設的使用者代號的常規命名規則,所以要加入參數--force-badname)
sudo adduser DanielHuang --force-badname
可以使用usermod指令,將使用者加入可以執行sudo的群組
sudo usermod -aG sudo DanielHuang
如果沒有sudo的權限,會出現錯誤訊息:DanielHuang is not in the sudoers file. This incident will be reported.
在很多情況下,是不會也不允許使用root帳號直接登入系統,如果在某些情況下需要以root的身分去執行某些指令,可以使用 su 切換身份,或使用 sudo 以指定的帳號權限執行程式。(如果沒指定要切換的身份或要執行程式的身份,就預設切換為root)
使用 su 、 sudo,都要輸入密碼,不同的是:
su : 要切換成誰的身份,就輸入誰的密碼。
sudo : 以一般使用者是否有被授權使用sudo,來決定執行的權限,所以輸入登入者的密碼即可。
只有 root 才能新增系統的使用者或群組,所以如果要新增一個新的使用者DanielHuang,可以使用指令: (因為DanielHuang不符合系統預設的使用者代號的常規命名規則,所以要加入參數--force-badname)
sudo adduser DanielHuang --force-badname
可以使用usermod指令,將使用者加入可以執行sudo的群組
sudo usermod -aG sudo DanielHuang
如果沒有sudo的權限,會出現錯誤訊息:DanielHuang is not in the sudoers file. This incident will be reported.
2011-10-19
在ubuntu server下,設定使用WPA資料加密、以PSK認證、使用TKIP加密模式的無線網路連線
Ubuntu server所使用的硬體環境:
- 華碩eeePC 1000HD,CPU Celeron 1G,RAM 1GB,安裝在pqi (class 10) 8GB的SD卡上,原隨機的XP home仍保留繼續使用,需要使用ubuntu server時,在開機出現Asus logo畫面時,按下ESC鍵,選取使用SD 8G這個裝置開機,就可以使用ubuntu server了!
- 內建的無線網卡,在XP的環境下,看到的是Altheros AR5007EG,但安裝ubuntu server 11.10過程中,抓到的是Altheros AR242x / AR542x這個系列的型號。
安裝過程說明:
- 安裝過程系統可以自己抓到無線網卡,並要求輸入SSID及金鑰,接著就顯示連線成功,繼續安裝了。
- 只要輸入SSID跟金鑰就可以了?有些懷疑,因為我的無線AP有設定要隱藏SSID。
- 雖然安裝過程可以順利連線完成安裝,但重新開機後,無線網路並沒有成功地跟無線AP連線。怎麼了?
檢視 /etc/network/interfaces 的設定:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid MySSID
wpa-psk MyPskString
這些設定資料跟我安裝過程中所輸入的資料是一樣的,那問題出在哪裡呢?應該是隱藏SSID的設定還是必須設定的!
先查看一下我無線AP的相關設定:
- 確認ESSID字串輸入正確無誤、無線AP的ESSID是在隱藏的狀態
- 確認無線AP端使用WPA進行資料加密,加密的模式為TKIP,以PSK的方式進行認證。
WPA : WiFi Protected Access
PSK : Pre-Shared Key 預設共用金鑰
TKIP : Temporal Key Integrity Protocol
確認AP端所需的資料,接下來就要再調整一下 /etc/network/interfaces 了!
auto wlan0
iface wlan0 inet dhcp
# iface wlan0 inet static
wpa-driver wext
wpa-ssid MySSID
wpa-ap-scan 2
wpa-proto WPA
wpa-pairwise TKIP
wpa-group TKIP
wpa-key-mgmt WPA-PSK
wpa-psk MyPskString
# address 192.168.1.201
# gateway 192.168.1.1
# netmask 255.255.255.0
auto wlan0
iface wlan0 inet dhcp
# iface wlan0 inet static
wpa-driver wext
wpa-ssid MySSID
wpa-ap-scan 2
wpa-proto WPA
wpa-pairwise TKIP
wpa-group TKIP
wpa-key-mgmt WPA-PSK
wpa-psk MyPskString
# address 192.168.1.201
# gateway 192.168.1.1
# netmask 255.255.255.0
- wpa-ssid : 根據自己的實際設定輸入
- wpa-psk : 根據自己設定的字串輸入
- wpa-ap-scan 2 : 代表已隱藏SSID。1 : 代表廣播SSID供搜尋。
- wpa-proto : 如果是WPA2的加密方式,可以將WPA改為RSN。
- wpa-pairwise : 如果是WPA2的加密方式,可以將TKIP改為CCMP。
- wpa-group : 如果是WPA2的加密方式,可以將TKIP改為CCMP。
- wpa-key-mgmt : WPA / WPA2 都設為WPA-PSK。
- 一般使用DHCP的方式取得IP。iface wlan0 inet dhcp
- 也可以自行設定使用固定IP。iface wlan0 inet static
使用固定IP,要再設定一下address / gateway / netmask
重新啟動網路卡,完成設定。 /etc/init.d/networking restart
2011-10-13
在ubuntu下,使用webmin管理OpenLDAP
Webmin的ldap-server模組,只是在webmin下管理LDAP的一個模組,不能透過ldap-server模組來安裝LDAP伺服器,所以在使用webmin的ldap-server模組之前,要先確定已經安裝LDAP server。
在Ubuntu server下安裝OpenLDAP指令:(假設使用root登入,非root登入,需前置sudo指令)
apt-get update
apt-get install slapd ldap-utils
在webmin下安裝ldap-server管理模組:
webmin -> Webmin Configuration -> Webmin Modules
在Webmin Modules的Install分頁頁籤下,Install from 選擇:Standard module from www.webmin.com,再透過旁邊的『...』鈕,選取:ldap-server,執行:Install Module
安裝完成後,記得重新整理模組(Refresh Modules),在『Servers』這個項目下就會有『LDAP server』的選項,可以選擇。
選擇:OpenLDAP Server Configuration,確認→Root DN for LDAP database 以及 Administrator login DN 已建立。 必要時設定一下Administration password。
從遠端用JXplorer試著登入OpenLDAP:
確認是否可以成功連線登入?
在Ubuntu server下安裝OpenLDAP指令:(假設使用root登入,非root登入,需前置sudo指令)
apt-get update
apt-get install slapd ldap-utils
在webmin下安裝ldap-server管理模組:
webmin -> Webmin Configuration -> Webmin Modules
在Webmin Modules的Install分頁頁籤下,Install from 選擇:Standard module from www.webmin.com,再透過旁邊的『...』鈕,選取:ldap-server,執行:Install Module
安裝完成後,記得重新整理模組(Refresh Modules),在『Servers』這個項目下就會有『LDAP server』的選項,可以選擇。
選擇:OpenLDAP Server Configuration,確認→Root DN for LDAP database 以及 Administrator login DN 已建立。 必要時設定一下Administration password。
從遠端用JXplorer試著登入OpenLDAP:
確認是否可以成功連線登入?
2011-10-01
unix / linux / ubuntu 指令速查
unix / linux / ubuntu 指令速查
下載『unix-linux-ubuntu指令速查.pdf』
基本指令及系統訊息
檔案及目錄使用操作
網路指令
帳號管理
系統管理
下載『unix-linux-ubuntu指令速查.pdf』
基本指令及系統訊息
- | pipe通道,將一指令輸出作另一指令輸入
- cal 查看月曆(cal 02 2011 查看2011-02的月曆)
- clear 清除目前的螢幕內容
- date 查看或設定系統時間
- dmesg 顯示系統暫存區的內容
- free 顯示記憶體及SWAP的使用狀況
- man 線上查看指令說明
- pwd 查看目前所在的目錄位置
- uptime 系統開機時間等訊息
- w 列出目前系統使用者使用狀況 (參考who)
檔案及目錄使用操作
- cat 列出文字檔案的內容
- cd 切換目錄(cd ~joe : 切換到joe的家目錄)
- chmod 變更檔案目錄權限(-ugo,a=all, r4/w2/x1 )
- chown 變更檔案的擁有者及群組(-R包含子目錄)
- cp 複製檔案或目錄 (cp 來源 目的)
- df 查看磁碟空間使用狀況(-h 以K/M/G顯示)
- du 查看所在目錄磁碟空間的使用情形
- find 尋找檔案(find / -name filename)
- fsck 檢查並修復檔案系統
- grep 搜尋字串(grep -r string folder )
- head 列出檔案前n行(head -5 a.t列出a.t前5行)
- ln 建立檔案或目錄的連結檔(Windows捷徑)
- ls 查看所在目錄下的目錄、檔案資訊(dir)
- mkdir 建立目錄
- more 以分頁列出文字檔的內容 (參考less)
- mv 搬移檔案或目錄(可更改檔案或目錄名稱)
- rm 刪除檔案或目錄(刪目錄-r,強制刪除-f)
- tail 列出檔案末n行
- tar 壓縮/解壓縮(z壓縮/x取出/c建立)
- touch 改變檔案的時間戳記
- wc 計算檔案的行數、字數、位元數
- whereis 尋找程式/說明檔等的位置(不適用文字檔)
- which 尋找指令程式的所在目錄
網路指令
- arp 查詢IP, mac等位址
- dig DNS查詢工具
- ifconfig 查詢或設定網路介面
- netstat 查詢網路連線狀況
- nslookup 交談式查詢主機名稱或IP
- ping 藉ICMP封包檢查遠端主機的連線狀態
- traceroute 查詢到達遠端主機所經的結點
- whois 查詢網域名稱的持有現況
帳號管理
- gpasswd 群組管理指令(gpasswd -a user group)
- groupadd 新增群組
- groupdel 刪除群組
- groupmod 修改群組
- groups 查詢使用者所隸屬群組(groups useracc)
- last 顯示使用者登入紀錄
- passwd 修改(指定)使用者密碼
- useradd 新增帳號
- userdel 刪除帳號
- usermod 修改帳號
- vipw 編輯使用者密碼檔
系統管理
- apt-get apt-get update重新同步套件索引檔
apt-get install package1 package2 ... - crontab 定時執行工作(-e編輯,-l列表,-r清除)
- dpkg deb套建管理(dpkg --install pakage)
- exit 登出
- kill 送訊號給指定的程序(kill -9 ##移除程序)
- ntpdate NTP校時
- ps 目前系統執行中的程序(ps auxww)
- reboot 系統重新開機
- shutdown 系統關機時間指定 (shutdown -h now)
- sync 將系統暫存的資料強制寫回硬碟
- top 程序管理工具(q:離開 / h:Help)
2011-09-30
在ubuntu server下,使用shutdown指令預約關機,如何取消?
- shutdown的關機指令:
shutdown -h 23:59 ==>指定在23:59關機
shutdown -h +45 ==>指定在45分鐘後關機
shutdown -h now ==>下指令後馬上關機,沒有後悔的機會
- 利用ps指令列出進行中的程序,透過 | pipe的管道功能,將ps執行的結果傳送給grep搜尋包含shutdown的程序
ps a | grep shutdown
如下圖例中,取得這個預約關機的Process ID(PID)是14124
- 使用kill指令,取消預約關機的程序(Process)
kill -KILL 14124 或 kill -9 14124 都可以達到終止上述關機程序的預約
2011-09-28
vi / vim 指令整理‧速查
vi / vim 指令速查
下載『vi/vim指令速查.pdf』
進入編輯模式
編輯環境設定
游標的移動
字串、行、區塊範圍的選取‧複製‧貼上‧刪除‧取消
搜尋與取代
:起始行,終止行s/搜尋字串/取代字串/gic
(g: 整行全部, i: 不分大小寫,c: 詢問)
(起始行,終止行) = (1,$) 代表所在檔案全部範圍
檔案功能
多重視窗
下載『vi/vim指令速查.pdf』
進入編輯模式
- a 在游標位置之(後)進入(插入)編輯模式
- A 在游標所在行的行末進入(插入)編輯模式
- i 在游標位置之(前)進入(插入)編輯模式
- I 在游標行的行首進入(插入)編輯模式
- r 取代所在位置那個字元
- R 在游標所在位置進入(取代)編輯模式
- o 在游標上方新增一行,並進入編輯模式
- O 在游標下方新增一行,並進入編輯模式
- <Insert> 切換為--INSERT--或--REPLACE--模式
- <Esc> 退出編輯模式或取消指令
編輯環境設定
- :set nu 顯示行號
- :set nonu 不顯示行號
- :set ai 自動內縮
- :set noai 取消自動內縮
游標的移動
- gg 將游標移到第一行
- G 將游標移到最後一行
- 行號 G 將游標移到(行號)所在行
- 0 將游標移到所在行的行首
- $ 將游標移到所在行的行末
- 字數<Space> 將游標向右移動(字數)個字元
- 行數<Enter> 將游標向下移動(行數)列
字串、行、區塊範圍的選取‧複製‧貼上‧刪除‧取消
- v 字串範圍的選取,搭配↑↓←→進行
- V 行範圍的選取,搭配↑↓←→進行
- v <Ctrl>+V 區塊範圍的選取,搭配↑↓←→進行
- d 刪除選取的範圍(是剪下還可以貼上)
- d0 刪除游標所在位置起到該行的行首
- d$ 刪除游標所在位置起到該行的行末
- dd 刪除游標所在行(是剪下還可以貼上)
- 5dd 刪除游標所在行共5行
- D 從游標所在位置起刪除到該行的行末
- d1G 刪除游標所在行到第一行的內容
- dG 刪除游標所在行到最後一行的內容
- :%d 刪除編輯區域內的全部內容
- :15d 刪除第15行
- :11,29d 刪除第11-29行
- x 刪除游標所在位置的字元
- X 刪除游標所在位置的前一個字元
- y 複製選取的範圍
- y0 複製游標所在位置起到該行的行首
- y$ 複製游標所在位置起到該行的行末
- yy 複製游標所在行
- y1G 複製游標所在行到第一行的內容
- yG 複製游標所在行到最後一行的內容
- p 在所在位置(或行)之前(或上一行)貼上
- P 在所在位置(或行)之後(或下一行)貼上
- u 恢復到上一個指令執行後的內容
- U 取消游標所在行的所有變更
- 2,6co9 將2-6行複製到第9行的後面
- 2,6mo9 將2-6行搬移到第9行的後面
搜尋與取代
:起始行,終止行s/搜尋字串/取代字串/gic
(g: 整行全部, i: 不分大小寫,c: 詢問)
(起始行,終止行) = (1,$) 代表所在檔案全部範圍
- :set ic 搜尋時不區分大小寫
- :set noic 搜尋時要區分大小寫
- /搜尋字串 在游標之後找搜尋字串
- ?搜尋字串 在游標之前找搜尋字串
- n 向下找下一個搜尋結果
- N 向上找上一個搜尋結果
- :%s/new/old/g 將編輯範圍中的new取代為old
- :1,9s/^/###/ 在1-9行的行首加入三個#
- :1,$s/from/to/g 將檔案中所有的from取代為to
檔案功能
- :q 離開編輯程式
- :q! 不存檔強制離開編輯程式
- :w 存檔
- :w! 強制存檔(例:有擁有權沒寫入權)
- :w 新檔案名稱 另存新檔
- :wq 存檔並離開編輯程式
- :r 將指定的檔案內容加到游標行後面
- :e 檔案名稱 編輯另一個檔案
- :e! 還原到該檔案編輯前的狀態
- :n 切換到下一個目前開啟中的檔案
- :N 切換到上一個目前開啟中的檔案
- :f 目前開啟中的檔案名稱
- :files 列出目前開啟中的所有檔案
- :1,9w 檔案名稱 將1-9行的資料另存為指定的檔名
- :1,9w>>檔名 將1-9行的資料附加到指定檔案之後
多重視窗
- :new (檔名) 開水平視窗(並在新視窗開啟檔案)
- :vnew (檔名) 開垂直視窗(並在新視窗開啟檔案)
- <Ctrl>-w 方向鍵 切換視窗
- :only 只保留游標所在視窗
- vim -o2 t1 t2 以水平視窗的方式開啟t1,t2兩檔案
2011-09-27
crontab 排程工作的設定範例
crontab是一個系統執行自動化,非常方便好用的工具,設定crontab執行的時間、指令...,格式如下:
#分 時 日 月 星期 身分 指令
*/10 * * * * root /root/Test01.sh
#以root的身分每隔10分鐘執行一次/root/Test01.sh
#如果以crontab -e的方式來編輯排程的內容,不必使用身分這個欄位
#小時用*,代表每小時執行一次
#日期用*,代表每天執行一次
#月份用*,代表每月執行一次
#星期用*,不區分星期幾,一律執行
#分鐘用*/10,代表指定時段每分鐘執行一次
#分鐘用1,11,21,31,41,51,代表指定時段的第1,11,21,31,41,51分,各執行一次
#分鐘用1,2,3,4,5,代表指定時段的第1,2,3,4,5分,各執行一次,也可以用1-5代替
#分鐘用1-30/2,代表第1-30分,每兩分鐘各執行一次
0 7 * * 1 #代表每逢星期一的上午七點整
59 23 1 * * #代表每月一日的23時59分
以下是可以用文字代表執行時段的說明:
@hourly 代表每一小時執行一次,相當於 0 * * * *
@daily 代表每天執行一次,相當於 0 0 * * *
@midnight 和@daily相同
@weekly 代表每週執行一次,相當於 0 0 * * 0
@monthly 代表每月執行一次,相當於 0 0 1 * *
@yearly 代表每年執行一次,相當於 0 0 1 1 *
@annually 和@yearly相同
@reboot 開機時,執行一次
#分 時 日 月 星期 身分 指令
*/10 * * * * root /root/Test01.sh
#以root的身分每隔10分鐘執行一次/root/Test01.sh
#如果以crontab -e的方式來編輯排程的內容,不必使用身分這個欄位
#小時用*,代表每小時執行一次
#日期用*,代表每天執行一次
#月份用*,代表每月執行一次
#星期用*,不區分星期幾,一律執行
#分鐘用*/10,代表指定時段每分鐘執行一次
#分鐘用1,11,21,31,41,51,代表指定時段的第1,11,21,31,41,51分,各執行一次
#分鐘用1,2,3,4,5,代表指定時段的第1,2,3,4,5分,各執行一次,也可以用1-5代替
#分鐘用1-30/2,代表第1-30分,每兩分鐘各執行一次
0 7 * * 1 #代表每逢星期一的上午七點整
59 23 1 * * #代表每月一日的23時59分
以下是可以用文字代表執行時段的說明:
@hourly 代表每一小時執行一次,相當於 0 * * * *
@daily 代表每天執行一次,相當於 0 0 * * *
@midnight 和@daily相同
@weekly 代表每週執行一次,相當於 0 0 * * 0
@monthly 代表每月執行一次,相當於 0 0 1 * *
@yearly 代表每年執行一次,相當於 0 0 1 1 *
@annually 和@yearly相同
@reboot 開機時,執行一次
使用Webmin的Text Login功能,連接ubuntu server
從webmin 1.560版起,增加了一個Text Login的功能:
Added the Text Login module, which allows shell access without requiring Java be installed on the client system.
當您從用戶端,要和主機端連線時,用戶端不需安裝Java runtime也可以和主機間完成存取的動作,除了連線的速度應該會提升外,主機端就不一定要啟用SSH,才能滿足執行某些指令的需求,是一個非常方便的新增功能...
Others -> Text Login ...
紅色的小方塊,輸入的游標所在,開始輸入文字內容前,先將滑鼠指標移向 login 的區域,點一下,再開始輸入...
不允許使用root直接登入,先用其他帳號登入,再sudo...
紅色的小方塊,輸入的游標所在,開始輸入文字內容前,先將滑鼠指標移向 login 的區域,點一下,再開始輸入...
不允許使用root直接登入,先用其他帳號登入,再sudo...
2011-09-26
Webmin連線來源的存取控制
webmin安裝完成後,預設可登入的使用者只有root,可以連線的來源IP,並沒有特別限制,基本上這是有風險的...
- ubuntu的用戶,如果沒有啟用root的密碼,是無法登入的,啟用ubuntu root的密碼,很簡單:
sudo passwd root - 接下來是對連線來源的IP進行限制:
Webmin -> Webmin Configuration -> IP Access Control - Allowed IP Addresses選擇:Only allow from listed addressed
可以輸入允許的來源範圍:主機名稱、個別的IP位置、IP加上遮罩...
- 完成以上的步驟,就OK了!
- 除了透過使用者介面來設定,也可以直接找到webmin的設定檔(/etc/webmin/miniserv.conf),直接修改加入:allow=指定的主機名稱或IP
在 ubuntu server 安裝與設定 SSH
SSH:Secure SHell Protocol
- 安裝的指令:apt-get install ssh
在執行上述指令時,以下套件(package),也會一並安裝:libwrap0, openssh-server, ssh-import-id, tcpd... - 調整設定: vi /etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22 #預設的port,可以修改調整
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin yes #允許root直接登入,風險太高了,把yes改為no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
#再增加AllowUsers 限制可以SSH登入的使用者
AllowUsers useraccount - 重新啟動SSHD
/etc/init.d/ssh restart
- 除了上述限制root登入,指定可登入的使用者外,還可以使用TCP wrapper的機制,透過/etc/hosts.allow 或 /etc/hosts.deny的設定檔,來指定可以用sshd服務的來源IP,或限制哪些IP不允許使用sshd服務。
2011-09-25
在ubuntu環境下,使用webmin設定crontab系統排程
crontab系統排程是一個很棒的功能,但如果不常用,要記住設定的相關參數,還挺麻煩的...
如果非用文字介面不可,就透過man crontab幫忙一下吧!
透過webmin還操作linux系統,是很方便,接下來說明如何使用webmin設定crontab系統排程?
如果非用文字介面不可,就透過man crontab幫忙一下吧!
透過webmin還操作linux系統,是很方便,接下來說明如何使用webmin設定crontab系統排程?
- System -> Scheduled Cron Jobs -> create a new scheduled cron job
- 設定預定執行的相關設定。
- 上述crontab設定好後,相關的設定檔會放在哪裡?
/var/spool/cron/crontabs/(以user name為設定檔的檔名)
但不要直接編輯這個檔案,可以用 crontab -e 這個指令來邊即修改排程的相關內容
在ubuntu server下安裝文字模式的網際網路瀏覽器lynx
直接在文字介面的ubuntu server管理頁面下,使用網際網路瀏覽資料的機會非常低,但有時候就是需要測試一下,lynx是Linux下最常被使用的文字介面瀏覽器之一,安裝的指令如下:
sudo apt-get install lynx-cur lynx-cur-wrapper
瀏覽的方式: lynx 網址
例如: lynx books.bod.idv.tw
lynx -dump http://WebSiteURL >/dev/null 2>&1
sudo apt-get install lynx-cur lynx-cur-wrapper
瀏覽的方式: lynx 網址
例如: lynx books.bod.idv.tw
lynx -dump http://WebSiteURL >/dev/null 2>&1
2011-09-18
在ubuntu上使用pptpd架設VPN server
- apt-get install pptpd
- 編輯 /etc/pptpd.conf
- #把logwtmp註解掉,如果沒註解掉,可能會發生619錯誤
- 設定 localip 192.168.2.1
- 設定remoteip 192.168.2.234-238,192.168.2.245
- 編輯/etc/ppp/pptpd-options
- name使用預設的pptpd即可
- 設定DNS伺服器
ms-dns 168.95.1.1
ms-dns 168.95.192.1 - 編輯 /etc/ppp/chap-secrets。client 端進行 VPN 連線時帳號密碼。
- 範例:
vpnuser pptpd vpnpasswd * - 重新啟動pptpd
/etc/init.d/pptpd restart - 確認已啟用NAT的功能
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward - 防火牆設定:
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.2.0/24 -j ACCEPT
- # chap-secrets帳號密碼設定檔,共四欄:第1欄:使用者連線帳號第2欄:/etc/ppp/pptpd-options中的name,這裡採用預設值pptpd 第3欄:密碼第4欄為連線IP 用 * 則軟體會自動使用 remoteip
啟用ubuntu server的NAT功能
以下的NAT設定範例說明,在下述的條件下進行:
- 對外的連線,使用pppoe建立ADSL連線
- 內部ip使用192.168.2.0/24網段
- 執行以下指令,開啟並限制NAT的功能,只讓192.168.2.1-192.168.2.254可以透過NAT連線到外部
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE - 使用以下指令,將ip_forward的值由0改為1,表示啟動封包轉送的功能,使具有 router 的能力
echo "1" > /proc/sys/net/ipv4/ip_forward - 以上兩個指令,下次重開機就不見了,所以必須在開機後,再一次執行這兩個指令。
可以將上述兩行指令,存成檔案:/etc/init.d/my_nat
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward - 更改/etc/init.d/my_nat的存取權限
chmod +x :/etc/init.d/my_nat - 建立連結,以便在run-level開機完成之後,執行my_nat檔案內容的指令
ln -s /etc/init.d/my_nat /etc/rcS.d/S66NAT - 除了上述將指令存成檔案來執行的方式,也可以透過以下方式,來達到開機後即可具備NAT功能的目的
- 修改/etc/sysctl.conf
將net.ipv4.ip_forward=0 或 #net.ipv4.ip_forward=1,調整為net.ipv4.ip_forward=1 - 儲存iptables的設定
在執行 iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
之後
執行 /etc/init.d/iptables save 儲存iptables的設定
在ubuntu server上設定ADSL pppoe連線
- 設定ADSL連線的指令:pppoeconf
- 系統會自動搜尋有哪些網路介面可以用?如:eth0, eth1, ...,選取連接ADSL modem的網路介面,進行後續的設定
- 依照系統的指示,輸入相關資料,如:要登入ADSL的帳號、密碼...
- 完成設定後,設定檔位於:/etc/ppp/peers/dsl-provider
- 手動連接或中斷ADSL的連線
- 如設定的過程,沒有特別指定,每次重開機,都會自動執行連線
- 手動中斷ADSL連線的指令:poff
- 手動連接ADSL連線的指令:pon dsl-provider
- 檢視連線紀錄的指令:plog
2011-08-07
在ubuntu上安裝OpenLDAP
參考資料:
https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html
https://help.ubuntu.com/10.04/serverguide/C/openldap-server.html
https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html
https://help.ubuntu.com/10.04/serverguide/C/openldap-server.html
- 安裝OpenLDAP的daemon程式 slapd 及 ldap-utils
sudo apt-get install slapd ldap-utils - 再加入一些schema的檔案:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
在ubuntu11.04版中,應該已加入以上三個schema,所以會出現 Duplicate attributeType的訊息。 - 建立以下的LDIF檔案內容(backend.example.com.ldif),將檔案存放在自行指定的位置:
# Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb
# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=example,dc=com
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: secret
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read - 使用以下指令,將backend.example.com.ldif新增到LDAP中:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif
- 建立以下的LDIF檔案內容(frontend.example.com.ldif),將檔案存放在自行指定的位置:
# Create top-level object in domain dn: dc=example,dc=com objectClass: top objectClass: dcObject objectclass: organization o: Example Organization dc: Example description: LDAP Example # Admin user. dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword: secret dn: ou=people,dc=example,dc=com objectClass: organizationalUnit ou: people dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: groups dn: uid=john,ou=people,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 1000 gidNumber: 10000 userPassword: password gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 8 shadowMax: 999999 shadowLastChange: 10877 mail: john.doe@example.com postalCode: 31000 l: Toulouse o: Example mobile: +33 (0)6 xx xx xx xx homePhone: +33 (0)5 xx xx xx xx title: System Administrator postalAddress: initials: JD dn: cn=example,ou=groups,dc=example,dc=com objectClass: posixGroup cn: example gidNumber: 10000
- 使用以下指令,將frontend.example.com.ldif新增到LDAP中:
sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f frontend.example.com.ldif
- 使用ldapsearch測試一下
ldapsearch -xLLL -b "dc=example,dc=com" uid=john sn givenName cn
JXplorer : Java Ldap Browser
- 官方網站:http://jxplorer.org/
- 我選擇下載Pure Java的版本,直接解壓縮,點選jxplorer.bat或jxplorer.sh,就可以使用了...
- 一般LDAP使用389port
在ubuntu上安裝webmin
- 透過webmin來管理ubuntu真的很方便!
- webmin的官方網站:http://www.webmin.com/
- ubuntu要選用debian package : http://www.webmin.com/download.html
或前往國家實驗研究院高速網路與計算中心:ftp://sourceforge.nchc.org.tw/
ftp://sourceforge.nchc.org.tw/w/project/we/webadmin/webmin/ - debian(ubuntu)安裝webmin的步驟:
(參考資料:http://www.webmin.com/deb.html ) - dpkg --install webmin_1.560_all.deb
- 如果有缺少一部分的相依性配件程式,可以使用以下的指令加入:
apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python - 除了自行下載webmin來安裝,也可以透過apt-get來安裝
- apt-get update
- apt-get install webmin
(2011-09-18在ubuntu server 11.04 上安裝,指定以下模組)
apt-get -f install perl perl-base perl-modules libapt-pkg-perl libnet-ssleay-perl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions
ubuntu設定 Root 密碼
資料來源:http://wiki.ubuntu-tw.org/index.php?title=UbuntuServerTips
不過還是建議把 root 啟動,並且設定 root 密碼,因為在某狀況下,還是需要 root 密碼。
設定 Root 密碼
Ubuntu 預設把 Root Account 關閉,要使用 Root 權限全都是靠 sudo 指令處理。不過還是建議把 root 啟動,並且設定 root 密碼,因為在某狀況下,還是需要 root 密碼。
sudo passwd root
訂閱:
文章 (Atom)