ฉันมีการตั้งค่าเครือข่ายท้องถิ่นด้วย apache2 และ "ชื่อ" ที่ทำงานบน OpenSuse 13.1 Linux
ฉันใช้บริการ "named" เพื่อใช้คอมพิวเตอร์เป็นเซิร์ฟเวอร์โดเมน ฉันตั้งค่าเราเตอร์ของฉันให้ชี้ไปที่คอมพิวเตอร์ของฉันเพื่อค้นหาโดเมนดังนั้นฉันจึงมีโอกาสที่จะเขียนโดเมนจำนวนมากในเครือข่ายของฉันเป็น IP ท้องถิ่นของตนเอง
มันใช้งานได้ดี
ฉันใช้การกำหนดค่าโฮสต์เสมือนเพื่ออนุญาตโดเมนและโดเมนย่อยต่างๆ (กำหนดเส้นทางใหม่ไปยัง IP เดียวกันผ่านทางชื่อ) เพื่อดึงไดเรกทอรีต่าง ๆ ในคอมพิวเตอร์ของฉัน
อัปเดต - (เพิ่มโดเมนฐานข้อมูล VirtualHost) สำหรับโดเมนของฉัน:
<VirtualHost *:80>
ServerName 192.168.0.111
ServerAlias for.us 192.168.0.111
DocumentRoot /home/personal/network/for.us
# if not specified, the global error log is used
ErrorLog /var/log/apache2/for.us-error_log
CustomLog /var/log/apache2/for.us-access_log combined
</VirtualHost>
<VirtualHost *:80>
ServerName 192.168.0.111
ServerAlias wa.net 192.168.0.111
DocumentRoot /home/work/wa.net
# if not specified, the global error log is used
ErrorLog /var/log/apache2/ip-error_log
CustomLog /var/log/apache2/ip-access_log combined
</VirtualHost>
และสำหรับโดเมนย่อยของฉัน:
<VirtualHost *:80>
ServerName 192.168.0.111
ServerAlias fmb.wa.net
DocumentRoot /home/work/wa.net/fmb
</VirtualHost>
<VirtualHost *:80>
ServerName 192.168.0.111
ServerAlias postrecord.wa.net
DocumentRoot /home/work/wa.net/postrecord
</VirtualHost>
<VirtualHost *:80>
ServerName 192.168.0.111
ServerAlias cvalley.wa.net
DocumentRoot /home/work/wa.net/cvalley_local
</VirtualHost>
สิ่งนี้ทำให้ฉันสามารถตี cvalley.wa.net จากอุปกรณ์ใด ๆ ในเครือข่ายของฉันและรับไซต์ที่มีชีวิตอยู่ใน /home/work/wa.net/cvalley_local
ฉันตัดสินใจที่จะส่งต่อพอร์ต 80 ไปยังคอมพิวเตอร์เครื่องนี้ดังนั้นฉันจึงสามารถแบ่งปันเว็บไซต์พัฒนาบางแห่งกับเพื่อนร่วมงานได้ ฉันไม่สามารถควบคุมเว็บไซต์ที่พวกเขาเห็นด้วยบริการที่มีชื่อเดียวกันได้เนื่องจากพวกเขาจะต้องใช้คอมพิวเตอร์เป็นเซิร์ฟเวอร์ชื่อโดเมน ...
ดังนั้นฉันจึงเพิ่มบรรทัดดังนี้:
<VirtualHost *:80>
ServerName 192.168.0.111
ServerAlias MY.IP.XXX.XX
DocumentRoot /home/work/wa.net/cvalley
</VirtualHost>
ที่ "MY.IP.XXX.XX" เป็นที่อยู่ IP สาธารณะของฉัน
สิ่งนี้ทำงานได้อย่างที่คาดไว้เมื่อคุณกดที่อยู่ IP ของฉันจากเครือข่ายสาธารณะคุณจะเห็นไซต์ที่มีชีวิตอยู่ใน /home/work/wa.net/cvalley
UPDATE - จุดที่ชัดเจนของความสับสน จุดสับสนที่ฉันมีคือมีที่อยู่ IP สาธารณะในบันทึกของฉันในไซต์ "for.us" นอกเหนือจากไซต์ "wa.net" ฉันคาดหวังว่า "wa.net" จะมีการเข้าถึง IP สาธารณะ แต่ฉันไม่เข้าใจว่าบอตสาธารณะกำลังเข้าถึงไซต์ "for.us" ได้อย่างไร
ฉันคาดว่าจะเป็นไปไม่ได้ที่จะเข้าถึง "for.us" ไซต์ในเครือข่ายของฉันเว้นแต่ผู้ใช้สาธารณะจะรู้ว่าฉันโทรหา ServerAliases ของฉันอย่างไรและกำลังเลียนแบบการตั้งค่าโดเมนของฉัน ...
การเข้าชมสาธารณะสามารถกดปุ่มฉันได้อย่างไร "สำหรับพวกเรา" เว็บไซต์? ฉันจะสร้างการเข้าถึงประเภทนี้ได้อย่างไร
นี่คือตัวอย่างบางส่วนของ IP สาธารณะที่เข้าชมเว็บไซต์ VirtualHost ของฉัน:
อัปเดต - คำอธิบายที่ดีกว่าของบันทึก
บันทึกนี้แสดงกิจกรรมใน "สำหรับพวกเรา" VirtualHost - ฉันจะมีกิจกรรมที่คาดว่าจะมีอยู่ใน "wa.net" โดเมนที่ฉันมีบันทึกที่คาดหวัง
162.253.66.76 - - [15/Aug/2014:19:20:47 -0600] "GET /xmlrpc.php HTTP/1.0" 404 1004 "-" "-"
162.253.66.74 - - [16/Aug/2014:10:50:28 -0600] "GET / HTTP/1.0" 200 262 "-" "masscan/1.0 (https://github.com/robertdavidgraham/masscan)"
185.4.227.194 - - [16/Aug/2014:11:16:45 -0600] "GET http://24x7-allrequestsallowed.com/?PHPSESSID=1rysxtj500143WQMVT%5E_NAZ%5BQ HTTP/1.1" 200 262 "-" "-"
101.226.254.138 - - [16/Aug/2014:13:32:14 -0600] "HEAD / HTTP/1.0" 200 - "-" "-"
162.253.66.74 - - [16/Aug/2014:14:26:19 -0600] "GET / HTTP/1.0" 200 262 "-" "masscan/1.0 (https://github.com/robertdavidgraham/masscan)"
212.129.2.119 - - [16/Aug/2014:16:00:51 -0600] "HEAD / HTTP/1.0" 200 - "-" "-"
91.240.163.111 - - [16/Aug/2014:18:34:32 -0600] "GET / HTTP/1.0" 200 262 "-" "masscan/1.0 (https://github.com/robertdavidgraham/masscan)"
162.253.66.74 - - [16/Aug/2014:19:02:53 -0600] "GET / HTTP/1.0" 200 262 "-" "masscan/1.0 (https://github.com/robertdavidgraham/masscan)"
122.226.223.69 - - [17/Aug/2014:05:53:09 -0600] "GET http://www.k2proxy.com//hello.html HTTP/1.1" 404 1006 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
::1 - - [17/Aug/2014:10:19:26 -0600] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (Linux/SUSE) OpenSSL/1.0.1e PHP/5.4.20 (internal dummy connection)"
162.209.65.196 - - [17/Aug/2014:15:31:53 -0600] "HEAD / HTTP/1.0" 200 - "-" "-"
111.206.199.163 - - [18/Aug/2014:11:12:56 -0600] "HEAD / HTTP/1.0" 200 - "-" "-"
37.187.180.168 - - [18/Aug/2014:15:40:00 -0600] "HEAD / HTTP/1.0" 200 - "-" "-"
62.210.38.226 - - [18/Aug/2014:18:35:16 -0600] "HEAD / HTTP/1.0" 200 - "-" "-"
มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อปฏิเสธการเข้าถึงสาธารณะเป็นค่าเริ่มต้นอย่างน่าเชื่อถือ แต่อนุญาตเฉพาะใน VirtualHost เดียวเท่านั้นหรือไม่