SSH的一些安全小技巧(1)


 一前言

关于 ssh 的好处相信不用我多说了吧?

简而言之之前的 rpc command 与 telnet 都全可用 ssh 代替.

比方如下的这些常见功能:

远程登录

ssh user@remote.machine

远程执行

ssh user@remote.machine 'command ...'

远程复制

scp user@remote.machine:/remote/path /local/path

scp /local/path user@remote.machine:/remote/path

- X forward

ssh -X user@remote.machine

xcommand ...

- Tunnel / Portforward

ssh -L 1234:remote.machine:4321 user@remote.machine

ssh -R 1234:local.machine:4321 user@remote.machine

ssh -L 1234:other.machine:4321 user@remote.machine

至于详细的用法我这就不说了请读者自行研究吧.

我这里要说的是针对 ssh 服务为大家介绍一些安全技巧希望大家用得更安心些.

实作

(实作以 RedHat 9 为范例)

1) 禁止 root 登录

# vi /etc/ssh/sshd_config

PermitRootLogin no

2) 废除密码登录强迫使用 RSA 验证(假设 ssh 账户为 user1 )

# vi /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no

# service sshd restart

# su - user1

$ mkdir ~/.ssh 2>/dev/null

$ chmod 700 ~/.ssh

$ touch ~/.ssh/authorized_keys

$ chmod 644 ~/.ssh/authorized_keys

--------------------------------------------------

转往 client :

$ ssh-keygen -t rsa

(按三下 enter 完成﹔不需设密码,除非您会用 ssh-agent )

$ scp ~/.ssh/id_rsa.pub user1@server.machine:id_rsa.pub

(若是 windows client, 可用 puttygen.exe 产生 public key,

然后复制到 server 端后修改之使其内容成为单一一行.)

---------------------------------------------------

回到 server :

$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

$ rm ~/id_rsa.pub

$ exit

3) 限制 su / sudo 名单:

# vi /etc/pam.d/su

auth required /lib/security/$ISA/pam_wheel.so use_uid

# visudo

%wheel ALL=(ALL) ALL

# gpasswd -a user1 wheel

4) 限制 ssh 使用者名单

# vi /etc/pam.d/sshd

auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail

# echo user1 >> /etc/ssh_users

 


相关内容

    暂无相关文章