banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl  XML
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 11/07/2013 15:46:01 (+0700) | #1 | 277352
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]
Hiện tại từ Internet bên ngoài chỉ mới truy cập được vào website của WebServer1: 192.168.2.115 với tên miền là abc.com.vn

Hiện tại mình gặp vấn đề còn lại mong mọi người giúp đỡ, cám ơn mọi người

Chưa thiết lập được để Internet bên ngoài truy cập được vào website của WebServer2: 192.168.2.119 với tên miền là def.com.vn

Khi truy cập tên miền def.com.vn thì nó chạy vào nội dung website tên miền websever1: 192.168.2.115


Thiết lập mạng
Firewall: CentOS 6 gồm Iptables, squid
Eth0 (card mạng ngoài): 192.168.1.2
Eth1 (card mạng trong): 192.168.2.111


Các WebServer trong LAN, sử dụng mỗi tên miền cho website riêng

WebServer1: 192.168.2.115 (abc.com.vn)

WebServer2: 192.168.2.119 (def.com.vn)


Hiện tại cấu hình Iptables như sau:

Code:
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 192.168.1.2 -i eth0 -j DNAT --to 192.168.2.115:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 192.168.1.2 -i eth0 -j DNAT --to 192.168.2.119:80
iptables -t nat -A POSTROUTING -p tcp --dport 80 -o eth0 -j SNAT --to 192.168.1.2

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j ACCEPT

iptables -A INPUT -m tcp -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m udp -p tcp --dport 53 -j ACCEPT


Tập tin /etc/sysconfig/iptables

Code:
# Generated by iptables-save v1.4.7 on Thu Jul 11 16:46:05 2013
*nat
smilieREROUTING ACCEPT [26:5297]
smilieOSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [34:2040]
-A PREROUTING -d 192.168.1.2/32 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.115:80
-A PREROUTING -d 192.168.1.2/32 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.119:80
-A POSTROUTING -o eth0 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.2
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Jul 11 16:46:05 2013
# Generated by iptables-save v1.4.7 on Thu Jul 11 16:46:05 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [366:198764]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m udp -p tcp --dport 53 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Jul 11 16:46:05 2013

[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 24/07/2013 22:47:46 (+0700) | #2 | 277733
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
- iptables hoạt động ở tầng nào? Trong khi đó cái hostname kia (def.com.vn) nằm ở tầng nào? Một request từ ngoài vào, đến 192.168.1.2, cổng 80 làm sao iptables biết chuyển nó đi đâu?
- Thứ tự xử lý các rules của iptables ra sao?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 25/07/2013 19:44:02 (+0700) | #3 | 277760
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]
- iptables hoạt động ở tầng nào? Trong khi đó cái hostname kia (def.com.vn) nằm ở tầng nào? Một request từ ngoài vào, đến 192.168.1.2, cổng 80 làm sao iptables biết chuyển nó đi đâu?
- Thứ tự xử lý các rules của iptables ra sao?  


Dù abc.com.vn hay def.com.vn đi vào nó đều phân giải thành cùng một IP do đó nó thực thi ưu tiên rule từ trên xuống
Code:
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 192.168.1.2 -i eth0 -j DNAT --to 192.168.2.115:80

Nên lúc nào nó cũng đi vào nội dung website tên miền websever1: 192.168.2.115

Quanta cho mình hỏi Có lẽ phải NAT thêm port 53 DNS cho nó để nó hiểu được là abc.com.vn hay def.com.vn để đi đúng vào hostname hỏng biết phải không để mai mình thử xem sao
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 26/07/2013 07:38:38 (+0700) | #4 | 277770
bigname
Member

[Minus]    0    [Plus]
Joined: 30/06/2013 21:04:48
Messages: 10
Offline
[Profile] [PM]
Trên firewall cùng 1 interface cùng 1 port làm sao nó phân biệt được request muốn tới webserver nào để mà forward?
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 26/07/2013 07:49:41 (+0700) | #5 | 277772
lhthanh
Member

[Minus]    0    [Plus]
Joined: 22/07/2013 08:41:06
Messages: 5
Offline
[Profile] [PM]
theo mình nghĩ ở đây bạn nên dựng 1 dns server cho mạng LAN cũng như để phân giải các tên miền.
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 26/07/2013 08:21:52 (+0700) | #6 | 277774
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
Tuỳ theo tên miền mà route traffic, như vậy việc quyết định route traffic là ở lớp application -> iptable không thể dùng được, phải dùng reverse proxy.

Squid có thể đươc, tuy không chuyên.

Thường người ta sẽ dùng nginx, mod_proxy, haproxy, varnish v.v... để làm việc này.
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 28/07/2013 12:22:53 (+0700) | #7 | 277833
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]

vd_ wrote:
Tuỳ theo tên miền mà route traffic, như vậy việc quyết định route traffic là ở lớp application -> iptable không thể dùng được, phải dùng reverse proxy.

Squid có thể đươc, tuy không chuyên.

Thường người ta sẽ dùng nginx, mod_proxy, haproxy, varnish v.v... để làm việc này. 


Mình vẫn còn đang lây quây vấn đề này vấn chưa xong, vấn đề của mình một WebServer1 là HĐH Windows 2003, còn một WebServer2 CentOS 6

Code:
WebServer1: 192.168.2.115 (abc.com.vn)

WebServer2: 192.168.2.119 (def.com.vn)


[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 28/07/2013 21:58:37 (+0700) | #8 | 277840
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

lyphuong wrote:
vấn đề của mình một WebServer1 là HĐH Windows 2003, còn một WebServer2 CentOS 6
 

Backend web servers chạy hệ điều hành nào không liên quan gì ở đây cả. Vấn đề là iptables không làm được điều mà bạn đang định làm (lý do thì mình và vd_ đã nói ở trên rồi).

Tuy nhiên, `squid` có thể làm được. Tham khảo: http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleWebservers
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 12/09/2013 13:21:16 (+0700) | #9 | 278436
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]
Mình cố gắng tìm hiểu cấu hình cho được vụ này chứ hỏi hoài cũng hỏng ổn, mà lay hoay cũng chưa ra.

Theo quanta mình sử dụng squid cấu hình cho Webserver public vẫn chưa được, chưa tìm ra lỗi gì; và vd_ dùng nginx vẫn chưa được

Code:
cache_peer 192.168.2.115 parent 80 0 no-query originserver name=centos6
cache_peer_domain centos6 abc.com.vn
cache_peer 192.168.2.119 parent 80 0 no-query originserver name=servertv
cache_peer_domain servertv def.com.vn


Mình sử dụng nginx cấu hình vẫn không được: nginx.conf
Firewall: CentOS 6 gồm Iptables, squid
Eth0 (card mạng ngoài): 192.168.1.2
Eth1 (card mạng trong): 192.168.2.111

WebServer1: 192.168.2.115 (abc.com.vn)
vì mình hỏng dám đưa tên miền thật lên trong file cấu hình

Code:
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

## Basic reverse proxy server ##
## Apache backend for abc.com.vn ##
upstream apachephp  {
      server 192.168.2.115:80; 
}


## Start abc.com.vn##
server {
    listen     192.168.1.2:80;
    server_name  abc.com.vn;

    access_log  /var/log/nginx/abc.com.vn.access.log  main;
    error_log  /var/log/nginx/abc.com.vn.error.log;
    #root   /usr/share/nginx/html;
    #index  index.html index.htm;

    ## send request back to apache1 ##
    location / {
     proxy_pass  http://apachephp;
     include        /etc/nginx/conf.d/proxy.conf;
   }
}
## End thongtinkhcn.vinhlong.gov.vn##

}


/etc/nginx/conf.d/proxy.conf

Code:
proxy_wwwect          off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 100M;
client_body_buffer_size 1m;
proxy_intercept_errors on;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 256 16k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_read_timeout 300;


Các tập tin log không ghi vào được dung lượng là 0:
Code:
-rw-r--r--.  1 nginx root     0 Aug 20 21:09 access.log
-rw-r--r--.  1 nginx root     0 Aug 26 21:48 error.log
-rw-r--r--.  1 nginx root     0 Aug 21 15:09 abc.com.vn.access.log
-rw-r--r--.  1 nginx root     0 Aug 21 15:09 abc.com.vn.error.log


Mình sử dụng nginx reverse proxy websever backends trong nội bộ LAN thì truy cập được không không thể public ra ngoài Internet
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 15/09/2013 16:46:22 (+0700) | #10 | 278462
zinxu
Member

[Minus]    0    [Plus]
Joined: 16/06/2011 01:27:50
Messages: 13
Offline
[Profile] [PM]
Tôi chưa đọc đến phần IPtables, nhưng vì bạn không đề cập đến public IP nên tôi muốn hỏi lại để làm rõ đề bài.

Tôi hiểu đề bài như dưới đây, không biết có đúng không?
- Bạn có 01 public IP
- Và 02 domain (ABC và XYZ) cùng map về Public IP ở trên
- Mỗi domain nằm trên 1 server khác nhau.

Vấn đề:
- Từ Internet vào ABC hay XYZ luôn bị lấy dữ liệu của domain ABC

Nếu như tôi hiểu đúng đề bài, thì về nguyên tắc phải có thiết bị/phần mềm hiểu được HTTP request: để tiếp nhận và từ đó chuyển tiếp yêu cầu đến đúng đích. Theo tôi, ý của bạn vd_ ở trên là đúng hướng rồi. Vấn đề chính không phải là firewall hay hệ điều hành, mà là phân tích được thông tin về domain trong gói tin HTTP để chuyển tiếp.

Chúc bạn thành công,
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 16/09/2013 14:06:27 (+0700) | #11 | 278465
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]
Tình trạng của mình đúng như bạn zinxu mô tả là có 1 IP public và 02 domain nằm tên 02 sever khác nhau
Theo vd_quanta dùng squid hoặc nginx để giải quyết trường hợp của mình.
Mình đã dùng squid hoặc nginx để cấu hình nhưng chưa thành công, không biết lỗi gì trong tập tin cấu hình.

zinxu wrote:
Tôi chưa đọc đến phần IPtables, nhưng vì bạn không đề cập đến public IP nên tôi muốn hỏi lại để làm rõ đề bài.

Tôi hiểu đề bài như dưới đây, không biết có đúng không?
- Bạn có 01 public IP
- Và 02 domain (ABC và XYZ) cùng map về Public IP ở trên
- Mỗi domain nằm trên 1 server khác nhau.

Vấn đề:
- Từ Internet vào ABC hay XYZ luôn bị lấy dữ liệu của domain ABC

Nếu như tôi hiểu đúng đề bài, thì về nguyên tắc phải có thiết bị/phần mềm hiểu được HTTP request: để tiếp nhận và từ đó chuyển tiếp yêu cầu đến đúng đích. Theo tôi, ý của bạn vd_ ở trên là đúng hướng rồi. Vấn đề chính không phải là firewall hay hệ điều hành, mà là phân tích được thông tin về domain trong gói tin HTTP để chuyển tiếp.

Chúc bạn thành công, 
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 17/09/2013 08:56:28 (+0700) | #12 | 278468
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
@lyphuong: Với Nginx, phần cấu hình cho def.com.vn trỏ về 2.119 đâu bạn?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 17/09/2013 14:09:44 (+0700) | #13 | 278472
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]

quanta wrote:
@lyphuong: Với Nginx, phần cấu hình cho def.com.vn trỏ về 2.119 đâu bạn? 


Mình có sửa lại, đây là phần cấu hình hiện tại

Code:
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

upstream  abc.com.vn  {
        server   192.168.2.115:80;
}
server
{
        listen  192.168.1.2:80;
        server_name  abc.com.vn;
        location / {
                 proxy_pass        http://abc.com.vn;
                 include        /etc/nginx/conf.d/proxy.conf;
                 #proxy_set_header   Host             $host;
                 #proxy_set_header   X-Real-IP        $remote_addr;
                 #proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}
upstream  def.com.vn  {
        server   192.168.2.119:80;
}
server
{
        listen  192.168.1.2:80;
        server_name  def.com.vn;
        location / {
                 proxy_pass        http://def.com.vn;
                 include        /etc/nginx/conf.d/proxy.conf;
                 #proxy_set_header   Host             $host;
                 #proxy_set_header   X-Real-IP        $remote_addr;
                 #proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
        
}

}


/etc/nginx/conf.d/proxy.conf

Code:
proxy_wwwect          off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 100M;
client_body_buffer_size 1m;
proxy_intercept_errors on;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 256 16k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_read_timeout 300;

[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 24/09/2013 15:37:24 (+0700) | #14 | 278542
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
1. Thông báo lỗi của nginx là gì?
2. Bạn dùng upstream server1 {... } & upstream server2 {... } rồi reference đến server1 và server2 trong proxy_pass thay vì dùng full domain như hiện tại. Theo tui đoán thì khi bạn dùng proxy_pass http://def.com.vn; thì nginx không biết bạn muốn pass đến server def.com.vn thực tế hay phần upstream def.com.vn trước đó.
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 25/09/2013 15:24:40 (+0700) | #15 | 278558
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]

vd_ wrote:
1. Thông báo lỗi của nginx là gì?
2. Bạn dùng upstream server1 {... } & upstream server2 {... } rồi reference đến server1 và server2 trong proxy_pass thay vì dùng full domain như hiện tại. Theo tui đoán thì khi bạn dùng proxy_pass http://def.com.vn; thì nginx không biết bạn muốn pass đến server def.com.vn thực tế hay phần upstream def.com.vn trước đó.
 



Các tập tin log sao nó không ghi vào được dung lượng là 0:
Code:
-rw-r--r--.  1 nginx root     0 Aug 20 21:09 access.log
-rw-r--r--.  1 nginx root     0 Aug 26 21:48 error.log


Mình sửa lại upstream bằng tên và proxy_pass theo tên proxy_pass http://thuvien nhưng vẫn chưa có kết quả khả quan.

Code:
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

upstream  apachephp  {
        server   192.168.2.115:80;
}
server
{
        listen  192.168.1.2:80;
        server_name  abc.com.vn;
        location / {
                 proxy_pass        http://apachephp;
                 include        /etc/nginx/conf.d/proxy.conf;
                 #proxy_set_header   Host             $host;
                 #proxy_set_header   X-Real-IP        $remote_addr;
                 #proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}
upstream  thuvien  {
        server   192.168.2.119:80;
}
server
{
        listen  192.168.1.2:80;
        server_name  def.com.vn;
        location / {
                 proxy_pass        http://thuvien;
                 include        /etc/nginx/conf.d/proxy.conf;
                 #proxy_set_header   Host             $host;
                 #proxy_set_header   X-Real-IP        $remote_addr;
                 #proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
        
}

}
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 30/09/2013 10:07:22 (+0700) | #16 | 278589
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
- khi vào 2 site bằng browser thì hiện ra cái gì?
- dns đã trỏ abc.com.vn và def.com.vn vào 192.168.1.2 chưa?
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 18/10/2013 12:59:57 (+0700) | #17 | 278794
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]

vd_ wrote:
- khi vào 2 site bằng browser thì hiện ra cái gì?
- dns đã trỏ abc.com.vn và def.com.vn vào 192.168.1.2 chưa? 


Vấn đề đã giải quyết được rồi, cám ơn vd_quanta đã định hướng và giúp đỡ cho mình hoàn thành vụ này. làm việc với mấy vụ này dễ bị điên wá !
Thank mọi người !
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 24/10/2013 13:45:34 (+0700) | #18 | 278845
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
bạn nên chia sẻ thêm là bạn giải quyết như thế nào, các bạn khác cũng như tôi sẽ học hỏi được thêm các case để xử lý.
[Up] [Print Copy]
  [Question]   Làm sao để thiết lập các WebServer trong Lan qua máy chủ Squid,Iptabl 02/11/2013 14:33:22 (+0700) | #19 | 278936
lyphuong
Member

[Minus]    0    [Plus]
Joined: 31/01/2007 11:08:21
Messages: 30
Offline
[Profile] [PM]

vd_ wrote:
bạn nên chia sẻ thêm là bạn giải quyết như thế nào, các bạn khác cũng như tôi sẽ học hỏi được thêm các case để xử lý. 


Khi dns trỏ abc.com.vn và def.com.vn vào (2 máy chủ web) 192.168.115 và 192.168.2.119 các máy trong lan dùng browser truy cập vào 2 site (đi thẳng đến máy webserver) không đi qua máy nginx front end proxy (Các tập tin log nginx sẽ không ghi vào được dung lượng là 0)

Khi dns trỏ abc.com.vn và def.com.vn vào 192.168.1.2 (máy nginx front end proxy, iptables) các máy trong lan dùng browser truy cập vào 2 site đi qua máy nginx front end proxy (Các tập tin log nginx nội dung sẽ được ghi)

Đến thời điểm này phần cấu hình nginx hoạt động tốt (nginx.conf, proxy.conf )

Nhưng các browser từ bên ngoài Internet vẫn không truy cập 2 site với tên miền abc.com.vn và def.com.vn.

Vấn đề xét đến các rule của iptables và đây là rule cuối cùng mình thêm thì các browser từ bên ngoài Internet truy cập 2 site.

Code:
-A PREROUTING  -p tcp -dport 80 -j REDIRECT --to-ports 80


Rule này nó đè làm mất tác dụng các rule để transparent proxy with Squid


Mình tóm lại trường hợp và cách giải quyết để các bạn tham khảo: (Public 2 site ở 2 server khác nhau qua Internet)

- Có 01 public IP
- Và 02 domain (ABC và XYZ) cùng map về Public IP ở trên
- Mỗi domain nằm trên 1 server khác nhau.

Cài đặt và cấu hình server Firewall:
1. Squid để các máy trong lan truy cập Internet.
2. Cài đặt và cấu hình nginx (nginx multiple backend web servers) như trên.
3. Thiết lập rule cần thiết cho iptables và thêm rule.

Code:
-A PREROUTING  -p tcp -dport 80 -j REDIRECT --to-ports 80

[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|