Dành cho những người cần cung cấp cho bản thân và những người thân yêu quyền truy cập vào máy chủ của họ từ mọi nơi trên thế giới thông qua SSH/RDP/khác, một RTFM/spur nhỏ.
Chúng ta cần làm việc mà không cần VPN cũng như các tiện ích khác, từ bất kỳ thiết bị nào trong tầm tay.
Và để bạn không phải tập luyện quá nhiều với máy chủ.
Tất cả những gì bạn cần cho việc này là
Tất nhiên là “Mọi thứ đều có trên Internet” (ngay cả trên
Chúng ta sẽ thực hành sử dụng Fedora/CentOS làm ví dụ, nhưng điều đó không thành vấn đề.
Thúc đẩy phù hợp cho cả người mới bắt đầu và chuyên gia trong vấn đề này, vì vậy sẽ có những bình luận nhưng sẽ ngắn hơn.
1. Máy chủ
-
cài đặt máy chủ gõ:
yum/dnf install knock-server
-
định cấu hình nó (ví dụ trên ssh) - /etc/knockd.conf:
[options] UseSyslog interface = enp1s0f0 [SSHopen] sequence = 33333,22222,11111 seq_timeout = 5 tcpflags = syn start_command = iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT cmd_timeout = 3600 stop_command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT [SSHclose] sequence = 11111,22222,33333 seq_timeout = 5 tcpflags = syn command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Phần “mở” được cài đặt tự động đóng sau 1 giờ. Bạn không bao giờ biết...
-
/etc/sysconfig/iptables:
... -A INPUT -p tcp -m state --state NEW -m tcp --dport 11111 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22222 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 33333 -j ACCEPT ...
-
phía trước:
service iptables restart service knockd start
-
bạn có thể thêm RDP vào Máy chủ Windows ảo quay bên trong (/etc/knockd.conf; thay thế tên giao diện cho phù hợp với sở thích của bạn):
[RDPopen] sequence = 44444,33333,22222 seq_timeout = 5 tcpflags = syn start_command = iptables -t nat -A PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2 cmd_timeout = 3600 stop_command = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2 [RDPclose] sequence = 22222,33333,44444 seq_timeout = 5 tcpflags = syn command = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2
Chúng tôi theo dõi tất cả các lần khởi động của chúng tôi từ máy khách trên máy chủ bằng lệnh
iptables -S
.
2. Hướng dẫn cào
knockd.conf:
Mana cũng chứa đựng tất cả mọi thứ (nhưng điều này không chính xác), nhưng knockd là một người bạn khá keo kiệt với tin nhắn nên bạn cần phải hết sức cẩn thận.
- phiên bản
Trong kho Fedora/CentOS, mức gõ mới nhất cho ngày hôm nay là 0.63. Ai muốn UDP - hãy tìm gói 0.70. - giao diện
Trong cấu hình Fedora/CentOS mặc định, dòng này Không. Thêm bằng tay của bạn, nếu không nó sẽ không hoạt động. - thời gian chờ
Tại đây bạn có thể lựa chọn theo sở thích của mình. Điều cần thiết là khách hàng phải có đủ thời gian cho tất cả các lần khởi động - và bot quét cổng sẽ bị hỏng (và 146% sẽ quét). - bắt đầu/dừng/lệnh.
Nếu có một lệnh thì lệnh, nếu có hai lệnh thì start_command+stop_command.
Nếu bạn mắc lỗi, knockd sẽ im lặng nhưng không hoạt động. - do đó
Về mặt lý thuyết, UDP có thể được sử dụng. Trong thực tế, tôi đã trộn lẫn tcp và udp, và khách hàng từ bãi biển ở Bali chỉ có thể mở cổng lần thứ năm. Bởi vì TCP đến khi cần thiết nhưng UDP không phải là sự thật. Nhưng đây lại là vấn đề về hương vị. - trình tự
Cái cào ngầm là các chuỗi không được giao nhau... nói thế nào nhỉ...
Ví dụ, điều này:
open: 11111,22222,33333
close: 22222,11111,33333
Bằng cú đá 11111 mở sẽ đợi cú đá tiếp theo vào lúc 22222. Tuy nhiên, sau cú đá này (22222) nó sẽ bắt đầu hoạt động gần và mọi thứ sẽ tan vỡ. Điều này còn phụ thuộc vào độ trễ của khách hàng. Những điều như vậy ©.
iptables
Nếu trong /etc/sysconfig/iptables thì đây là:
*nat
:PREROUTING ACCEPT [0:0]
Nó không thực sự làm phiền chúng tôi, vì vậy đây là:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Nó can thiệp.
Vì knockd thêm các quy tắc vào cuối chuỗi INPUT nên chúng ta sẽ bị từ chối.
Và việc tắt chức năng từ chối này đồng nghĩa với việc mở xe đón mọi luồng gió.
Để không bị lạc trong iptables, nên chèn cái gì trước cái gì (như thế này
- mặc định trên CentOS/Fedora 1 quy tắc (“những gì không bị cấm thì được phép”) sẽ được thay thế bằng quy tắc ngược lại,
- và chúng tôi loại bỏ quy tắc cuối cùng.
Kết quả sẽ là:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
Tất nhiên, bạn có thể TỪ CHỐI thay vì THẢ, nhưng với DROP, cuộc sống của bot sẽ vui hơn.
3. Khách hàng
Nơi này là thú vị nhất (theo quan điểm của tôi), vì bạn cần phải làm việc không chỉ từ bất kỳ bãi biển nào mà còn từ bất kỳ thiết bị nào.
Về nguyên tắc, một số khách hàng được liệt kê trên
Khi chọn máy khách, bạn cần đảm bảo rằng nó hỗ trợ tùy chọn độ trễ giữa các gói. Có, có sự khác biệt giữa các bãi biển và 100 megabit không bao giờ đảm bảo rằng các gói sẽ đến đúng thứ tự vào đúng thời điểm từ một vị trí nhất định.
Và đúng vậy, khi thiết lập ứng dụng khách, bạn cần phải tự mình chọn độ trễ. Quá nhiều thời gian chờ - bot sẽ tấn công, quá ít - khách hàng sẽ không có thời gian. Quá nhiều sự chậm trễ - khách hàng sẽ không đến kịp hoặc sẽ xảy ra xung đột giữa những kẻ ngốc (xem "cào"), quá ít - các gói sẽ bị thất lạc trên Internet.
Với thời gian chờ = 5 giây, độ trễ = 100..500ms là một tùy chọn hoàn toàn hoạt động
Windows
Cho dù nghe có vẻ buồn cười đến thế nào thì việc Google trở thành một ứng dụng khách rõ ràng cho nền tảng này là điều không hề tầm thường. Sao cho CLI hỗ trợ độ trễ, TCP - và không có cung.
Ngoài ra, bạn có thể thử
Linux
Thật đơn giản ở đây:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
Dành cho MacOS
Cách dễ nhất là cài đặt cổng từ homebrew:
brew install knock
và vẽ các tệp bó cần thiết cho các lệnh như:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
iOS
Một tùy chọn hoạt động là KnockOnD (miễn phí, từ cửa hàng).
Android
"Gõ vào cổng" Không phải quảng cáo, nhưng nó chỉ hoạt động. Và các nhà phát triển khá nhanh nhạy.
Tất nhiên, giảm giá PS cho Habré, Chúa phù hộ cho anh ấy một ngày nào đó...
CẬP NHẬT1: nhờ vào
CẬP NHẬT2: Một cái khác
Nguồn: www.habr.com