Điểm:0

Proxy đảo ngược Apache cho đường hầm SSH

lá cờ pt

Tôi muốn thiết lập proxy ngược Apache cho phiên bản Trợ lý tại nhà (hass) đang chạy trong mạng cục bộ của mình.

Tôi đã tạo đường hầm cho lưu lượng truy cập của phiên bản hass cục bộ đến một máy chủ từ xa với ssh -N [email protected] -R 8123:localhost:8123.

Bây giờ tôi đã cố gắng thiết lập một proxy ngược đơn giản trong Apache:

<VirtualHost *:443>
    ServerName hass.example.com

    SSLEngine On

    # If you manage SSL certificates by yourself, these paths will differ.
    SSLCertificateFile fullchain.pem
    SSLCertificateKeyFile privkey.pem

    SSLProxyEngine on
    SSLProxyProtocol +TLSv1.2 +TLSv1.3
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia On
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
    
            
    # Proxy all traffic to hass
    ProxyPass / http://localhost:8123/ nocanon
    ProxyPassReverse / http://localhost/
    ErrorLog ${APACHE_LOG_DIR}/hass.example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/hass.example.com-access.log combined
    <IfModule security2_module>
        SecRuleEngine off
    </IfModule>
</VirtualHost>

<VirtualHost *:80>
    ServerName hass.example.com

    Redirect permanent / "https://hass.example.com"

    ErrorLog ${APACHE_LOG_DIR}/hass.example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/hass.example.com-access.log combined
</VirtualHost>

Đáng buồn thay nếu tôi cố gắng mở hass.example.com, trình duyệt phản hồi với 400: Yêu cầu sai.

djdomi avatar
lá cờ za
bạn muốn guacamole, apache không thể tự xử lý ssh
lá cờ us
`hass` của bạn có được định cấu hình để chạy ở tên miền `hass.example.com` không?
Toorero avatar
lá cờ pt
@Tero Kilkanen Không. Nó chỉ là một bộ chứa docker vani đang nghe trên localhost.
Toorero avatar
lá cờ pt
@djdomi Tôi không sử dụng SSH với Apache. Tôi chỉ sử dụng cổng cục bộ (thông qua SSH) `8123` và chỉ muốn ủy quyền cho nó.
lá cờ us
`hass` phải có cấu hình cho tên miền gốc của nó. Bạn cần phải kiểm tra điều đó.
Toorero avatar
lá cờ pt
Tôi thực sự không hiểu tại sao đây lại là một vấn đề bởi vì nó là một proxy xuyên suốt. Proxy chỉ yêu cầu `localhost:8123`. Tôi nên nói thêm: Nếu tôi làm điều gì đó dọc theo dòng `ssh -L 8123:localhost:8123 -N [email protected]` thì tôi có thể dễ dàng truy cập `localhost:8123` trên máy mà tôi đã thực thi lệnh. Vì vậy, đường hầm SSH đang hoạt động.
Toorero avatar
lá cờ pt
@TeroKilkanen Tôi cũng đã thử mở cổng 8123 cho công chúng và tôi có thể truy cập phiên bản hass của mình qua example.com:8123 nhưng đó không thực sự là điều tôi muốn, vì tôi muốn định tuyến lưu lượng truy cập của mình thông qua proxy Apache. Tôi không nghĩ tên miền gốc có thể định cấu hình theo bất kỳ cách nào và không thành vấn đề.
Điểm:0
lá cờ pt

Nó tất cả boils xuống Home-Assistant chặn đảo ngược-proxy cố gắng và bạn phải các yêu cầu websocket proxy cũng vậy.

hass-config đã điều chỉnh (config/configuration.yaml):

http:
  use_x_forwarded_for: đúng
  đáng tin cậy_proxy:
  - ::1
  - 127.0.0.1
  ip_ban_enabled: true
  login_attempts_threshold: 5

Cấu hình Apache:

<VirtualHost *:443>
    ServerName hass.example.com

    SSLEngine On

    # If you manage SSL certificates by yourself, these paths will differ.
    SSLCertificateFile fullchain.pem
    SSLCertificateKeyFile privkey.pem

    SSLProxyEngine on
    SSLProxyProtocol +TLSv1.2 +TLSv1.3
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia On
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
    
            
    # Proxy all traffic to hass
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket
    RewriteRule /(.*) ws://localhost:8123/$1 [P]
    RewriteCond %{HTTP:Upgrade} !=websocket
    RewriteRule /(.*) http://localhost:8123/$1 [P]
    ProxyPassReverse / http://localhost:8123


    ErrorLog ${APACHE_LOG_DIR}/hass.example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/hass.example.com-access.log combined
    <IfModule security2_module>
        SecRuleEngine off
    </IfModule>
</VirtualHost>

<VirtualHost *:80>
    ServerName hass.example.com

    Redirect permanent / "https://hass.example.com"

    ErrorLog ${APACHE_LOG_DIR}/hass.example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/hass.example.com-access.log combined
</VirtualHost>

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.