1ïŒãŸããLinuxã«ã¢ãã ã䜿çšããããã«æããŸã
2ïŒã€ã³ã¿ãŒãããé ä¿¡çšã®NATãäœæãã
3ïŒãã¹ãŠãã¹ã¿ãŒãã¢ããã«æå ¥ãã
ããã§ãbashãwvdialãiptablesãèã«çœ®ããŠããããŠè¡ããïŒ
USB 3Gã¢ãã æ¥ç¶
ãŸããäžéšã®åœã§ã¯ãLinuxã䜿çšããŠæ¥ç¶ããããã®èšå®ãæäŸããªã3Gã€ã³ã¿ãŒããããããã€ããŒãååšããããšããããŸããããã¯äžè¬ã«ç解å¯èœã§ããããããã€ããŒãšLinuxã®äž¡æ¹ã®ã人æ°ããæããããŸãã ç¹ã«åã ã®ããã°ã©ã ã®å Žåããã¹ãŠã®æ§æããŸã ãµã€ãã«ããããã§ã¯ãããŸããã ã ãããç§ãäœãã§ããã©ããã¢ã«ã LMTãšBiteã®2ã€ã®ãããã€ããŒããããŸãã ã©ã¡ããHuaweiã¢ãã ãä»ããŠã¯ã€ã€ã¬ã¹ã€ã³ã¿ãŒããããæäŸããåœç¶ããã¯ãããŠããŸãããããã¯ãã€ã³ãã§ã¯ãããŸããã ãŸããã¢ãã ãšãµãŒããŒã䜿çšããŠã3Gããããã¹ãŠã®å Žæã§ã€ã³ã¿ãŒããããæäŸããå¿ èŠããããŸãã ã©ãããïŒ
ãŸããã©ãããããã«ã¢ãã ãå·®ã蟌ã¿ãŸãã Linuxã§ã¯ãUSBã¢ãã ã¯ã¢ãã¬ã¹/ dev / ttyUSB *ã®ããã€ã¹ãšããŠå®çŸ©ãããŸããããã§ã*ã¯ããã€ã¹ã®ã·ãªã¢ã«çªå·ã§ãéåžžãã¢ãã¬ã¹ã¯/ dev / ttyUSB0ã®ããã«ãªããŸãã
root@localhost:/# ls /dev/ttyUSB* ls: cannot access /dev/ttyUSB*: No such file or directory
çãã 圌ãå®çŸ©ãããŠããªãäœãã ãããŠãããã«åé¡ããããŸãïŒãã§ã«1000åè°è«ãããŠããŸãïŒïŒã¢ãã ã¯2ã€ããããã€ã¹ã§ãã ãªãã§ïŒ ã¢ãã èªäœãšãWindowsçšã®ã¢ãã ãã©ã€ããŒãåããå èµãã©ã€ãã®äž¡æ¹ã1ã€ã®ãã©ãã·ã¥ãã©ã€ãã«çµ±åããŸãïŒã«ãŒããªãŒããŒã«ã€ããŠã¯äœãèšããŸããïŒã Linuxã§ã¯ãããã©ã«ãã§ã¯ãã¢ãã ã¢ãŒãã§ã¯ãªããã©ã€ãã¢ãŒãããªã³ã«ãªã£ãŠããŸãã¢ãã ã¢ãŒããæå¹ã«ããã«ã¯ãusb-modeswitchããã±ãŒãžãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ãã®åŸãudevãåèµ·åïŒservice udev restartïŒããŠã¢ãã ãåæ¥ç¶ãã10ç§åŸ ã£ãŠããå床ã³ãã³ããå®è¡ããŠã¢ãã ããã€ã¹ã®ãªã¹ãã衚瀺ããå¿ èŠããããŸãã
root@localhost:/# ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
çµè«ããã®ããã«ãªã£ããããã¹ãŠãæ£åžžã§ãããå ã«é²ãããšãã§ããŸãã 3ã€ã®ããã€ã¹ããããŸãã å¿ èŠãªãã®ã¯1ã€ã ãã§ã-çªå·0ã§ã¯ãä»ã®2ã€ã¯äœ¿çšããŸãã-ãããã¯ç§ãã¡ã®ç®çã§ã¯ãããŸããã ç§ã®ç¥ãéãããã®ãã¡ã®1ã€ã¯SMSã®éä¿¡ã«äœ¿çšãããå¯èœæ§ãé«ãã2ã€ç®ã¯ãããã¯ãŒã¯ã®ä¿¡å·ã¬ãã«ãªã©ã衚瀺ããããã«äœ¿çšãããŸãã
ä»ãç§ãã¡ãã€ãªãããã°ã©ã 次第ã§ãã wvdialããã°ã©ã ã䜿çšããŸããããã«ãpppããã±ãŒãžããŸã ã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
å€ãã®äººãwvdialconfããã°ã©ã ã䜿çšããŠæ¥ç¶ãæ§æããããšãå§ããŠããŸããããã®å Žåã¯åœ¹ã«ç«ã¡ãŸããã ã€ã³ã¹ããŒã«åŸã/ etc / wvdial.confãã¡ã€ã«ãç·šéããå¿ èŠããããŸãã ãã¹ãŠã®ã³ã³ãã³ããæ¶å»ãããã¡ã€ã«åœ¢åŒãç解ããŸãã OKarte InternetsdatorÄé¢çšãšHuawei E173ã¢ãã ãåããLMTãããã€ããŒãšãäžæãªé¢çšãšHuawei E1550ã¢ãã ãåããBiteã®äœæ¥æ§æãæäŸããŸããapt-get install ppp wvdial
[Dialer lmt] Init1 = AT Init2 = AT&FE0V1X1&D2&C1S0=0 #Init3 = AT+CPIN="1219" Init4 = AT+CGDCONT=1,"IP","internet.lmt.lv" Phone = *99# ISDN = 0 Username = { } Password = { } Ask Password = 0 Modem = /dev/ttyUSB0 PPPD Options = noauth crtcts multilink usepeerdns lock defaultroute nobsdcomp nodeflate refuse-pap refuse-eap refuse-chap refuse-mschap +chap Idle Seconds = 3000 Modem Type = USB Modem Compuserve = 0 Auto DNS = 1 Dial Command = ATD Stupid Mode = 1 FlowControl = NOFLOW [Dialer bite] Init1 = AT Init2 = AT&FE0V1X1&D2&C1S0=0 #Init3 = AT+CPIN="1219" Init4 = AT+CGDCONT=1,"IP","internet" Phone = *99# ISDN = 0 Username = { } Password = { } Ask Password = 0 Modem = /dev/ttyUSB0 PPPD Options = noauth crtcts multilink usepeerdns lock defaultroute nobsdcomp nodeflate refuse-pap refuse-eap refuse-chap refuse-mschap +chap Idle Seconds = 3000 Modem Type = USB Modem Compuserve = 0 Auto DNS = 1 Dial Command = ATD Stupid Mode = 1 FlowControl = NOFLOW
èŠããã«ããã¡ã€ã«ã¯ã»ã¯ã·ã§ã³ã«åå²ãããŸãã åã»ã¯ã·ã§ã³ã¯ã1ã€ã®ã¢ãã ãããã€ããŒã®çµã¿åãããæ åœããŸãã ã»ã¯ã·ã§ã³ã®å é ã¯ãã©ãã«[Dialer xxx]ã§ç€ºãããŸããxxxã¯ãæ¥ç¶ã«å¿ èŠãªèšå®ã瀺ãã©ãã«ã®ååã§ãã LMTèšå®ãå¿ èŠãªå Žåã¯ãwvdial lmtã³ãã³ããå ¥åãã[Dialer lmt]ã»ã¯ã·ã§ã³ã®èšå®ã䜿çšããŸã-æ¬è³ªã¯æ確ã§ãã ãããã®èšå®ããã次ã®ããšã«æ³šæããå¿ èŠããããŸãã
InitX = AT-BLABLABLA
-InitXã®åŸã®ATã³ãã³ã-æ¥ç¶ã確ç«ããåã«wvdialãã¢ãã ã«éä¿¡ããã³ãã³ãã
#Init3 = AT+CPIN="1219"
-ãã®èšå®ã¯ãæåã«ïŒãåé€ãããšãã¢ãã ã«PINã³ãŒããå ¥åããã³ãã³ããéä¿¡ããŸãã æ£çŽã«èšããšããããç¡å¹ã«ããããšããå§ãããŸã-ç§ã«ãšã£ãŠã¯ãäœããã®çç±ã§ãã®ã³ãã³ããæ£ããæ©èœããŸããã§ããã ã¢ãã ãWindowsã³ã³ãã¥ãŒã¿ãŒã«äžåºŠæ¥ç¶ããã ãã§ãã¢ãã ã«ä»å±ã®ããã°ã©ã ã䜿çšããŠæ¥ç¶ãããšãã«PINã³ãŒãã®å ¥åãç¡å¹ã«ããæ¹ãç°¡åã§ãã
Init4 = AT+CGDCONT=1,"IP","internet"
-ãããã€ããŒããæäŸãããAPNã¢ãã¬ã¹ãããã«å ¥åãããŸãã åŒçšç¬Šã§åºåãããæåŸã®2ã€ã®éšåã«æ³šæããå¿ èŠããããŸãã æåã®-IP-ãããã€ããŒèšå®ãAPNã®IPã¢ãã¬ã¹ã䜿çšãããããšãæå³ããå Žåãæ¥ç¶ããIPã¢ãã¬ã¹ã瀺ããŸãã ãinternetããŸãã¯ãinternet.lmt.lvããšãã圢åŒã®ã¬ã¿ãŒã¢ãã¬ã¹ã䜿çšããå Žåã¯ãæåã®éšåã§ãIPããæ®ãå¿ èŠãããã2çªç®ã®éšåã§ã¯äŸã®ããã«ã¬ã¿ãŒã¢ãã¬ã¹ãèšè¿°ããŸãã
Phone = *99#
-ããŠãããã§ã¯ãã¹ãŠãæšæºã§ã-ã»ãšãã©ãã¹ãŠã®ãããã€ããŒããã®é»è©±çªå·ã䜿çšããŠãããã»ãšãã©ã®å Žåãå€æŽããå¿ èŠã¯ãããŸããã
Username = { } Password = { }
ã€ã³ã¿ãŒãããã«æ¥ç¶ããããã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã ãããã空ã®ãŸãŸã«ãããå Žåã¯ããã©ãŒã {}ã®äžæ¬åŒ§ãããã«æ®ããŸãã ããã§ãªãå Žåã¯ãæ¬åŒ§ãªãã§ååãšãã¹ã¯ãŒããããã«å ¥ããŠãã ããã
Modem = /dev/ttyUSB0
䜿çšããå¿ èŠãããããã€ã¹ã®ååã 99ïŒ ã®ã±ãŒã¹ã§ã¯ãããã ãã§ãã
ä»ã®ã¢ãã ã®å Žåãä»ã®ãã©ã¡ãŒã¿ãŒã¯ç°ãªãå ŽåããããŸãããäžèšã®2ã€ã®çµã¿åããã§ã¯ãã¢ãã ãããã€ããŒã¯ãã¹ãŠåé¡ãªãåäœããŸãã
ããäžåºŠãæ¥ç¶ãæåã§éå§ããæ¹æ³ã«ã€ããŠèª¬æããŸãã 1ã€ã®ã³ãã³ãã§ååã§ã-wvdial xxxãããã§xxxã¯æ§æãã¡ã€ã«ããã®ãããã€ããŒã®ååã§ãïŒç§ã«ãšã£ãŠã¯lmtãŸãã¯biteã®ããããã§ãïŒããã ããwvdialãéå§ããããšãã³ã³ãœãŒã«å šäœããå æãããã³ã³ãœãŒã«ãèµ·åã§ããªããªããŸãã ããã«ãSSHãŠã£ã³ããŠã§wvdialãå®è¡ããããã«ã»ãã·ã§ã³ãäžæãããšãwvdialã¯çµäºããŸãã ã»ãã·ã§ã³ãåžžã«éãããŸãŸã«ããããç»é¢ã䜿çšããå¿ èŠããããŸãããã®å Žåã2ã€ã®åé¡ãéåžžã«å¹æçã«è§£æ±ºã§ããŸãã
çæ³çã«ã¯äœãå¿ èŠã§ããïŒ ãŸãããããã®ããã°ã©ã ãç°¡åãã€ç°¡åã«å®è¡ããæ¹æ³ãåŠã³ãŸãã ç§ã説æããã¹ããŒã ã®äœ¿çšã«ã¯ãããã€ãã®ãã¥ã¢ã³ã¹ããããŸãã
1ïŒæ¥ç¶ã¯æ¯åæåã§éå§ããå¿ èŠããããŸãã
-ã·ã¹ãã æ§æãã¡ã€ã«ãã€ãŸãåã/ etc / network / interfacesããããã«å€æŽããã ãã§ååã§ãïŒ
auto ppp0 iface ppp0 inet wvdial provider lmt # ppp0 # wvdial lmt. , .
ç§ã«ãšã£ãŠããã®æ¹æ³ã¯é©åã§ã¯ãããŸããããããã€ããŒãå€æŽãããªãããã«èšèšãããŠããŸãããä»ã®èª°ãããããå¿ èŠãšããå¯èœæ§ãé«ããªããŸãã ç§ã®çµéšã§ã¯ãudevãèšå®ããã»ãã確å®ã«æ©èœããŸããã ç§ã«ãšã£ãŠã¯ãé©åãªè§£æ±ºçãèŠã€ãããŸããã§ããããã®ãããæ¿å ¥ãããSIMã«ãŒãã®1ã€ãŸãã¯å¥ã®ãããã€ããŒãžã®æå±ãå€æããå¿ èŠããããããã䜿çšãã解決çã¯éåžžã«å°é£ã«ãªããŸãã
ãã°ããããã¢ãã ããããã¯ãŒã¯ããåæãããŠããŠããåžžã«æ¥ç¶ããå¿ èŠãããå Žåã¯ã©ãã§ããããïŒ ããã§ã¯ã次ã®ã¹ã¯ãªããã圹ç«ã¡ãŸãã wvdialãããã»ã¹ã®ãªã¹ãã«ãããã©ããã確èªããããã§ãªãå Žåã¯ãifup ppp0ãå®è¡ããäžèšã®ã€ã³ã¿ãŒãã§ã€ã¹ã®èšå®ãšãšãã«ãwvdialãå床åŒã³åºãå¿ èŠããããŸãã
cronã«èº«ã眮ã
#!/bin/bash # (c)2009 John de Graaff, rewritten by CRImier # This script checks if wvdial is running. # If it's not, it brings ppp0 up and down. # It is assumed that ifup ppp0 starts wvdial if test "$(pidof wvdial)" != "" ; then exit 0 else logger "wvdial not running. Better restart ppp0." /sbin/ifdown ppp0 sleep 2 /sbin/ifup ppp0 logger "ppp0 restarted." exit 0
2ïŒã©ãããããã®é»æºãå ¥ãããšãã«ãã·ã¹ãã ã®èµ·åäžã«ã¢ãã ãæ¥ç¶ãããŠããå ŽåãããªãŒãºãçºçããããšããããŸããããã¯ã次ã®ããã«è¡šãããŸãã
--> Cannot open /dev/ttyUSB0: Device or resource busy
ãæ¥ç¶ã§ããŸããã äžåºŠã ãåŠçãããŸã-ã¢ãã ã®ãã©ã°ãæãå·®ãããã ãã§ãæåã§æ¥ç¶ãéå§ããå¿ èŠããããŸãããã³ã³ãã¥ãŒã¿ãŒãžã®ç©ççãªã¢ã¯ã»ã¹ããªãå Žåããã®ã¿ã¹ã¯ã¯äžå¯èœãªã»ã©è€éã§ãã
-ä»ã®ãšãããç§èªèº«ã¯ãŸã ãããåãäžããŠããªããããéåžžã®è§£æ±ºçãæäŸããããšã¯ã§ããŸããã ããã¯ãã·ã¹ãã ã®èµ·åæã«ã¢ãã ãã³ã³ãã¥ãŒã¿ã«æ¿å ¥ãããŠããå Žåãusb-modeswitchããã°ã©ã ãæ£ããåäœããªããããšèããããŠããŸãã æããã«ãudevãæãäžããããusb-modeswitchã®ç¹å¥ãªãã©ã¡ãŒã¿ãŒãæå®ããå¿ èŠããããŸãã
3ïŒåä¿¡ç¶æ ãæªãå Žåãæ¥ç¶ã¯ãã°ãã°åæãããŸã
-ãšãŠãç°¡åã§ãã å®éã®ãšãããUSBããŒãã«ã¯åºåé»æµã«å¶éãããããããè¶ ãããšãèŠããŠããéããããŒãã¯åæãããŸãã ã©ãããããããã¯ãŒã¯ä¿¡å·ã®åä¿¡ç¶æ ãæªãç¶æ³ã§ã¯ãã¢ãã ã¯åä¿¡æ©ãšéä¿¡æ©ã®é»åãäžããããšããŠããŸãããã¢ãã ã¯ããŒããèããããšãã§ãããããå€ãã®é»æµãæ¶è²»ãå§ããŸã-ããŒãããªãã«ãªããã¢ãã ããªãã«ãªããæ¥ç¶ãæ°žä¹ ã«åæãããŸã ããšãã°ãåã«å€éšé»æºãåããUSBããã䜿çšããããã¢ãã çšã«å¥ã®é»æºã¢ããã¿ãŒãè³Œå ¥ããŠã±ãŒãã«ã«ã¯ãã ä»ãããã ãã§ãã
4ïŒããã€ã¹ã«ã¢ã¯ã»ã¹ããå¿ èŠãããããŒããå€æŽããæ©èœã
æ¢ã«è¿°ã¹ãããã«ãéåžžãæ§æäžã«1ã€ã®ããã€ã¹ã䜿çšãããŸã-/ dev / ttyUSB0ã ãããã freuserãææããããã«ãããŒããå€æŽãããç¶æ³ããããŸãã äŸïŒ
- 2ã€ã®ã¢ãã ã䜿çšãã
- 1ã€ã®ããŒãããã³ã°ããŸããã€ãŸããã¢ãã ãæ¢ã«åæãããŠããŠããããŒãã¯/ devã®ãŸãŸã§ãã
- ãŸããå¥ã®ããŒããçªç¶å²ãåœãŠãããåæ§ã®äºä»¶ã
ã€ã³ã¿ãŒãããããµãŒããŒã«è¡šç€ºãããåŸã¯ãWi-Fiãããã¯ãŒã¯çµç±ã§ã¢ãã ããã€ã³ã¿ãŒãããã®é ä¿¡ãèšå®ããã ãã§ãã
NAT
ã³ã³ãã¥ãŒã¿ãŒã«2ã€ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãããå Žåãããã¯ããã«ã€ã³ã¿ãŒããããäžæ¹ããä»æ¹ã«å®å šã«é åžã§ããããšãæå³ããŸããã ãã ãããã¹ãŠãããã»ã©è€éãªããã§ã¯ãããŸãããã»ãšãã©ã®å Žåãèšå®ã¯2ã3ã ãã§ãã ãã¡ããããããã®èšå®ã¯åè¡ã®æ¬è³ªãæãäžããããšãªãèŠããã®ã¯å°é£ã§ããããã®èšäºã¯ãã®ããã«ãããŸãïŒ ãã®ç¶æ³ã«æãé©ãããã°ã®ãªãã¹ã¯ãªãããèŠã€ããŸããããã®äžã§èŠã€ãã£ãã¹ã¯ãªããã¯ãç§ãééããã¹ã¯ãªããã®äžã§æãçããŠæ確ã§ããããããªã³ã¯ã匵ããããããŸãã-æ®ãã¯ããã€ãã®iptablesã«ãŒã«ãããã€ãã®ããŒãžã«æ¡åŒµããŸã...ãŸããç§ã®ããŒãºã«åãããŠå€æŽããå¿ èŠããããã®ïŒ
èŠã€ãã£ãã¹ã¯ãªãã
ãã¿ãã¬ïŒ
#!/bin/sh PATH=/usr/sbin:/sbin:/bin:/usr/bin # # delete all existing rules. # iptables -F iptables -t nat -F iptables -t mangle -F iptables -X # Always accept loopback traffic iptables -A INPUT -i lo -j ACCEPT # Allow established connections, and those not coming from the outside iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow outgoing connections from the LAN side. iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT # Masquerade. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # Don't forward from the outside to the inside. iptables -A FORWARD -i eth1 -o eth1 -j REJECT # Enable routing. echo 1 > /proc/sys/net/ipv4/ip_forward
ããŒã ãã®ã¹ã¯ãªããã¯ããå°ãå€ããã®ã§ããiptablesã¯ã³ãã³ãã®1ã€ãèªã£ãŠå®è¡ããããªãã®ã§ãèšäºã§ã¹ã¯ãªãããautoloadã«å ¥ããããšããæ¹æ³ãç§ã®ç·Žç¿ã§ã¯åžžã«æ©èœããŸããã ããã«ãåé¡ããããŸã-ãã®ã¹ã¯ãªããã¯ãäœãå€ãããªãç¶æ³ã«æé©ã§ãã ãã®å Žåã¯ãiptables-persistentã䜿çšããŠèšäºãçµäºããŸãã ããããppp0ã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠãå Žåã«ãã£ãŠã¯eth0ãä»ããŠãæã«ã¯wlan1ãä»ããŠã€ã³ã¿ãŒããããååŸããããšããããŸãããŸãã1ã€ã®ã³ã³ãœãŒã«ã³ãã³ãã§ã€ã³ã¿ãŒãã§ãŒã¹ãå€æŽãããã§ãã ãããã£ãŠããã®äŸã®eth1ã¯å€éšã€ã³ã¿ãŒãã§ã€ã¹ã§ãããeth0ã¯å éšã€ã³ã¿ãŒãã§ã€ã¹ã§ãã å¿ èŠã«å¿ããŠãããã¹ãå šäœãç·šéããã«1è¡ãå€æŽã§ããããã«ãå€æ°ã«çœ®ãæããŸãã ãŸããã³ã³ãã¥ãŒã¿ãŒã®åèµ·åæã«æåŸã«éžæããå€éšã€ã³ã¿ãŒãã§ã€ã¹ãä¿åããå¿ èŠããããŸãã ããã§äœïŒ ãã¹ãŠãå€æŽããå¿ èŠããããŸãïŒ
ã¿ã¹ã¯ïŒ
- æåã®ã³ãã³ãã©ã€ã³åŒæ°ãå€éšã€ã³ã¿ãŒãã§ã€ã¹ã®ååãšããŠåãå ¥ããifconfigã³ãã³ãã䜿çšããŠååãèªèšŒããŸãã
- éžæããã€ã³ã¿ãŒãã§ãŒã¹ã®ä¿åã/ãªã©ã®ãã¡ã€ã«ã«è¿œå ããæåŸã®ã€ã³ã¿ãŒãã§ãŒã¹ãéžæããããã®ããŒãäœæããŸãããŸãã¯ãåŒæ°ãšããŠã€ã³ã¿ãŒãã§ãŒã¹åããªãå Žåã¯ãããè¯ãæ¹æ³ãéžæããŸãã
- èµ·åæããã³$ PATHã§ãã¹ãŠãçŸããè©°ã蟌ãã
æåŸã«äœãåºãŸãããïŒ
#!/bin/bash #NAT script from www.debian-administration.org, modified by CRImier # Exit status 0 if operation is correct # Exit status 1 if trying to use last interface used when running for the first time # Exit status 2 if interface doesn't exist EIF='' IIF='wlan0' PATH=/usr/sbin:/sbin:/bin:/usr/bin LOGFILE=/etc/nat-if.conf touch $LOGFILE # #Checking command-line arguments and setting $EIF variable according to them # if [[ $1 == "" ]] #If there's no arguments, just use previous settings. then EIF=`cat $LOGFILE` if [[ $EIF == "" ]] #Just check for an empty file! then echo "Please, specify interface name for first usage using 'firewall interface', eg 'firewall eth0'" exit 1 fi elif [ $1 == "help" ] #Output help message then echo "NAT script" echo "(c) www.debian-administration.org, modified by CRImier" echo "Usage: 'firewall interface', 'firewall info' or simply 'firewall' to use last interface firewall was set on." echo "Argument is external interface name, internal interface name is hard-coded in the script" exit 0 elif [ $1 == "info" ] #Print interface firewall is set on then cat $LOGFILE exit 0 else ifconfig $1 &>/dev/null if [ $? == 0 ] then #Interface name must be correct as ifconfig gives 0 exit code EIF=$1 echo $EIF > $LOGFILE else echo "Incorrect interface name" exit 2 fi fi # #$EIF is set correctly, let's apply the rules: # iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $EIF -o $IIF -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $IIF -o $EIF -j ACCEPT iptables -t nat -A POSTROUTING -o $EIF -j MASQUERADE iptables -A FORWARD -i $EIF -o $IIF -j REJECT echo 1 > /proc/sys/net/ipv4/ip_forward echo "Firewall started."
ã³ã¡ã³ãã¯è±èªã§æžãããŠããã®ã§ãããç¥ãããŠããŸãã ãªã¯ãšã¹ããããã°ã翻蚳ã§ããŸãã
ããŠãå¿ é ã®éšåãå¿ããªãã§ãã ããïŒ
ããŠãã¹ã¯ãªããã®æºåã¯å®äºã§ãã ç解ã§ããããã«ã4ã€ã®åŒã³åºããªãã·ã§ã³ããããŸã-ãã¡ã€ã¢ãŠã©ãŒã«ïŒæåŸã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšãããïŒããã¡ã€ã¢ãŠã©ãŒã«our_interfaceããã¡ã€ã¢ãŠã©ãŒã«æ å ±ïŒNATãæ§æãããŠããçŸåšã®ã€ã³ã¿ãŒãã§ã€ã¹ã衚瀺ããïŒããŸãã¯ãã¡ã€ã¢ãŠã©ãŒã«ãã«ãã èªåããŒããš$ PATHã®ã¿ãæ®ã£ãŠããŸããchmod +x /etc/init.d/user-autorun
echo $PATH >/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
å Žæãæå®ããã«firewallã³ãã³ãã§ã¹ã¯ãªãããåŒã³åºãã«ã¯ãPATHã§æå®ããããã©ã«ããŒã®ããããã«ã¹ã¯ãªãããè©°ã蟌ãå¿ èŠããããŸãã ç§ã¯å®æçãªçç±ãã/ usr / local / binã奜ã¿ãŸãã ã¹ã¯ãªãããžã®ãã«ãã¹ã¯/ usr / local / bin / firewallã«ãªããŸãããã³ã³ãœãŒã«ããã®åŒã³åºãã¯ãã€ã§ãfirewallã³ãã³ãã§ç°¡åã«è¡ããŸãã
ãªãŒãããŒã
ãããŠä»-ãªãŒãããŒããããã¯ããå°é£ã§ãã ããã«äœããè©°ã蟌ãããšãã§ããèªåããŒãã¹ã¯ãªããã®äœæã«ã€ããŠèª¬æããŸãã ããã¯ã·ã¹ãã ããå§ãŸããŸããnooo ...
èªåèªã¿èŸŒã¿ãã¡ã€ã«ãååŸããŠäœæããããšã¯ã§ããŸããã 1ã€ã®åé¡ããããŸã-Debianã¯ãã°ããã®éãã¹ã¿ãŒãã¢ãããã¡ã€ã«ã®èŠä»¶ãä¿®æ£ããŸããã ãã¡ã€ã«ãäœæããã ãã§ã¯ååã§ã¯ãããŸãããç¹å¥ãªæ¹æ³ã§ãã©ãŒãããããå¿ èŠããããŸãã
- æåã®åé¡ã¯LSBããããŒã§ãã ããã¯ã¹ã¿ãŒãã¢ãããã¡ã€ã«ã®ããããŒã§ãã äžéšã®ã³ã³ããŒãã³ãã¯çžäºã«äŸåããŠãããããèµ·åã³ã³ããŒãã³ãã¯ç¹å®ã®é åºã§å®è¡ããå¿ èŠãããããå¿ èŠã§ãã autoloadã«2ã€ã®ã¹ã¯ãªããããããšããŸãã1ã€ã¯ãããã¯ãŒã¯ãã©ã«ããŒãããŠã³ãããå¿ èŠãããããã1ã€ã¯ãã¡ã€ã«ãããã¯ã¢ããããããã«å¿ èŠã§ãã åœç¶ãæåã¯æåã®ã¿ã¹ã¯ãå®äºãã次ã«2çªç®ã®ã¿ã¹ã¯ãå®äºããå¿ èŠããããŸãã ãã®ãããªäŸåé¢ä¿ã瀺ãããã«ãããŒããã¡ã€ã«ã®ããããŒã䜿çšãããŸãã ãã ãããµã³ãã«ã®ã¹ã¿ãŒãã¢ãããã¡ã€ã«ã«å ¥ããã¿ã€ãã«ã§ååã§ãã
- 2çªç®ã®åé¡ã¯ãã·ã¹ãã ã®èµ·åæã«èµ·åäžã®ã¹ã¯ãªãããã³ãã³ã/etc/init.d/scriptstartã§åŒã³åºãããã³ã³ãã¥ãŒã¿ãŒã®é»æºããªãã«ãªããšã³ãã³ã/etc/init.d/scriptstopã§åŒã³åºãããããšã§ãã ãããã®ã±ãŒã¹ãåŠçããããã®æ¡ä»¶ãè¿œå ããå¿ èŠããããŸãã
#!/bin/sh ### BEGIN INIT INFO # Provides: firewall # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # X-Interactive: false # Short-Description: Start user autorun events ### END INIT INFO case "$1" in start) echo "Starting user autorun events" /usr/local/bin/firewall # , ;; stop) echo "Stopping user autorun events" # , # NAT ;; *) echo "Usage: /etc/init.d/user-autorun {start|stop}" exit 1 ;; esac exit 0
ç¹°ãè¿ããŸãããå®è¡æš©ãäžããŸãã
ã¹ã¿ãŒãã¢ãããã¡ã€ã«ã§ã¯ãå®è¡å¯èœãã¡ã€ã«ãžã®ãã«ãã¹ãæå®ããããšããå§ãããŸããããããªããšãããŒãæã«ãfirewallïŒcommand not foundããªã©ã®åé¡ãçºçããããšããããŸããchmod +x /etc/init.d/user-autorun
ãã®ãã¡ã€ã«ã/etc/init.d/ãã©ã«ããŒã«é 眮ããŸãã ã¹ã¿ãŒãã¢ãããã¡ã€ã«ãžã®ãã«ãã¹ã¯/etc/init.d/user-autorunã§ãã ãã®ãã¡ã€ã«ãããŒãæã«å®è¡ãããã¹ãã§ããããšãã·ã¹ãã ã«ç€ºãããã ãã«æ®ããŸãïŒ
ãã®ã³ãã³ãã¯åæã«ãã¹ã¯ãªããã®ã¿ã€ãã«ãå¿ èŠãªãã®ãšäžèŽãããã©ããããã§ãã¯ããŸãããããã£ãŠãããã«åé¡ãããå ŽåãèªåããŒãã«äœãå ¥ããããããšã©ãŒã«å¯ŸåŠããå¿ èŠããããŸãã ãã¹ãŠãã¹ã¿ãŒãã¢ããã¹ã¯ãªããã¯åäœããæºåãã§ããŠãããã·ã¹ãã ãèµ·åãããã³ã«å®è¡ãããã«ãŒãã£ã³ã°ã¹ã¯ãªãããéå§ããŸãã ãã¡ããããã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ãã¹ã¯ãªããèªäœããªã/ãªã³ã«ããããšãé€ããŠãã€ã³ã¿ãŒããããžã®ãŠãŒã¶ãŒã¢ã¯ã»ã¹ãäœããã®æ¹æ³ã§å¶åŸ¡ã§ããªããªã©ã®æ¬ ç¹ããããŸãããããŒã¿ãã«ãµãŒããŒãš1ã€ã®å·šå€§ãªãµãŒããŒã®å Žåãå¹²æžãªãã§å®å®ããŠããã代æ¿ã·ã¹ãã ããŒãºãæ€èšããæéã¯ãŸã ãããŸããupdate-rc.d user-autorun defaults
çŽ æµãªèšå®ãããŠãã ããïŒ
次ã®èšäºã¯ãããããweb.pyã䜿çšããŠç°¡åãªPython Webã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããšã«ã€ããŠã§ãã ãã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãNATã®ç®¡çïŒèšè¿°ãããã¹ã¯ãªããã®æ©èœãè¶ ããããšã¯ã§ããŸãããïŒãwvdialã®ãªã³/ãªããSMSã®éä¿¡ãã¢ãã ã®ã¹ããŒã¿ã¹ã®è¡šç€ºãªã©ãå¯èœã«ãªããŸãã ãããŸã§ã®ãšãããã¢ãã ãšããåãããã¢ãã€ã«ããã€ã¹äžã§ã䜿ããããããã«ã€ã³ã¿ãŒãã§ã€ã¹ãæ€èšããããã®ã¹ã¯ãªãããæžããŠããŸãã ãŸããåšåº«ã«ã¯ãcpufreqdã䜿çšããŠã©ãããããã®çãšãèšå®ãã»ããã¢ããããããã®ã»ãŒæ¢è£œã®èšäºããããŸãã ãããåºããããšã¯äŸ¡å€ããããŸããïŒ