iptablesで特定のIPを許可し、他のすべての接続をブロックする方法は?
答え1
私は書いたデスクトップユーザー向けのデフォルトのIptablesルールに関するブログ投稿ずっと前に、おそらくそれを読む必要があります。そしてそれにリンクされた記事ステートフルファイアウォールの設計。ただし、カーネル2.6.39以前(ipset
ホワイトリストに10個以上のIPがある場合(そのうち10個はランダム))をホワイトリストに追加するためにこの機能を使用できます。
まず、受け入れるか破棄したい状態とインターフェイスを処理します。
iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept
IPでのみ許可したい場合は、ステータスは必要ありません。
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
ただし、これを行う際に問題が発生する可能性があるため、状態を使用して生活を簡単にすることをお勧めします。たとえば、これは許可されておらず、-i lo
一部の-o lo
アプリケーションでは間違いなく問題が発生します。
答え2
以下は、ブロックする(テストされていません!)例です。着信接続のみしてください。ループバックインターフェイスを介して192.168.3.x、ICMP、またはSSHポートからの接続を許可します。他のすべての接続は拒否されます。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
答え3
次のルールはあなたのIPのみを許可し、ポート22またはSSHを介して他のすべてのIPをブロックします。接続を切断する前に、新しい端末を使用してテストしてください。
iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j DROP
答え4
以下は完全な作業例です。
また、アプリが機能します。 (re:keepassが起動しないという私の意見)