iptables
を使おうとしていますが、ドキュメントを理解するのに無知なので、実装しようとしているときにサーバーから2回ロックアウトされています。
これらは私が実装したい単純なルールです:
10.10.10.10
誰かが私を締め出すことなく、これらの単純なルールを実装するのを手伝ってくれませんか?
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
完了。
ネットワーキング、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
の追加設定もご覧ください。
Iptablesの使用方法に興味がある場合は、notをサーバーに構成することをお勧めしますが、代わりにローカルマシンにiptablesをインストールすることをお勧めします(たとえば、VMまたはあなたのラップトップ)そしてそこでそれで実験します。そうすれば、あなたがミスを犯したとしても、あなたは自分のシステムから締め出されることはないでしょう。
個人的には、15年間Linuxサーバーを管理し、iptablesスクリプトを手動で作成した後でも、間違えた場合にサーバーをすぐに再起動する方法がない限り、ファイアウォール構成を更新することはありません(KVMシステム、ホスティング事業者のコントロールパネル、または物理的にマシンまで歩いて行けることによる)結局のところ、間違いは常に発生する可能性があり、誤って自分のサーバーから7時間ロックアウトされたくないからです。単純なタイプミス。