centos

centos telnet权限设置技巧

小樊
42
2025-11-05 14:46:44
栏目: 智能运维

CentOS Telnet权限设置技巧

1. 安装与启动Telnet服务

Telnet服务需通过xinetd超级守护进程管理,安装步骤如下:

# 安装xinetd和telnet-server(CentOS默认未安装)
sudo yum install -y xinetd telnet-server

# 启用并启动xinetd服务(telnet随xinetd启动)
sudo systemctl enable xinetd
sudo systemctl start xinetd

安装后,Telnet服务默认监听23端口(需通过防火墙放行)。

2. 配置xinetd限制访问源

编辑/etc/xinetd.d/telnet文件,通过以下参数限制可访问Telnet服务的IP范围:

service telnet {
    disable = no       # 启用服务(关键参数,原值为yes时服务禁用)
    only_from = 192.168.1.0/24  # 仅允许192.168.1.0/24网段访问
    no_access = 192.168.1.100,192.168.1.101  # 明确拒绝的IP地址
    access_times = 8:00-12:00 20:00-23:59  # 仅允许在8:00-12:00、20:00-23:59时间段访问
}

修改后重启xinetd服务使配置生效:

sudo systemctl restart xinetd

说明only_from支持IP地址、网段(如192.168.1.0/24)、域名(如.edu.cn);no_access可添加多个IP,用逗号分隔。

3. 通过TCP Wrappers细化权限

TCP Wrappers(/etc/hosts.allow/etc/hosts.deny)可基于IP/域名进一步控制Telnet访问:

# 编辑hosts.allow,允许指定IP或网段访问telnet服务
echo "telnetd: 192.168.1.10, 192.168.2.0/24 : allow" | sudo tee -a /etc/hosts.allow

# 编辑hosts.deny,拒绝所有其他IP访问telnet服务
echo "telnetd: ALL : deny" | sudo tee -a /etc/hosts.deny

优先级:TCP Wrappers的规则优先于xinetd的配置,若两者冲突,以TCP Wrappers为准。

4. 限制可登录用户

通过PAM(可插拔认证模块)限制可使用Telnet登录的用户:

# 编辑/etc/pam.d/telnet文件,添加以下两行
auth required pam_listfile.so item=user sense=deny file=/etc/telnet.deny onerr=succeed
auth required pam_listfile.so item=user sense=allow file=/etc/telnet.allow onerr=succeed

创建允许/拒绝列表文件:

# 允许的用户列表(每行一个用户名)
echo "user1" | sudo tee /etc/telnet.allow
echo "user2" | sudo tee -a /etc/telnet.allow

# 拒绝的用户列表(可选,未被allow包含的用户默认拒绝)
echo "root" | sudo tee /etc/telnet.deny

注意sense=deny表示拒绝file中列出的用户,sense=allow表示允许file中列出的用户。

5. 禁止root用户远程登录

为避免root账户被暴力破解,需禁止其通过Telnet远程登录:

# 编辑/etc/securetty文件,注释或删除root对应的行
sudo sed -i '/^tty/d' /etc/securetty  # 删除所有tty行(包括telnet对应的tty)
# 或手动编辑,确保无"tty"相关行

修改后,root用户无法通过Telnet登录,需使用普通用户登录后再切换至root(su -)。

6. 防火墙放行Telnet流量

根据系统使用的防火墙类型,放行Telnet端口(23/tcp):

安全提醒:Telnet传输数据为明文,建议仅在测试环境使用,生产环境优先替换为SSH(加密传输)。

7. 修改默认端口(可选)

为降低被扫描攻击的风险,可修改Telnet默认端口(23):

# 编辑/etc/services文件,修改telnet端口
sudo sed -i 's/^telnet\s\+23\/tcp/telnet 10000\/tcp/' /etc/services
sudo sed -i 's/^telnet\s\+23\/udp/telnet 10000\/udp/' /etc/services

重启xinetd服务使端口变更生效:

sudo systemctl restart xinetd

注意:客户端连接时需指定新端口(telnet server_ip 10000)。

0
看了该问题的人还看了