Làm thế nào bạn có thể nói những gì một máy chủ thực sự làm? [đóng cửa]


42

Tôi đã được trao 3 hộp Linux, 1 mặt trước với apache trên đó và 2 hộp khác, theo như tôi có thể nói, đừng làm gì quá nhiều. Tất cả chạy trên Redhat.

Câu hỏi rất đơn giản: Làm thế nào tôi có thể biết máy chủ đang thực sự làm gì? Không có tài liệu có sẵn từ người sáng tạo.


7
Danh sách quy trình, người nghe mạng (có thể so sánh với lẽ ra nên chạy dựa trên các tập lệnh init) ...
HBruijn

5
chỉ trích! chắc chắn ai đó biết những gì họ đang làm? vì vậy họ muốn bạn hỗ trợ họ nhưng không biết họ làm gì?!
Lightcraft kỹ thuật số

11
Tắt chúng đi. Ai đó sẽ cho bạn biết, gần như ngay lập tức , những gì không hoạt động.
jscott

58
ĐỪNG TẮT NÓ. Rút phích cắm cáp Ethernet, nếu bạn muốn kiểm tra la hét. Nếu bạn chưa bao giờ có một hộp với thời gian hoạt động hai năm không thể khởi động lại, đôi khi bạn sẽ. Đây không phải là lúc để thêm sự thất vọng đó vào hỗn hợp.
Aaron Copley

7
Những gì mọi người khác nói, nhưng cũng: chạy nmap chống lại họ.
Kinda Villyard

Câu trả lời:


42

Rút cáp ethernet và xem ai đang buồn.

Nghiêm túc mà nói, những cỗ máy bí ẩn như thế này tạo ra rất nhiều chi phí tinh thần cho một nhóm và thường không cung cấp giá trị kinh doanh. Nói chuyện với sếp của bạn, nếu không ai biết nó làm gì thì có lẽ không ai quan tâm nó làm gì.


43
ĐỪNG TẮT NÓ. Rút phích cắm cáp Ethernet, nếu bạn muốn kiểm tra la hét. Nếu bạn chưa bao giờ có một hộp với thời gian hoạt động hai năm không thể khởi động lại, đôi khi bạn sẽ. Đây không phải là lúc để thêm sự thất vọng đó vào hỗn hợp. (Sao chép cái này ở đây vì nó cần được đọc.)
Aaron Copley

3
Bạn đúng 100%, tôi đã chỉnh sửa bài đăng để phản ánh điều đó. Tôi đã có một chút lạc quan nhưng tôi vẫn có thể trở nên lịch sự mà không thúc đẩy thảm họa.
Josh Rumbut

8
Trước khi rút mạng, bạn nên lưu danh sách các quy trình đang chạy và ổ cắm mở trên mỗi máy chủ - chỉ trong trường hợp có gì đó dựa vào kết nối TCP giữa các máy chủ vẫn được thành lập trong nhiều tháng mà không ai nghĩ đến tự động hóa bất cứ bước nào cần thiết để mở nó trong trường hợp đầu tiên. (Ví dụ: nếu ai đó cần một cổng ssh tạm thời chuyển tiếp và sau đó quên nó.)
kasperd

4
Đừng làm điều này. Lời khuyên vô lý. Những người IT thiếu suy nghĩ ngu ngốc làm việc này khiến tôi mất rất nhiều thời gian và công sức. YÊU CẦU ĐẦU TIÊN. Nếu bạn không biết hỏi ai, HỎI MỌI NGƯỜI .
Cuộc đua nhẹ nhàng với Monica

4
Hãy chắc chắn rằng bạn để đủ thời gian cho ai đó hét lên - một lần tôi đã làm điều này với một chiếc máy bụi bặm hoặc máy tính để bàn ngồi trên giá phòng máy chủ - không ai biết nó đã làm gì, phải mất cả tháng để ai đó chú ý khi chúng tôi rút phích cắm . Hóa ra nó là một phần của hệ thống bảng lương, nếu không có máy chủ đó, Kế toán không thể tạo ra bảng lương hàng tháng. Nó đã chạy không được giám sát trong ít nhất 3 năm mà không ai chú ý đến nó - vì vậy "bài kiểm tra tiếng hét" là một thành công, nếu chúng ta không thực hiện nó, máy chủ cuối cùng sẽ tự chết. Chúng tôi đã kết thúc p2v'ing nó vào cụm vmware của chúng tôi.
Johnny

30

Đây là một câu hỏi khá rộng cho định dạng Serverfault, nhưng đây là một khởi đầu tốt:

  • Kiểm tra các quy trình đang chạy và những quy trình được lên lịch để chạy khi khởi động hệ thống.
    • Xem lại cấu hình đang chạy của từng.
    • Nhìn vào bất kỳ thư mục dữ liệu được xác định. (Có thể ai đó đã cài đặt MySQL và bật nó lên, nhưng không có cơ sở dữ liệu.)
  • Kiểm tra các nhiệm vụ theo lịch trình.
  • Kiểm tra các bản ghi để xem;
    • người đã đăng nhập gần đây (và hỏi họ)
    • và để có được một ý tưởng về những gì đang chạy.

Bạn đã không đề cập đến phiên bản, vì vậy tôi đã bỏ qua chi tiết cụ thể.


8
Có một cái gì đó quan trọng hơn các dịch vụ được cấu hình để bắt đầu khi hệ thống khởi động. Những dịch vụ đang chạy ngay bây giờ? Bắt đầu một dịch vụ và quên cấu hình nó để bắt đầu khi khởi động không phải là một lỗi khó thực hiện. Trên một lưu ý liên quan, nên xem xét trạng thái hệ thống khác như: điểm gắn kết, bảng định tuyến, quy tắc iptables. Tất cả những thứ đó có thể dễ dàng thay đổi trong khi hệ thống đang chạy mà không nhớ cập nhật các tệp cấu hình được sử dụng trong khi khởi động.
kasperd

Ngoài ra, tôi sẽ sử dụng một máy quét cổng để xem cổng nào đang mở, sau đó thử kết nối với nó bằng các công cụ thông thường. Ví dụ (đơn giản) nếu cổng 443 mở, bạn có thể thử sử dụng trình duyệt web để kết nối với nó. Tôi đã phải thường xuyên khám phá những máy chủ dường như bị bỏ rơi như vậy và một trong những công cụ yêu thích của tôi để nhanh chóng duyệt qua các tệp cấu hình trong / etc và những nơi khác là sử dụng "lynx" hoặc "links" nếu bạn thích. Đây là các trình duyệt web dựa trên ký tự, cũng hoạt động đủ tốt như trình duyệt tệp, với điều hướng phím con trỏ thuận tiện.
aseq

1
@kasperd Chơi đẹp khi chạy so với các dịch vụ liên tục. Nhưng, tôi đã nghĩ về các quy tắc tường lửa, các điểm gắn kết, v.v ... Những thứ đó đối với tôi như là các thành phần phụ trợ sẽ được gắn với một trong những điểm đạn hiện có. YMMV.
Aaron Copley

Vui lòng thêm - Kiểm tra các kết nối mạng đang hoạt động và ghi lại tên của các dịch vụ và số cổng. Phương pháp tốt nhất để làm điều này thay đổi tùy theo hệ điều hành. Chỉ số lưới EG. Ngoài ra, đặt một số loại dấu vết trên máy tính để bạn có thể thấy những gì nó làm trong suốt cả ngày. Bạn cũng có thể muốn thêm xem xét cho các tình huống khi mọi thứ chạy trên máy chủ COULD là độc hại.
IceMage

19

Có một vài điều bạn có thể làm để thử và xác định những gì đang chạy trên hệ thống của bạn.

Bạn có thể kiểm tra cổng nào mà máy chủ của bạn đang lắng nghe để có ý tưởng về những gì trên đó. Một lệnh tốt để sử dụng sẽ là:

 [root@server ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat    e       PID/Program name
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LIST    EN      1880/smbd
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LIST    EN      1911/nrpe
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LIST    EN      1759/sshd

Như bạn có thể thấy từ đầu ra ví dụ ở trên, nó cung cấp cho bạn phiên bản giao thức (tcp hoặc udp), địa chỉ được nghe, cổng mở và chương trình đang nghe.

Trong ví dụ rút gọn ở trên (một máy chủ), bạn có thể thấy các cổng tcp 139, 5666 và 22 đang lắng nghe. Chúng quyết định tương ứng với samba, nrpe (đại lý Nagios) và ssh và được xác nhận khi bạn kiểm tra chương trình đang nghe trên cổng đó.

Ngoài ra, bạn có thể kiểm tra danh sách các trình tiện ích được cấu hình để bắt đầu khi khởi động, để thực hiện điều đó, hãy chạy: chkconfig --list | grep "3:on"

Thí dụ:

[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
x2gocleansessions       0:off   1:off   2:on    3:on    4:on    5:on    6:off
.
.
.

hoặc là :

service --status-all


5
Tôi thấy netstat -pluntdễ nhớ hơn.
abligh

2
Ngoài ra, tcpdumpcó thể hữu ích để xác định ai thực sự sử dụng mỗi dịch vụ.
abligh

18

Một phương pháp khác liên quan đến việc kiểm tra /etcthư mục và xem xét ngày sửa đổi. Sau khi cài đặt mới, tất cả các tệp trong thư mục này sẽ có cùng ngày / giờ. Và vì một bản cài đặt thường cài đặt rất nhiều thứ mà mọi người thường không sử dụng, nên chỉ các tệp có ngày sửa đổi sau đó phản ánh mục đích thực tế của máy chủ . Nếu đây là ext4, bạn cũng có thể trích xuất ngày sinh của các thư mục, vì vậy nhiệm vụ có thể khá dễ dàng.

Tuy nhiên, một phương pháp khác sẽ liên quan đến việc kiểm tra các .bash_historytệp để xem quản trị viên dự định làm gì. Tập tin này có thể cung cấp nhiều kiến ​​thức.


7

Kiểm tra các quy tắc tường lửa. Với một chút may mắn, nó được cấu hình để từ chối mặc định. Điều đó có nghĩa là có một quy tắc rõ ràng cho mỗi dịch vụ được phép.

Điều này tốt hơn sau đó netstatbởi vì nó cũng có thể hiển thị các cổng được mở, ví dụ như để sao lưu hàng đêm.


6

Một câu trả lời tôi chưa thấy: Kiểm tra các tệp được sửa đổi gần đây nhất. Nhật ký, tệp cơ sở dữ liệu, các tệp đầu ra khác, v.v. có thể được ghi vào tĩnh mà có thể cung cấp manh mối:

find . -mtime -3 

Điều đó sẽ tìm thấy các tệp sửa đổi trong thư mục hiện tại và sâu hơn, đã thay đổi trong 3 ngày qua. Tăng số 3 lên một phỏng đoán có giáo dục cho đến khi bạn nhận được một số kết quả đầu ra mà bạn có thể điều tra.

Không phải bằng chứng ngu ngốc, vì các hộp có thể chỉ xử lý một số cuộc gọi dịch vụ web, trả lại một số dữ liệu mà không bao giờ viết bất cứ điều gì. Nhưng được thêm vào hỗn hợp tuyệt vời được đề cập ở trên, nó có thể chỉ mang lại một số manh mối.

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.