Làm thế nào để biến mọi thứ thành một router
Chính phủ Mỹ vừa công bố một chính sách gây tranh cãi, cấm nhập khẩu các mẫu router mới dành cho người tiêu dùng. Đây không phải là giải pháp thực tế cho chính sách này, mà chỉ là một thủ thuật để tăng khả năng của phần cứng mà bạn đã có và chứng minh rằng router cũng chỉ là máy tính.
Lựa chọn phần cứng
Ưu tiên của tôi là một mini PC thiết kế để làm mát thụ động. Tuy nhiên, thực tế thì bất cứ thứ gì cũng có thể làm router miễn là có hai cổng Ethernet, hoặc một cổng USB-Ethernet cũng được.

Một thiết bị Celeron 3205U 1.5 GHz cũng đủ để xử lý dữ liệu cho cả ngôi nhà hoặc văn phòng nhỏ.
Cấu hình như thế nào?
Hệ thống sẽ được cấu hình như sau:
| Interface | Network |
|---|---|
| eth0 | WAN |
| eth1 | LAN (Wired) |
| wlan0 | LAN (Wireless) |
Cả hai giao diện LAN sẽ được kết nối với nhau, giúp các thiết bị trên mạng có thể giao tiếp dễ dàng.
Cài đặt & Thiết lập
Cài đặt Debian là quá trình khá tiêu chuẩn. Một vài điểm cần lưu ý:
- Vô hiệu hóa boot mạng PXE trong cài đặt BIOS/UEFI.
- Thiết lập tốc độ xung nhịp thấp nhất nhưng tắt quản lý nguồn cho các thiết bị USB hoặc PCI.
- Mở tùy chọn “Khôi phục sau khi mất nguồn AC”.
- Có thể cần cài thêm gói firmware.
sudo apt install firmware-iwlwifi
Cài đặt các gói yêu cầu
sudo apt install bridge-utils hostapd dnsmasq
Cấu hình mạng không dây
Để thiết lập mạng Wi-Fi, tạo file cấu hình tại /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
hw_mode=g
channel=11
ieee80211d=1
country_code=US
ieee80211n=1
wmm_enabled=1
ssid=My Cool and Creative Wi-Fi Name
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=mysecurepassword
Unmask và kích hoạt dịch vụ hostapd.
sudo systemctl unmask hostapd
sudo systemctl enable --now hostapd
Cấu hình giao diện
Định cấu hình cho các giao diện mạng trong file /etc/network/interfaces
allow-hotplug eth0
allow-hotplug eth1
auto wlan0
auto br0
iface eth0 inet dhcp
iface br0 inet static
bridge_ports eth1 wlan0
address 192.168.1.1/24
Truyền tiếp IP
Tạo file /etc/sysctl.d/10-forward.conf
net.ipv4.ip_forward=1
Áp dụng các thay đổi:
sudo systemctl restart systemd-sysctl.service
Quy tắc firewall
Cấu hình trong file /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state { established,related } counter accept
ip protocol icmp counter accept
iifname "br0" tcp dport { 22, 53 } counter accept
iifname "br0" udp dport { 53, 67, 68 } counter accept
counter
}
chain forward {
type filter hook forward priority 0; policy drop;
iifname "eth0" oifname "br0" ct state { established,related } counter accept
iifname "br0" oifname "eth0" ct state { new,established,related } counter accept
counter
}
chain output {
type filter hook output priority 0; policy accept;
counter
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority 100; policy accept;
oifname "eth0" counter masquerade
}
}
Kích hoạt cho lần boot tiếp theo:
sudo systemctl enable nftables.service
DHCP và DNS
Thay vì isc-dhcp-server và bind9, sử dụng dnsmasq, cấu hình đơn giản hơn:
/etc/dnsmasq.conf
interface=br0
listen-address=0.0.0.0
dhcp-range=192.168.1.50,192.168.1.250,255.255.255.0,6h
dhcp-option=option:router,192.168.1.1
dhcp-option=option:dns-server,192.168.1.1
cache-size=10000
Kích hoạt dịch vụ:
sudo systemctl enable dnsmasq
Kiểm tra
Hãy kiểm tra trạng thái của firewall để đảm bảo lưu lượng truy cập qua mạng:
$ sudo nft list ruleset
Trước khi chỉnh sửa, hãy xác minh cấu hình firewall:
sudo nft -c -f /etc/nftables.conf
Làm mới các quy tắc mà không làm gián đoạn:
sudo systemctl reload nftables.service
Nhiều tính năng hơn
Router của bạn có thể cung cấp thêm nhiều tính năng:
- Logging và quản lý lưu lượng
- VLANs và phân đoạn
- Giám sát thời gian thực
- Kết nối VPN từ xa
Tạo một router theo cách này giúp tận dụng các thiết bị cũ và tăng khả năng sử dụng mà không cần phải đầu tư nhiều vào phần cứng mới.