ãŸããã
ãããããããé ãé¢ããéæ²³ã§...èããŠã¿ãã°ãããã¯ãã£ã15幎åã®ããšã§ããã
äžè¬ã«ãFreeBSDãšLinuxã«åºã¥ããœãªã¥ãŒã·ã§ã³ãã€ã³ã¿ãŒããããžã®äžå€®ã²ãŒããŠã§ã€ãšããŠäœ¿çšãããããšããããŸããã ãããŠããããã®ãœãªã¥ãŒã·ã§ã³ã¯ææ
ã蟌ããŠèª¿æŽããããã¹ãŠã®å¯èœãªæ©èœãšäžå¯èœãªæ©èœïŒãã¡ã€ã¢ãŠã©ãŒã«ãVPNãµãŒããŒããTFTP + PXEãã£ã¹ã¯ã¬ã¹ããŒããµãŒãã¹ãŸã§ïŒã§æ¯èŒæ€èšãããŸãã...ãããŠåé¡ã¯ãªãããã¹ãŠãããŸããããŸãã...
ããããæ代ã¯å€ãããæ°ãããœãªã¥ãŒã·ã§ã³ãç»å ŽããäŒæ¥ã¯Linuxã«ãŒãã«ããå®ããŠå
æ°ã«ãæºåããå¿
èŠãªæ©èœãæäŸããéåžžã«æ§ãããªãéïŒããŒããŠã§ã¢ã®ã³ã¹ãã«å¹æµïŒã§è²©å£²ããããã«èŠããŸãã
ãã®ãããªãœãªã¥ãŒã·ã§ã³ã®äŸã¯ãMikrotikãšåãååã®ãã®ãœãªã¥ãŒã·ã§ã³ã§ãã
çŸåšã®çŸå®
å
šäœãšããŠãçŸåšã®ç¶æ³ã¯ããéåžžã®ã·ã¹ãã ãããŒãžã£ãŒããæ¡çšããŠã²ãŒããŠã§ã€ãéšåïŒãããã¯ãŒã¯ã«ãŒãããœãããŠã§ã¢ããµãŒãã¹ãªã©ïŒã«çµã¿ç«ãŠãããã10ãã5000å°ã®ã³ã³ãã¥ãŒã¿ãŒãé«éã§çµæžçãªçµç¹ã«Mikrotikã賌å
¥ããŠå°å
¥ããããšã§ãã
åæã«ããã©ãã£ãã¯ã¢ã«ãŠã³ãã£ã³ã°ã¿ã¹ã¯ã¯ä»ãæãæ®ã£ãŠããŸãã ãããŠãè¿ãã®ãµãŒããŒãå©ãã«ãªããŸãïŒéåžžã¯LinuxããŒã¹ã®NASãŸãã¯FreeBSDããŒã¹ã®NASïŒã
WEBãã©ãã£ãã¯ã®ã¢ã«ãŠã³ãã£ã³ã°ã¯ã·ã³ãã«ã§ç°¡åã§ã-Squid + LightSquidãã³ãã«ã䜿çšãããšã誰ãã©ã®ãµã€ãã«ã¢ã¯ã»ã¹ããã©ã®ãã¡ã€ã«ãããŠã³ããŒãããYouTubeã§ã©ãã ããã³ã°ãããã«é¢ããæ
å ±ãè¿
éãã€ç°¡åã«åéããã³éçŽã§ããŸãã å¿
èŠã«å¿ããŠããµã€ããæéãªã©ãå¶éããããšãã§ããŸãã é·å¹Žã«ããã£ãŠå®èšŒãããã·ã³ãã«ã§äŸ¿å©ãªãœãªã¥ãŒã·ã§ã³ã Mikrotikã¯ãIPãããã·ãã€ã³ã¿ãŒãããã«çºè¡ããã«ãŒã«ã1ã€äœæããŸãã ãããŠèª°ãã幞ãã§ãã
ããããããã«åé¡ããããŸã-ãã¹ãŠãSquidãæ£åžžã«ééããããã§ã¯ãããŸããã HTTPããã³Socksãããã·ããµããŒãããã«èšè¿°ãããéè¡ã¯ã©ã€ã¢ã³ãããããŸãã ããŸããŸãªçš®é¡ã®ãã©ãã£ãã¯ã«ããŸããŸãªæ¥ç¶ã䜿çšããè€éãªããã°ã©ã ããããŸã-çµæ-ãããã·ãä»ããŠããŸãæ©èœããªããããŸã£ããæ©èœããŸããã ãããŠãããããVIPããŒãœã³ãšããå¥ã®ã«ããŽãªãŒããããŸã...ã圌ãã®ããã«äœããéãããªããå Žåãé¢ä¿ãæªåããããããããã«NATããäžããæ¹ãç°¡åã§ãã
ãããã£ãŠãé
ããæ©ããMikrotikã§ã¯ããããã·ãµãŒããŒããã€ãã¹ããŠãNATãä»ããŠãç¹å¥ãªã«ãŒã«ããçŽæ¥è§£æŸããåå¥ã®ã«ãŒã«ã衚瀺ãããŸãã ãŸããçµ±èšã«ãã©ãã£ãã¯ã衚瀺ãããªããªããŸããã
ãã®ãããªãã©ãã£ãã¯ãèæ
®ãã決å®ã¯æ¬¡ãé Œã¿ãŸãïŒ
- å€éšã€ã³ã¿ãŒãã§ã€ã¹ã§Mikrotikãã£ããã£NetFlowçµ±èšãæå¹ã«ããŸãã
- ãã®çµ±èšãNASã«éä¿¡ããŸãïŒããšãã°ãflow-captureãä»ããŠflow-toolsãµãŒãã¹ã«éä¿¡ïŒ
NASãµãŒããŒã§åä¿¡ãããã¡ã€ã«ã®äŸ¿å©ãªåæã®ããã«ããã®ãœãªã¥ãŒã·ã§ã³ã¯ãããã€ãã®èªå·±èšè¿°ã¹ã¯ãªããã§æ¹åããããšãææ¡ãããŠããŸãã
- ftãã¡ã€ã«ãåŠçããMySQL DBMSã«æ
å ±ãããŒãããPerlã¹ã¯ãªããã
- NetFlowããŒã¿ã®äŸ¿å©ãªåæã®ããã®äºåèšå®æžã¿UIãšããŠæ©èœããPHPã¹ã¯ãªããã
Mikrotikãæ§æãã
ãã¹ãŠãã·ã³ãã«ã§ãããã¥ã¡ã³ãã«ãããšïŒ
/ip traffic-flow set enabled=yes interfaces=WAN /ip traffic-flow target add dst-address=<NAS IP Address> port=8787 v9-template-timeout=1m version=5
äŸãšããŠFreeBSDã䜿çšããFlow-Toolsã®æ§æ
# NetFlow : pkg install flow-tools # : echo 'flow_capture_enable="YES"' >> /etc/rc.conf.local echo 'flow_capture_flags="-N-2"' >> /etc/rc.conf.local # : service flow_capture start
NetFlowããŒã¿ãã€ã³ããŒãããããã®MySQL DBMSã®ã€ã³ã¹ããŒã«ãšæºå
# , MySQL : pkg install mysql56-server # echo 'mysql_enable="YES"' >> /etc/rc.conf service mysql start # : mysql_secure_installation # Perl- : pkg install p5-DBI p5-DBD-mysql # : mysql -u root -p
ïŒDBMSãšãŠãŒã¶ãŒãäœæããŸãã
mysql> create database netflow; mysql> grant insert,create,update,select,delete on netflow.* to nfuser@'localhost' identified by '987654321'; mysql> flush privileges; mysql> exit;
ft- * NetFlowçµ±èšãã¡ã€ã«ãåæããããŒã¿ãMySQLã«ããŒãããPerlã¹ã¯ãªãã
ã¹ã¯ãªããã¯ãŒãããæžããããã®ã§ã¯ãããŸããã§ãã-ãã€ãŠ2005幎ãNetGraphã¢ãžã¥ãŒã«ng_ipacctã䜿çšããFreeBSDã²ãŒããŠã§ã€ã§ã®ãã©ãã£ãã¯ã«ãŠã³ãã«é¢ããèšäºïŒ
link ïŒãOpenNET Webãµã€ãã«æçš¿ãããŸããã
ããŠã³ããŒãã¹ã¯ãªããã¯åºç€ãšããŠæ¡çšãããNetFlowããã³flow-toolsã§äœ¿çšããããã«æžãçŽãããŸããã FreeBSDãšLinuxã®äž¡æ¹ã§åäœããŸãïŒflow-catããã³flow-printããã°ã©ã ã«æžãæããããã®ã¯ãã¹ã®ã¿ã§ãïŒã
ã¹ã¯ãªããã®æ©èœ-ãã®ãªãã·ã§ã³ã¯ãéå»1æ¥éã®ãã¹ãŠã®ft- *ãã¡ã€ã«ãåæããããŒã¿ããŒã¹ã«ïŒè¡ããšã«ïŒããŒãããããã«èšèšãããŠããŸãã åæã«ãMySQLã«åé·ãªæ
å ±ãããŒãããªãããã«ãããã€ãã®ãã¿ãŒã³ã«åŸã£ãŠè¡ãé€å€ãããŸãïŒããšãã°ããããŒããã£ã¹ããã©ãã£ãã¯ãDNSã¯ãšãªãã©ãã£ãã¯ãHTTP / Socksãããã·ãã©ãã£ãã¯ãé€å€ããŸãïŒãããã·çµ±èšã¯å¥ã®å Žæã«ãããŸãïŒã DBMSã«ããŒããããè¡æ°ã10åããŸãã¯20ã30åæžããããšãã§ããŸãã
DBMSã®ããŒãã«ã¯ãæ°ããæã®éå§æã«èªåçã«äœæãããŸãã æšæºã®NetFlow v5圢åŒã«ã¯ãæ¥ãè¿œå ãããèšé²æå»ïŒäœæãããftãã¡ã€ã«ã®æå»ã䜿çšãããŸã-ããšãã°ã15åããšïŒãNetFlowãœãŒã¹åãããã³ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®ååã瀺ãããŸãã
SQLã¯ãšãªæ§ç¯ãç°¡çŽ åããPHP UI
èè
ã®Perlã¹ã¯ãªããã䜿çšããã2005幎ã«ãSQLã³ãã³ãã䜿çšããŠMySQLã®ããŒã¿ãåæããŸãã...
ããããé
ããæ©ãããã¯ãšãªãå
¥åããã®ã«ãããããããšããæ¥ãŸããã ãããŠã圌ã®èããéããŠã圌ã¯SQLã¯ãšãªãããéãç°¡åã«æ§ç¯ã§ããå°ããªPHPã³ãŒããæžããŸããã
å€èŠ³ïŒ

ã¹ã¯ãªããã§ã§ããããšïŒ
- SQLã¯ãšãªãäœæããæçµçãªã¯ãšãªèªäœãšãã®çµæã衚圢åŒã§ç¢ºèªããŸãã
- æ¯æã®NetFlowãã©ãã£ãã¯ã®éã確èªããŸãã
- 1ã€ã®ã€ã³ãžã±ãŒã¿ïŒSourceIPãSourcePortãDestIPãDestPortãProtoãDateïŒã§ãã©ãã£ãã¯ãã°ã«ãŒãåããŸãã
- åèšã§ã¯ãªãè¡æ°ã確èªããŸãïŒ1ãæãš1ã€ã®å±æ§ã«ããã°ã«ãŒãåã®äž¡æ¹ïŒã
- ãã©ãã£ãã¯éã§ãã£ã«ã¿ãªã³ã°ããŸãã
- ãã©ãã£ãã¯éã§ã¯ãªããã¬ã³ãŒãèªäœãåç
§ããŠãã ããã
- ããŒã¿ããŒã¹ããæå®ãããæ°ã®ã¬ã³ãŒããèŠæ±ããŸãïŒããšãã°ãExcelã§ããã«ã³ããŒ/貌ãä»ãããããïŒã
PSïŒnetflow.phpãã¡ã€ã«ã®ææè
ã¯ãWebãµãŒããŒïŒApacheãªã©ïŒã®ãŠãŒã¶ãŒã§ãªããã°ãªããŸããã
PSSïŒDBMSãžã®ã¢ã¯ã»ã¹ã¯netflow.phpãã¡ã€ã«ã§æ瀺çã«æå®ãããŠãããããèªåã§å€æŽããŠãã ããã
MySQLããŒãã«ã®æäŸ
ããŒãã«ãéåžžã«å€§ããå ŽåïŒãã¹ã©ã°ããšãµã€ãºã®çž®å°ãé€ããå¿
èŠãªãã®ã ããDBMSã«ããŒãããå¿
èŠã¯ãããŸããïŒãDBMSã®ãµã€ãºã倧å¹
ã«åæžã§ããèå³æ·±ãããªãã¯ããããŸãã MyISAM圢åŒã®ããŒã¿ããŒã¹å§çž®ã®äœ¿çšãšãã€ã³ããã¯ã¹ã®æé©åã«ã€ããŠè©±ããŸãã
ãããã®æé ãèªåçã«å®è¡ããããã«ãå¥ã®Perlã¹ã¯ãªãããäœæãããŸãããããã¯ãåæã®åæ¥ã«CronãéããŠèµ·åãããŸãã
- 念ã®ããã«ããŒãã«ã修埩ããŸãïŒçªç¶ããµãŒãã¹ãæ£ããã·ã£ããããŠã³ããããMyISAMã«ãšã©ãŒãå«ãŸããŠããŸãïŒã
- ããŒãã«ã®ååãå€æŽããæ«å°Ÿã«cãè¿œå ããŸãïŒå§çž®ãããåèªããïŒã
- myisamchkããã³myisampackããã°ã©ã ãå®è¡ããŸãããããã®ããã°ã©ã ã¯ãããŒã¿ããŒã¹ãå§çž®ããå§çž®ãããããŒãã«ã®æ°ãããœãŒããããã€ã³ããã¯ã¹ãæ§ç¯ããŸãã
åèšãããšãã¹ã¯ãªããã®å®è¡åŸããã®ããŒãã«ã¯èªã¿åãå°çšã«ãªããå§çž®ããïŒãµã€ãºã3åæžå°ããŸãïŒãæ°ãããœãŒãããã³æé©åãããã€ã³ããã¯ã¹ãæ§ç¯ãããŸãã ãã®ãããªããŒãã«ã®ã¯ãšãªã¯é«éã«ãªããŸãã
ãŸãšã
ãã¹ãŠã®ã¹ã¯ãªããã¯
ããããããŠã³ããŒãã§ã
ãŸã ã
Update1ïŒâânetflow.phpã¹ã¯ãªããã®æ¹å-PHPããŒãžã§ã³7.xã§äœæ¥ããããïŒ
ãªã³ã¯