感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

CentOSにSSH、Telnet、FTPをインストールする方法のまとめ。

スポンサーリンク

■Telnetのインストール
Telnetのインストールはyumを使う。

[root@localhost ~]# yum install telnet-server

途中で以下のように聞かれるが、そのときは[y]を入力する

Is this ok [y/N]:

■Telnetサービスを自動で起動させる方法。
chkconfigを使う。
chkconfigはサービスの自動起動を制御するプログラムのこと。

オプション--listは現在のすべての設定を出力する。

[root@localhost ~]# chkconfig --list
NetworkManager 	0:off	1:off	2:on	3:on	4:on	5:on	6:off
abrtd          	0:off	1:off	2:off	3:on	4:off	5:on	6:off
acpid          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
atd            	0:off	1:off	2:off	3:on	4:on	5:on	6:off
auditd         	0:off	1:off	2:on	3:on	4:on	5:on	6:off
avahi-daemon   	0:off	1:off	2:off	3:on	4:on	5:on	6:off
bluetooth      	0:off	1:off	2:off	3:on	4:on	5:on	6:off
cgconfig       	0:off	1:off	2:off	3:off	4:off	5:off	6:off

サービスを追加するための書式。

# chkconfig --add telnet
# chkconfig --list telnet
telnet         	off

chkconfigの設定を切り替える書式

chkconfig --level <levels> <service> on|off|reset

上記の書式にしたがって、Telnetの設定をonにする。

[root@localhost ~]# chkconfig --level 35 telnet on
[root@localhost ~]# chkconfig --list telnet
telnet         	on

ランレベル3,5でtelnetがonになった。

SSHのインストール
SSH(Secure SHell)はリモートコンピュータとの通信を暗号化や認証を用いて安全に行うためのプロトコルのこと。

openssh-serverをインストールする方法は以下の通り。

[root@localhost ~]# yum install openssh-server.x86_64 

パケットフィルタリングの設定が行われている場合、SSHの接続を許可するには、外部からのSSHに関連する通信を許可する必要がある。
そのためにはiptablesを設定する必要がある。

# vi /etc/sysconfig/iptables

で、以下を追記する。(ついでにtelnetも追記)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUt -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT

公開鍵認証を行うためには、秘密鍵と公開鍵のペアである鍵セットを作成し、SSHサーバに公開鍵を登録する必要がある。
鍵セットの作成にはssh-keygenコマンドを使う必要があり、このコマンドはopensshパッケージとopenssh-clientsパッケージをインストールすることで使用可能になる。

鍵セットを作成する。

[sysmgr@localhost ~]$ ssh-keygen -t rsa

デフォルトだと、.sshディレクトリに鍵セットが作成される。
作成した公開鍵をauthrized_keysとして手元に持ってくる。
まず配布用公開鍵の作成。

[sysmgr@localhost .ssh]$ cat id_rsa.pub >> authorized_keys
[sysmgr@localhost .ssh]$ chmod 600 authorized_keys

まずはサーバ上で接続の確認

[sysmgr@localhost .ssh]$ ssh localhost

ローカルのホストのユーザ名と接続先のホストのユーザ名が異なる場合は、-lオプションを利用するか、@という形でユーザ名を指定する。
また、
SSHv2を使用した通信を指定する場合は-2、
SSHv1を使用した通信を指定する場合は-1
をオプションに指定する。

手元に公開鍵を持ってくる方法で、1番いいのは直接USBなどを指して物理媒体で移行する方法だ。
しかし、今回はFTPをインストールして、FTPで取得してみる。
まずはFTPのインストールから。

[root@localhost ~]# yum install vsftpd

vsftpdの自動起動をonにする。

[root@localhost ~]# chkconfig --list vsftpd
vsftpd         	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@localhost ~]# chkconfig --level 35 vsftpd on
[root@localhost ~]# 
[root@localhost ~]# chkconfig --list vsftpd
vsftpd         	0:off	1:off	2:off	3:on	4:off	5:on	6:off

また、vsftpdサービスを開始する。

[root@localhost ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

SELinuxの設定で、匿名ユーザがファイルの読み書きができるようにする設定を行う。

[root@localhost log]# setsebool -P ftp_home_dir 1
[root@localhost log]# getsebool ftp_home_dir
ftp_home_dir --> on

これでFTPができるようになるので、手元に[authorized_keys]をダウンロードする。
あとはPuFFYを使ってsshで対象のサーバに接続すると、ssh通信ができた!!

参考にした本はこちら。

CentOS 6で作るネットワークサーバ構築ガイド (Network Server Construction Guide S)

CentOS 6で作るネットワークサーバ構築ガイド (Network Server Construction Guide S)


これ一冊でLinuxサーバ構築の全てが載っていると思う。

                                • -

今回で感謝のプログラミングは【172.5時間目】
10000時間まで、あと【9827.5時間】

ちょっと時間がかかってしまった。別のアプリ制作の時間も入れた。