ショアりォヌルみんなのためのファむアりォヌル

Linuxでファむアりォヌルを蚭定するための非垞に䟿利なツヌルおよびホリバヌのpfに察する匷力な議論であるにもかかわらず、突然、 Shorelineファむアりォヌルが Habréでたったく点灯しないこずが刀明したした。

「Linux-たわごず、OpenBSDでもっずかっこいい」、「そしお私はKerio WinRouteがあり、あなたはすべお敗者だ」などのトピックを取り䞊げないでください。
この蚘事は、䜕らかの理由でLinuxを遞択し、iptablesの孊習に倚くの時間を費やしたくないおよび混乱の䜙地がある人を察象ずしおいたす。

したがっお、カットシヌトの䞋


たず第䞀に、Shorewallずは䜕ですか
Shorewall- 叀き良き iptables、暙準のLinuxファむアりォヌル構成ツヌルぞのバむンド。 珟圚のバヌゞョンでは、 Perlを䜿甚しお 、いく぀かの構成ファむルの党䜓を読み取っお解析し、iptables-restoreず互換性のあるファむルを生成しお埌者にフィヌドしたす。 構成の単玔さ、構成䞭の抜象化レベルの远加、安定したDebianで非垞に時代遅れになる積極的な開発、およびいく぀かのアップリンクのサポヌトなどの非垞においしいものが特城です。

珟圚、ショアりォヌル4.4の最新バヌゞョン、レニヌ-4.0、カルミック-4.2。 私に最も近いマシンはUbuntu Server 9.10で実行されるため、䞻にバヌゞョン4.2に぀いおお話したす。䞻芁な機胜セットはすぐにShorewallに登堎したので、Shorewallのどのバヌゞョンでもほずんどすべおが機胜するはずです。

バヌゞョン4.2より前のバヌゞョンでは、ShorewallはPerlずシェルの䞡方を䜿甚しお構成を凊理できたした。 バヌゞョン4.4では、シェルのサポヌトは廃止されたしたバグのある゚ンティティを䜜成するものがないため。したがっお、Perlバヌゞョンに぀いおのみ説明したす。

むンストヌル
ショアりォヌル党䜓がperlスクリプトず蚭定甚の空癜のセットであるため、䟝存関係に぀いお話すのはばかげおいたす。 Perlずiptablesが必芁です。 あなたのディストリビュヌションのリポゞトリにあなたに適したshorewall-perlバヌゞョンがあれば、それを眮いお、もしそうでなければ、別のディストリビュヌションからdebたたはrpmを取り出しおください。

開始ず停止
我慢できないので、すぐに新しいsoftinkaを立ち䞊げたいです。 これは、intスクリプトだけでなく、コマンドでも実行できたす
  shorewall {開始、停止、再起動} 
、これはデバッグ䞭にも奜たしい-゚ラヌに぀いおはコン゜ヌルに盎接曞き蟌たれたす。

構成メモ
すべおの暙準構成は、同梱されおいるものから取埗する必芁がありたす。 ファむルには、ファむルの目的に関する意味のあるコメントだけでなく、パヌサヌのマヌカヌも含たれたす。パヌサヌは、システムの動䜜を保蚌するものではありたせん。 ubuntでは、それらは/ usr / share / doc / shorewall-common / default-configになりたした。
ファむアりォヌル構成自䜓は/ etc / shorewallにあり、パスのないすべおの構成ファむルがそこにあるはずです。

䞀般的なホヌムルヌタヌの構成
1.ゟヌン。
ショアりォヌルパケットルヌルは、ゟヌンの抜象化を䜿甚したす。凊理するすべおのネットワヌクは、䜕らかの方法で呌び出す必芁がありたす。 最初に、ゟヌンの名前を決定する必芁がありたす。 私の堎合、4぀ありたす。ファむアりォヌル自䜓を含む必芁なゟヌン、DHCPを䜿甚するホヌムネットワヌク、プロバむダヌLAN、およびPPPoEを介したむンタヌネットです。 パッケヌゞからブランクをコピヌするこずを忘れないでください 構成は次のようになりたした。
  猫ゟヌン|å°Ÿ-7
 #Zoneタむプのオプション
 オプションオプション
 FWファむアりォヌル
 inet ipv4
 nbn ipv4
 mork ipv4
 最埌の行-この1぀の䞊に゚ントリを远加したす-削陀しないでください 

ここで、nbnはプロバむダヌLANはい、netbaynet、morkはホヌムgovnosetkaです。

2.むンタヌフェヌスずホスト
䜿甚するゟヌンを決定したら、ゟヌン間でネットワヌクむンタヌフェむスl2ずIPネットワヌクl3を分割する方法を蚀う必芁がありたす。
interfacesファむルで、凊理䞭のすべおのむンタヌフェむスをリストする必芁がありたす。 これは「このむンタヌフェヌス党䜓がこのゟヌンにある」ずいう圢匏で行われるため、むンタヌフェヌスを耇数のゟヌンに分割する堎合、ゟヌンの代わりにダッシュを指定する必芁がありたす。
私の最も簡単なオプション
  tail -5むンタヌフェむス
 #ZONE INTERFACE BROADCAST OPTIONS
 mork lanがdhcpを怜出
 inet ppp +怜出
 nbn prov怜出
 最終行-これより前に゚ントリを远加したす-削陀しないでください 

はい、はい、私のネットワヌクカヌドはlanおよびprovず呌ばれたす。 ほずんどがeth0、eth1などになりたす。
䟋からわかるように、マスクを䜿甚できたす。 この堎合、ppp +はppp0を含むさたざたなPPPトンネルを取埗したす。

1぀のむンタヌフェヌスを耇数のゟヌンに分割する堎合、ホストファむルで、どのむンタヌフェヌスのどのサブネットがどのゟヌンに入るかを指定したす。 構文は単玔です-「ゟヌンむンタヌフェむスサブネット」、䟋倖を远加する機胜。

3.ポリシヌ
䞖界をゟヌンに分割するずき、デフォルトで誰に䜕ができるかを蚀うこずが䞍可欠です。 このビゞネスは政治家ず呌ばれ、ポリシヌファむルにあり、トラフィックフロヌのすべおの可胜な方向のポリシヌを定矩する必芁がありたす。 デフォルトポリシヌを最埌に远加するこずをお勧めしたすが、もう少し高くしたす-䟋倖
  テヌル-6ポリシヌ
 #SOURCE DESTポリシヌログの制限CONNLIMIT
 レベルバヌストマスク
 fw all ACCEPT
すべお受け入れる
すべおすべお拒吊
 最終行-削陀しないでください 

ここでは、ホヌムグリッドずファむアりォヌルから任意の堎所ぞのすべおのトラフィックを蚱可し、他のすべおを犁止したした

4.初飛行
この段階で、構成はコンパむルしお獲埗するはずです。 むンタヌネットがファむアりォヌル䞊にあるのは今だけです。結局のずころ、NATを構成しおいたせん。 しかし、䜕かが機胜するずき、すでに喜んでいたす:)

5. NATセットアップ
仮面舞螏䌚は、い぀ものように、単玔に含たれおいたす。 泚ゟヌンではなく、むンタヌフェヌスが瀺されおいたす。 IPサブネットを指定でき、䟋倖を䜜成できたす。 Masqファむル
  猫マスク|å°Ÿ-3
 #INTERFACE SOURCE ADDRESS PROTO PORTSIPSEC MARK
 ppp +、prov lan
 最埌の行-この行の䞊に゚ントリを远加-削陀しないでください 


6. shorewall.conf
最初は登る必芁がある堎所に着きたしたが、それは怠wasであり、はっきりしたせんでした。 このファむルには、パヌサヌの構成、動䜜のいく぀かの機胜、およびその他のナンセンスが含たれおいたす。 次のパラメヌタを修正し、泚意を払っおいたす。
  STARTUP_ENABLED =はい-始めたしょう
 VERBOSITY = 1-コン゜ヌルの冗長性
 SHOREWALL_COMPILER = perl-混乱しないように、その堎合
 * _LOG_LEVEL-すべおが正垞に機胜する堎合、dmesgを詰たらせないようにnoneを入れたす
 LOG_MARTIANS-たた
 IP_FORWARDING =オン-マスカレヌドには非垞に必芁です。 もちろん、sysctl.confでこれを実行できたすが、ここではより適切です
 CLAMPMSS = Yes-アップリンクMTUがホヌムグリッド内のどのマシンよりも小さい堎合、有効にするこずをお勧めしたす。 
                   ここでは、コンピュヌタヌの䞀郚でりィキペディアが壊れおいるずいう非垞に䞍快なバグに぀ながる可胜性はありたせん。
 ADMINISABSENTMINDED =はい-Gdを想像しないで、そのたたにしおおきたす 


7.ルヌル 最埌に
完党に正しい操䜜のために、ここですべおのICMPを蚱可したす。 同時に倖郚のSSH。 ルヌルファむル
  catルヌル| tail -11 | grep -v ^SECTION | head -5
 #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATEナヌザヌ/ MARK CONNLIMIT TIME
 PORT PORTSDEST LIMIT GROUP
セクションNEW
すべおのICMPを受け入れる
 ACCEPT inet $ FW tcp 22 

7a。 そこでポヌト転送に぀いお説明したす。
  猫のルヌル| grep -E '#ACTION | DNAT'
 #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATEナヌザヌ/ MARK CONNLIMIT TIME
 DNAT all morknavoff31840 udp 31840
 DNAT nbn morknavoff7777 UDP 7777
 DNAT nbn morknavoff7777 tcp 7777 


8.利益
この時点で、すべおの方向のホヌムネットワヌクからのNATずポヌト転送を備えた完党に構成されたホヌムルヌタヌが必芁です。 倖郚では、ICMPずSSHのみが蚱可されたす。 すべおの構成ファむル新芏5、修正1には、間違いを犯しにくい行が含たれおいたす。構成は、ネットワヌクカヌドの別の名前、接続されたネットワヌクの他のアドレスを持぀マシンに簡単に転送されたす。 TCPパケットのフラグ、着信UDPパケットの発信元単玔なiptablesでDNSを借金する方法、および「着信をすべお犁止する」ポリシヌに぀いお心配する必芁はありたせん。 debianおよびubuntでは、/ etc / default / shorewallも修正しお、initスクリプトが正垞に動䜜するようにしたす。堎合によっおは、奜みのランレベルにshorewallを远加する必芁がありたす。

9. PostScriptum
Shorewallの可胜性はこれに限定されたせん。 組み蟌みのシェヌピングサポヌトiproute2のtc経由、いく぀かのアップリンク別の蚘事に倀する、IPv6などがありたす。 Webminを䜿甚しお蚭定するこずができたす。 倧量のドキュメント 、 FAQ 、およびマナの詳现が印象的です。 倚くのLinuxナヌザヌ初心者でも経隓豊富な管理者でもが、iptablesぞのこのバむンディングで自分自身に圹立぀ものを芋぀けるこずを願っおいたす。

Source: https://habr.com/ru/post/J80271/


All Articles