顯示具有 服務設定 標籤的文章。 顯示所有文章
顯示具有 服務設定 標籤的文章。 顯示所有文章

2011年12月26日 星期一

安裝 openwebmail

安裝前先更新清單
$sudo apt-get update


安裝收信套件 Dovecot
$sudo apt-get install dovecot-pop3d

$sudo apt-get install dovecot-imapd

openwebmail 應該只支援 POP3,但是我這裡還是將 IMAP 也裝起來


安裝寄信套件 Postfix
$sudo apt-get install postfix

安裝中會進行設定
 這裡要選擇監視的介面,選擇第 2 項,從網路來的郵件我都接收

 這裡要輸入你的主機的網域名稱

剩下的暫時都使用預設



libmd5-perlowm 這 2 個套件檔案放進系統內,因為這 2 個套件已經不在 Ubuntu 的更新清單中了,所以要自行另外去尋找

安裝 libmd5-perl ( 此為 openwebmail 必要套件 )
$sudo  dpkg libmd5-perl_2.03-1_all.deb

安裝 openwebmail
$sudo  dpkg owm2.53-2.deb

openwebmail 安裝過程會告訴你還少了幾個檔案,這時再用下列指令
$sudo apt-get -f install

系統會自動從網路清單下載缺少的套件

重新開機後輸入 : http://192.1681.10/openwebmail
便可以看見安裝成功的畫面

郵件登入網址 : http://192.168.1.10/cgi-bin/openwebmail/openwebmail.pl

但網址實在是太長了,所以我們要進行更名

修改網址
$sudo nano /etc/apache2/httpd.conf

ScriptAlias /webmail    /usr/lib/cgi-bin/openwebmail/openwebmail.pl

重新啟動 apache
$sudo /etc/init.d/apache2 restart

之後只要輸入 : http://192.1681.10/webmail  就可以進入登入畫面了

Apache 拒絕連線、認證

拒絕連線
$sudo nano /etc/apache2/httpd.conf
                     :
                     :
<Limit GET POST OPTIONS>
       Order allow,deny
       Allow from all
       Deny from 192.168.10.10           --阻擋此 IP 的連線
</Limit>


Apache 認證 ( 需輸入帳號密碼 )
在家目錄的 www 之下建立 .htaccess
$nano .htaccess

AuthName         "Protect by .htaccess"
AuthType           Basic
AuthUserFile  /home/student/apache.passwd        --紀錄帳號密碼的地方
Require  valid-user

$chmod +x .htaccess

執行
$htpasswd -c ~/apache.passwd student

然後輸入 2 次密碼

~/apache.passwd : 紀錄帳號密碼的地方
student : 網頁登入的帳號

到網頁連線 http://192.168.1.10/~student/ 時,就會要求輸入剛剛設定的帳號密碼

Apache 相關設定

指令 ( 檢視相關設定 )
$/usr/sbin/apache2 -V

/etc/apache2/apache2.conf          --紀錄 apache 設定檔的位置

檢視 apache 相關設定檔的設定
$nano /etc/apache2/apache2.conf

Include /etc/apache2/httpd.conf          --主要設定檔

Include /etc/apache2/sites-enabled/      --只給目錄的話它會將目錄下的設定檔全部都讀取


更改預設首頁位置
$sudo nano /etc/apache2/sites-enabled/000-default

/var/www                --設定預設首頁的目錄位置


Apache 的模組功能
$ls /etc/apache2/mods-available/          --這裡放置的是 apache 裡能使用的全部模組

$ls /etc/apache2/mods-available/          --這裡放置的是啟動中的模組

.conf  --設定檔
.load  --模組檔

要啟動模組功能,只要從 mods-available 下,將要啟動的功能的 2 個檔案複製到 mods-available之下就可以啟動了

或是使用指令
$sudo a2enmod userdir       --增加 userdir 這模組

$sudo a2dismod userdir       --刪除 userdir 這模組

Apache 建置各使用者網頁

啟動 Apache 模組功能
$sudo a2enmod userdir

a2 : apache2
en : enable
mod : module


修改 xml 設定檔
$sudo nano /etc/apache2/httpd.conf

由於檔案時空的,所以貼上以下內容

UserDir www   

<Directory /home/*/www>
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec


    # If GET is used it will also restrict HEAD requests. The TRACE method cannot be limited.
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>


    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

UserDir www                         --表示網頁目錄是在各使用者家目錄的 www 之下

<Directory /home/*/www>     --將設定使用在 home 下的"所有目錄"下的 www


重新啟動 apache2 才會套用設定
$sudo /etc/init.d/apache2 restart

在使用者家目錄下建立網頁,以 student 這使用者為例 :

$cd /home/student                   --切換目錄
    
$mkdir www                             --建立 www 目錄

$nano /www/index.html           --新增首頁並加入內容

內容輸入 : This is a test for student

連線測試,例如主機 IP 為 192.168.1.10,開啟瀏覽器在網址輸入 :
http://192.168.1.10/~student/

有看見剛剛輸入的文字就成功了

設定 DNS

bind9 設定檔位置
$sudo nano /etc/bind/named.conf 

這裡是告訴你 bind9 的設定檔放置的位置



新增 DNS
$sudo nano /etc/bind/named.conf.local

在下面空白處
zone "obf" {                                           --zone 宣告資料庫,obf 為網域名稱
                type master;                          -- 設定為 master ( Primary )
                file "/etc/bind/db.obf";            --儲存 obf 資料的位置
};


設定 obf 資料
$sudo nano /etc/bind/db.obf         --剛剛設定儲存資料的地方

; BIND data file for local loopback interface

$TTL    1800                                                                          --1800 為 cache 存活時間(秒)
@    IN    SOA     dnsserver.obf.    admin.mail.obf.  (              --SOA為管理者資訊,第一段是
                           1            ; Serial                                               主機名稱,第二段是信箱
                           604800          ; Refresh
                           86400            ; Retry
                           2419200        ; Expire
                           604800  )       ; Negative Cache TTL
;
@              IN             NS            dnsserver.obf.      --@代表本機,這裡 NS 是主機名稱+網域
dnsserver      IN         A          192.168.1.10            --前為主機名稱,後面 A 為 主機 IP


重新啟動 DNS
$sudo /etc/init.d/bind9 restart

安裝、檢視 DNS

安裝 DNS
$sudo apt-get install bind9

安裝完畢後
$netstat -an

會看見 udp 53tcp 53 這兩個 port 已經開啟


檢視 DNS
$nslookup
>server

檢視我們的 DNS server 是哪台

詢問 DNS
$nslookup
>set type=soa                --資料的型態
>edu.tw.                          --向 DNS 詢問 edu.tw. 的資料


檢視 Cache  ( DNS 暫存檔 )
$sudo rndc dumpdb -cache                           --將 cache 輸出至檔案
$nl /var/cache/bind/named_dump.db            --檢視輸出檔

裡面可以看到電腦名稱、資料存活時間、型態、IP或網址


清除 cache
$sudo rndc flush

當重新設定完 DNS 後,舊的資料還存留在 cache 中,所以要清除 cache ,讓資料重新抓取

2011年12月13日 星期二

遠端登入 SSH

下載 SSH
$sudo apt-get update
$sudo apt-get install ssh

一般 Ubuntu 剛裝好時服務預設都是關閉的,所以要安裝 SSH 的相關套件才行,連線及被連線的主機都要有安裝 SSH 才能正常連線

SSH 連線
$ssh student@192.168.1.10

student : 對方的使用者帳號

192.168.1.10 : 對方主機的 IP

目標IP轉換 DNAT

NAT (Network Address Translation) ,是一種在IP封包在通過路由器時,重新設定 IP 來源或 IP 目的地的技術,通常使用在有多台主機,但是卻只有一、兩個公有 IP 的私有網路中

跟 SNAT 相反,SNAT 是內部要連接到外部是做轉換,而 DNAT 則是外部要連接要內部的私有 IP 時做轉換

SNAT ( 目的地 IP 轉換 )
iptables -t nat -A POSTROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to 192.168.1.10:80

--dport 8080 : 當使用 8080 這個 port 進來時

--to 192.168.1.10:80 : 引導到此 IP


這行指令時指,當有人連線到這台主機的 8080 這個 port 時,會經由 DNAT 轉送到 192.168.1.10:80 這個地方去

來源IP轉換 SNAT

NAT (Network Address Translation) ,是一種在IP封包在通過路由器時,重新設定 IP 來源或 IP 目的地的技術,通常使用在有多台主機,但是卻只有一、兩個公有 IP 的私有網路中

SNAT ( 來源IP轉換 ) 
$sudo nano /etc/rc.local            -- Ubuntu 的防火牆

列表的最下面 ~~ exit 0 的上面,中間空白處加上下列指令


動態轉換
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

-o eth0 : 這裡設定的是要對外連線的網路卡,也就是使用公有 IP 的網路卡

MASQUERADE : IP偽裝

使用這指令的話,不管內部的私有網路設定的IP是哪種,通通都會經過 NAT 轉換



指定來源 IP 轉換
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.1.1 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.1.1-192.168.1.10 -o eth0 -j MASQUERADE

-s 192.168.1.0/24 : 指定要轉換的來源 IP

使用這指令的話,只有來源是 192.168.1.0/24 的 IP 會進行 NAT 的轉換,第二條跟第三條指令則是指定轉換的範圍 ( 2.3 尚未實驗過... )



指定轉換後的 IP
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.254

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.200-192.168.1.254

-j SNAT --to-source 192.168.1.254 : 指定轉換後的IP

使用第一個指令的話,所有的經過 NAT 的 IP 都會轉換成 192.168.1.254,第二個指令則是會隨機使用 200 ~ 254 之間的IP



指定來源 IP 及轉換後的 IP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.1.254

同時應用上面的方式,指定來源 IP 的範圍及轉換後的 IP


NAT 中文 WIKI : 網路地址轉換
NAT 英文 WIKI : Network Address Translation

2011年11月7日 星期一

安裝 Apache HTTP Server

從網路安裝 Apache (記得網路要先通) :
$sudo apt-get install apache2


中間會詢問你是否確定要安裝 Apache , 按 y (yes)
然後就安裝完成了!!
就這麼簡單

成功的話就會在 /var 下產生 www 這個資料夾

預設首頁
/var/www/index.html