web-dev-qa-db-ja.com

一部を除くすべてのポートをブロックするにはどうすればよいですか?

iptablesを使おうとしていますが、ドキュメントを理解するのに無知なので、実装しようとしているときにサーバーから2回ロックアウトされています。

これらは私が実装したい単純なルールです:

  • ポート80、6667、6697をすべての人に許可する
  • たとえば、ポート22に自分のIPだけを許可する10.10.10.10

誰かが私を締め出すことなく、これらの単純なルールを実装するのを手伝ってくれませんか?

3
user6888062

iptablesのフィルターテーブルを使用し、最初にiptablesのフィルターテーブルのすべてのルールをフラッシュするルールを追加します。

Sudo iptables -t filter -F

次に、ESTABLISHED、RELATED接続を許可するルールを追加します。

Sudo iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

次に、tcpのポート80、6667、および6697をすべてのユーザーに許可するには、以下を追加します。

Sudo iptables -t filter -A INPUT -p tcp -m multiport --dports 80,6667,6697 -j ACCEPT

そしてあなたのIPアドレスだけのためにポート22を許可するために:

Sudo iptables -t filter -A INPUT -s <your ip address> -p tcp --dport 22 -J ACCEPT

次に、他のものをブロックするには、次を追加します。

Sudo iptables -t filter -A INPUT -j DROP

完了。

3

ネットワーキング、TCP(ICMP/UDP/SCTP ...)/ IP、Linuxのネットフィルター、および最初に適切なファイアウォールを実行する方法の基本を学ぶ準備ができていない場合は、iptablesを直接操作しないことをお勧めします。

ここでは、Debianを使用しているので、ufwの上に非常に単純な管理レイヤーであるiptablesのようなものをインストールします。

発信トラフィックにはACCEPT、着信トラフィックまたは転送トラフィックにはDROPのデフォルトポリシーを設定します。必要なタイプのICMP/DHCP /ブロードキャスト/マルチキャストトラフィックをブロックせず、必要に応じてIPv4とIPv6の両方を処理することで、足元を撃たないようにします。

その後、あなたがすることはあなたが望むサービスのための穴を開けるだけです。一部のパッケージでは、/etc/ufw/applications.d/にファイルをインストールして、ポートを手動で指定する代わりに、アプリケーションごとに穴を開けるのに役立ちます(独自のポートを作成することもできます)。

ufw app list

サポートされているアプリケーションのリストが表示されます。次に、次のことができます。

ufw allow from 10.10.10.10 app OpenSSH
ufw allow from any app WWW
ufw allow ircd/tcp # by service name (from /etc/services...)
ufw allow 6697/tcp # by explicit port number
ufw enable

iptables-saveを実行して、生成されたルールを確認できます。また、IPスタックのいくつかの設定を調整します。 /etc/ufwの追加設定もご覧ください。

3

Iptablesの使用方法に興味がある場合は、notをサーバーに構成することをお勧めしますが、代わりにローカルマシンにiptablesをインストールすることをお勧めします(たとえば、VMまたはあなたのラップトップ)そしてそこでそれで実験します。そうすれば、あなたがミスを犯したとしても、あなたは自分のシステムから締め出されることはないでしょう。

個人的には、15年間Linuxサーバーを管理し、iptablesスクリプトを手動で作成した後でも、間違えた場合にサーバーをすぐに再起動する方法がない限り、ファイアウォール構成を更新することはありません(KVMシステム、ホスティング事業者のコントロールパネル、または物理的にマシンまで歩いて行けることによる)結局のところ、間違いは常に発生する可能性があり、誤って自分のサーバーから7時間ロックアウトされたくないからです。単純なタイプミス。

1
Wouter Verhelst