前書き
新しいFedora 21またはRHELサーバーに最初にログインしたとき、本番システムとして使用する準備ができていません。 ファイアウォールを有効にするなど、カスタマイズして保護するために推奨される手順がいくつかあります。
このチュートリアルでは、Fedora 21サーバーの新規インストールでより良いセキュリティプロファイルを提供し、使用する準備をする方法を示します。
前提条件
このチュートリアルを実行するには、次のものが必要です。
-
ルートSSHキーを持つFedora 21ドロップレット。
手順1-標準ユーザーアカウントの作成
まず、* root *としてサーバーにログインします。
ssh root@
rootとして動作することはセキュリティリスクであるため、この手順では、システムおよびその他のコンピューティングタスクに使用するsudo非rootユーザーアカウントを設定します。 このチュートリアルで使用するユーザー名は* sammy *ですが、好きな名前を使用できます。
ユーザーを追加するには、次を入力します。
adduser
以下のコマンドを使用して、ユーザーの強力なパスワードを指定します。 パスワードを2回入力するよう求められます。
passwd
次に、ユーザーをwheelグループに追加し、sudo特権を付与します。
gpasswd -a wheel
サーバーからログアウトし、ローカルマシンで次のコマンドを実行して、新しいユーザーアカウントにSSHキーを追加します。
ssh-copy-id @
ローカルマシンからサーバーにSSHキーをコピーする方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-onを読むことができます-a-linux-server#how-to-copy-a-public-key-to-your-server [このセクション] SSHチュートリアルの。
最後に、新しいsudo非rootユーザーとして再度ログインします。 このアカウントにはSSHキーがあるため、パスワードの入力は求められません。
ssh @
手順2-ルートログインとパスワード認証の禁止
この手順では、ルートログインとパスワード認証を無効にすることで、SSHログインをより安全にします。
設定ファイルを編集するには、テキストエディターをインストールする必要があります。 「+ nano +」を使用しますが、好きな方を使用できます。
まず、以下を使用して利用可能な更新を適用します。
sudo yum update
次に、 `+ nano +`をインストールするには、次のように入力します。
sudo yum install -y nano
次に、SSHデーモンの構成ファイルを編集用に開きます。
sudo nano /etc/ssh/sshd_config
そのファイル内で、 `+ PermitRootLogin `ディレクティブを探します。 コメントを外し(つまり、開始 `#+`文字を削除する)、* no *に設定します。
PermitRootLogin no
同様に、 `+ PasswordAuthentication +`ディレクティブを探し、同様に* no *に設定します。
PasswordAuthentication no
ファイルを保存して終了し、構成を再読み込みして変更を有効にします。
sudo systemctl reload sshd
誰かが* root *としてログインしようとすると、応答は `+ Permission denied(publickey、gssapi-keyex、gssapi-with-mic)+`になります。
[[step-3---configuring-the-time-zone]] === ステップ3-タイムゾーンの設定
この手順では、システムクロックをローカルタイムゾーンに変更する方法について説明します。 デフォルトのクロックはUTCに設定されています。
すべての既知のタイムゾーンは `+ / usr / share / zoneinfo / `ディレクトリの下にあります。 ` / usr / share / zoneinfo / +`のファイルとディレクトリを見てください。
ls /usr/share/zoneinfo/
ローカルタイムゾーンを使用するようにクロックを設定するには、そのディレクトリで国または地理的領域を見つけ、その下のゾーンファイルを見つけ、そこから `+ / etc / localtime `ディレクトリへのシンボリックソフトリンクを作成します。 たとえば、タイムゾーンが* Central *または* CST *である米国の中央部にいる場合、ゾーンファイルは ` / usr / share / zoneinfo / US / Central +`になります。
ゾーンファイルから `+ / etc / localtime +`へのシンボリックソフトリンクを作成します。
sudo ln -sf /usr/share/zoneinfo/ /etc/localtime
`+ date +`コマンドの出力を表示して、時計が現地時間に設定されていることを確認します。
date
出力は次のようになります。
Wed Mar 25 14:41:20 CST 2015
その出力の* CST *は、中央時間であることを確認します。
ステップ4-ファイアウォールを有効にする
新しいFedora 21サーバーにはアクティブなファイアウォールアプリケーションがありません。 この手順では、IPTablesファイアウォールアプリケーションを有効にし、再起動後も実行時ルールが維持されるようにする方法を学習します。
IPTablesパッケージは既にインストールされていますが、有効にするには、 `+ iptables-services +`パッケージをインストールする必要があります。
sudo yum install -y iptables-services
その後、起動時に自動的に開始されるようにIPTablesを有効にすることができます。
sudo systemctl enable iptables
次に、IPTablesを起動します。
sudo systemctl start iptables
Fedora 21のIPTablesには、デフォルトのルールセットが付属しています。 これらのルールの1つはSSHトラフィックを許可します。 デフォルトのルールを表示するには、次を入力します。
sudo iptables -L
出力は次のようになります。
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
これらのルールはランタイムルールであり、システムを再起動すると失われます。 現在のランタイムルールをファイルに保存して、再起動後も保持するには、次のように入力します。
sudo /usr/libexec/iptables/iptables.init save
これで、ルールは `+ / etc / sysconfig `ディレクトリの ` iptables +`というファイルに保存されます。
ステップ5(オプション)-HTTPおよびHTTPSトラフィックを許可する
このセクションでは、ファイアウォールルールを編集してポート80(HTTP)および443(HTTPS)のサービスを許可する方法について説明します。
デフォルトのIPTablesルールはデフォルトでSSHトラフィックを許可しますが、HTTPとその比較的安全な従兄弟であるHTTPSは多くのアプリケーションが使用するサービスであるため、ファイアウォールを通過させることもできます。
続行するには、次を入力してファイアウォールルールファイルを開きます。
sudo nano /etc/sysconfig/iptables
必要なのは、SSH(ポート22)トラフィックのルールの後に、ポート80用とポート443用の2つのルールを追加することだけです。 以下の赤の行は、追加する行です。新しいルールを追加する場所を見つけるのに役立つコンテキストの前後の行が含まれています。
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
新しいルールセットをアクティブにするには、IPTablesを再起動します。
sudo systemctl restart iptables
ステップ6(オプション)-Mlocateのインストール
`+ locate +`コマンドは、システム内のファイルの場所を検索するための非常に便利なユーティリティです。 たとえば、* example *というファイルを見つけるには、次のように入力します。
locate example
これにより、ファイルシステムがスキャンされ、ファイルの場所が画面に印刷されます。 `+ locate +`を使用するより高度な方法もあります。
サーバーでコマンドを使用できるようにするには、最初に `+ mlocate +`パッケージをインストールする必要があります。
sudo yum install -y mlocate
次に、 `+ updatedb +`コマンドを実行して検索データベースを更新します。
sudo updatedb
その後、 `+ locate +`を使用して名前でファイルを検索できるようになります。
結論
最後の手順を完了したら、Fedora 21サーバーを設定し、適度に安全で、使用する準備ができているはずです!