web-dev-qa-db-ja.com

Ubuntuでシンプルなファイアウォールをセットアップする方法

誰かがUbuntuでシンプルなファイアウォールを設定する方法の簡単な手順を(コンソールのみを使用して)与えることができますか? ssh、http、およびhttpsアクセスのみを許可する必要があります。

18
klew

Sudo ufw default deny

須藤ufw許可http

Sudo ufwはhttpsを許可します

Sudo ufwはsshを許可します

Sudo ufw enable

20
Nerdfest

このスクリプトを使用します。

着信ICMP(ping)を許可するかどうかを決定します。

# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

# As the default policies, drop all incoming traffic but allow all
# outgoing traffic.  This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT

# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT

# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT

# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT

# Reject all other incoming packets
iptables -A INPUT -j REJECT
14
Mikeage

別の回答へのコメントで述べたように、sshポートを許可する前に接続を失いたくないです。 manページから:

"リモート管理

ufw enableを実行するか、initscriptを介してufwを起動すると、ufwはチェーンをフラッシュします。これはufwが一貫した状態を維持できるようにするために必要ですが、既存の接続(たとえばssh)をドロップする可能性があります。 ufwは、ファイアウォールを有効にする前にルールを追加することをサポートしているため、管理者は次のことができます:

ufw allow proto tcp from any to any port 22

「ufw enable」を実行する前に。ルールは引き続きフラッシュされますが、ファイアウォールを有効にすると、sshポートが開きます。 ufwが「有効」になると、ルールを追加または削除するときにufwはチェーンをフラッシュしません(ただし、ルールを変更したり、デフォルトのポリシーを変更したりする場合)。 "

そこで、スクリプトを使用して設定する方法を次に示します。このスクリプトを実行するとログアウトしますが、実行すると、sshを介して再度ログインできます。

以下をスクリプトに入れて、start-firewall.shと名付けます。

#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https

そして、それを実行可能にし、次のように実行します

$ chmod + x start-firewall.sh
$ Sudo ./start-firewall.sh

詳しくは man page をご覧ください。

8
Hamish Downer

スクリプティングiptablesに慣れていれば、すべてのファイアウォール機能を完全に制御できます。 Firestarterほど親しみやすいものではありませんが、コンソールでnano/viエディターを使用して行うことができます。これをチェックしてください チュートリアル Ubuntu向けです。

2
spoulson

Quicktablesは、iptablesのルールを学ぶのに役立ちました。スクリプトを実行するだけで、iptablesスクリプトが生成されます。次に、スクリプトを開いて、要求された質問によって生成された関連コマンドを表示できます。優れた学習リソースです。

残念ながら、それはもはや維持されていません。

http://qtables.radom.org/

1
JP Richardson

私は本当に fireholpackage )を使うのが好きです。

希望する設定ルールを作成するには、ファイル/ etc/default/fireholを編集して、START_FIREHOL = YESを変更する必要があります。

また、/ etc/firehol/firehol.confを次のようにしたいとします。

version 5

interface any IfAll
    client any AnyClient accept
    server "ssh http https" accept
    # Accept everything from trusted networks
    server anystateless AllInside accept src "10.3.27.0/24"

ファイアホールの優れた点の1つは「try」コマンドです。設定ファイルを調整して 'firehol try'を実行できます。sshを介して接続している場合、変更内容によってネットワークアクセスが強制終了されると、fireholが変更を元に戻します。変更を実際に有効にするには、コミットと言う必要があります。

1
Zoredache

私は Shorewall を好むでしょう。セットアップは簡単ですが、同時に柔軟性があります。

1
Artyom Sokolov

多分あなたは http://iptables-tutorial.frozentux.net/iptables-tutorial.html を見てみるべきです。 lartc.org に関する詳細情報もご覧いただけます。

0
hyperboreean