2011年7月7日 星期四

ubuntu 加telnet servies

http://zoe.nuper.com/linux/linux_ch11.php
http://tw.myblog.yahoo.com/ok-free/article?mid=5970&prev=5971&next=5969

$ sudo apt-get install xinetd telnetd

裝好後會出現訊息說以下這一行已加進 /etc/inetd.conf
telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnet

代表服務名稱(service)為telnet
使用tcp協定的連線類型為stream (UDP為datagram)
並選用nowait (不須等待上一個請求結束,就可執行)
執行程式時的身分為root
採用Tcp Wrapper機制,即先交由 /usr/sbin/tcpd檢視 /etc/hosts.allow、
    /etc/hosts.deny,確定通過後才呼叫後面的程式執行相關服務。

但如果實際上是使用 xinetd,則必需即上面的東西轉為 /etc/xinetd.conf
的格式並手動加進去

/etc/xinetd.conf 定義所有經由inetd super daemon來提供服務的設定:

defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d

說明 :
instances:設定單一服務在同一時間所能提供最大連線數60,若設定UNLIMITED則無連線數限制。
           這裡的設定,主要是用來防止dos之類的中斷攻擊。
log_type:表示透過syslogd的執行來做記錄,代表與認證相關的訊息類別。
log_on_success:若client能成功連上server,就會記錄client主機位址及行程PID。
log_on_failure:若連線失敗則只記錄client主機位址。
cps:第一個數字25表示每秒能掌控的連線數,若超過25則連線暫停。
     第二個數字30表示從連線暫停到重新啟動服務的時間為30秒。
檔案最後尚有一行敘述:includedir /etc/xinetd.d
代表所有使用inetd daemon的服務,其設定值所在的目錄位置。

手動建立 /etc/xinetd.d/telnet,並加入以下內容:

# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}

說明:
service telnet  服務名稱為telnet,須與 /etc/services內的名稱一致。
disables = no 欲接受連線時,要將yes改no。
socket_ type = stream 連線類型。TCP為stream,UDP為datagram。
wait = no 不須等待上一個請求結束,就可執行。一般stream選擇使用no。
user = root 啟動服務程式的身份。
server = /usr/sbin/in.telnetd  執行主程式。
log_on_failure += USERID   在原先設定基礎上再加上UID。


重啟機器或重啟網路服務 sudo /etc/init.d/xinetd restart

●  開啟第二個port供telnet連線

想要在port 23以外再多開一個port 2300來用

修改 /etc/services 加入:
telnet2 2300/tcp

修改 /etc/inetd.conf 加入:
telnet2 stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnet

在 /etc/xinetd.d/ 下新增一個 telnet2 檔,內容為:
service telnet2
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}

在防火牆打開port 2300

重啟網路服務 $ sudo /etc/init.d/xinetd restart

檢查看看是否port 23跟port 2300都有在listen
$sudo netstat -atnp | grep xinetd

○ 若要裝ssh

sudo apt-get install ssh


○ 修改登入訊息

登入前的訊息記錄在 /etc/issue.net
預設訊息是:

Ubuntu 8.04.1

這個訊息只有 telnet 登入會看到,可使用 \d 等代號


登入後的訊息記錄在 /etc/motd ,這是一個軟連結指向 /var/run/motd
而這個檔案每次開機都會變成以下的預設訊息:

Linux disp 2.6.24-19-generic #1 SMP Wed Aug 20 22:56:21 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

所以要更改的話,建立一個 /etc/motd.static 並使 /etc/motd 改指向這個檔即可

這個訊息用 SSH 登入也會看到,且無法使用 \d 等代號

○ 使 telnet 登入預設語系為 big5

修改 /etc/bash.bashrc 在最後面加上:

if ["$TERM" == "vt100"] || ["$TERM" == "ansi"]; then
    LANG=zh_TW.big5
fi

○ 使 telnet 提示字元為彩色

修改 ~/.bashrc 在
if ["$color_prompt" = yes]; then
前面加上:
if ["$TERM" == "vt100"]; then
    color_prompt=yes