ファイアウォールテクノロジーは、コンピューターがデータを保護するために内部ネットワークと外部ネットワークの間に比較的隔離された保護バリアを構築するのに役立ちます。 Elastic Compute Service (ECS) インスタンスのファイアウォールを有効にし、外部アクセスをブロックするようにファイアウォールルールを設定した場合、インスタンスに接続できない場合があります。 このトピックでは、Linux ECSインスタンスのシステムファイアウォールを有効または無効にする方法について説明します。
手順
ECSインスタンスのLinuxディストリビューションに適したコマンドを実行します。
予期しないリスクを防ぐために、管理ユーザーではなく、ecs-userまたは通常ユーザーとして操作を実行することをお勧めします。 通常ユーザーにsudo権限がない場合は、ユーザーに権限を付与します。 詳細については、「」をご参照ください。質問2: 通常のユーザーにsudo権限を付与するにはどうすればよいですか?
CentOS 7、CentOS Stream 8、Red Hat 7、Red Hat 8、Alibaba Cloud Linux 2、またはAlibaba Cloud Linux 3
システムファイアウォールのステータスを確認する
デフォルトでは、システムファイアウォールは無効になっています。 次のコマンドを実行して、システムファイアウォールのステータスを確認します。
sudo firewall-cmd --state
システムファイアウォールが無効になっている場合、コマンド出力に
not running
が表示されます。システムファイアウォールが有効になっている場合、コマンド出力に
running
が表示されます。システムファイアウォールがインストールされていない場合、コマンド出力に
-bash: firewall-cmd: command not found
というエラーメッセージが表示されます。 この場合、sudo yum install firewalld -y
コマンドを実行してシステムファイアウォールをインストールします。
システムファイアウォールの有効化
sudo systemctl start firewalld
次のコマンドを実行して、システム起動時にシステムファイアウォールを起動するように設定できます。
sudo systemctl enable firewalld
システムファイアウォールを無効にする
sudo systemctl stop firewalld
次のコマンドを実行して、システムの起動時に起動しないようにシステムファイアウォールを設定できます。
sudo systemctl disable firewalld
Ubuntu
システムファイアウォールのステータスを確認する
デフォルトでは、システムファイアウォールは無効になっています。 次のコマンドを実行して、システムファイアウォールのステータスを確認します。
sudo ufw status
システムファイアウォールが無効になっている場合、コマンド出力に
Status: inactive
が表示されます。ファイアウォールが有効になっている場合、コマンド出力に
Status: active
が表示されます。システムファイアウォールの有効化
次のコマンドを実行して、システムファイアウォールを有効にします。 Linuxインスタンスが再起動されると、システムファイアウォールは自動的に有効になります。
sudo ufw enable
システムファイアウォールを無効にする
次のコマンドを実行して、システムファイアウォールを無効にします。 Linuxインスタンスが再起動されると、システムファイアウォールは無効のままです。
sudo ufw disable
Debian
デフォルトでは、Debianにファイアウォールはインストールされていません。 ファイアウォールがDebianにインストールされている場合は、すべてのファイアウォールルールを削除してトラフィックのブロックを解除できます。 すべてのファイアウォールルールを削除する前に、ルールをバックアップします。 ファイアウォールルールのバックアップファイルからファイアウォールルールを復元できます。
ファイアウォールのルールを表示
sudo iptables -L
すべてのファイアウォールルールを削除してシステムファイアウォールを無効にする
すべてのファイアウォールルールを削除することで、システムファイアウォールを無効にできます。
[$Iptables]
変数を、ファイアウォールルールのバックアップファイルを格納する実際のディレクトリに置き換えます。次のコマンドを実行して、バックアップファイルを作成します。
sudo touch [$Iptables]
次のコマンドを実行して、ファイアウォールルールをバックアップします。
sudo sh -c "iptables-save > [$Iptables]"
次のコマンドを実行して、すべてのファイアウォールルールを削除します。
sudo iptables -F
バックアップファイルからファイアウォールルールを復元してシステムファイアウォールを有効にする
ファイアウォールルールを復元するか、ファイアウォールルールを追加することで、システムファイアウォールを有効にできます。
[$Iptables]
変数を、ファイアウォールルールのバックアップファイルが格納されている実際のディレクトリに置き換えます。sudo iptables-restore < [$Iptables]
よくある質問
通常のユーザーにsudo権限を付与するにはどうすればよいですか?
root
ユーザーとしてLinuxインスタンスに接続します。詳細については、「Workbenchを使用したSSH経由のLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、
test
という名前の通常のユーザーを作成し、パスワードを設定します。useradd test passwd test
次のコマンドを実行して、
/etc/sudoers
ファイルに権限を付与します。chmod 750 /etc/sudoers
次のコマンドを実行して、
/etc/sudoers
ファイルを編集します。vim /etc/sudoers
I
キーを押してInsertモードに入り、次の設定を追加します。test ALL=(ALL) NOPASSWD: ALL
Esc
キーを押して :wqと入力し、Enter
キーを押してファイルを保存して閉じます。次のコマンドを実行して、
test
ユーザーに切り替えます。su - test
次のコマンドを実行して、
sudo
権限を確認します。sudo cat /etc/shadow
ファイルのコンテンツが表示されている場合、
sudo
権限は正常に付与されています。
root
ユーザーとしてLinuxインスタンスに接続します。詳細については、「Workbenchを使用したSSH経由のLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、
test
という名前の通常のユーザーを作成し、パスワードを割り当てます。sudo adduser test
次のコマンドを実行して、ユーザーに
sudo
権限を付与します。sudo usermod -aG sudo test
次のコマンドを実行して、テストユーザーに切り替えます。
sudo su - test
次のコマンドを実行して、
sudo
権限を確認します。sudo cat /etc/shadow
ファイルのコンテンツが表示されている場合、
sudo
権限は正常に付与されています。
ファイアウォールを無効にした後にインスタンスにアクセスできません
ファイアウォールを無効にしても、インスタンスに接続できなくなります。他の潜在的な問題を調査してみてください。 詳細については、を参照してください。Linuxインスタンスに接続できない場合はどうすればよいですか?