Thiết lập máy chủ fwknop
Ủy quyền gói đơn fwknop giữ SSH đóng cho đến khi một gói UDP được mã hóa, xác thực đến nơi. Các bước này thiết lập trên máy chủ Debian hoặc Ubuntu; trước tiên hãy kiểm tra từ máy tính, sau đó thêm cùng các khóa vào Secret Knock.
1. Cài đặt và tạo khóa
Cài đặt máy chủ và ứng dụng khách, sau đó tạo một cặp khóa. Giữ lại kết quả đầu ra: cùng hai khóa này được dùng trong access.conf và Secret Knock.
sudo apt install fwknop-server fwknop-client
fwknop --key-gen # prints KEY_BASE64 and HMAC_KEY_BASE64 2. Cho phép SSH cho các gói SPA
access.conf xác định gói hợp lệ có thể mở gì và trong bao lâu.
SOURCE ANY
OPEN_PORTS tcp/22
KEY_BASE64 <output of fwknop --key-gen>
HMAC_KEY_BASE64 <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT 30 3. Cho fwknopd biết nơi lắng nghe
fwknopd bắt các gói trên một giao diện mạng; nó không cần cổng đang mở. Hãy đặt giao diện mà máy chủ của bạn sử dụng.
# /etc/fwknop/fwknopd.conf
PCAP_INTF eth0;
PCAP_FILTER udp port 62201;
MAX_SPA_PACKET_AGE 120; 4. Đóng SSH theo mặc định
Hãy duy trì một phiên SSH đang mở khi thực hiện việc này, và kiểm tra từ kết nối thứ hai trước khi đăng xuất. fwknopd chèn chuỗi riêng của nó ở đầu INPUT và thêm ACCEPT có thời hạn tại đó cho mỗi gói hợp lệ.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP 5. Kiểm tra, rồi thêm cửa
Khởi động lại fwknop-server, gửi một gói từ máy khác rồi kết nối:
# from another machine: request SSH for the address the server sees (-R)
fwknop -A tcp/22 -R -D server.example.com \
--key-base64-rijndael "<KEY_BASE64>" --key-base64-hmac "<HMAC_KEY_BASE64>"
ssh [email protected] - 1Trong Secret Knock: Cửa mới › Bắt đầu từ mẫu › fwknop, nhập máy chủ và dán kết quả đầu ra của fwknop --key-gen bằng Dán khóa.
- 2Gõ; cửa hiển thị Cửa hé mở khi cổng 22 phản hồi.
- 3Chạy fwknopd -f -v trên máy chủ nếu không được — hướng dẫn khắc phục sự cố liệt kê các nguyên nhân thường gặp.
Tất cả ví dụ trên GitHub → Mọi cấu hình trên trang này, sẵn sàng để sao chép: github.com/mobilcomm/secretknock-examples (phạm vi công cộng).
Câu hỏi
fwknopd có cần một cổng đang mở không?
Không. Nó đọc các gói từ giao diện mạng, nên cổng SPA có thể vẫn đóng trong tường lửa; gói chỉ cần đến được máy chủ.