私はCentOS7に初めてアクセスし、現在SSHを通じてCentOS 7サーバーへの非常に制限されたユーザーアクセスを必要とするプロジェクトに取り組んでいます。したがって、IPtablesコマンドを使用して特定のユーザーにのみアクセスを提供します。
MAC アドレスを持つユーザへのアクセスを許可するために使用するコマンドは次のとおりです。
iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
次の出力に従って動作し、iptablesに追加されます。
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh MAC XX:XX:XX:XX:XX:XX
他の誰もがポート22にアクセスできないようにする2番目のルールを追加すると、Cent OS 7ボックスとの接続が失われました。
iptables -A INPUT -p tcp --destination-port 22 -j DROP
私が間違っている可能性があるアイデア
答え1
「間違った」点は、2番目のコマンドでiptablesに指示することです。宛先ポート 22 のすべての接続を削除します。これには明らかにボックスへの自己接続が含まれます。最初のルールで指定されたMACアドレスを使用してクライアントコンピュータから接続していますか?
この問題を解決するには、iptablesルールファイルを使用することをお勧めします。iptables-save
とコマンドを使用してくださいiptables-restore
。デフォルトでは、テキストファイル(iptables_rulesv4
)を生成してから、iptablesにこの規則に従って独自に復元するように指示します。これは2つの規則がある基本的な例です。
*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT ACCEPT
-A INPUT -p tcp --destination-port 22 -m mac --mac-source XX:XX:XX:XX:XX:XX -m comment --comment "Allow ssh connections from specific MAC address" -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "Maintain open connections" -j ACCEPT
COMMIT
1:*filter
- これは作業するiptablesテーブル、フィルタテーブルです。
2-4:このファイルはデフォルトの状態です。 INPUTとFORWARDはデフォルトで削除(DROP)され、OUTPUTはデフォルトで許可(ACCEPT)されます。
5:ルール1 - MACアドレスから始まるポートSSH接続を許可しますXX:XX:XX:XX:XX:XX
。
6:ルール2 - 確立された、または開いているすべての接続を許可します。
7:このルールをiptablesに送信します。
注:iptablesは、パケットが見つかった最初の一致ルールと一致するように機能します。一致するルールがない場合は、そのデフォルトルールが使用されます。
その後、コマンドを実行できます
sudo iptables-restore iptables_rulesv4
このルールをコンピュータに適用します。その後、ルールセットを見ることができます
sudo iptables -L -n -t filter
注:上記のルールセットをサーバーに盲目的に適用しないでください。これは例としてのみ提供されています。セキュリティ要件と組織のセキュリティ要件が何であるかを確認し、セキュリティ要件を満たす一連のルールを設計する必要があります。