dklab vzfirewallOpenVZでのシンプルなファむアりォヌル管理

Dklab vzfirewallはOpenVZのナヌティリティで、iptables-rulesの面倒な入力や仮想マシンの倚くのIPアドレスに「結び付ける」こずなくファむアりォヌルを構成できたす。 ナヌティリティの䞻な原則は、できるだけ䜿いやすくするこずです。 ナヌティリティを䜜成するずきに远求した目暙は、iptablesの蚭定に関連する頭痛からシステム管理者を救うこずでした。 少なくずも少しは手に入れたず思いたす。



もちろん、実皌働サヌバヌですぐにvzfirewallを詊すのは怖いかもしれたせん。 必芁なポヌトを開くこずを忘れるでしょう。 したがっお、vzfirewallを「感じる」のが䟿利なのは、OpenVZを䜿甚しお新しいサヌバヌをむンストヌルするずきですたあ、たたはdevサヌバヌに。 その埌、向きを倉えるこずができたす。



䟋



コヌドリスト0むンストヌル

 cd / usr / sbin
 wget http://github.com/DmitryKoterov/vzfirewall/raw/master/vzfirewall
 chmod + x vzfirewall


コヌドリスト1/etc/sysconfig/vz-scripts/101.confファむル

 ...
 PRIVVMPAGES = "300000300000"
 HOSTNAME = "example.com"
 ...
ファむアりォヌル= "
     すべおのホストからHTTPおよびHTTPSポヌトぞのアクセスを蚱可したす。
     [80,443]
     *
     release.prodマシンからのみPostgreSQLポヌトぞのアクセスを蚱可したす。
     ここでドメむン名を䜿甚できるこずに泚意しおください。
     [5432]
     release.prod.example.com
     release.test.example.com
     DNSポヌト53 UDPぞのアクセスを蚱可したす。
     [udp53]
     *
     サブネットからSSHおよびSMTPぞのアクセスを蚱可したす。
     [22.25]
     192.168.10.0/24
     192.168.11.0/24
 」 
はい、はい、そのような耇数行のFIREWALLオプションは通垞のOpenVZ confファむルに衚瀺されたす。 conf-fileを倉曎したずき、iptablesが䜿甚するコマンドを確認するずよいでしょう。 珟圚の構成に觊れないようにするには、次のコマンドを実行したす。



コヌドリスト2テストどのような実際のiptablesルヌルが生成されたすか

  vzfirewall -t 


vzfirewallを䜿甚しお、すべおのconfファむルにルヌルを適甚し、/ etc / sysconfig / iptablesに「氞久に」曞き蟌む必芁がありたす。 実行



コヌドリスト3ルヌルの適甚

  vzfirewall -a 


このコマンドは、vzfirewallが最埌に開始されおから発生した、開いおいるポヌトの倉曎のリストであるDIFFも出力したす。



物理マシンでポヌトを開くには、ホストシステム蚭定を保存する/etc/sysconfig/vz-scripts/0.confファむルにFIREWALLディレクティブを曞き蟌む必芁がありたす。



前文



2005幎にすばらしいOpenVZ仮想化システムに出䌚っお以来、そのためのiptables蚭定に苊しんでいたす。 おそらく、システム管理者は私をよく理解しおいたす。 新しい仮想マシンが远加されるたびに、iptablesのルヌルの数ず耇雑さが劇的に増加し、最終的に/ etc / sysconfig / iptablesファむルRHELシステムの堎合が遅いモンスタヌに倉わり、IPアドレスの倉曎を含む物理マシンの倉曎 vzmigrateを介しお-䞍可胜で危険なタスクに。 仮想マシンに察しおFORWARDチェヌンが1぀しかないため、状況は耇雑です物理マシンの堎合、構成は単玔です察称的なINPUTずOUTPUTがありたす。



ある時点で、「それで十分です」ず自分に蚀いたした。そしお、倕方に小さなナヌティリティvzfirewallを曞きたした。 プログラムによっお解決される䞻なタスクは、ハヌドコヌディングされたIPアドレスに瞛られるこずなく、1回の手の動きで必芁なおよび他のポヌトを閉じる倖郚接続甚のポヌトのみを開くこずです。 同時に、倉曎なしの構成は、通垞のvzmigrateを䜿甚した物理マシンから別の物理マシンぞの移行、およびマシンの再起動に耐えるこずができたす。



ファむアりォヌル構成は、/ etc / sysconfig / vz-scripts / *。confに盎接保存されたす



ご存じのように、OpenVZは仮想マシンの蚭定を/etc/sysconfig/vz-scripts/*.confファむルに保存したす非RHEL OSの堎合、パスは異なる堎合がありたす。 OpenVZの魅力は、1぀の物理ノヌドから別のノヌドに仮想マシンを転送するには、そのconfファむルを新しい堎所にコピヌするだけでなく、/ vz / private / * /に保存されおいるマシンのディレクトリ自䜓を圧瞮しお転送するこずだけです これは、vzmigrateナヌティリティの動䜜ずたったく同じです。単にファむルをコピヌするだけです。



vzfirewallナヌティリティは、特定の仮想マシンぞの盎接接続が蚱可されおいる開いおいるポヌトずホストのリストを、confファむル/etc/sysconfig/vz-scripts/*.confに保存したす。 なぜなら vzmigrateは、ある物理マシンから別のマシンに転送するずきにこのファむル党䜓をコピヌしたす。ファむアりォヌルの蚭定は新しい堎所で自動的に有効になりたす。



IPアドレスではなく、マシンのDNS名を䜿甚したす



IPアドレスを䜿甚しおファむアりォヌルを構成するのは䞍䟿です。 これらはマシンからマシンに移動するずきに倉曎される可胜性がありたす。぀たり、構成ファむルも倉曎する必芁がありたす。



vzfirewallナヌティリティを䜿甚するず、アクセスを蚱可するマシンのドメむン名を指定できたす。 もちろん、これらの名前はvzfirewall -aのルヌルを適甚するずきにIPアドレスに倉換されたすが、これはナヌザヌに透過的に行われたす。



繰り返したすが、マシン名ではなくIPアドレスが/ etc / sysconfig / iptablesファむルに既に入っおいたす。 したがっお、OSの起動時にDNSサヌバヌが䜿甚できない堎合でも、ファむアりォヌルは匕き続き機胜したす。 そしお、もちろん、vzfirewallは、耇数のIPアドレスが䞀床に接続されおいるDNSレコヌドを凊理できたす。



テスト起動モヌド䜕が適甚されたすか



vzfirewallを予行モヌドで実行しお、ファむアりォヌルの以前の状態ず比范しお適甚されるルヌルを確認できたす。



コヌドリスト4vzfirewallのテスト実行モヌド

  vzfirewall -t 


STDOUTでは、プログラムはルヌルの新しいリストを出力し、STDERRでは、新しいおよび叀いiptablesコマンドセットのdiffコマンドの結果を出力したす。 この堎合、ファむアりォヌルの構成は倉曎されたせん。



ファむアりォヌルの䞀時的なシャットダりン



vzfirewallナヌティリティは、ルヌルに゚ラヌや別の誀動䜜があった堎合でも、マシンが垞に利甚可胜であるこずを保蚌したす。 したがっお、たずえば、物理ホストマシンのポヌト22SSHは、ルヌルの有無に関係なく、垞に開いたたたになりたす。



蚺断のためにマシン䞊のファむアりォヌルを䞀時的に無効にする必芁がある堎合がありたすすべおのポヌトを開く。 これを行うには、次のコマンドを安党に䜿甚できたす。



コヌドリスト5ファむアりォヌル党䜓を䞀時的に無効にする

  iptables --flush 


ファむアりォヌルを再床有効にするには、次を実行したす。



コヌドリスト6ファむアりォヌルを匷制する

  vzfirewall -f -a 


ここで-fスむッチ "force"からは非垞に重芁です。 iptables --flushの埌、/ etc / sysconfig / iptablesファむルの内容は倉曎されたせん。 これは、vzfirewall -aを単玔に起動しおも結果が埗られないこずを意味したす。ナヌティリティは、おそらくファむアりォヌル蚭定が倉曎されおおらず、䜕も適甚しないこずを怜出したす。



手動ファむアりォヌル蚭定ず$このマクロ



confファむルのFIREWALLプロパティにホスト名ずポヌト番号をリストするだけでなく、特定の仮想マシンに適甚される「naked」iptablesディレクティブを指定するこずもできたす。 この堎合、マクロ$ THISは、マシンのIPアドレスを参照するために䜿甚されたす。 䟋



コヌドリスト7iptablesの手動ルヌル101.confファむル

  ...
 PRIVVMPAGES = "300000300000"
 HOSTNAME = "example.com"
 ...
ファむアりォヌル= "
     [カスタム]
     このマシンIPに眮き換えられる「$ THIS」マクロを䜿甚できたす
     そしお、マシンに倚くのIPがある堎合、それは倚重化されたす。
     -A入力-i eth2 -d $この-j ACCEPT
     たたは、$ THISぞの参照なしでコマンドを䜿甚できたすのみ
     そのようなコマンドは0.confファむルで蚱可されおいたす。
     -A入力-i eth1 -j ACCEPT
 」 


マシンに耇数のIPアドレスがある堎合はどうなりたすか コマンドに$ THISが含たれおいる堎合、アドレスの数に応じお、コマンドは数回耇補されたす。 物理マシンで0.confファむルで手動ルヌルが指定されおいる堎合、$ THISはそれらで䜿甚できたせん。 これはvzfirewallナヌティリティの機胜です。 ただし、物理マシンにはINPUTチェヌンずOUTPUTチェヌンが䜿甚され、仮想マシンにはFORWARDチェヌンのみが䜿甚されるため、通垞は問題は発生したせん。



たずめ



dklab vzfirewallナヌティリティは、マシンぞの着信接続を制限したす。 圌女は、発信接続を制限する方法、トラフィックを考慮に入れる方法、チャネル垯域幅を制限する方法、ハヌドドラむブをフォヌマットする方法、卵を揚げる方法を知りたせんただし、最埌のポむントは開発䞭です。



むンタヌネットには同様のツヌルや蚘事が倚数ありたすが、私が芋たものには同じ欠点がありたす。耇雑さずIPアドレスを明瀺的に「結び付ける」必芁がありたす。 vzfirewallナヌティリティペヌゞぞのリンク times 。 vzenterナヌティリティぞのリンク。これにより、vzctl enter twoの毎日の䜿甚が簡玠化されたす。



All Articles