ããã«ã¡ã¯HabrïŒ å°ãåãŸã§ãç§ãã¡ã®çµç¹ã¯Wi-Fiã¢ã¯ã»ã¹ãåæ³åãããšãã課é¡ã«çŽé¢ããŠããŸããããå°æ¥çã«ã¯ã·ã¹ãã ã®äœ¿çšã¯ç¡æã«ãªããŸããã ïŒ2014幎7æ31æ¥ã®æ¿åºæ±ºå®ç¬¬758å·ããã³2014幎8æ12æ¥ã®ç¬¬801å·ã«ããã°ããã¹ãŠã®ãããªãã¯WIFIãããã¯ãŒã¯ã¯ãŠãŒã¶ãŒãèªèšŒããå¿
èŠããããŸãïŒã ã€ãã³ãã«ã¯10ââã®ããŒã«ïŒ30ã400人ïŒãããã1æ¥ãããå¹³å4ã12ãã¹ã«å ããŠãäžå®ã®äººãšæ°ãŸãããªãŠãŒã¶ãŒã®æµãããããŸãã
ãŸãããããã¯ãŒã¯ãã©ã®ããã«æ§æãããŠãããã説æããŸãã 詳现ã«å
¥ãããšãªããHP MSM430ã¢ã¯ã»ã¹ãã€ã³ãïŒJ9651ïŒãHP MSM760ïŒJ9420AïŒããã³HP F1000-EIã²ãŒããŠã§ã€ïŒJG214AïŒãä»ããå¶åŸ¡ããã³ã°ã¢ããããŸãã æ©åšã®éžæã¯æåããŸããããç§ãã¡ã¯æã£ãŠãããã®ã䜿ã£ãŠäœæ¥ããŸãã
人çã§ç§ã¯Windowsã·ã¹ãã ã«ãã£ãšå€¢äžã«ãªããŸããããä»äºãåããŠãããããã®èšäºãèªãã§ã* nixã·ã¹ãã ãããã«æé©ã§ãããšããçµè«ã«éããŸããã éžæã¯UbuntuãµãŒããŒ16.04ã§è¡ãããŸããã ãã®åŸãæ°æ¥éã®èŠãã¿ããããŸããããæçµçã«ã¯ãã¹ãŠãããŸããããŸããã
ãã®èšäºã¯ãWindowsãæããUbuntuãèŠãŠãäžãããœãããŠã§ã¢ãã€ã³ã¹ããŒã«ãã人ã察象ãšããŠããŸãã
ãã¹ãŠãæŽçããããšã«ããã®ã§ïŒ
ãªãŒãã³ãªãããã¯ãŒã¯ããããŸããç¡æãšåŒã³ãŸãããã æ¥ç¶ãããšããŠãŒã¶ãŒã¯èªèšŒããŒãžã§ãããã¹ãããã«ãªãã€ã¬ã¯ããããŸãã ããã§åœŒã¯ãã€ã³ã¿ãŒããããžã®ã¢ã¯ã»ã¹ã³ãŒããšãã¡ãã»ãŒãžã®éä¿¡å
ã®é»è©±çªå·ãäžããããŸãïŒå°ãå€ãã£ãŠããŸãããã¿ã¹ã¯ã¯SMSãå«ããŠä¿åããããšã§ããïŒã ã¡ãã»ãŒãžãå°çãããšããã«ãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãããã«éããŸãã äºçŽããŸããå·Šã®çªå·ãæå®ããã«ãµã€ãããSMSãéä¿¡ããæ©èœãèŠã€ããããªãã£ããããMTSãšã¢ãã ã®çªå·ïŒåºåã§ã¯ãªãïŒã䜿çšããããšããå§ãããŸãïŒããã¯åé¡ã§ããã解決äžã§ãïŒã
å¿
èŠãªãã®ïŒ
- Ubuntu Server 16.04ã®éЬ
- ééã¢ãŒãã®Squidãããã·
- MysqlïŒMariaDBïŒ
- Nginx
- PHP FPM
- USBãªãã€ã¬ã¯ã¿ïŒHyperVã®ä»®æ³ãã·ã³ïŒ
- ã¢ãã Huawei E153 MTS
- SMSãèªãããã®SMSããŒã«
- ãªã©ãªã©ã ãªã©ãªã©ã
å§ããŸãããã
Ubuntu Server 16.04ãã€ã³ã¹ããŒã«ããŸã
ããã«ãããã®ã¯ãã¹ãŠéåžžã«ãããµãããã®ã§ãã
- ä»®æ³ãã·ã³ãäœæããŸãïŒ2ã³ã¢ã4 GBã®ã¡ã¢ãªã2ã€ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã30 GBã®ãã£ã¹ã¯ïŒ
- ææ°ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããæ¥ç¶ããã€ã³ã¹ããŒã«ããŸã...
- ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãèšå®ããŸãã1ã€ã¯vlanãããã¯ãŒã¯wifiã§ã2ã€ç®ã¯ã²ãŒããŠã§ã€ã«åãã£ãŠããŸã
ãããã¯ãŒã¯èšå®ãšãã±ãã転é
䜿çšããŠãããããã¯ãŒã¯ã«ãŒããšããããã«å²ãåœãŠãããŠããè«çåã確èªããŸãã
cat /proc/net/dev
ç§ã®å Žåããããã¯eth0ãšeth1ã§ãã
Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 632643353 3624368 0 0 0 0 0 0 632643353 3624368 0 0 0 0 0 0 eth1: 8789521059 30492824 0 0 0 0 0 0 65843784529 28992970 0 0 0 0 0 0 eth0: 65798728800 56063700 0 0 0 0 0 0 8382628950 29920038 0 0 0 0 0 0
ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãæ§æããããã®ãã¡ã€ã«ãç·šéããŸãã
nano /etc/network/interfaces
auto eth0 iface eth0 inet static
ã·ã¹ãã ã«å®éã«IPv6ã€ã³ã¿ãŒãã§ã€ã¹ãããããšã確èªããŸãã
ip a | grep inet
ãŸããIPv6ã€ã³ã¿ãŒãã§ãŒã¹ã§TCPãªã¹ããŒããã³ã°ããŠããã¢ããªã±ãŒã·ã§ã³ããããŸãã æ¬¡ã®ã³ãã³ãã䜿çšããŠãã·ã¹ãã ã§ãªãã¹ã³ãããŠãããã¹ãŠã®ããŒãã衚瀺ã§ããŸãã
sudo ss -lnptu | sort
ãã¹ãŠã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã§IPv6ãµããŒããäžåºŠã«ç¡å¹ã«ããã«ã¯ãsysctl.confãã¡ã€ã«ãéããŠç·šéããŸã
sudo nano -Y sh /etc/sysctl.conf
ãã¡ã€ã«ã®æåŸã«ã転éãæå¹ã«ããŠIPv6ãç¡å¹ã«ããè¡ã远å ããŸãã
net.ipv4.ip_forward=1 net.ipv6.conf.all.disable_ipv6 = 1
ããŒãæã«sysctlããªãã·ã§ã³ãèªã¿åããããšã確èªããã«ã¯ã次ãå®è¡ããŸãïŒ
sudo sysctl -p
/etc/init.d/networking restart
MySQLã®ã€ã³ã¹ããŒã«
ããŒã¿ããŒã¹ãµãŒããŒãšããŠãMaridDBãéžæããŸããã æ©èœæ§ã®é¢ã§ã¯ãMySQLã¯ããã€ãã®ç¹ã§ããã«åªããŠããŸããããã®èšäºã¯ããã«ã€ããŠã§ã¯ãããŸããã
apt-get install mariadb-server
ãã¹ãŠãé 調ã«èµ·åãããã©ããã確èªããŸãã
service mysql status
SSLã䜿çšããŠSquidãã€ã³ã¹ããŒã«ããIPv6ãç¡å¹ã«ãã
ãããã·ã®æ§ç¯ããã³ã€ã³ã¹ããŒã«æ¹æ³ã«é¢ããèšäºã¯å€æ°ãããŸããããã®æ®µéã¯ããããæãéå±ãªãã®ã§ããã ããã©ã«ãã§ã¯ãubuntuãªããžããªã«ã¯SSLãµããŒããªãã®Squidãå«ãŸããŠããŸãã åæ§ç¯ããããšã決ããã®ã§ã2æ¥ãçµéããŸãã...ãã®çµæãx64ã§ææ°ããŒãžã§ã³3.5.20ãã¢ã»ã³ãã«ããæ¹æ³ã«é¢ããããã¥ã¢ã«ãå
¥æããŸããã
ã¢ã»ã³ããªã«å¿
èŠãªãœãããŠã§ã¢ãé
眮ããŸãã
apt-get install git fakeroot checkinstall build-essential devscripts patch libssl-dev libgnutls28-dev apt-cache policy squid3 apt-get update apt-get build-dep squid3
ãœãŒã¹ãªããžããªã«ã³ã¡ã³ãããŠãæ°ãããªããžããªã远å ããŸãããã
nano /etc/apt/sources.list deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
æ°ãããªããžããªã¯ããŒãèªãã®ã§ãããã«ããããååŸããŸãã
gpg --keyserver keyserver.ubuntu.com --recv 8B48AD6246925553 gpg --export --armor 8B48AD6246925553 | sudo apt-key add - gpg --keyserver keyserver.ubuntu.com --recv 7638D0442B90D010 gpg --export --armor 7638D0442B90D010 | sudo apt-key add -
ãªããžããªæ
å ±ãæŽæ°ããããšãå¿ããªãã§ãã ããïŒ
apt-get update
äœæ¥ãã©ã«ããŒãä¹±éã«ããªãããã«ãtmpã«ç§»åããdebianã§ã®ã¢ã»ã³ããªã®ã«ãŒã«ã䜿çšããŠææ°ããŒãžã§ã³ã®squidããã¹ãããŠããŠã³ããŒãããŸã
cd /tmp/ apt-get source squid3
çŸåšã®ããŒãžã§ã³3.5.19ãææ°ã®3.5.21ã«æŽæ°
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.21.tar.gz tar -xf squid-3.5.21.tar.gz mkdir ./squid-3.5.21/debian/ cp -r ./squid3-3.5.19/debian/* ./squid-3.5.21/debian/ cd squid-3.5.21/ nano debian/rules
è¡ã远å ããŸãïŒopenssl.cnfãžã®ãã¹ãæå®ããããšãå¿ããªãã§ãã ããã/ etc / sslããããŸãïŒ
--disable-ipv6 \ --enable-icap-client \ --enable-ssl-crtd \ --with-openssl=/etc/ssl \
ãšã©ãŒïŒãã°å
ã®äžå®ã®ã¡ãã»ãŒãžïŒã»ãã¥ãªãã£ã¢ã©ãŒãïŒããŒã«ã«ããããŒã§åœé ãæ€åºãããŸãã= ...ïŒ443ãªã¢ãŒã= ...ïŒ*ïŒãä¿®æ£ãããã¹ãŠã®ã»ãã¥ãªãã£ãªã¹ã¯ãè©äŸ¡ããŸãã ïŒèšäºã§ã¯ããŒãžã§ã³3.5.12ã«ã€ããŠèª¬æããŠããŸãããã³ãŒãã¯ããã§å°ã倿ŽãããŠããŸãïŒã
nano ./src/client_side_request.cc
hostHeaderIpVerify颿°ãæ¢ããŠããããã®ã³ãŒãããããã«å€æŽããŠããŸãã
void ClientRequestContext::hostHeaderIpVerify(const ipcache_addrs* ia, const DnsLookupDetails &dns) { Comm::ConnectionPointer clientConn = http->getConn()->clientConnection;
ãããã確èªããŠåéããŸãïŒçŽ10ã15ååŸ
ã¡ãŸãïŒ
dpkg-source --commit
åéããããã±ãŒãžã確èªããŸãã
ls -l /tmp/ | grep .deb$
ããã±ãŒãžããªãå Žåã¯ããã©ã«ããŒã確èªããŠãã ãã
ls -l /tmp/squid3-3.5.19/ | grep .deb$
Squidã®ã€ã³ã¹ããŒã«ãéå§ããŸãã
apt-get install squid-langpack libdbi-perl dpkg -i squid-common_3.5.19-1_all.deb dpkg -i squid_3.5.19-1_amd64.deb dpkg -i squid3_3.5.19-1_all.deb dpkg -i squidclient_3.5.19-1_amd64.deb
äœããã®çç±ã§ã€ã³ã¹ããŒã©ãŒããã³ã°ããå Žåãããã¯ããªã»ããããŸãã
fuser -vki /var/lib/dpkg/lock
å®è¡ããŠã¹ããŒã¿ã¹ã確èªãã
service squid start systemctl status -l squid
å¿çã§åæ§ã®ãã®ã衚瀺ãããã¯ãã§ã
squid.service - LSB: Squid HTTP Proxy version 3.x Loaded: loaded (/etc/init.d/squid; bad; vendor preset: enabled) Active: active (running)
Squidã®ã€ã³ã¹ããŒã«æžã¿ããŒãžã§ã³ã®ç¢ºèª
/usr/sbin/squid -v Squid Cache: Version 3.5.21 Service Name: squid Ubuntu linux
ãããã»ããã¢ããããŠãæåã«SSLèšŒææžãäœæããããã©ã«ãã®èšå®ãä¿åããŸãããïŒ
cd /etc/squid openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem mv ./squid.conf ./squid.conf.default nano ./squid.conf
æ§æãã¡ã€ã«ã
èšäºããã»ãšãã©å€æŽãããŠããŸããã
acl localnet src 10.0.80.0/21 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT dns_nameservers 10.66.66.1 http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost http_access deny all #http_port 3128 # intercept http_port 10.0.87.254:3128 intercept options=NO_SSLv3:NO_SSLv2 # , # , , , # , , # , =) http_port 10.0.87.254:3130 options=NO_SSLv3:NO_SSLv2 # , HTTPS https_port 10.0.87.254:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem always_direct allow all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER # ( .domain.com) acl blocked ssl::server_name "/etc/squid/blocked_https.txt" acl step1 at_step SslBump1 ssl_bump peek step1 # , ssl_bump terminate blocked ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 cache_dir aufs /var/spool/squid 2048 49 256 maximum_object_size 61440 KB minimum_object_size 3 KB cache_swap_low 90 cache_swap_high 95 maximum_object_size_in_memory 512 KB memory_replacement_policy lru #logfile_rotate 31 logfile_daemon /usr/lib/squid/log_db_daemon access_log daemon:/127.0.0.1:3306/base/table/user/password squid
ãããã¯ããããªãœãŒã¹ã®ãªã¹ããå«ããã¡ã€ã«ãäœæãã
nano ./blocked_https.txt
ããŒã¿ããŒã¹ã«ãã°ãæžã蟌ãããšã«æ³šæããŠãã ããã ãããè¡ãã«ã¯ãããŒãã«ãäœæããŸãã
CREATE TABLE `access_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_since_epoch` decimal(15,3) DEFAULT NULL, `time_response` int(11) DEFAULT NULL, `ip_client` char(15) DEFAULT NULL, `ip_server` char(15) DEFAULT NULL, `http_status_code` varchar(10) DEFAULT NULL, `http_reply_size` int(11) DEFAULT NULL, `http_method` varchar(20) DEFAULT NULL, `http_url` varchar(500) DEFAULT NULL, `http_username` varchar(20) DEFAULT NULL, `http_mime_type` varchar(50) DEFAULT NULL, `squid_request_status` varchar(50) DEFAULT NULL, `squid_hier_status` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
å®è¡ããŠã¹ããŒã¿ã¹ã確èªãã
service squid start systemctl status -l squid
å¿çã§åæ§ã®ãã®ã衚瀺ãããã¯ãã§ã
squid.service - LSB: Squid HTTP Proxy version 3.x Loaded: loaded (/etc/init.d/squid; bad; vendor preset: enabled) Active: active (running)
䜿çšãããŠããããŒããšã€ã³ã¹ããŒã«ãããŠããsquidã®ããŒãžã§ã³ã確èªãã
sudo ss -lnptu | grep :3128 sudo ss -lnptu | grep :3129 sudo ss -lnptu | grep :3130 squid -version Squid Cache: Version 3.5.20
USBãªãã€ã¬ã¯ã¿ãŒãšã¢ãã ãå
¥ããŸã
ã¯ã©ã¹ã¿ãŒã¯HyperV 2012R2ã§äœ¿çšããããããåé¡ãçºçããŸããã€ãŸããã¢ãã ãã©ã®ããã«æ¥ç¶ããã®ããšããããšã§ãã ç§ãã¡ã®çµç¹ã§ã¯ã
USB-Redirectorãéåžžã«ãã䜿çšããŠã
ãŸã ã Ubuntuã®äžã«çœ®ããŸã
cd /tmp/ wget http://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz tar -xf usb-redirector-linux-x86_64.tar.gz ./usb-redirector-linux-x86_64/installer.sh install-client
ã¢ãã ãæ¥ç¶ãããŠãããµãŒããŒã«æ¥ç¶ããŸã
usbclnt -addserver 10.XXX:32032 usbclnt -autoconnect on 1
ãã¹ãŠã®USBããã€ã¹ã®ãªã¹ããåç
§ããŠãã ãã
usbclnt -l ================= USB CLIENT OPERATION SUCCESSFUL =============== List of USB servers and devices: 1: USB server at 10.XXX:32032 Mode: auto-connect Status: connected - 7: HUAWEI Mobile Vid: 12d1 Pid: 1001 Port: 3-2 Mode: manual-connect Status: disconnected
ã¢ãã ãã©ã€ããŒãã€ã³ã¹ããŒã«ãã
apt-get install usb-modeswitch usb-modeswitch-data
æ¥ç¶ããã¢ãã ãã€ã³ã¹ããŒã«ãããŠãããã©ããã確èªããŸã
usbclnt -connect 1-7 ls /dev | grep ttyUSB
å¿çã§ã¯æ¬¡ã®ããã«è¡šç€ºãããŸã
ttyUSB0 ttyUSB1 ttyUSB2
USBããã€ã¹ãã¢ãã ã¢ãŒãã«åãæ¿ããå¿
èŠããããŸããããã«ã¯ãminiconããã°ã©ã ãé
眮ããŸãã
apt-get install minicom
ã»ããã¢ãããéå§ããŸãã
minicom -s
ãã·ãªã¢ã«ããŒããèšå®ããéžæãããã·ãªã¢ã«ããŒããã®é
ç®ã«put / dev / ttyUSB0
èšå®ã§ä»ã®å€æŽã¯è¡ããŸããã æ¬¡ã®atã³ãã³ãã¯ãHuaweiã¢ãã ã®åäœã¢ãŒããåãæ¿ããããã«äœ¿çšãããŸãã
AT ^ U2DIAG = 0-ã¢ãã å°çšã¢ãŒãã®ããã€ã¹
AT ^ U2DIAG = 1ã¢ãã ã¢ãŒãã®ããã€ã¹+ CD-ROM
AT ^ U2DIAG = 255ã¢ãã ã¢ãŒãã®ããã€ã¹+ CD-ROM +ã«ãŒããªãŒããŒ
AT ^ U2DIAG = 256ã¢ãã ããã€ã¹+ã«ãŒããªãŒããŒ
ã¢ãã ã®ã¿ã®ã¢ãŒãããªã³ã«ããŸãã
AT ^ U2DIAG = 0
å¿çãšããŠããOKããååŸããŸãã ããã°ã©ã ãçµäºããŸãããã®ããã«ã¯ãCtrl + Aããã³QãæŒããŸãã
SMSããŒã«ãã€ã³ã¹ããŒã«ãã
ããã±ãŒãžã«é¢ããæ
å ±ã¯
ãéçºè
ã®
Webãµã€ãã§èŠã€ããããšãã§ããŸãã
ã€ã³ã¹ããŒã«ãšæ§æïŒ
apt-get install smstools nano /etc/smsd.conf
è¡[GSM1]ãèŠã€ããŸã
[GSM1] device = /dev/ttyUSB0 incoming = yes baudrate = 9600 eventhandler = /var/www/sms_recieve.php
åä¿¡SMSãã³ãã©ãã¡ã€ã«ãäœæããå®è¡å¯èœã«ããŸã
nano /var/www/sms_recieve.php chmod 755 /var/www/sms_recieve.php service smstools restart
DHCPãµãŒããŒãæ§æãã
apt-get install isc-dhcp-server nano /etc/default/isc-dhcp-server
Nginxããã³PHP 5.6 FPMã®æ§æ
phpã¯ããŒãžã§ã³7ã«æŽæ°ãããŠãããphp7ã¯ãã¹ãŠã®ubuntuãªããžããªã«æ¢ã«ãããããæ°ãããªããžããªã远å ããŠèšå®ããŸãã
add-apt-repository ppa:ondrej/php apt-get install php5.6-cli php5.6-common php5.6-mysql php5.6-gd php5.6-fpm php5.6-cgi php-pear
ã€ã³ã¹ããŒã«ããããµãŒãã¹ã忢ããæ§æãã¡ã€ã«ãç·šéããŸã
service php5.6-fpm stop nano /etc/php/5.6/fpm/php.ini cgi.fix_pathinfo = 0 post_max_size = 200M upload_max_filesize = 200M nano /etc/php/5.6/fpm/pool.d/www.conf security.limit_extensions = .php .php3 .php4 .php5 listen = /run/php/php5.6-fpm.sock listen.owner = www-data listen.group = www-data listen.mode = 0660 service php5.6-fpm start
ãœã±ããã®ã¢ã¯ã»ã¹æš©ãæ£ããèšå®ãããŠããããšã確èªã§ããŸãã
ls -la /run/php/php5.6-fpm.sock
ç§ãã¡ã¯ãã§ãã¯ããŸãïŒ
php -v PHP 5.6.23-2+deb.sury.org~xenial+1 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Nginxã«ç§»å
apt-get install nginx nginx-extras
åºæ¬çãªNginxèšå®ã¯/etc/nginx/nginx.confãã¡ã€ã«ã«ä¿åãããŸãã
åºæ¬ãµã€ãã®èšå®ã¯ããã¡ã€ã«/ etc / nginx / sites-available / defaultã«ä¿åãããŸãã
ãµã€ãã®åºæ¬èšå®ãã¡ã€ã«ã/ etc / nginx / sites-available /ãã©ã«ããŒã«é
眮ãããã®ãã¡ã€ã«ãžã®ã·ã³ããªãã¯ãªã³ã¯ã/ etc / nginx / sites-enabled /ãã©ã«ããŒã«è¿œå ããŠå«ããã®ãäžè¬çã§ãã
touch /etc/nginx/sites-available/hotspot.domain.com ln -s /etc/nginx/sites-available/hotspot.domain.com /etc/nginx/sites-enabled/ mkdir /etc/nginx/common
ããã§èª¬æãèŠã€ããããšãã§ããã®ã§ãç§ã¯ããã«ç°¡åã«ãªã
ãŸã ã ã»ãã¥ãªãã£ãå§çž®ããã£ãã·ã¥ãããã³phpã®èšå®ãèšè¿°ããäžè¬çãªãµãŒããŒæ§æãã¡ã€ã«ãäœæããŸãã
touch /etc/nginx/common/upstream nano /etc/nginx/common/upstream upstream php-fpm {
touch /etc/nginx/common/security nano /etc/nginx/common/security add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff";
touch /etc/nginx/common/gzip nano /etc/nginx/common/gzip gzip on; gzip_disable "msie6"; gzip_comp_level 6; gzip_min_length 1100; gzip_buffers 16 8k; gzip_proxied any; gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/javascript application/json application/xml+rss;
touch /etc/nginx/common/php-fpm nano /etc/nginx/common/php-fpm
touch /etc/nginx/common/cache nano /etc/nginx/common/cache location ~* ".+\.(?:ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|css|swf|js|atom|jpe?g|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$" { access_log off; log_not_found off; expires max; }
ç§ã®å Žåããã¡ã€ã³ã®ãããªãã¯ã¯ã€ã«ãã«ãŒãèšŒææžããããŸããã èšŒææžãã¡ã€ã«ãè§£åããã¢ã¯ã»ã¹æš©ãèšå®ããŸã
openssl pkcs12 -in certname.pfx -nocerts -out /etc/nginx/ssl/key.pem -nodes openssl pkcs12 -in certname.pfx -nokeys -out /etc/nginx/ssl/cert.pem openssl rsa -in /etc/nginx/ssl/key.pem -out /etc/nginx/ssl/domain.key cd /etc/nginx/ssl/ chown www-data:www-data domain.key chmod 400 domain.key
touch /etc/nginx/common/ssl nano /etc/nginx/common/ssl ssl_certificate /etc/nginx/ssl/domain.crt; ssl_certificate_key /etc/nginx/ssl/domain.key; ssl_session_timeout 20m;
ãµãŒããŒãæ§æããŸãã
nano /etc/nginx/sites-available/hotspot.domain.com include common/upstream; server { listen 80; server_name hotspot.domain.com; root /var/www; index index.php index.html index.htm; client_max_body_size 200m;
ãããŠãããã©ã«ããµãŒããŒãããªãã€ã¬ã¯ããè¡ããŸãïŒDNSãµãŒããŒãhotspot.domain.comãšããååã解決ããå¿
èŠãããããšãå¿ããªãã§ãã ããïŒã
nano /etc/nginx/sites-available/default server { listen 80 default_server;
phpmyadminãæ§æãã
ããŒã¿ããŒã¹ã®æäœããã䟿å©ã«ããã«ã¯ãphpmyadminãã€ã³ã¹ããŒã«ããŸãã
apt-get install phpmyadmin apt-get install mcrypt php5.6-mcrypt php5.6-mbstring php-gettext
touch /etc/nginx/common/phpmyadmin nano /etc/nginx/common/phpmyadmin location /phpmyadmin { root /usr/share/; index index.htm index.html index.php; location ~ ^/phpmyadmin/(.+.php)$ { try_files $uri = 404; root /usr/share/; fastcgi_pass unix:/run/php/php5.6-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+.(html|ico|xml|css|jpg|png|js|txt|gif|jpeg))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; }
åæ§ã«nginxã«æ¥ç¶ããŸã
nano /etc/nginx/sites-available/hotspot.domain.com include common/phpmyadmin;
åèµ·åãã
service nginx restart service php5.6-fpm restart
iptablesãã¡ã€ã¢ãŠã©ãŒã«ã®æ§æ
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããµãŒããŒãžã®ã¢ã¯ã»ã¹ãå¶éãããããã·ã§ãã©ãã£ãã¯ãã©ããããå¿
èŠããããŸãã éå§ããã«ã¯ãåèµ·ååŸã«ãã¹ãŠã®ã«ãŒã«ã®ä¿åãèšå®ããŸãããã
apt-get install iptables-persistent ipset
ã¿ã¹ã¯ã§ã¯ipsetããŒãã«ãä¿åããå¿
èŠããããããæ¬¡ã®ãã¡ã€ã«ããããã«ä¿®æ£ããŸãã
nano /usr/share/netfilter-persistent/plugins.d/15-ip4tables
ã«ãŒã«ããã¡ã€ã¢ãŠã©ãŒã«ã«ä¿åããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãïŒ
netfilter-persistent save
確ç«ãããæ¥ç¶ãç£èŠããã³ãªã»ããããã«ã¯ãconntrackã䜿çšããŸã
apt-get install conntrack
iptablesã«ãŒã«ãæ§æãã
åé¡ããã£ããããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸã
PHPãªã¯ãšã¹ãåŠçãã¡ã€ã«ãšã¹ã¯ãªãããèšå®ããŸã
ããŒã¿ããŒã¹ã«ããŒãã«ãäœæããŸãã
SET FOREIGN_KEY_CHECKS=0; CREATE TABLE IF NOT EXISTS `mac-auth` ( `mac` char(17) NOT NULL COMMENT ' ', `code` int(6) NOT NULL COMMENT ' ', `phone` varchar(15) NOT NULL DEFAULT '' COMMENT ' ', `updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' ', `created` datetime DEFAULT CURRENT_TIMESTAMP COMMENT ' ', UNIQUE KEY `mac` (`mac`), KEY `code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mac-ip` ( `mac` char(17) NOT NULL COMMENT ' ', `ip` varchar(15) NOT NULL COMMENT 'ip ', `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' ', KEY `mac` (`mac`), KEY `ip` (`ip`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mac-phone` ( `mac` char(17) NOT NULL COMMENT ' ', `phone` varchar(15) NOT NULL COMMENT ' ', `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ' ', KEY `mac` (`mac`), KEY `ip` (`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `mac-ip` ADD CONSTRAINT `mac` FOREIGN KEY (`mac`) REFERENCES `mac-auth` (`mac`) ON DELETE CASCADE ON UPDATE CASCADE; SET FOREIGN_KEY_CHECKS=1;
ã·ã¹ãã ã®å
¥ãå£ã§ããã¹ãŠã®ãµãŒãã¹ã®åäœã確èªããã¹ã¯ãªãããäœæããŸãã
nano /var/www/check_services.sh
èµ·åæš©éãèšå®ãã远å ããŠéå§
chmod 755 /var/www/check_services.sh nano ~/.profile /var/www/check_services.sh
ãããŠä»ãœãŒã¹PHPãã¡ã€ã«ïŒ
nano /var/www/sms_recieve.php
nano /var/www/hotspot/index.php
<?php
nano /var/www/hotspot/connect.php
ããŠãä»åºŠã¯ãiptablesãphpããsudoersã«å¶åŸ¡ããæš©éã远å ããŸã nano /etc/sudoers smsd ALL=(ALL) NOPASSWD: /sbin/ipset smsd ALL=(ALL) NOPASSWD: /sbin/iptables www-data ALL=(ALL) NOPASSWD: /sbin/ipset www-data ALL=(ALL) NOPASSWD: /sbin/iptables smsd ALL=(ALL) NOPASSWD: /usr/sbin/conntrack www-data ALL=(ALL) NOPASSWD: /usr/sbin/conntrack
ããã ãã§ã ãã®ã·ã¹ãã ã¯çŸåš1ãæçšŒåããŠããŸãããé£è¡ã¯æ£åžžã§ãããæž
èŽããããšãããããŸããïŒ