Làm cho máy chủ Apache chỉ chấp nhận các yêu cầu đến miền chứ không phải IP


9

Tôi có một máy chủ CentOS chạy Apache 2.2.15. Nếu địa chỉ IP của máy chủ là 198.51.100.4 và tôi viết trong trình duyệt http://198.51.100.4 thì nó sẽ xuất hiện trên trang web của tôi.

Tôi muốn ngăn chặn điều này. Tôi muốn trang web của mình chỉ có thể truy cập được trên FQDN, tức là http://example.com/ .

Làm cách nào tôi có thể định cấu hình máy chủ của mình để trang web không thể truy cập khi tôi truy cập địa chỉ IP?


2
Có thể trùng lặp các yêu cầu chấp nhận
Jenny D

Mặc dù câu hỏi không hoàn toàn khớp với bản sao mà tôi đã liên kết, câu trả lời cho câu hỏi đó cũng là câu trả lời cho câu hỏi này.
Jenny D

Tôi tò mò về lý do tại sao bạn sẽ làm điều đó. DNS ngược là một điều.
njzk2

Câu trả lời:


7

Bạn có thể sử dụng Alias *để bắt bất kỳ phần thưởng nào khác ngoài thoose được cho phép trong máy chủ ảo của bạn, vì điều này bạn phải sử dụng ở vị trí cuối cùng một máy chủ ảo với *bí danh.

Như thế chỉ có miền xác định sẽ được phục vụ.

<VirtualHost *:80>
ServerName mywebsite.com
DocumentRoot /var/www/default
...
</VirtualHost>

<VirtualHost *:80>
ServerName another.mywebsite.com
DocumentRoot /var/www/another
...
</VirtualHost>

# /!\ THIS HAS TO BE ON THE LAST POSITION /!\
<VirtualHost *:80 *:443>
# [ Server Domain ]
ServerName localhost
ServerAlias *
# [ Cancel trafic ]
RewriteRule .* - [END,R=406]
# [ Custom Log ]
CustomLog ${APACHE_LOG_DIR}/other.log combined
</VirtualHost>

Trong ví dụ của tôi, chỉ mywebsite.com và other.mywebsite.com mới được phép, tất cả các tên miền hoặc IP khác sẽ bị hủy bỏ.

Để hủy bỏ các đề tài, bạn có thể sử dụng chuyển hướng đến -và sau đó thêm mã lỗi, ví dụ tôi đã sử dụng RewriteRule để chuyển hướng đến 406 Không được chấp nhận ( R=406).

Tại đây bạn có thể tìm thấy danh sách mã chuyển hướng: https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP


Cảm ơn! Tôi đã thử phương pháp của bạn và nó hoạt động. Nhưng tôi đã thay đổi một chút. Tôi đã tạo một virtualhost mới và tôi đặt làm ServerName địa chỉ IP của máy chủ + RewriteRule :)
antiks

11

Bạn có thể thêm một máy chủ ảo mặc định chỉ gây ra lỗi "bị từ chối" hoặc bất cứ điều gì. Khi trình duyệt đến máy chủ web của bạn mà không có máy chủ lưu trữ trong URL khớp với bất kỳ ServerNamehoặc ServerAliasdòng nào trong các máy chủ ảo khác sẽ được phục vụ bởi máy chủ ảo mặc định.

Vì vậy, trong cấu hình apache của bạn:

<VirtualHost *:80>
    ServerName default
    DocumentRoot /var/www/default
    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName mywebsite.com
    ...
</VirtualHost>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.