firewall-cmdコマンド チートシート

cheatsheet

firewalld を操作するためのコマンドリファレンス

🛡️ ゾーン管理

ネットワークインターフェースや接続元をグループ化するゾーンの設定。

現在の設定確認

目的 コマンド 説明
デフォルトゾーンを確認
firewall-cmd --get-default-zone
システム全体のデフォルトゾーン名を表示します。
利用可能な全ゾーンを一覧表示
firewall-cmd --get-zones
定義済みのすべてのゾーン名を表示します。
アクティブなゾーンと関連インターフェースを確認
firewall-cmd --get-active-zones
現在使用中のゾーンと、それに割り当てられているネットワークインターフェースを表示します。
特定のゾーンの設定をすべて表示 (例: public)
firewall-cmd --zone=public --list-all
指定したゾーン (public) の詳細設定(インターフェース、サービス、ポート、ルールなど)を表示します。
すべてのゾーンの永続的な設定をすべて表示
firewall-cmd --permanent --list-all-zones
全ゾーンの永続的な設定情報をまとめて表示します。設定変更後に確認する際に便利です。
特定のインターフェースが属するゾーンを確認 (例: eth0)
firewall-cmd --get-zone-of-interface=eth0
指定したインターフェース (eth0) が現在どのゾーンに属しているかを表示します。

ゾーンの設定変更

目的 コマンド 説明
デフォルトゾーンを変更 (例: internal)
firewall-cmd --set-default-zone=internal
デフォルトゾーンを指定したゾーン (internal) に変更します。この変更は恒久的な設定に即座に反映されます。
インターフェースをゾーンに追加 (例: eth0 を internal ゾーンへ、一時的)
firewall-cmd --zone=internal --add-interface=eth0
指定したインターフェース (eth0) を指定ゾーン (internal) に一時的に追加します。リロードまたは再起動で元に戻ります。
インターフェースをゾーンに追加 (例: eth0 を internal ゾーンへ、恒久的)
firewall-cmd --zone=internal --add-interface=eth0 --permanent
指定したインターフェース (eth0) を指定ゾーン (internal) に恒久的に追加します。--reload が必要です。
インターフェースが属するゾーンを変更 (例: eth0 を work ゾーンへ、一時的)
firewall-cmd --zone=work --change-interface=eth0
指定したインターフェース (eth0) が属するゾーンを指定ゾーン (work) に一時的に変更します。
インターフェースが属するゾーンを変更 (例: eth0 を work ゾーンへ、恒久的)
firewall-cmd --zone=work --change-interface=eth0 --permanent
指定したインターフェース (eth0) が属するゾーンを指定ゾーン (work) に恒久的に変更します。--reload が必要です。
インターフェースをゾーンから削除 (例: eth0 を internal ゾーンから、一時的)
firewall-cmd --zone=internal --remove-interface=eth0
指定したインターフェース (eth0) を指定ゾーン (internal) から一時的に削除します。削除後、インターフェースはデフォルトゾーンに割り当てられます。
インターフェースをゾーンから削除 (例: eth0 を internal ゾーンから、恒久的)
firewall-cmd --zone=internal --remove-interface=eth0 --permanent
指定したインターフェース (eth0) を指定ゾーン (internal) から恒久的に削除します。--reload が必要です。

カスタムゾーンの管理

目的 コマンド 説明
新しいゾーンを作成 (例: myzone、恒久的)
firewall-cmd --permanent --new-zone=myzone
新しいゾーン (myzone) を恒久設定に追加します。--reload が必要です。
ゾーンを削除 (例: myzone、恒久的)
firewall-cmd --permanent --delete-zone=myzone
指定したゾーン (myzone) を恒久設定から削除します。使用中のゾーンは削除できません。--reload が必要です。
ゾーンの説明を設定 (例: myzone、恒久的)
firewall-cmd --permanent --zone=myzone --set-description="My custom zone"
指定ゾーンに説明文を設定します。--reload が必要です。
ゾーンの短い名前を設定 (例: myzone、恒久的)
firewall-cmd --permanent --zone=myzone --set-short="My Zone"
指定ゾーンに短い名前(表示名)を設定します。--reload が必要です。

⚙️ サービス管理

事前定義されたプロトコルとポートの組み合わせ(サービス)を管理。

利用可能なサービスと設定確認

目的 コマンド 説明
利用可能な全サービスを一覧表示
firewall-cmd --get-services
firewalld が認識している定義済みのサービス名をすべて表示します。
デフォルトで許可されているサービス一覧
firewall-cmd --list-services
デフォルトゾーンで現在許可されているサービスを表示します (一時設定)。
特定のゾーンで許可されているサービス一覧 (例: public、一時的)
firewall-cmd --zone=public --list-services
指定したゾーン (public) で現在許可されているサービスを表示します (一時設定)。
特定のゾーンで許可されているサービス一覧 (例: public、恒久的)
firewall-cmd --zone=public --list-services --permanent
指定したゾーン (public) で恒久的に許可されているサービスを表示します。
特定のサービスの詳細定義を確認 (例: http)
firewall-cmd --info-service=http
指定したサービス (http) の定義内容(ポート、プロトコル、モジュールなど)を表示します。

サービスの追加と削除

--permanent オプションなしの変更は一時的であり、firewalld のリロードやシステムの再起動で失われます。恒久的に設定を適用するには --permanent を付け、最後に firewall-cmd --reload を実行します。
目的 コマンド 説明
ゾーンにサービスを追加 (例: http を public ゾーンへ、一時的)
firewall-cmd --zone=public --add-service=http
指定ゾーン (public) に指定サービス (http) を一時的に許可します。
ゾーンにサービスを追加 (例: http を public ゾーンへ、恒久的) ✅
firewall-cmd --zone=public --add-service=http --permanent
指定ゾーン (public) に指定サービス (http) を恒久的に許可します。反映にはリロードが必要です。
ゾーンにサービスを時間制限付きで追加 (例: ftp を public ゾーンへ 5分間) ⏱️
firewall-cmd --zone=public --add-service=ftp --timeout=5m
指定ゾーン (public) に指定サービス (ftp) を5分間だけ一時的に許可します。
ゾーンからサービスを削除 (例: http を public ゾーンから、一時的)
firewall-cmd --zone=public --remove-service=http
指定ゾーン (public) から指定サービス (http) の許可を一時的に削除します。
ゾーンからサービスを削除 (例: http を public ゾーンから、恒久的) ❌
firewall-cmd --zone=public --remove-service=http --permanent
指定ゾーン (public) から指定サービス (http) の許可を恒久的に削除します。反映にはリロードが必要です。

カスタムサービスの管理

目的 コマンド 説明
新しいサービス定義を追加 (例: myservice、恒久的)
firewall-cmd --permanent --new-service=myservice
新しいカスタムサービス (myservice) の定義ファイルを作成します。/etc/firewalld/services/ 配下に作成されます。
サービスに説明を追加 (例: myservice、恒久的)
firewall-cmd --permanent --service=myservice --set-description="My Custom Service"
カスタムサービスに説明を追加します。
サービスに短い名前を追加 (例: myservice、恒久的)
firewall-cmd --permanent --service=myservice --set-short="MyService"
カスタムサービスに短い名前(表示名)を追加します。
サービスにポートを追加 (例: 1234/tcp を myservice へ、恒久的)
firewall-cmd --permanent --service=myservice --add-port=1234/tcp
カスタムサービス (myservice) にポートとプロトコル (1234/tcp) を追加します。
サービスからポートを削除 (例: 1234/tcp を myservice から、恒久的)
firewall-cmd --permanent --service=myservice --remove-port=1234/tcp
カスタムサービス (myservice) から指定したポートとプロトコルを削除します。
サービスにプロトコルを追加 (例: vrrp を myservice へ、恒久的)
firewall-cmd --permanent --service=myservice --add-protocol=vrrp
カスタムサービス (myservice) に指定したプロトコルを追加します。
サービス定義を削除 (例: myservice、恒久的)
firewall-cmd --permanent --delete-service=myservice
カスタムサービス (myservice) の定義ファイルを削除します。反映にはリロードが必要です。

🔌 ポート管理

特定のポート番号とプロトコル(TCP/UDP)の通信を制御。

ポートの開放と閉鎖

目的 コマンド 説明
ゾーンで許可されているポート一覧 (例: public、一時的)
firewall-cmd --zone=public --list-ports
指定ゾーン (public) で現在許可されているポート(番号/プロトコル)を表示します。
ゾーンで許可されているポート一覧 (例: public、恒久的)
firewall-cmd --zone=public --list-ports --permanent
指定ゾーン (public) で恒久的に許可されているポートを表示します。
ゾーンにポートを追加 (例: 8080/tcp を public へ、一時的)
firewall-cmd --zone=public --add-port=8080/tcp
指定ゾーン (public) で指定ポート (8080/tcp) を一時的に許可します。
ゾーンにポートを追加 (例: 8080/tcp を public へ、恒久的) ✅
firewall-cmd --zone=public --add-port=8080/tcp --permanent
指定ゾーン (public) で指定ポート (8080/tcp) を恒久的に許可します。反映にはリロードが必要です。
ゾーンにポート範囲を追加 (例: 5000-5010/udp を internal へ、一時的)
firewall-cmd --zone=internal --add-port=5000-5010/udp
指定ゾーン (internal) で指定ポート範囲 (5000-5010/udp) を一時的に許可します。
ゾーンからポートを削除 (例: 8080/tcp を public から、一時的)
firewall-cmd --zone=public --remove-port=8080/tcp
指定ゾーン (public) から指定ポート (8080/tcp) の許可を一時的に削除します。
ゾーンからポートを削除 (例: 8080/tcp を public から、恒久的) ❌
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
指定ゾーン (public) から指定ポート (8080/tcp) の許可を恒久的に削除します。反映にはリロードが必要です。
特定のポートが許可されているか確認 (例: 22/tcp を public で)
firewall-cmd --zone=public --query-port=22/tcp
指定ゾーン (public) で指定ポート (22/tcp) が許可されていれば “yes”、されていなければ “no” を返します。

ポートフォワーディングとマスカレード

ℹ️ 情報

ポートフォワーディングやマスカレードは、主にルーターやゲートウェイとして機能するシステムで利用されます。設定前にカーネルのIPフォワーディングが有効になっているか確認してください (`sysctl net.ipv4.ip_forward`)。
目的 コマンド 説明
マスカレードを有効化 (例: external ゾーンで、一時的)
firewall-cmd --zone=external --add-masquerade
指定ゾーン (external) でIPマスカレード(SNATの一種)を一時的に有効にします。
マスカレードを有効化 (例: external ゾーンで、恒久的) ✅
firewall-cmd --zone=external --add-masquerade --permanent
指定ゾーン (external) でIPマスカレードを恒久的に有効にします。反映にはリロードが必要です。
マスカレードを無効化 (例: external ゾーンで、一時的)
firewall-cmd --zone=external --remove-masquerade
指定ゾーン (external) でIPマスカレードを一時的に無効にします。
マスカレードを無効化 (例: external ゾーンで、恒久的) ❌
firewall-cmd --zone=external --remove-masquerade --permanent
指定ゾーン (external) でIPマスカレードを恒久的に無効にします。反映にはリロードが必要です。
マスカレードが有効か確認 (例: external ゾーンで)
firewall-cmd --zone=external --query-masquerade
指定ゾーン (external) でマスカレードが有効なら “yes”、無効なら “no” を返します。
ポートフォワーディングを追加 (例: public ゾーンの 80/tcp を 192.168.1.100 の 8080/tcp へ転送、一時的)
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100
指定ゾーン (public) にポートフォワーディングルールを一時的に追加します。
ポートフォワーディングを追加 (例: public ゾーンの 80/tcp を 192.168.1.100 の 8080/tcp へ転送、恒久的) ✅
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100 --permanent
指定ゾーン (public) にポートフォワーディングルールを恒久的に追加します。反映にはリロードが必要です。
ポートフォワーディングを削除 (例: public ゾーンの 80/tcp 転送ルール、一時的)
firewall-cmd --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100
指定ゾーン (public) からポートフォワーディングルールを一時的に削除します。
ポートフォワーディングを削除 (例: public ゾーンの 80/tcp 転送ルール、恒久的) ❌
firewall-cmd --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100 --permanent
指定ゾーン (public) からポートフォワーディングルールを恒久的に削除します。反映にはリロードが必要です。
ポートフォワーディングルール一覧表示 (例: public ゾーン、一時的)
firewall-cmd --zone=public --list-forward-ports
指定ゾーン (public) の一時的なポートフォワーディングルールを表示します。
ポートフォワーディングルール一覧表示 (例: public ゾーン、恒久的)
firewall-cmd --zone=public --list-forward-ports --permanent
指定ゾーン (public) の恒久的なポートフォワーディングルールを表示します。

🚦 リッチルール (Rich Rules)

より複雑で詳細な条件に基づいたアクセス制御ルール。

⚠️ 注意

リッチルールは強力ですが、構文が複雑です。記述ミスがないか、設定後は意図通りに動作するかを十分に確認してください。ルールは記述された順序で評価されます。

リッチルールの追加と削除

目的 コマンド 説明
ゾーンのリッチルール一覧表示 (例: public、一時的)
firewall-cmd --zone=public --list-rich-rules
指定ゾーン (public) の一時的なリッチルールを表示します。
ゾーンのリッチルール一覧表示 (例: public、恒久的)
firewall-cmd --zone=public --list-rich-rules --permanent
指定ゾーン (public) の恒久的なリッチルールを表示します。
リッチルールを追加 (例: 192.168.1.0/24 からの SSH 接続を許可、public ゾーン、一時的)
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
指定した送信元 IP アドレス範囲からの SSH サービスへのアクセスを一時的に許可します。
リッチルールを追加 (例: 192.168.1.0/24 からの SSH 接続を許可、public ゾーン、恒久的) ✅
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
指定した送信元 IP アドレス範囲からの SSH サービスへのアクセスを恒久的に許可します。反映にはリロードが必要です。
リッチルールを追加 (例: 10.0.0.1 からのすべての接続を拒否、public ゾーン、一時的)
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.1" reject'
指定した IP アドレスからのすべての接続を一時的に拒否 (reject) します。`drop` も指定可能です。
リッチルールを追加 (例: 内部ネットワーク 192.168.0.0/16 からの 8080/tcp へのアクセスを許可、internal ゾーン、恒久的)
firewall-cmd --zone=internal --add-rich-rule='rule family="ipv4" source address="192.168.0.0/16" port port="8080" protocol="tcp" accept' --permanent
指定した送信元 IP アドレス範囲から指定ポートへのアクセスを恒久的に許可します。
リッチルールを削除 (例: 192.168.1.0/24 からの SSH 接続許可ルール、public ゾーン、一時的)
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
指定したリッチルールを一時的に削除します。ルールは完全一致する必要があります。
リッチルールを削除 (例: 192.168.1.0/24 からの SSH 接続許可ルール、public ゾーン、恒久的) ❌
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
指定したリッチルールを恒久的に削除します。反映にはリロードが必要です。
特定のリッチルールが存在するか確認 (例: public ゾーン)
firewall-cmd --zone=public --query-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
指定したリッチルールが存在すれば “yes”、存在しなければ “no” を返します。
リッチルールでログを記録 (例: 10.0.0.0/8 からの接続試行をログ記録し拒否、public ゾーン、恒久的) 📜
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" log prefix="DENIED: " level="warning" limit value="1/m" reject' --permanent
特定のアクセス試行をログに記録 (syslog/journald) し、拒否します。プレフィックス、ログレベル、レート制限 (1分間に1回) を指定しています。
リッチルールでレート制限 (例: SSH 接続を1分間に5回までに制限、public ゾーン、恒久的)
firewall-cmd --zone=public --add-rich-rule='rule service name="ssh" accept limit value="5/m"' --permanent
SSH サービスへの接続を1分間に5回までに制限します。超過分は破棄されます。

iptables/ip6tables/ebtables の構文を直接使用するルール。高度な設定や特定のシナリオ向け。

ダイレクトルールの追加と削除

目的 コマンド 説明
すべてのダイレクトルールを表示 (一時的)
firewall-cmd --direct --get-all-rules
現在アクティブな(一時的な)すべてのダイレクトルールを表示します。
すべてのダイレクトルールを表示 (恒久的)
firewall-cmd --permanent --direct --get-all-rules
恒久的に設定されているすべてのダイレクトルールを表示します。
ダイレクトルールを追加 (例: INPUT チェーンの先頭にルールを追加、一時的)
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 1.2.3.4 -j DROP
iptables コマンド `iptables -I INPUT -s 1.2.3.4 -j DROP` に相当するルールを一時的に追加します。優先度 (0) を指定しています。
ダイレクトルールを追加 (例: INPUT チェーンの先頭にルールを追加、恒久的) ✅
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -s 1.2.3.4 -j DROP
iptables コマンド相当のルールを恒久的に追加します。反映にはリロードが必要です。
特定のチェインのダイレクトルールを表示 (例: ipv4 filter INPUT、一時的)
firewall-cmd --direct --get-rules ipv4 filter INPUT
指定したテーブルとチェインに属する一時的なダイレクトルールを表示します。
特定のチェインのダイレクトルールを表示 (例: ipv4 filter INPUT、恒久的)
firewall-cmd --permanent --direct --get-rules ipv4 filter INPUT
指定したテーブルとチェインに属する恒久的なダイレクトルールを表示します。
ダイレクトルールを削除 (例: INPUT チェーンのルールを削除、一時的)
firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 1.2.3.4 -j DROP
追加時と完全に同じ引数を指定して、一時的なダイレクトルールを削除します。
ダイレクトルールを削除 (例: INPUT チェーンのルールを削除、恒久的) ❌
firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 0 -s 1.2.3.4 -j DROP
追加時と完全に同じ引数を指定して、恒久的なダイレクトルールを削除します。反映にはリロードが必要です。
特定のダイレクトルールが存在するか確認
firewall-cmd --direct --query-rule ipv4 filter INPUT 0 -s 1.2.3.4 -j DROP
指定したダイレクトルールが存在すれば “yes”、存在しなければ “no” を返します (一時設定に対して)。
恒久的なダイレクトパススルーを有効化
firewall-cmd --permanent --direct --add-passthrough ipv4 -I FORWARD -j ACCEPT
特定の iptables コマンド列を firewalld に直接渡します。高度な使い方です。

🚫 ICMPブロック

特定の ICMP (Internet Control Message Protocol) メッセージタイプをブロックする設定。

ICMP タイプの確認とブロック設定

目的 コマンド 説明
利用可能な ICMP タイプを一覧表示
firewall-cmd --get-icmptypes
firewalld が認識している ICMP メッセージタイプの一覧を表示します。
ゾーンでブロックされている ICMP タイプ一覧 (例: public、一時的)
firewall-cmd --zone=public --list-icmp-blocks
指定ゾーン (public) で現在ブロックされている ICMP タイプを表示します。
ゾーンでブロックされている ICMP タイプ一覧 (例: public、恒久的)
firewall-cmd --zone=public --list-icmp-blocks --permanent
指定ゾーン (public) で恒久的にブロックされている ICMP タイプを表示します。
ICMP タイプをブロック (例: echo-request を public ゾーンで、一時的)
firewall-cmd --zone=public --add-icmp-block=echo-request
指定ゾーン (public) で指定した ICMP タイプ (ping応答要求) を一時的にブロックします。
ICMP タイプをブロック (例: echo-request を public ゾーンで、恒久的) ✅
firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
指定ゾーン (public) で指定した ICMP タイプを恒久的にブロックします。反映にはリロードが必要です。
ICMP タイプのブロックを解除 (例: echo-request を public ゾーンで、一時的)
firewall-cmd --zone=public --remove-icmp-block=echo-request
指定ゾーン (public) で指定した ICMP タイプのブロックを一時的に解除します。
ICMP タイプのブロックを解除 (例: echo-request を public ゾーンで、恒久的) ❌
firewall-cmd --zone=public --remove-icmp-block=echo-request --permanent
指定ゾーン (public) で指定した ICMP タイプのブロックを恒久的に解除します。反映にはリロードが必要です。
特定の ICMP タイプがブロックされているか確認 (例: echo-request を public で)
firewall-cmd --zone=public --query-icmp-block=echo-request
指定ゾーン (public) で指定した ICMP タイプがブロックされていれば “yes”、されていなければ “no” を返します。
すべての ICMP タイプをブロック (IPv4) ⚠️
firewall-cmd --add-icmp-block-inversion
一部の必須タイプを除き、ほぼ全てのICMPv4メッセージをブロックします。注意して使用してください (一時的)。恒久化は `–permanent` を追加。
すべての ICMP タイプをブロック (IPv6) ⚠️
firewall-cmd --add-icmp-block-inversion --ipv6
一部の必須タイプを除き、ほぼ全てのICMPv6メッセージをブロックします。注意して使用してください (一時的)。恒久化は `–permanent` を追加。

🔄 設定の反映と緊急停止

設定変更の適用、永続化、および緊急時の対応。

目的 コマンド 説明
firewalld の設定をリロード
firewall-cmd --reload
恒久設定 (--permanent で変更したもの) を読み込み、現在の実行中の設定 (ランタイム設定) に適用します。既存の接続は通常維持されます。
firewalld を完全に再起動 (非推奨)
firewall-cmd --complete-reload
firewalld デーモン自体を再起動します。これにより、既存の接続が切断される可能性があります。通常は --reload で十分です。
現在のランタイム設定を恒久設定に上書き保存
firewall-cmd --runtime-to-permanent
一時的な設定 (--permanent なしで変更したもの) を恒久設定ファイルに書き込みます。恒久設定ファイルは上書きされます。
パニックモードを有効化 緊急
firewall-cmd --panic-on
すべての着信および発信トラフィックを即座にブロックします。緊急時に使用します。
パニックモードを無効化
firewall-cmd --panic-off
パニックモードを解除し、通常のファイアウォールルールに戻します。
パニックモードの状態を確認
firewall-cmd --query-panic
パニックモードが有効なら “on”、無効なら “off” を返します。

ℹ️ 状態確認

firewalld デーモンの動作状態や設定ファイルの場所など。

目的 コマンド 説明
firewalld デーモンの状態を確認
firewall-cmd --state
firewalld が実行中であれば “running” を返します。
デフォルトの設定ファイルパスを確認
firewall-cmd --path-config
デフォルトの設定ファイル (`firewalld.conf`) のパスを表示します。通常は `/etc/firewalld/firewalld.conf` です。
ゾーン設定ファイルのパスを確認 (例: public)
firewall-cmd --path-zone=public
指定したゾーンの設定ファイル (`*.xml`) のパスを表示します。恒久設定は `/etc/firewalld/zones/`、デフォルトは `/usr/lib/firewalld/zones/` にあります。
サービス設定ファイルのパスを確認 (例: http)
firewall-cmd --path-service=http
指定したサービスの設定ファイル (`*.xml`) のパスを表示します。恒久設定は `/etc/firewalld/services/`、デフォルトは `/usr/lib/firewalld/services/` にあります。
ICMPタイプ設定ファイルのパスを確認 (例: echo-reply)
firewall-cmd --path-icmptype=echo-reply
指定したICMPタイプの設定ファイル (`*.xml`) のパスを表示します。通常は `/usr/lib/firewalld/icmptypes/` にあります。

コメント

タイトルとURLをコピーしました