Tôi biết những gì nó làm, nhưng tôi không biết tại sao . Những cuộc tấn công nào nó ngăn chặn?
Có phù hợp với tất cả các loại phương thức xác thực? (lưu trữ trên máy chủ, mật khẩu, khóa công khai, tương tác bàn phím ...)
Tôi biết những gì nó làm, nhưng tôi không biết tại sao . Những cuộc tấn công nào nó ngăn chặn?
Có phù hợp với tất cả các loại phương thức xác thực? (lưu trữ trên máy chủ, mật khẩu, khóa công khai, tương tác bàn phím ...)
Câu trả lời:
Các UseDNS
tùy chọn là chủ yếu là vô dụng. Nếu các máy khách hiện có trên Internet, có khả năng cao là chúng không có DNS ngược, DNS ngược của chúng không giải quyết được hoặc DNS của chúng không cung cấp bất kỳ thông tin nào khác ngoài điều này thuộc về điều này ISP mà địa chỉ IP đã cho bạn biết.
Trong các cấu hình thông thường, DNS chỉ được sử dụng để ghi nhật ký. Nó có thể được sử dụng để xác thực, nhưng chỉ khi IgnoreRhosts no
được chỉ định trong sshd_config
. Đây là để tương thích với bản cài đặt cũ mà sử dụng rsh, nơi bạn có thể nói “người dùng gọi bob
vào máy gọi là darkstar
có thể đăng nhập như là alice
không hiển thị bất kỳ thông tin” (bằng cách viết darkstar bob
trong ~alice/.rhosts
). Nó chỉ an toàn nếu bạn tin tưởng tất cả các máy có thể kết nối với máy chủ ssh. Nói cách khác, điều này rất hiếm khi có thể sử dụng một cách an toàn.
Vì việc tra cứu DNS không cung cấp bất kỳ thông tin hữu ích nào ngoại trừ trong những trường hợp rất đặc biệt, nó sẽ bị tắt. Theo như tôi có thể nói, lý do duy nhất theo mặc định là vì nó an toàn hơn về mặt kỹ thuật (nếu bạn quan tâm đến xác thực, không có sẵn), mặc dù điều đó chỉ áp dụng cho một tình huống nhỏ.
Một lập luận khác cho việc tắt tính năng này là mọi tính năng không cần thiết đều là một rủi ro bảo mật không cần thiết .
UseDNS
thậm chí không hữu ích nếu bạn sử dụng xác thực máy chủ dựa trên khóa , chỉ khi bạn sử dụng xác thực máy chủ dựa trên tên máy chủ (tức là xác thực cực kỳ yếu).
UseDNS
thì rất hữu ích và quan trọng. Bạn xác thực người dùng dựa trên khóa và máy chủ dựa trên tên máy chủ, được gán cho địa chỉ MAC.
Tôi đã thêm vào một báo cáo lỗi (cũ nhưng vẫn còn hiện hành) trong Ubuntu về điều này.
https://bugs.launchpad.net/ubfox/+source/openssh/+orms/424371
Tôi đã đề xuất thay đổi mặc định thành Không và thêm tài liệu mới hơn vào đó:
# UseDNS - Determines whether IP Address to Hostname lookup and comparison is performed
# Default value is No which avoids login delays when the remote client's DNS cannot be resolved
# Value of No implies that the usage of "from=" in authorized_keys will not support DNS host names but only IP addresses.
# Value of Yes supports host names in "from=" for authorized_keys. Additionally if the remote client's IP address does not match the resolved DNS host name (or could not be reverse lookup resolved) then a warning is logged.
Từ trang của sshd_config(5)
:
UseDNS Specifies whether sshd(8) should look up the remote host name and
check that the resolved host name for the remote IP address maps
back to the very same IP address. The default is “yes”.
Kích hoạt tính năng này giúp truy cập từ một vị trí mà không cần DNS (tiến và lùi) thích hợp sẽ tạo cảnh báo trong nhật ký.
Vì vậy, điều này không ngăn chặn bất kỳ cuộc tấn công nào ngoại trừ việc nó sẽ cần một số địa chỉ từ xa đủ điều kiện của khách hàng để không ghi lại bất kỳ cảnh báo nào. Một cảnh báo như vậy có thể giúp bạn truy tìm kẻ tấn công chỉ khi bản ghi PTR đó có ý nghĩa gì.
chỉnh sửa: cập nhật theo nhận xét của Andrey Voitenkov .
from=
trường trước khóa được ủy quyền trong câu hỏi (nếu được sử dụng).
Nó là cần thiết khi bạn sử dụng tùy chọn TỪ trong tệp ủy quyền và bạn muốn lọc theo tên chứ không chỉ IP.
Tùy chọn TỪ trong một dòng của tệp ủy quyền cho phép bạn giới hạn các máy chủ có thể sử dụng một khóa cụ thể.
Điều này làm tăng khả năng quản lý nhiều máy chủ có quyền truy cập lẫn nhau mà không cho phép bản sao của máy giả mạo nguồn gốc của nó, thường là vô tình (crontabs còn sót lại, lỗi của con người).
Tôi muốn thêm điều đó trên CentOS 7 (7.1.1503) và do đó Red Hat Enterprise Linux 7, tôi không thể đăng nhập với cài đặt mặc định là yes
cho UseDNS
. Sau khi bỏ ghi chú và cài đặt nó no
, tôi đã có thể đăng nhập. Do đó, có vẻ như người ta thực sự có thể bị từ chối dịch vụ nếu DNS không hoạt động chính xác! Trong CentOS 6, nó xuất hiện mặc định no
và do đó tôi có thể ssh
không có DNS hoạt động!
Tôi muốn nói thêm rằng thử nghiệm của tôi là trên các thùng chứa LXC chứ không phải máy vật lý, trong trường hợp có sự khác biệt!