実際の生産環境では、サーバはローカルサーバで適切に管理されていませんでした、ほとんどのエンタープライズ・サーバは、リモートログインの方法を介して管理されています。管理サーバーのホストからワークステーションの数百人が必要な場合は、道のリモートメンテナンスがより支配的になります。
SSHの概要
SSHは、(セキュアシェル)は、主にこのようなインターフェース機能などのリモートログイン、リモートコピーの文字に使用されるセキュアチャネルプロトコルです。ユーザがログイン入力されたユーザパスワードを含む通信データを送信するためのSSHプロトコルを暗号化するために両方、。、これまでのTelnet(リモートログイン)より等の伝統的な方法のRSH(リモートコマンド実行)と比較すると、SSHプロトコルは、より優れたセキュリティを提供します。
まず、OpenSSHサーバを設定します
1.サービスリスニングオプション
SSHDサービスは、それが必要な場合は、ネットワークの中に隠さ改善するために、このポート番号を変更し、リスニングサービス、特定のIPアドレスを指定することが推奨され、デフォルトのポート番号は22で使用しています。また、SSHプロトコルv2のセキュリティの選択のバージョンでは、サーバーの応答速度を向上させることができます逆引きDNSを無効にし、V1よりも優れています。
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件
………… //省略部分内容
Port 22 //监听端口为22
ListenAddress 0.0.0.0 //监听地址为0.0.0.0,表示全部监听
Protocol 2 //使用SSH v2的版本
UseDNS no //禁用DNS反向解析,提高响应速度
………… //省略部分内容
[root@localhost ~]# systemctl restart sshd //重新启动sshd服务
2.ユーザーログイン制御
sshdサービスは、デフォルトのrootユーザのログインで許可されているが、ネットワークは、一般的には、通常のユーザーであり、その後、rootユーザーに切り替え、大きなセキュリティリスクです。
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件
………… //省略部分内容
LoginGraceTime 2m //登录验证时间为2分钟
PermitRootLogin no //禁止root用户登录
MaxAuthTries 6 //最大重试次数为6次
PermitEmptyPasswords no //禁止空密码登录
………… //省略部分内容
[root@localhost ~]# systemctl restart sshd //重新启动sshd服务
あなたは、許可またはユーザーがログインするか、両方の使用と同様AllowUsersというのDenyUsersの設定を使用(ただし、同時に使用することはしないように注意する)ことができた場合にのみ許可しないようにしたいとき。そしてxiaoli例えばxiaozhangユーザのログインを許可し、前記ユーザはリモートログインのIPアドレス192.168.1.2からのみxiaozhangアドレス。
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件
………… //省略部分内容
AllowUsers xiaoli [email protected] //多个用户之间用空格进行分隔
[root@localhost ~]# systemctl restart sshd //重新启动sshd服务
3.ログイン認証モード
sshd服务支持两种验证方式: 1.密码验证:对服务器中的本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但是系统用户密码存在可能遭遇密码穷举(暴力破解); 2.密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥,然后将公钥文件存放到服务器指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密验证,这种方式不易被假冒,且可以免交互登录,在Shell中被广泛应用。
パスワード認証、キーの検証が有効になっている場合、サーバーは、検証のためのキーの優先順位を使用しています!特別な要件は、両方の方法を有効にすることを推奨されていません!
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件
………… //省略部分内容
PasswordAuthentication yes //启用密码验证
PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库文件
………… //省略部分内容
[root@localhost ~]# systemctl restart sshd //重新启动sshd服务
第二に、使用するSSHクライアントプログラム
CentOSの7.3システムでは、SSHリモートログインコマンドを含む(デフォルトでインストール)提供のopenssh-clientsパッケージにより、OpenSSHクライアント、およびscp、sftpのリモートレプリケーション、ファイル転送コマンド。
1.コマンド・プログラム(SSH、SCP、SFTP)アプリケーション
1)SSHリモートログイン
サーバーの管理とメンテナンスのためにセキュアシェル環境をユーザーに提供するためのssh sshdサービスコマンドによるリモートログイン、!
[root@kehuduan ~]# ssh [email protected]
sshdサーバがデフォルト以外のポート番号を使用している場合(例えば2222など)あなたは「-p」オプションは、ポート番号を指定します使用する必要があります。
[root@kehuduan ~]# ssh -p 2222 [email protected]
[email protected]'s password: //输入密码
[xiaozhang@fuwuduan ~]$ //登录成功
2)SCPリモートコピー
[root@kehuduan ~]# scp [email protected]:/etc/passwd /mnt
//从服务器下载文件
[email protected]'s password:
passwd 100% 2360 2.3KB/s 00:00
[root@kehuduan ~]# scp 123.txt [email protected]:/mnt
//从客户端上传文件
[email protected]'s password:
123.txt 100% 0 0.0KB/s 00:00
ポートを指定する必要がある場合は、「-P」オプションを使用します!
3)SFTPセキュアFTP
sftpコマンドは、リモートホストのアップロードにSSHのセキュアな接続で使用することができ、簡単なディレクトリのリソース管理のためのFTPのログインプロセスと同様のインタラクティブな環境を使用して、ファイルをダウンロードしてください。
[root@kehuduan ~]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.1.1.
sftp> put 456.txt //上传文件
Uploading 456.txt to /root/456.txt
456.txt 100% 0 0.0KB/s 00:00
sftp> get /root/789.txt //下载文件
Fetching /root/789.txt to 789.txt
sftp> bye
2.グラフィカルなツール
Windowsホストでのグラフィカル・ツールXshell、のSecureCRT、パテその他のグラフィカル・ツールのシリーズを使用することができ、リモートでのLinuxホストを管理しやすい、のTelnet、SSH、SFTPや他のプロトコルをサポートしています。これらのグラフィカルツールは、中国の言語インターフェイス、機能、操作が比較的簡単で提供し、徹底的な導入を行うもはやありません。
以下のための鍵SSH認証システムの第三に、建設
Key認証は、より優れたセキュリティを提供するために、リモートアクセスを提供することができ、フローチャート:
1)最初の実装:
1.クライアント鍵ペアを作成して
Linuxクライアントでは、ssh-keygenのツールを経由して、現在のユーザーのためのキーファイルを作成し、ECDSAまたはDSA(SSH-keygenはコマンド「-t」オプションで利用可能な暗号化アルゴリズム)アルゴリズムのタイプを指定します。
root@kehuduan ~]# su - xiaowang //切换到用户xioawang
[xiaowang@kehuduan ~]$ ssh-keygen -t ecdsa //创建基于ECDSA算法的SSH密钥对
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/xiaowang/.ssh/id_ecdsa): //指定私钥存放位置
Created directory '/home/xiaowang/.ssh'.
Enter passphrase (empty for no passphrase): //设置私钥短语
Enter same passphrase again: //确认所设置的短语
Your identification has been saved in /home/xiaowang/.ssh/id_ecdsa.
Your public key has been saved in /home/xiaowang/.ssh/id_ecdsa.pub.
The key fingerprint is:
13:c2:03:63:bc:2e:d8:7e:be:f1:1b:1d:95:6b:4c:49 xiaowang@kehuduan
The key's randomart image is:
+--[ECDSA 256]---+
| .+ E |
| ..+ . o |
| .+ . = |
| . o = . |
| o . S + |
|. o . . + |
| . .. . . |
| . .o . |
| oo.o. |
+-----------------+
[xiaowang@kehuduan ~]$ ls -lh ~/.ssh/id_ecdsa*
-rw-------. 1 xiaowang xiaowang 227 8月 8 16:45 /home/xiaowang/.ssh/id_ecdsa
-rw-r--r--. 1 xiaowang xiaowang 179 8月 8 16:45 /home/xiaowang/.ssh/id_ecdsa.pub
新は、鍵ペアファイル、600のid_ecdsa秘密鍵ファイルのパーミッションを生成しておく必要がある。id_ecdsa.pub公開鍵ファイルは、SSHサーバに提供するために使用されます。
2.サーバーへの公開鍵ファイルをアップロード
だけで、サーバーのユーザーの公開鍵データベースへの公開鍵ファイルを生成します。
[xiaowang@kehuduan ~]$ scp ~/.ssh/id_ecdsa.pub [email protected]:/mnt
[email protected]'s password: //输入密码
id_ecdsa.pub 100% 179 0.2KB/s 00:00
//上传成功
3.インポートサーバーで公開鍵テキスト
サーバーで、対象ユーザの〜/ .sshディレクトリにある公開鍵データベース(アリリモートログインしてアカウントを参照)、デフォルトのファイル名「のauthorized_keys」、手動で独自に作成する必要があります!
[root@fuwuduan ~]# mkdir /home/xiaozhang/.ssh
[root@fuwuduan ~]# cat /mnt/id_ecdsa.pub >> /home/xiaozhang/.ssh/authorized_keys
[root@fuwuduan ~]# cat /home/xiaozhang/.ssh/authorized_keys
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJmtmVbjnjH6NbWBRQcFjbYHoDBILQYclqrIHbVe0oyA15IXd+WBGsOcX3FYX8FYnIPHfL36Auj7aWb2MuVqmac= xiaowang@kehuduan
4.クライアント認証キー
[Xiaowang kehuduan @〜] $のSSHの[email protected]
最終ログイン:木、8月192.168.1.2から2019年16時03分33秒8
//パスワードなし、EXPERIMENTAL接続します完全な!
2)第二の方法では達成します。
[root@kehuduan ~]# ssh-keygen -t ecdsa
//以root为例,生成root用户的密钥对文件
[root@kehuduan ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub [email protected]
//“-i”用来指定公钥文件,这一步把刚才第二、三步结合在一起
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: //输入服务端root用户密码
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
[root@kehuduan ~]# ssh [email protected]
Last login: Thu Aug 8 17:03:20 2019
//验证实验效果
認証ログのキーを使用している場合、あなたは、その優れたセキュリティをターゲットユーザのマスクを知っているが、ユーザの秘密鍵フレーズのクライアントを確認し、パブリック、プライベートかどうかペアリングをチェックする必要はありません。
四、TCPラッパーのアクセス制御
1)TCPラッパーの概要
TCPラッパーTCPサービスプログラム「包む」、強力なTCPポートサービスプログラムを取ったが、安全監視プロセスを追加して、接続要求のアウトリーチは、最初の本当のサービスプログラムにアクセスするためのライセンスを取得するために、安全監視のこの層を通過しなければなりません。図:
ほとんどのLinuxディストリビューションの場合は、TCPラッパーが提供するデフォルトの機能があります。TCP_WRAPPERS-7.6-77.el7.x86_64.rpmを使用してCentOSの7.3パッケージ。
对应TCP Wrappers保护机制的两种实现方式: 1.直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd; 2.由其他网络服务程序调用libwrap.so.*链接库,不需要运行tcpd程序。 通常,链接库方式的应用要更为广泛,也更有效率。
2)TCPラッパーアクセスポリシー
ネットワークサービスのさまざまなプログラムのための保護機構のTCPラッパーオブジェクト、クライアントアクセスサービスのアクセス制御アドレス、/etc/hosts.allowファイルと/etc/hosts.denyに対応する2つのポリシーファイルを、それぞれ、アリが設定することができます戦略と拒否されました。
1、ポリシー構成フォーマット
服务列表:客户机地址列表
クライアントアドレスリストの間でサーバープログラムのリストは、リスト内の複数の項目間のカンマで区切られた、コロンで区切られています。
1)プログラムとサービスのリスト
2)クライアントのアドレス一覧
2、戦略の順序
先检查hosts.allow,找到匹配则允许访问 否则再检查hosts.deny,找到则拒绝访问 若两个文件中均无匹配策略,则默认允许访问
図3に示すように、構成例
要件:のみ192.168.1.0ネットワークホストアクセスsshdサービスを許可します
[root@fuwuduan ~]# vim /etc/hosts.allow
sshd:192.168.1.
[root@fuwuduan ~]# vim /etc/hosts.deny
sshd:ALL