Fedora22サーバーの初期セットアップ
序章
新しいFedora22に初めてログインしたときは、実動システムとして使用する準備ができていません。 ファイアウォールを有効にするなど、カスタマイズして保護するために実行する必要のある推奨手順がいくつかあります。
このチュートリアルでは、Fedora 22サーバーの新規インストールにより、より優れたセキュリティプロファイルを提供し、使用できるようにする方法を示します。
前提条件
このチュートリアルに従うには、次のものが必要です。
- ルートSSHキーを備えたFedora22ドロップレット。
SSHキーチュートリアルのこのセクションに従って、キーがない場合はキーを作成できます。同じチュートリアルのこのセクションに従って、SSHキーをサーバーのルートに自動的に埋め込むことができます。ドロップレットを作成するときにアカウントを作成します。
ステップ1—標準ユーザーアカウントを作成する
まず、rootとしてサーバーにログインします。
ssh root@your_server_ip
rootとして操作することはセキュリティリスクであるため、このステップでは、システムおよびその他のコンピューティングタスクに使用するsudo非rootユーザーアカウントを設定します。 このチュートリアルで使用されるユーザー名はsammyですが、任意の名前を使用できます。
ユーザーを追加するには、次のように入力します。
adduser sammy
以下のコマンドを使用して、ユーザーの強力なパスワードを指定します。 パスワードを2回入力するように求められます。
passwd sammy
次に、ユーザーをwheelグループに追加します。これにより、sudo権限が付与されます。
gpasswd -a sammy wheel
サーバーからログアウトし、ローカルマシンで次のコマンドを実行して、SSHキーを新しいユーザーアカウントに追加します。
ssh-copy-id sammy@your_server_ip
SSHキーをローカルマシンからサーバーにコピーする方法の詳細については、SSHチュートリアルのこのセクションを参照してください。
最後に、新しいsudonon-rootユーザーとして再度ログインします。 このアカウントにはSSHキーが含まれているため、パスワードの入力を求められることはありません。
ssh sammy@your_server_ip
ステップ2—ルートログインとパスワード認証を禁止する
このステップでは、ルートログインとパスワード認証を無効にすることでSSHログインをより安全にします。
構成ファイルを編集するには、テキストエディタをインストールする必要があります。 使用します nano
しかし、あなたはあなたの好きなものを使うことができます。
まず、以下を使用して利用可能な更新を適用します。
sudo dnf update
次に、インストールします nano
、 タイプ:
sudo dnf 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)
.
ステップ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/your_zone_file /etc/localtime
の出力を表示して、時計が現地時間に設定されていることを確認します。 date
指図。
date
出力は次のようになります。
Wed Mar 25 14:41:20 CST 2015
その出力のCSTは、中部標準時であることを確認します。
ステップ4—ファイアウォールを有効にする
新しいFedora22サーバーには、アクティブなファイアウォールアプリケーションがありません。 このステップでは、IPTablesファイアウォールアプリケーションを有効にする方法と、再起動後もランタイムルールが持続することを確認する方法を学習します。
IPTablesパッケージはすでにインストールされていますが、有効にするには、IPTablesパッケージをインストールする必要があります。 iptables-services
パッケージ。
sudo dnf install -y iptables-services
次に、IPTablesを有効にして、起動時に自動的に起動するようにします。
sudo systemctl enable iptables
次に、IPTablesを起動します。
sudo systemctl start iptables
Fedora 22の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
ルールは、というファイルに保存されます。 iptables
の中に /etc/sysconfig
ディレクトリ。
ステップ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 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
新しいルールセットをアクティブ化するには、IPTablesを再起動します。
sudo systemctl restart iptables
ステップ6(オプション)-Mlocateのインストール
The locate
コマンドは、システム内のファイルの場所を検索するための非常に便利なユーティリティです。 たとえば、 example というファイルを見つけるには、次のように入力します。
locate example
これにより、ファイルシステムがスキャンされ、画面上の1つまたは複数のファイルの場所が印刷されます。 より高度な使用方法があります locate
、 それも。
サーバーでコマンドを使用できるようにするには、最初に mlocate
パッケージ。
sudo dnf install -y mlocate
次に、を実行します updatedb
検索データベースを更新するコマンド。
sudo updatedb
その後、あなたは使用できるはずです locate
名前でファイルを検索します。
結論
最後のステップを完了すると、Fedora 22サーバーが構成され、適度に安全になり、使用できるようになります。