Làm cách nào để lấy lại quyền truy cập SSH sau khi bị khóa bởi iptables?


10

TL: DR

Tôi đã thực hiện các thay đổi đối với cấu hình iptables của mình và hiện SSH đang từ chối tất cả các kết nối. Tôi có thể sửa lỗi này mà không liên hệ với công ty lưu trữ của mình không?


Phiên bản dài

Ok, đây rất có thể là lỗi của tôi 100% ...

Để chuẩn bị chuyển một trang web đến một máy chủ chuyên dụng, chúng tôi đã có một máy chủ được lưu trữ mới chạy CentOS 5.6. Máy có iptables khá bị khóa, chỉ cho phép ssh (22) và http (80) nhưng chúng tôi cũng cần nó để chấp nhận FTP qua cổng 20 vi 21.

Chiều nay tôi đã thêm các dòng vào iptables của mình để chấp nhận kết nối đến các cổng 20 và 21. Lúc đầu, nó không hoạt động vì có một reject alldòng phía trên các dòng tôi đã thêm cho ftp. Vì vậy, tôi đã di chuyển dòng đó xuống dưới cùng, lưu và khởi động lại iptables và ftp đang hoạt động.

2 giờ sau, khi tôi cố gắng kết nối lại, port 22: Connection refused Tương tự cho http.

Vì vậy, tôi không thể truy cập máy chủ thông qua SSH, có cách nào tôi có thể khắc phục điều này mà không cần liên hệ với công ty lưu trữ của mình không?

Câu trả lời:


13

Tiếc là không có. Trừ khi bạn có sẵn một số giao diện quản lý khác như bảng điều khiển nối tiếp từ xa, iDRAC, iLO, v.v. Hãy viết nó lên để trải nghiệm và nhớ kiểm tra cài đặt trước khi bạn đăng xuất lần sau;)


12
Hoặc nếu bạn thử nghiệm với iptables, hãy đảm bảo rằng bạn tạm thời đặt một công việc định kỳ đặt lại bộ quy tắc cứ sau 15 phút.
mailq

1
Bài học rút ra :)
Jan Henckens

Làm thế nào bạn có thể kích hoạt cổng SSH 22 bằng iDRAC?
terrid25

@ terrid25 bạn sẽ đăng nhập bằng cách sử dụng bảng điều khiển nối tiếp, nghe trên cổng nối tiếp mà iDRAC cấp cho bạn quyền truy cập. sau đó bạn có thể sửa iptables và theo cách vui vẻ của bạn. tất nhiên, nếu nội dung ngoài băng của bạn không được thiết lập với bảng điều khiển từ xa và như vậy bạn sẽ bị mắc kẹt như bạn bè của mình mà không có quản lý từ xa.
Michael Lowman

7

Giả sử bạn vẫn có thể ftp đến máy chủ và bạn có thể đăng nhập bằng root thông qua ftp (không chắc chắn và thông thường không được thông báo) vào một môi trường không bị chroot (v.v.):

Đặt một tệp trong /etc/cron.d với các nội dung sau:

* * * * * root /sbin/service iptables stop 

Điều này giúp tôi, bởi vì tôi có thể kết nối từ xa một hình ảnh phục hồi và truy cập hệ thống tập tin.
Daniel W.

0

Theo các hướng dẫn này , bạn cũng có thể nối thêm:

scripts2/doautofixer?autofix=iptablesflush

... Đến url WHM của bạn. Tôi đã làm điều đó và kết thúc với một URL:

https://mysite:2087/SESSION_ID/scripts2/doautofixer?autofix=iptablesflush

Nó đặt lại iptables của tôi và mọi thứ đã tốt với thế giới một lần nữa. :)


0

Trong CentOS bạn có tệp /etc/sysconfig/iptablesnếu bạn không có nó ở đó, bạn có thể tạo tệp đơn giản bằng cách sử dụng iptables-saveđể đổ quy tắc hiện tại được đặt vào một tệp.

iptables-save > /etc/sysconfig/iptables

Để tải tập tin bạn không cần khởi động lại máy, bạn có thể sử dụng iptables-restore

iptables-restore < /etc/sysconfig/iptables
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.