Chuyển đến nội dung
Secret Knock

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
Debian / Ubuntu

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
/etc/fwknop/access.conf

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;
/etc/fwknop/fwknopd.conf

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
iptables

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]
Từ máy tính có fwknop-client
  1. 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.
  2. 2Gõ; cửa hiển thị Cửa hé mở khi cổng 22 phản hồi.
  3. 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ủ.

Hướng dẫn cho thiết lập của bạn