FireHOL-5分で無知な人のためのファイアウォール

これは記事でも完全なガイドでもありませんが、GNU / Linuxマシンで適切に構成され、適切に構成されたルーターをできるだけ早く作成するのに役立つ小さなスニペットです。 そして、これにはiptablesの知識がまったく必要ありません。



Fireholは、 shorewallとは異なり、スクリプトのセットではなく、1つのbashスクリプトです。 したがって、それを使用するために、perlやその他のインタープリターは不要になりました。



Fireholは古き良きNARC(netfilter自動ルールコンフィギュレーター)に近いですが、後者は6年間更新されておらず、iptablesの最新バージョンと互換性のないかなり単純なスクリプトです。 それは、ほぼネイティブの人間の言語でルールを書くことができるという点でより近いです。





apt-getが出現するかどうか




gentooの場合、これは常にemerge -av net-firewall / fireholです〜archを/etc/portage/package.keywordsに追加するか、ACCEPT_KEYWORDS = "〜arch"を使用することを忘れないでください)



インストール後、get-iana.shファイルをfirehol-1.273.tar.bz2 アーカイブから抽出して実行します。 おそらく他のディストリビューションでは、このファイルはシステムにコピーされます。 gentoo ebuildでは、 左に触れません。 このスクリプトの本質は、予約されたIPをIANAから直接ロードすることです。



最も一般的な構成。



小さな会社のルーターの構成例。 すべての発信接続、非標準ポートで1つの着信sshが許可され、さらに、すべてのhttpトラフィックがsquidでオンになります。 スペースを節約するために、コメントブロックをいくつか省略します。



猫/etc/firehol/firehol.conf




# ----------------------------------------------------------------------------

#

# ----------------------------------------------------------------------------



server_ssh_ports="tcp/2202" # SSH 2202



# ----------------------------------------------------------------------------

#

# ----------------------------------------------------------------------------



# --- ---



HOME_MYIP="192.168.1.1" # IP

HOME_MYIF="eth1" #

HOME_BCAST="192.168.1.255" #

HOME_LAN="192.168.1.0/24" #

HOME_SERVICES="all" # ,



HOME_DHCP=1 # 1, DHCP

FIREHOL_LOG_MODE="LOG" #

FIREHOL_LOG_LEVEL="error" # :)



# --- ---



PUBLIC_MYIP="87.250.251.11" # , IP

PUBLIC_MYIF="eth0" #

PUBLIC_SERVICES="ssh" # , .



DIAL_ON_DEMAND=0 # 1,



# --- ---



TRUSTED_PCS="209.85.135.104" # IP

TRUSTED_SERVICES="ssh http" # ssh http .

# , http IP TRUSTED_PCS.



# --- ---



SQUID_PORT="3128" # ,

SQUID_USERS="squid" # ,

SQUID_EXCLUDE="192.168.1.1" # IP ,



# --- ---



blacklist="" # IP



# ----------------------------------------------------------------------------

# ( firehol)

# ----------------------------------------------------------------------------



if [ ! -z "${blacklist}" ]

then

blacklist full "${blacklist}"

fi



if [ ! -z "${SQUID_PORT}" ]

then

transparent_squid "${SQUID_PORT}" "${SQUID_USERS}" \

inface "${HOME_MYIF}" src "${HOME_LAN}" \

`test ! -z "${SQUID_EXCLUDE}" && echo "dst not ${SQUID_EXCLUDE}"`

fi



if [ ! -z "${PUBLIC_MYIP}" ]

then

snat to "${PUBLIC_MYIP}" \

outface "${PUBLIC_MYIF}" \

src "${HOME_LAN}" dst not "${UNROUTABLE_IPS}"

else

masquerade "${PUBLIC_MYIF}"

fi



interface "${HOME_MYIF}" home src "${HOME_LAN}" dst "${HOME_MYIP} ${HOME_BCAST}"

policy reject

server "${HOME_SERVICES}" accept



client all accept



if [ ${HOME_DHCP} -eq 1 ]

then

interface "${HOME_MYIF}" dhcp

server dhcp accept

fi



interface "${PUBLIC_MYIF}" internet \

src not "${UNROUTABLE_IPS}" \

`test ! -z "${PUBLIC_MYIP}" && echo "dst ${PUBLIC_MYIP}"`

protection strong

policy drop

if [ ! -z "${TRUSTED_PCS}" -a ! -z "${TRUSTED_SERVICES}" ]

then

server "${TRUSTED_SERVICES}" accept src "${TRUSTED_PCS}"

fi

server "${PUBLIC_SERVICES}" accept



client all accept



if [ ${DIAL_ON_DEMAND} -eq 1 ]

then

interface "${PUBLIC_MYIF}" dialup

client all accept

fi



router internet2lan inface "${PUBLIC_MYIF}" outface "${HOME_MYIF}" \

src not "${UNROUTABLE_IPS}" dst "${HOME_LAN}"



client all accept









閉鎖/禁止するものを忘れましたか?




Fireholルール構築ポリシー:すべてを無効にし、明示的に指定したもののみを許可します。



上記の例では、フラッド攻撃またはクリスマス攻撃に対するルールを含む約400(!)のルールが作成されます。



ええ、それがルールです...いいえ、いいえ、いいえ!




Fireholを使用すると、リモートサーバーを応答しないハードウェアの山に変える構成を変更することを恐れることもできません。 ルールでssh設定を台無しにしても、常に現在のsshセッションが開いたままになります! 次に、rcスクリプトにはいくつかの便利なパラメーターがあります。 おそらく最もよく使用されるのはtryです。



パラメーターの最終適用の前に、それらのパフォーマンスを確認する機会があります。 これを行うには、tryパラメーターを使用してスクリプトを呼び出します: /etc/init.d/firehol try



Fireholは新たに更新された設定ファイルをダウンロードし、あなたからのコミットという言葉忠実に待ちます。 これが30秒以内に届かない場合、以前の作業パラメーターが復元されます。



標準の開始、停止、再起動、および前述の試行に加えて、さらに3つあります。

status-現在のiptablesルールを表示します

save-現在のiptablesルールを保存します

パニック -侵入の検出に使用され、内部ネットワークを含む外界とのすべての連絡先が重複しています。



ギモメモ




興味のある方は、この素晴らしい製品に関する包括的なドキュメントや、ホームNATからDMZ、内部グループ、その他の微妙な機能を備えたオフィス間ルーターまでの多くの構成例があるプログラムWebサイトにようこそ。



All Articles