2010/01/25

ssh tunnel for windows with plink

windows 版的 ssh tunnel
透過 ssh連到 遠端linux主機 63.32.141.12 ,該網段 63.32.141.0/24 整個防火牆包住
只有此 ssh 可以連入,但是我需要連線到 63.32.141.1 該台 windows 主機
該windows主機使用 rdp port 3389 來工作,
所以我就透過家裡的 windows 並配合 plink 連線到 63.32.141.12 主機,
建立 ssh tunnel 並使用 遠端桌面程式 mstsc 來使用 127.0.0.0 port 6000 來工作。

為了避免麻煩,我把他寫成 dos 批次檔 ,請複製貼到記事本存為 ssh.bat 檔案執行即可。

echo 開啟ssh通道
start plink -ssh -L  6000:63.32.141.12:3389  -C -pw 密碼  webadmin@63.32.141.1
echo 遠端連線
start mstsc  /v:127.0.0.1:6000
echo 完成,結束後請使用 exit 離開所有終端機畫面

* 記得要把 plink 放在同一個目錄
* linux 的作法請看這裡

Centos Linux 的 tftp server 及 client

Centos Linux 的 tftp server 及 client

* 設定 tftp server 並使用他來傳輸

* set tftp server 預設目錄為 /tftpboot/

[root@server ~]# yum install tftp-server -y
[root@server ~]# chkconfig tftp on
[root@server ~]# /etc/init.d/xinetd restart
[root@server ~]# echo "testing" > /tftpboot/getme



* tftp client

$ sudo yum install tftp -y
$ tftp 140.117.69.204 -c get getme
$ cat getme
testing

Port Forwarding(SSH tunneling)

  • 透過 ssh and sshd 能夠轉移 TCP 通訊的傳輸
  • 但是需要先瞭解難以理解且愚蠢的語法
  • -L clientport:host:hostport 

SSH tunneling (-L)

  • 使用 telnet 作測試,先在 server 端安裝授限制的 telnet server
# 安裝 telnet server
[root@sc220469 ~]# yum install telnet-server -y
# 開啟 telnet 從 xinetd 的設定內
[root@sc220469 ~]# chkconfig telnet on
# 重新啟動 telnet
[root@sc220469 ~]# /etc/init.d/xinetd restart
# 檢查 port 23 有沒有開
[root@sc220469 ~]# netstat -tnulp | grep 23
tcp    0   0 0.0.0.0:23          0.0.0.0:*    LISTEN   10008/xinetd        
# 本機連線測試
[root@sc220469 ~]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel 2.6.18-164.el5 on an i686
login: 
Login incorrect
# 限制對外的網卡不能連線,只有(163.112.69.13)的可以連線
[root@sc220469 ~]# vim /etc/hosts.allow 
in.telnetd:163.112.69.13:allow
in.telnetd:ALL:deny
  • SSH tunnel 連線示意圖

  • 從 163.112.69.183 機器設定指令,指定以 163.112.69.13 當跳板建立一個 tcp port 23 的 ssh tunnel 到 163.112.69.204 主機的 tcp 23 port ,在本機(163.112.69.183)則會產生一個 port 6023 連入到 163.112.69.204 的 port 23
mtchang@mtchang-work:~$ ssh -2 -N -f -L 6023:163.112.69.204:23 mtchang@163.112.69.13
# -2 這迫使ssh 使用2.0 版的協定。
# -N 不指出命令,而只有通道。如果忽略了 ssh 將初始化一個普通的連線會話。
# -f 使ssh在背景運行ssh。
# -L 以 localport:localhost:remoteport 的初始化一個本地通道。
  • 在這個例子中,在163.112.69.183上的埠6023被指向遠端機器(163.112.69.13)的埠23。由於23 是用於 telnet 的,所以這將通過SSH 通道創建一個安全的 telnet 會話,並且指定這個連線會連到 163.112.69.204 port 23 。這可以用來隱藏許多不安全的TCP 協議如smtp, pop3, ftp 等。
  • 檢查程序 ssh 應該會在背景被執行,如需刪除只能使用 kill PID 刪除
mtchang@mtchang-work:~$ ps auxw | grep 6023
mtchang   2440  0.0  0.0   5284   636 ?        Ss   00:03   0:00 
ssh -2 -N -f -L 6023:163.112.69.204:23 mtchang@163.112.69.13
  • 檢查 163.112.69.183 是否產生 6023 的 tcp port
mtchang@mtchang-work:~$ netstat -tnulp | grep 23
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:6023          0.0.0.0:*               LISTEN      2309/ssh        
tcp6       0      0 ::1:6023                :::*                    LISTEN      2309/ssh   


  • 使用 telnet 連接本地的 locahost port 6023 做 ssh tunnel 測試
mtchang@mtchang-work:~$ telnet localhost 6023
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Kernel 2.6.18-164.el5 on an i686
?in: mtchang
Password: 
Last login: Mon Jan 25 07:53:35 from sc21369
[mtchang@sc220469 ~]$ 
  • 在 163.112.69.204 的機器上可以看見如下的連線
[root@sc220469 ~]# netstat -tnula | grep 23
tcp    0   0 163.112.69.204:23    163.112.69.13:41151   ESTABLISHED 10395/in.telnetd: s 
  • 在跳板機器 163.112.69.13 可以看到如下的連線
[mtchang@code ~]$ netstat -tnula | grep 23
tcp        0      0 163.112.69.13:41151         163.112.69.204:23           ESTABLISHED 
  • 從 163.112.69.183 刪除 ssh tunnel
mtchang@mtchang-work:~$ ps axuw | grep ssh
mtchang   2440  0.0  0.0   5400  1032 ?        Ss   00:03   0:00 
ssh -2 -N -f -L 6023:163.112.69.204:23 mtchang@163.112.69.13
mtchang   2468  0.0  0.0   3056   788 pts/1    S+   00:13   0:00 grep ssh
mtchang@mtchang-work:~$ kill 2440

2010/01/24

使用公開金鑰加密/私密金鑰解密(use openssl)


  • 使用公開金鑰加密/私密金鑰解密對檔案做加解密
  • 此範例使用 openssl RSA 的工具程式配合公開金鑰及私鑰,做加密及解密的操作
[mtchang@sc220469 key]$ openssl rsautl --help
Usage: rsautl [options]
-in file        input file
-out file       output file
-inkey file     input key
-keyform arg    private key format - default PEM
-pubin          input is an RSA public
-certin         input is a certificate carrying an RSA public key
-ssl            use SSL v2 padding
-raw            use no padding
-pkcs           use PKCS#1 v1.5 padding (default)
-oaep           use PKCS#1 OAEP
-sign           sign with private key
-verify         verify with public key
-encrypt        encrypt with public key
-decrypt        decrypt with private key
-hexdump        hex dump output
-engine e       use engine e, possibly a hardware device.
-passin arg    pass phrase source
  • 先產生 private.pem 私鑰
[mtchang@sc220469 key]$ openssl genrsa -out private.pem 1024
Generating RSA private key, 1024 bit long modulus
..++++++
..........................................++++++
e is 65537 (0x10001)
  • 由 private 私鑰產生 public.pem 公鑰
[mtchang@sc220469 key]$ openssl rsa -in private.pem -out public.pem -outform PEM -pubout
writing RSA key
  • 產生一個 file.txt 的測試檔案
[mtchang@sc220469 key]$ echo 'test to secrets with openssl RSA' > file.txt
  • 使用 openssl rsautl 及 public.pem 金鑰對 file.txt 加密,並產生 file.ssl 的加密檔案,此檔案為二進位檔案。
[mtchang@sc220469 key]$ openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
[mtchang@sc220469 key]$ ls -l
-rw-r--r-- 1 mtchang users  128 Jan 25 03:52 file.ssl
-rw-r--r-- 1 mtchang users   33 Jan 25 03:52 file.txt
  • 現在把 file.ssl 使用 private.pem 的私鑰做解密的動作並輸出 decrypted.txt 的檔案
[mtchang@sc220469 key]$ openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
[mtchang@sc220469 key]$ cat decrypted.txt 
test to secrets with openssl RSA
延伸閱讀:http://jangmt.com/wiki/index.php?title=253-ch3

2010/01/15

了解 SELinux 的 security Context ,並修正錯誤。

SELINUX 小州老師這份講義很棒,請先看這裡了解他。 

鳥哥也有更新這部份的資料了

所以我就補充這段!!!
  • 了解 SELinux 的 security Context
  • 環境確認:
  1. 確認 SELinux 打開為 Enforcing mode ,如果沒有請執行 system-config-securitylevel 並把 SELinux: Enforcing(強制) 及 Firewall stop(停用)
  2. 要有student帳號,如果沒有請建立帳號 student 密碼 linux
# useradd -g users -m student
# echo 'student:linux' | chpasswd
  • 安裝 httpd 套件並啟動,然後測試 webserver ,yum setup
# yum install httpd 
# service httpd restart
* elink http://127.0.0.1 
  • 以 root 身份,建立兩個檔案
  1. /home/student/home.html 內容為 「home directory」
  2. /tmp/tmp.html 內容為 「tmp directory」
  • 把這兩個檔案搬移到 /var/www/html (httpd 預設根目錄),並使用 ls -lZ 觀看 selinux content
# mv /tmp/tmp.html  /var/www/html
# mv /home/student/home.html /var/www/html
# ls /var/www/html -lZ
-rw-r--r--  root root root:object_r:user_home_t        home.html
-rw-r--r--  root root root:object_r:tmp_t              tmp.html
  • 使用 elinks 觀看這兩個檔案 http://127.0.0.1/home.htmlhttp://127.0.0.1/tmp.html
  • 會產生 SELinux 錯誤,請觀看 /var/log/messages 及 /var/log/audit/audit.log 的錯誤紀錄,系統會伴隨錯誤發生,可以用文字命令 sealert 指令來觀看參考訊息提供錯誤的修正參考資訊,圖形介面也會有相關的提示星星。
[root@localhost html]# sealert -l 45ff7c2f-1b79-4746-8280-f7ef6fd06d5d (看log有寫怎麼下)

Summary:

SELinux is preventing the httpd from using potentially mislabeled files
(/var/www/html/tmp.html).

Detailed Description:

SELinux has denied httpd access to potentially mislabeled file(s)
(/var/www/html/tmp.html). This means that SELinux will not allow httpd to use
these files. It is common for users to edit files in their home directory or tmp
directories and then move (mv) them to system directories. The problem is that
the files end up with the wrong file context which confined applications are not
allowed to access.

Allowing Access:

If you want httpd to access this files, you need to relabel them using
restorecon -v '/var/www/html/tmp.html'. You might want to relabel the entire
directory using restorecon -R -v '/var/www/html'.

Additional Information:

Source Context                root:system_r:httpd_t
Target Context                root:object_r:tmp_t
Target Objects                /var/www/html/tmp.html [ file ]
Source                        httpd
Source Path                   /usr/sbin/httpd
Port                          
Host                          localhost.localdomain
Source RPM Packages           httpd-2.2.3-31.el5
Target RPM Packages           
Policy RPM                    selinux-policy-2.4.6-255.el5
Selinux Enabled               True
Policy Type                   targeted
MLS Enabled                   True
Enforcing Mode                Enforcing
Plugin Name                   home_tmp_bad_labels
Host Name                     localhost.localdomain
Platform                      Linux localhost.localdomain 2.6.18-164.el5 #1 SMP
                              Tue Aug 18 15:51:54 EDT 2009 i686 i686
Alert Count                   2
First Seen                    Sat Jan 16 05:28:13 2010
Last Seen                     Sat Jan 16 05:28:13 2010
Local ID                      45ff7c2f-1b79-4746-8280-f7ef6fd06d5d
Line Numbers                  

Raw Audit Messages            

host=localhost.localdomain type=AVC msg=audit(1263590893.105:76): avc:  denied 
 { getattr } for  pid=4486 comm="httpd" path="/var/www/html/tmp.html" dev=hda5 
ino=100522 scontext=root:system_r:httpd_t:s0 tcontext=root:object_r:tmp_t:s0 
tclass=file

host=localhost.localdomain type=SYSCALL msg=audit(1263590893.105:76): 
arch=40000003 syscall=196 success=no exit=-13 a0=92c5218 a1=bf9e14cc a2=943ff4 
a3=2008171 items=0 ppid=4483 pid=4486 auid=0 uid=48 gid=48 euid=48 suid=48 
fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=2 comm="httpd" exe="/usr
/sbin/httpd" subj=root:system_r:httpd_t:s0 key=(null)
  • 使用 restorecon 或是 chcon 修正這些錯誤。讓網頁可正常顯示。
# restorecon /var/www/html/home.html 
或是
# chcon -u system_u -r object_r -t httpd_sys_content_t /var/www/html/tmp.html 
結果
# ls -lZ
-rw-r--r--  root root system_u:object_r:httpd_sys_content_t home.html
-rw-r--r--  root root system_u:object_r:httpd_sys_content_t tmp.html
  • 在使用 elinks 測試看看應該就可以了!!!

2010/01/11

躋身全球前5%商管學院名校, 國立中山大學管理學院通過AACSB再認證

轉貼:來源已經證實的管道....^^


國立中山大學管理學院通過AACSB再認證


「國際高等商管專業聯盟」AACSB(The Association to Advance Collegiate Schools of Business)宣布,國立中山大學管理學院通過該聯盟五年後再認證,成為台灣第一所通過該聯盟再認證之商管學院,與中山大學管理學院同期通過再評鑑的全球商管學院僅有45所,包括美國耶魯大學、美國卡內基梅隆大學、新加坡南洋理工大學及香港中文大學等,AACSB表示,恭喜這些學校躋身全球前5%頂尖的商管名校行列!


國立中山大學管理學院出現在AACSB官網(www.aacsb.edu)最新公布通過再評鑑的名單中,並成為全台唯一一所出現在該榜單的學校,消息傳來,如同拿到奧運金牌般全院師生欣喜萬分,包括國際學生在內,都認為通過AACSB再認證是商管學院認證的最高榮譽,也是師生多年來努力耕耘的成果。


中山管院自2005年成為第一所通過AACSB初認證的學校,完成階段性任務,也是該校管院學術及行政國際標準化的開始,往後每年的年度報告(Annual Report),以及每五年的實地訪查(On Site Visit),都是督促中山管院不斷朝願景及目標努力的鞭策力。


據了解,通過AACSB初認證已屬不易,五年後要通過再認證更是難能可貴,過去台灣僅有中山(2005年)、輔仁(2005年)、政大(2006年)、交大(2007年)四校申請通過初認證成功,在一字排開的國際商管名校行列中已是鳳毛麟角,不少名校挑戰再認證都鎩羽而歸,如今中山大學管理學院挑戰AACSB五年後再認證又獲肯定,為台灣商管教育的國際學術知名度再下一城。


中山大學管理學院院長吳仁和表示,AACSB International(國際高等商管專業聯盟)是目前國際上最負盛名且具備國際學術界公信力之商管學門評鑑,獲得AACSB再認證,與全球優質大學溝通的橋樑將更穩固,透過這個橋樑,國際學術交流的互動將更加通暢,對於提升中山管院的國際學術知名度,以及後續實質的學術合作都有積極且正面的功能。


吳仁和也表示,”Keep Surfing to Excellence!”是我們的堅持與努力。中山管院與國際接軌的努力從不間斷,早在1992年,就積極與全球知名大學進行交換學生計畫及教師交流,2005年通過AACSB初認證拔得國內大學頭籌後,許多國際學生慕名而來,中山大學全校國際學生有八成以上都來自管院,2007年拿下英國金融時報評比EMBA課程排名全球43(台灣第一),2007年至2009年校友薪資成長率的表現更是連續三年穩坐全台冠軍寶座。「該校在校友凝聚力、校友成就與學生素質讓我們留下深刻的印象!」AACSB訪評委員給予中山管院相當大的肯定。



AACSB 新聞
http://www.aacsb.edu/media/releases/2010/accreditation-jan-10.asp





2010/01/06

ubuntu 09.10 的 inittab 不見了!!

從ubuntu 06.10 開始原本的 inittabupstart 所取代, 但是到了 09.10
剛剛在檢查的時候,又發現他改變格式了.....
目前的啟動工作定義在 /etc/init, 他們是純文字檔案,不需要other
可以執行的權限 
http://upstart.ubuntu.com/getting-started.html
 不過,沒空去學啦!