telnet
一、telnet的基本介紹
特點: 24小時不斷的服務,併發特徵
使用TCP協議,準確說telnet本身就一種遠程登錄協議
網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱爲一個socke
socket:套接字,應用程序一般通過socket 向網絡發出請求或者應答請求,介於應用層和傳輸之間
socket 類型:
1、流式socket :面向連接的socket ,一般針對面向連接服務程序TCP
2、數據報socket:面向無連接的socket ,一般針對面向無連接的UDP 應用程序
linux 操作系統中服務:
依賴服務:1、沒有自己獨立的啓動腳本
2、依賴xinetd 服務
xinetd:擴展的網絡首護程序,超級Internet 服務,常用來管理多個輕量級的服務,平時不佔用系統運行資源
3、依賴服務提供服務的前提是xinetd 服務已經啓動
獨立服務:1、有自己的獨立啓動腳本
2、不依賴任何服務 常見的獨立服務:ftp、http、fns 、mail 等
端口號範圍:0~65535 1-255一般是知名的端口(web 80 ftp 21 | 22 ssh 22 )
256~1023一般由Unix系統佔用,來提供特殊服務
1024~5000 客服端隨機產生
大於5000 網絡預留端口
二、搭建服務
搭建服務的思路:
1、關閉防火牆和selinux 一般是關閉,在工作的環境是不能關閉的。
2、配置YUM源
3、軟件三步曲:查看、安裝、查看軟件
4、瞭解可配置文件
5、根據需求通過修改配置文件來完成服務的搭建
6、啓動服務、開機自啓動
7、測試驗證
環境準備:2臺
server:172.16.1.156
client: 172.16.1.95
telnet 23端口號 tcp協議傳輸明文傳輸用戶和密碼 linux默認不支持 (cat /etc/service | grep telnet )
步驟: 1、關閉防火牆和selinux
#service iptables stop 關閉
# chkconfig --list | grep iptables 查看
iptables 0:關閉 1:關閉 2:啓動 3;啓動
# chkconfig 0 關閉
關閉selinux :
# getenforce 查看是否關閉
Enforcing
# setenforce 0 臨時關閉
# vim /etc/selinux/config
SELINUX=disabled ——> 永久關閉
2、配置 YUM 源
vim /etc/yum.repos.d/server.repo
[server] 名稱不能裏面有空格
name=local1 名字
baseurl=file:///yum 掛載的目錄
enabled=1 1表示開啓
gpgcheck=0 驗證碼
3、軟件三部曲
yum list | grep telnet 查看的telnet需要那些軟件支持
This system is not registered to Red Hat Subscription Management. You can use subscription- manager to register.
telnet.x86_64 1:0.17-47.el6_3.1 server ***
telnet-server.x86_64 1:0.17-47.el6_3.1 server ***
rpm -q xinetd 查看xinetd是否安裝
#yum -y install xinetd
/etc/xinetd.conf 住配置文件
/etc/rc.d/init.d/xinetd 啓動腳本
/etc/xinetd.d 主目錄
/usr/sbin/xinetd 二進制命令
#rpm -q telnet-server
/etc/xinet.d/telnet 子配置文件
/usr/sbin/in.telnetd 啓動命令
4、瞭解配置文件
#cat /etc/xinetd.conf
defaults
{
log_type = SYSLOG daemon info 日誌類型 使用rsyslog 來登記日誌
log_on_failure = HOST 登錄失敗的日誌,記錄在客戶端的主機
log_on_success = PID HOST DURATION EXIT 登錄成功的日誌,記錄在客戶端主機以及進程的 PID
cps = 50 10 每秒50 個連接,如果超出限制,則等待 10s
instances = 50 最大連接數
per_source = 10 每一個IP 地址一次最多連接10 次 (每個IP 地址最多開10個終端連接10次)
v6only = no
groups = yes 屬組
umask = 002 掩碼
}
includedir /etc/xinetd.d 加載外部主目錄
# cat /etc/xinetd.d/telnet ——> 子配置文件
service telnet
service telnet
{
flags = REUSE 標記
socket_type = stream 面向連接 tcp
wait = no 不等待,服務以多線程的方式運行
user = root 啓動服務用戶
server = /usr/sbin/in.telnetd 啓動命令
log_on_failure += USERID 設置登錄失敗記錄用戶uid
disable = yes 代表關閉; no代表開啓
}
5、根據需要修改配置文件
#vim /etc/xinetd.d/telnet
disable = no開啓 yes表示關閉
6、啓動服務
#/etc/init.d/xinetd start
Starting xinetd: [ OK ]
chkconfig --level 35 xinetd on
# chkconfig --list|grep xinetd
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
以上兩中啓動方法隨便選擇一種
# netstat -lntp|grep 23
tcp 0 0 :::23 :::* LISTEN 3242/xinetd
查看端口是否在監聽
-a:查看所有連接狀態
-l:查看處於監聽狀態的連接
-t:只查看tcp 協議的連接
-u:只查看udp協議
-n:數字顯示
-p:顯示程序名
7、測試驗證
client 172.16.1.59
server 172.16.1.156
# telnet 172.16.1.156 默認登錄進去在用戶的家目錄裏面 client:端沒有那個命令要安裝
客服端默認登錄不上服務端的原因:
1、server端末開啓telnet
2、防火牆沒關閉
3、telnet 子置文件中的 disable = yes ——> 表示沒關閉
需求1、只允許10.1.1.1 訪問server 端telnet服務
# vim /etc/xinetd.d/telnet
{
...
only_from = 10.1.1.1 只允許這個IP地址登錄
}
重啓xientd 服務: service xientd restart
client機登錄:
# telnet 172.16.1.156
Trying 172.16.1.156...
Connected to 172.16.1.156.
Escape character is '^]'.
Connection closed by foreign host.
需求2、允許192.168.1.0/24 網段訪問,除了192.168.1.3
A類: 24位子網掩碼 255.255.255.0
B類: 16位子網掩碼 255.255.0.0
C類: 8 位子網掩碼 255.0.0.0
#vim /etc/xinted.d/telnet
{
...
only_from = 192.168.1.0/24 允許這個的網段IP的登錄
no_access = 192.168.1.3 不允這個IP登錄
}
重啓xientd服務: service xientd restart
可以根據man 5 xinetd.conf
需求3: 1、控制telnet服務最多隻能連接3,每個IP只能鏈接1次
#vim /etc/xinetd.conf 修改子配置文件
instances = 3
per_source = 1
2、控制只能在工作時間訪問telnet服務 9:30-12:00 14:00-17:30
# vim /etc/xinetd.d/telnet ——>更改子配置文件
{
....
access_times = 9:30-12:00 14:00-17:30
}
3、指定日誌記錄到/var/log/xinetd_telnet.log
#vim /etc/xinetd.d/telnet ——>更改子配置文件
{
...
log_type = FILE /var/log/xinetd_telnet.log
}
4、更改telnet 服務默認端口號爲10023
#vim /etc/xinetd.d/telnet ——>更改子配置文件
{
...
port = 10023
}
vim etc/services 此配置文件裏面也要改爲 telnet 10023
更改配置文件重啓的服務的纔會生效!!!!!!!!!!!!!!!!!!