站內搜尋:Yahoo搜尋的結果,如果沒有給完整的網址,請在站內再搜尋一次!

顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2018-11-06

在 Ubuntu (Linux) 建立Python Django 的開發環境

  1.  確認使用中的 Ubuntu 已完成現有使用環境的系統更新或升級。
    sudo apt-get update
    sudo apt-get -y upgrade
  2. 安裝在Python中管理套件的指令pip。
    sudo apt-get -y install python-pip
  3. 安裝虛擬環境virtualenv。
    sudo pip install virtualenv
  4. 建立虛擬環境VENV
    virtualenv VENV
  5. 進入已建立的虛擬開發環境,進入虛擬開發環境後,命令列會前置 (VENV)
    source VENV/bin/activate
  6. 在虛擬開發環境內安裝Django套件
    pip install django
  7. 在個人home folder下新增專案目錄 myDjango。
    mkdir myDjango
    cd myDjango
  8. 在專案目錄 (myDjango) 內,建置網站專案mblog (建立相關目錄及文件)
    django-admin startproject mblog
  9. 進入網頁專案目錄mblog,新增一個網站程式功能(模組) mainsite
    (一個Django project網頁專案,可以包含多個Django apps功能模組)
    cd mblog
    python manage.py startapp mainsite
  10. 完成以上步驟,已大致完成網站專案的建構。
    可以透過tree查看一下剛剛建置的檔案及目錄。(可以使用sudo apt install tree,安裝tree)
    cd ..
    tree mblog
  11. 調整 myDjango/mblog/mblog/settings.py 的 ALLOWED_HOSTS
    ALLOWED_HOSTS = ['127.0.0.1','10.0.2.15']
  12. 切換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
  13.  以瀏覽器測試 http://10.0.2.15:8000/
  14. 網頁專案內的檔案內容,如有任何變動,Django會自動偵測並重新載入更新相關內容,因此開發的過程就不用一再的重新啟動網站服務。
  15. 離開虛擬開發環境
    deactivate

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.

2011-10-19

在ubuntu server下,設定使用WPA資料加密、以PSK認證、使用TKIP加密模式的無線網路連線

Ubuntu server所使用的硬體環境:
  1. 華碩eeePC 1000HD,CPU Celeron 1G,RAM 1GB,安裝在pqi (class 10) 8GB的SD卡上,原隨機的XP home仍保留繼續使用,需要使用ubuntu server時,在開機出現Asus logo畫面時,按下ESC鍵,選取使用SD 8G這個裝置開機,就可以使用ubuntu server了!
  2. 內建的無線網卡,在XP的環境下,看到的是Altheros AR5007EG,但安裝ubuntu server 11.10過程中,抓到的是Altheros AR242x / AR542x這個系列的型號。
安裝過程說明:
  1. 安裝過程系統可以自己抓到無線網卡,並要求輸入SSID及金鑰,接著就顯示連線成功,繼續安裝了。
  2. 只要輸入SSID跟金鑰就可以了?有些懷疑,因為我的無線AP有設定要隱藏SSID。
  3. 雖然安裝過程可以順利連線完成安裝,但重新開機後,無線網路並沒有成功地跟無線AP連線。怎麼了?
檢視 /etc/network/interfaces 的設定:
 auto wlan0
 iface wlan0 inet dhcp
       wpa-ssid MySSID
       wpa-psk  MyPskString
這些設定資料跟我安裝過程中所輸入的資料是一樣的,那問題出在哪裡呢?應該是隱藏SSID的設定還是必須設定的!
先查看一下我無線AP的相關設定
  1. 確認ESSID字串輸入正確無誤、無線AP的ESSID是在隱藏的狀態
  2. 確認無線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

  1. wpa-ssid : 根據自己的實際設定輸入
  2. wpa-psk : 根據自己設定的字串輸入
  3. wpa-ap-scan 2 : 代表已隱藏SSID。1 : 代表廣播SSID供搜尋。
  4. wpa-proto : 如果是WPA2的加密方式,可以將WPA改為RSN。
  5. wpa-pairwise : 如果是WPA2的加密方式,可以將TKIP改為CCMP。 
  6. wpa-group : 如果是WPA2的加密方式,可以將TKIP改為CCMP。
  7. wpa-key-mgmt : WPA / WPA2 都設為WPA-PSK。
  8. 一般使用DHCP的方式取得IP。iface wlan0 inet dhcp
  9. 也可以自行設定使用固定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:

確認是否可以成功連線登入?

2011-10-01

unix / linux / ubuntu 指令速查

unix / linux / ubuntu 指令速查
下載『unix-linux-ubuntu指令速查.pdf』
基本指令及系統訊息
  1. |    pipe通道,將一指令輸出作另一指令輸入
  2. cal   查看月曆(cal 02 2011 查看2011-02的月曆)
  3. clear  清除目前的螢幕內容
  4. date  查看或設定系統時間
  5. dmesg 顯示系統暫存區的內容
  6. free  顯示記憶體及SWAP的使用狀況
  7. man  線上查看指令說明
  8. pwd  查看目前所在的目錄位置
  9. uptime 系統開機時間等訊息
  10. w   列出目前系統使用者使用狀況 (參考who)

檔案及目錄使用操作

  1. cat   列出文字檔案的內容
  2. cd   切換目錄(cd ~joe : 切換到joe的家目錄)
  3. chmod  變更檔案目錄權限(-ugo,a=all, r4/w2/x1 )
  4. chown  變更檔案的擁有者及群組(-R包含子目錄)
  5. cp   複製檔案或目錄 (cp 來源 目的)
  6. df   查看磁碟空間使用狀況(-h 以K/M/G顯示)
  7. du   查看所在目錄磁碟空間的使用情形
  8. find   尋找檔案(find / -name filename)
  9. fsck   檢查並修復檔案系統
  10. grep   搜尋字串(grep -r string folder )
  11. head   列出檔案前n行(head -5 a.t列出a.t前5行)
  12. ln   建立檔案或目錄的連結檔(Windows捷徑)
  13. ls   查看所在目錄下的目錄、檔案資訊(dir)
  14. mkdir  建立目錄
  15. more  以分頁列出文字檔的內容 (參考less)
  16. mv   搬移檔案或目錄(可更改檔案或目錄名稱)
  17. rm   刪除檔案或目錄(刪目錄-r,強制刪除-f)
  18. tail   列出檔案末n行
  19. tar   壓縮/解壓縮(z壓縮/x取出/c建立)
  20. touch  改變檔案的時間戳記
  21. wc   計算檔案的行數、字數、位元數
  22. whereis  尋找程式/說明檔等的位置(不適用文字檔)
  23. which  尋找指令程式的所在目錄

網路指令

  1. arp    查詢IP, mac等位址
  2. dig    DNS查詢工具
  3. ifconfig  查詢或設定網路介面
  4. netstat  查詢網路連線狀況
  5. nslookup 交談式查詢主機名稱或IP
  6. ping   藉ICMP封包檢查遠端主機的連線狀態
  7. traceroute 查詢到達遠端主機所經的結點
  8. whois   查詢網域名稱的持有現況


帳號管理

  1. gpasswd  群組管理指令(gpasswd -a user group)
  2. groupadd  新增群組
  3. groupdel  刪除群組
  4. groupmod  修改群組
  5. groups   查詢使用者所隸屬群組(groups useracc)
  6. last    顯示使用者登入紀錄
  7. passwd  修改(指定)使用者密碼
  8. useradd  新增帳號
  9. userdel  刪除帳號
  10. usermod  修改帳號
  11. vipw   編輯使用者密碼檔

系統管理

  1. apt-get  apt-get update重新同步套件索引檔
    apt-get install package1 package2 ...
  2. crontab  定時執行工作(-e編輯,-l列表,-r清除)
  3. dpkg   deb套建管理(dpkg --install pakage)
  4. exit   登出
  5. kill   送訊號給指定的程序(kill -9 ##移除程序)
  6. ntpdate  NTP校時
  7. ps   目前系統執行中的程序(ps auxww)
  8. reboot  系統重新開機
  9. shutdown 系統關機時間指定 (shutdown -h now)
  10. sync  將系統暫存的資料強制寫回硬碟
  11. top  程序管理工具(q:離開 / h:Help)

2011-09-30

在ubuntu server下,使用shutdown指令預約關機,如何取消?

  1. shutdown的關機指令:
    shutdown -h 23:59  ==>指定在23:59關機
    shutdown -h +45  ==>指定在45分鐘後關機
    shutdown -h now  ==>下指令後馬上關機,沒有後悔的機會
  2. 利用ps指令列出進行中的程序,透過 | pipe的管道功能,將ps執行的結果傳送給grep搜尋包含shutdown的程序
    ps a | grep shutdown
    如下圖例中,取得這個預約關機的Process ID(PID)是14124
  3. 使用kill指令,取消預約關機的程序(Process)
    kill -KILL 14124  或  kill -9 14124 都可以達到終止上述關機程序的預約

2011-09-28

vi / vim 指令整理‧速查

vi / vim 指令速查
下載『vi/vim指令速查.pdf』
進入編輯模式
  1. a  在游標位置之(後)進入(插入)編輯模式
  2. A  在游標所在行的行末進入(插入)編輯模式
  3. i  在游標位置之(前)進入(插入)編輯模式
  4. I  在游標行的行首進入(插入)編輯模式
  5. r  取代所在位置那個字元
  6. R  在游標所在位置進入(取代)編輯模式
  7. o  在游標上方新增一行,並進入編輯模式
  8. O  在游標下方新增一行,並進入編輯模式
  9. <Insert> 切換為--INSERT--或--REPLACE--模式
  10. <Esc>  退出編輯模式或取消指令

編輯環境設定
  1. :set nu  顯示行號
  2. :set nonu 不顯示行號
  3. :set ai  自動內縮
  4. :set noai 取消自動內縮

游標的移動
  1. gg  將游標移到第一行
  2. G  將游標移到最後一行
  3. 行號 G 將游標移到(行號)所在行
  4. 0  將游標移到所在行的行首
  5. $  將游標移到所在行的行末
  6. 字數<Space> 將游標向右移動(字數)個字元
  7. 行數<Enter> 將游標向下移動(行數)列


字串、行、區塊範圍的選取‧複製‧貼上‧刪除‧取消
  1. v  字串範圍的選取,搭配↑↓←→進行
  2. V  行範圍的選取,搭配↑↓←→進行
  3. v <Ctrl>+V 區塊範圍的選取,搭配↑↓←→進行
  4. d  刪除選取的範圍(是剪下還可以貼上)
  5. d0  刪除游標所在位置起到該行的行首
  6. d$  刪除游標所在位置起到該行的行末
  7. dd  刪除游標所在行(是剪下還可以貼上)
  8. 5dd  刪除游標所在行共5行
  9. D  從游標所在位置起刪除到該行的行末
  10. d1G 刪除游標所在行到第一行的內容
  11. dG  刪除游標所在行到最後一行的內容
  12. :%d  刪除編輯區域內的全部內容
  13. :15d  刪除第15行
  14. :11,29d  刪除第11-29行
  15. x  刪除游標所在位置的字元
  16. X  刪除游標所在位置的前一個字元
  17. y  複製選取的範圍
  18. y0  複製游標所在位置起到該行的行首
  19. y$  複製游標所在位置起到該行的行末
  20. yy  複製游標所在行
  21. y1G 複製游標所在行到第一行的內容
  22. yG  複製游標所在行到最後一行的內容
  23. p  在所在位置(或行)之前(或上一行)貼上
  24. P  在所在位置(或行)之後(或下一行)貼上
  25. u  恢復到上一個指令執行後的內容
  26. U  取消游標所在行的所有變更
  27. 2,6co9  將2-6行複製到第9行的後面
  28. 2,6mo9  將2-6行搬移到第9行的後面

搜尋與取代
:起始行,終止行s/搜尋字串/取代字串/gic
(g: 整行全部, i: 不分大小寫,c: 詢問)
(起始行,終止行) = (1,$) 代表所在檔案全部範圍
  1. :set ic  搜尋時不區分大小寫
  2. :set noic  搜尋時要區分大小寫
  3. /搜尋字串  在游標之後找搜尋字串
  4. ?搜尋字串  在游標之前找搜尋字串
  5. n  向下找下一個搜尋結果
  6. N  向上找上一個搜尋結果
  7. :%s/new/old/g  將編輯範圍中的new取代為old
  8. :1,9s/^/###/   在1-9行的行首加入三個#
  9. :1,$s/from/to/g  將檔案中所有的from取代為to

檔案功能
  1. :q  離開編輯程式
  2. :q!  不存檔強制離開編輯程式
  3. :w  存檔
  4. :w!  強制存檔(例:有擁有權沒寫入權)
  5. :w 新檔案名稱  另存新檔
  6. :wq  存檔並離開編輯程式
  7. :r  將指定的檔案內容加到游標行後面
  8. :e 檔案名稱  編輯另一個檔案
  9. :e!  還原到該檔案編輯前的狀態
  10. :n  切換到下一個目前開啟中的檔案
  11. :N  切換到上一個目前開啟中的檔案
  12. :f  目前開啟中的檔案名稱
  13. :files  列出目前開啟中的所有檔案
  14. :1,9w 檔案名稱  將1-9行的資料另存為指定的檔名
  15. :1,9w>>檔名  將1-9行的資料附加到指定檔案之後

多重視窗
  1. :new (檔名)  開水平視窗(並在新視窗開啟檔案)
  2. :vnew (檔名)  開垂直視窗(並在新視窗開啟檔案)
  3. <Ctrl>-w 方向鍵  切換視窗
  4. :only   只保留游標所在視窗
  5. 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  開機時,執行一次
  

使用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...

2011-09-26

Webmin連線來源的存取控制

webmin安裝完成後,預設可登入的使用者只有root,可以連線的來源IP,並沒有特別限制,基本上這是有風險的...
  1. ubuntu的用戶,如果沒有啟用root的密碼,是無法登入的,啟用ubuntu root的密碼,很簡單:
    sudo passwd root
  2. 接下來是對連線來源的IP進行限制:
    Webmin -> Webmin Configuration -> IP Access Control
  3. Allowed IP Addresses選擇:Only allow from listed addressed
    可以輸入允許的來源範圍:主機名稱、個別的IP位置、IP加上遮罩...
  4. 完成以上的步驟,就OK了!
  5. 除了透過使用者介面來設定,也可以直接找到webmin的設定檔(/etc/webmin/miniserv.conf),直接修改加入:allow=指定的主機名稱或IP

在 ubuntu server 安裝與設定 SSH

SSHSecure SHell Protocol
  1. 安裝的指令:apt-get install ssh
    在執行上述指令時,以下套件(package),也會一並安裝:libwrap0, openssh-server, ssh-import-id, tcpd...
  2. 調整設定: 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
  3. 重新啟動SSHD
    /etc/init.d/ssh restart
  4. 除了上述限制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系統排程?

  1.  System -> Scheduled Cron Jobs -> create a new scheduled cron job
  2.  設定預定執行的相關設定。
  3.  上述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   

2011-09-18

在ubuntu上使用pptpd架設VPN server

  1. apt-get install pptpd
  2. 編輯 /etc/pptpd.conf
    • #把logwtmp註解掉,如果沒註解掉,可能會發生619錯誤
    • 設定 localip 192.168.2.1
    • 設定remoteip 192.168.2.234-238,192.168.2.245   
  3. 編輯/etc/ppp/pptpd-options
    • name使用預設的pptpd即可
    • 設定DNS伺服器
      ms-dns 168.95.1.1
      ms-dns 168.95.192.1
  4. 編輯 /etc/ppp/chap-secrets。client 端進行 VPN 連線時帳號密碼。
    • # chap-secrets帳號密碼設定檔,共四欄:第1欄:使用者連線帳號第2欄:/etc/ppp/pptpd-options中的name,這裡採用預設值pptpd 第3欄:密碼第4欄為連線IP 用 * 則軟體會自動使用 remoteip
    • 範例:
      vpnuser    pptpd    vpnpasswd    *
  5. 重新啟動pptpd
    /etc/init.d/pptpd restart
  6. 確認已啟用NAT的功能
    iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
    echo "1" > /proc/sys/net/ipv4/ip_forward
  7. 防火牆設定:
    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

啟用ubuntu server的NAT功能

以下的NAT設定範例說明,在下述的條件下進行:
  1. 對外的連線,使用pppoe建立ADSL連線
  2. 內部ip使用192.168.2.0/24網段
  3. 執行以下指令,開啟並限制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
  4. 使用以下指令,將ip_forward的值由0改為1,表示啟動封包轉送的功能,使具有 router 的能力
    echo "1" > /proc/sys/net/ipv4/ip_forward
  5. 以上兩個指令,下次重開機就不見了,所以必須在開機後,再一次執行這兩個指令。
    可以將上述兩行指令,存成檔案:/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
  6. 更改/etc/init.d/my_nat的存取權限
    chmod +x :/etc/init.d/my_nat
  7. 建立連結,以便在run-level開機完成之後,執行my_nat檔案內容的指令
    ln -s /etc/init.d/my_nat /etc/rcS.d/S66NAT
  8. 除了上述將指令存成檔案來執行的方式,也可以透過以下方式,來達到開機後即可具備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連線

  1. 設定ADSL連線的指令:pppoeconf
    • 系統會自動搜尋有哪些網路介面可以用?如:eth0, eth1, ...,選取連接ADSL modem的網路介面,進行後續的設定
    • 依照系統的指示,輸入相關資料,如:要登入ADSL的帳號、密碼...
    • 完成設定後,設定檔位於:/etc/ppp/peers/dsl-provider
  2. 手動連接或中斷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

  1. 安裝OpenLDAP的daemon程式 slapd 及 ldap-utils
    sudo apt-get install slapd ldap-utils
  2. 再加入一些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的訊息。
  3. 建立以下的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
  4. 使用以下指令,將backend.example.com.ldif新增到LDAP中:
    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif
  5. 建立以下的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
    
  6. 使用以下指令,將frontend.example.com.ldif新增到LDAP中:
    sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f frontend.example.com.ldif
    
  7. 使用ldapsearch測試一下
    ldapsearch -xLLL -b "dc=example,dc=com" uid=john sn givenName cn

JXplorer : Java Ldap Browser

  1. 官方網站:http://jxplorer.org/
  2. 我選擇下載Pure Java的版本,直接解壓縮,點選jxplorer.bat或jxplorer.sh,就可以使用了...
  3. 一般LDAP使用389port

在ubuntu上安裝webmin

  1. 透過webmin來管理ubuntu真的很方便!
  2. webmin的官方網站:http://www.webmin.com/
  3. ubuntu要選用debian package : http://www.webmin.com/download.html
    或前往國家實驗研究院高速網路與計算中心:ftp://sourceforge.nchc.org.tw/
    ftp://sourceforge.nchc.org.tw/w/project/we/webadmin/webmin/
  4. 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
  5. 除了自行下載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 密碼

Ubuntu 預設把 Root Account 關閉,要使用 Root 權限全都是靠 sudo 指令處理。
不過還是建議把 root 啟動,並且設定 root 密碼,因為在某狀況下,還是需要 root 密碼。
sudo passwd root