VPS(レンタル)サーバー上のssh初期設定確認

自室の端末からVPS(レンタルサーバー)に接続する際は、通常はsshを使用します。
“お名前.com”のVPSサーバー(確認時点ではCentOS6.2)でのsshは以下のような初期設定となっていました。

SSHのRPMパッケージ名を確認する


 
例)

# rpm -qa | grep ssh
openssh-server-5.3p1-70.el6_2.2.x86_64
openssh-5.3p1-70.el6_2.2.x86_64
libssh2-1.2.2-7.el6_1.1.x86_64

sshのサーバーのパッケージ名は”openssh-server”です。
 

設定ファイルの保存場所の確認


 
例)

# rpm -qc openssh-server
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd

ファイル名からすると、”/etc/sysconfig/sshd”がopenssh-serverのサーバーサービスの設定ファイルと推測できます。
 

設定ファイルの変更


 
管理人の環境では、rootユーザーによるログインが許可されている状態でした。
暗号化されているとはいえ、インターネット回線を介してログインする際にrootユーザーでログインするのはセキュリティ的に望ましくないかと思いますので許可しない設定に変更しました。
 
PermitRootLogin no
 

起動スクリプトの配置場所の確認


 
例)

# rpm -ql openssh-server | grep init
/etc/rc.d/init.d/sshd

 

sshの再起動


 
例)

# /etc/rc.d/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

 

iptablesの設定確認


 
管理人の環境では、ネットワークのパケットフィルタリングは、”iptables”で行っていました。
iptablesがsshのパケットをどのように設定しているか確認します。
 
※iptablesコマンドで確認する事もできます。管理人は、直接設定ファイルを取り扱う方法に慣れているため、こちらの方法を紹介します。
 
例)

# more /etc/sysconfig/iptables
 
(SSHの部分のみ抜粋)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

SSHはポート番号22番を使用していますので、宛先ポートが22番ポートの新規接続の入力パケットはすべて許可する設定になっています。
 

自端末が使用しているグローバルIPアドレスの確認


 
管理人のVPSサーバーは、ssh接続するのは管理人自身のみですので、管理人の自室端末のネットワークの送信元アドレスのみ許可する設定に変更しました。
 
自端末のIPアドレスはプライベートアドレスのため(グローバルアドレスは、ネットワーク回線業者からレンタルしているルーターでアドレス変換されています。)サーバー上で、下記コマンドで確認しました。
 
例)

# netstat -an | grep 22

tcp        0     52 (サーバーのIP):22  (自端末のIP):1072    ESTABLISHED

 

iptablesの設定変更


 
上記のsshの設定に自端末のIPアドレスが属するネットワークを追加しました。(常に同じグローバルIPアドレスが割り当てられるか分からなかったため、IPアドレスではなくネットワーク単位に設定しました。)
 
※iptablesコマンドで確認する事もできます。管理人は、直接設定ファイルを取り扱う方法に慣れているため、こちらの方法を紹介します。
 
例)許可するIPアドレスが、192.168.1.1の場合

# vi /etc/sysconfig/iptables
 
(変更箇所)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

設定変更後、iptablesを再起動します。
 
例)

# /etc/rc.d/init.d/iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]
関連記事の目次
 
ネットワーク、ポート番号
  • iptablesを使ってCentOSのファイアウォール設定
  • nmapでオープンしているポート番号とバージョンを確認
  •  
    rpmパッケージ、サービス
  • CentOSで不要なサービスは起動しないようにする
  • RPMパッケージのインテグリティチェック
  •  
    パーミッション
  • CentOSのumaskの設定
  • cronで使用するファイルのパーミッション設定
  • ユーザーホームディレクトリ内の権限設定をセキュアにする
  • CentOSのパスワードファイルのパーミッション設定
  • findコマンドでファイル書込権限をいっせいにチェック
  • findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
  • findコマンドで所有者、グループが存在しないファイルを抽出
  •  
    ログイン、認証、パスワード、アカウント制御
  • ログイン時などに表示されるシステムバナーを変更するには?
  • CentOSのユーザーアカウントのパスワードポリシーを設定
  • pam_cracklibモジュールでパスワードポリシーを設定
  • pam_unix.soモジュールを使って過去のパスワード再使用を制限する
  • システムコンソールでのrootログインを制限する方法
  • suコマンドによるrootへのスイッチを制限する
  • root権限でのコマンド実行、sudoだと監査ログが取得できる
  • デーモン用アカウントなどに対しシェルを使用を無効にする
  • パスワード認証を失敗時にアカウントをロックアウトする設定
  • rootアカウントのPATH環境変数のセキュリティについて
  •  
    auditdでシステム監査
  • auditdを使ってシステム監査
  • auditdのログ容量の設定
  • auditd監査ルールの設定方法
  • auditdで時間設定変更操作を監査する
  • auditdでユーザー・グループ設定ファイル変更操作を監査する
  • auditdでネットワーク関連の設定変更を監査する
  • auditdでログイン記録のログファイルの変更を監査する
  • auditdでファイル所有者や権限の変更に関するイベントを監査する
  • auditdでsetuid、setgidプログラムの実行を監査する
  • auditdでマウント操作を監査する
  • auditdでファイル削除操作を監査する
  • auditdでsudo設定ファイルに対する操作を監査する
  • auditdでカーネルモジュールのロード、アンロードを監査する
  • マシン再起動後にauditdの設定変更を有効にする設定
  • ausearch、aureportで監査ログのサマリレポートを作成
  •  
    ツール
  • NTPのセキュリティを考慮した設定
  • セキュリティを考慮してX Windowsを設定または削除する方法
  • ファイルの改ざん対策用にTripwireを導入
  • CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
  •  
    トラブルシューティング
  • アイドルのシェルを自動で強制終了させるには?
  • CentOSでコアダンプを無効にする方法
  • Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
  • CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する

  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください