linuxログイン関連


一般的な要件:
1.rootアカウントのリモートログインを禁止する.
2.sshデフォルトポート22を2222に変更し、セキュリティを向上させる.
3.一般ユーザーがsudo suを使用してrootアカウントに切り替えることができ、パスワードを入力する必要がないことを許可する.
4.IPが192.168.16.16のホストのみがsshでログインすることを許可する.
5.ログイン時に鍵認証メカニズムを使用してLinuxにリモートログインする.
実装方法:
1.rootアカウントのリモートログイン禁止
[root@localhost ~]# vim /etc/ssh/sshd_config
PermitRootLogin no  #      
[root@localhost ~]# service sshd restart

2.sshデフォルトポート22を2222に変更してセキュリティを向上
[root@localhost ~]# vim /etc/ssh/sshd_config
port 2222  #    
[root@localhost ~]# service sshd restart

3.一般ユーザーにsudo suを使用してrootアカウントに切り替えることを許可し、パスワードを入力する必要はありません.
[root@localhost ~]# visudo
#visudo        
User_Alias UUU = wangchengjun,%wangchengjun
Cmnd_Alias CCC = /bin/su
UUU ALL=(root) NOPASSWD:CCC

[wangchengjun@localhost ~]$ sudo su -  #    
[root@localhost ~]#    #     root  

4.IPが192.168.16.16のホストのみsshによるログインを許可する
方法1:hosts.denyとhosts.allow設定、192.168.16.16ホストのみ通過可能
[root@wangchengjun ~]# vim /etc/hosts.deny
sshd:all:deny
[root@wangchengjun ~]# vim /etc/hosts.allow
sshd:192.168.16.16:allow
[root@wangchengjun ~]# service sshd restart

方法2:iptables設定により、まずすべてのポートを閉じ、192.168.16.16ホストが2222ポートを介してsshにリモートログインできるようにする.すべてのホストに必要なポートを追加します.スクリプトで一歩ずつ実現できます.
#!/bin/bash
iptables -F
iptables -P INPUT DROP
iptables -A INPUT -s 192.168.16.16 -p tcp --dport 2222 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

5.ログイン時に鍵認証メカニズムを使用してLinuxにリモートログインする
Xshellを例にとると、
1.メニューコマンド:ツール――>新規ユーザ鍵生成ウィザード
2.鍵の種類:RSA
3.鍵名、パスワードなどの情報を設定する
4.公開鍵のコピー、秘密鍵の保存
5.ユーザのホームディレクトリの下にディレクトリを作成する:~/.ssh
変更権限:chmod 700~/.ssh
6.vim ~/.ssh/authorized_keys公開鍵を貼り付けて保存
7.鍵によるログイン