事实上 ssh 真的很好用!你甚至不需要启动甚么 xdmcp, vnc, xrdp 等等服务,使用 ssh 的加密通道就能够在客户端启动图形接口! 此外,我们知道很多服务都是没有加密的,那么能不能将这些服务透过 ssh 通道来加密呢?嘿嘿!当然是可以! 在这个章节当中,我们就来谈谈一些 ssh 的进阶应用吧!
1、启动 ssh 在非正规埠口 (非 port 22)
从前面的章节里面我们就曾经提过, sshd 这个服务其实并不是很安全,所以很多 ISP 在入口处就已经将 port 22 关闭了!为什么要这么作呢?这是因为很多网站管理员并没有定期的进行软件 update ,而且为了方便,又很开心的将 port 22 对全世界开放。由于很多 cracker 会使用扫描程序乱扫整个 Internet 的埠口漏洞,这个 port 22 就是一个很常被扫描的端口啦!为了杜绝这个问题,所以 ISP 先帮你把关,先将 port 22 关闭!这也是为了整个区网好!
只是,像鸟哥这种没有 ssh 就快要活不下去的人,关闭了 port 22 那鸟哥的头都痛了!没有办法工作啊! 那怎办?没关系,其实我们可以将 ssh 开放在非正规的埠口。如此一来, cracker 不会扫描到该端口,而你的 ISP 又没有对该埠口进行限制,那你就能够使用 ssh 啰!很棒吧!那就来试看看。我们底下将 ssh 开放在 port 22 及 port 23 试看看 (请注意, port 23 不能够有被使用喔!)。
(1)设定 ssh 在 port 22 及 23 两个埠口的设定方式
[AppleScript] ı鿴 ƴ [root@www ~]# vim /etc/ssh/sshd_config
Port 22
Port 23 <==注意喔!要有两个 Port 的设定才行!
[root@www ~]# /etc/init.d/sshd restart
但是这一版的 CentOS 却将 SSH 规范 port 仅能启动于 22 而已,所以此时会出现一个 SELinux 的错误!那怎办?没关系, 根据 setroubleshoot 的提示,我们必须要自行定义一个 SELinux 的规则放行模块才行!有没有很难呢?其实还算简单! 整体流程是这样的:
[AppleScript] ı鿴 ƴ # 1. 于 /var/log/audit/audit.log 找出与 ssh 有关的 AVC 信息,并转为本地模块
[root@www ~]# cat /var/log/audit/audit.log | grep AVC | grep ssh | \
> audit2allow -m sshlocal > sshlocal.te <==扩展名要是 .te 才行
[root@www ~]# grep sshd_t /var/log/audit/audit.log | \
> audit2allow -M sshlocal <==sshlocal 就是刚刚建立的 .te 檔名
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i sshlocal.pp <==这个指令会编译出这个重要的 .pp 模块!
# 2. 将这个模块加载系统的 SELinux 管理当中!
[root@www ~]# semodule -i sshlocal.pp
# 3. 再重新启动 sshd 并且观察埠口吧!
[root@www ~]# /etc/init.d/sshd restart
[root@www ~]# netstat -tlunp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7322/sshd
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 7322/sshd
tcp 0 0 :::22 :::* LISTEN 7322/sshd
tcp 0 0 :::23 :::* LISTEN 7322/sshd
有没有很简单!这样你就能够使用 port 22 或 port 23 联机到你的 sshd 服务喔!
(2)非正规埠口的联机方式
由于预设的 ssh, scp, sftp 都是连接到 port 22 的,那么如何使用这些指令联机到 port 23 呢? 我们使用 ssh 当练习好了:
|