Хорошо, это странная настройка сети, но я пытаюсь перенести интернет из одной сети в другую.
headless server ((((( wireless router (other network)-----internet
|
|
router (my network) ))))) wireless computers
| | |
wired computers
Итак, в основном у меня есть безголовый Linux-сервер, который я хочу настроить в качестве маршрутизатора между моей сетью (eth0) и другой сетью (wlan0). Я должен уметь настраивать все остальное, но я не очень разбираюсь в iptables.
Я делал то же самое раньше между двумя проводными сетями, но я никогда не записывал правила.
На самом деле для базовой маршрутизации вам не нужны iptables - iptables помогает с фильтрацией и NAT (и другими вещами тоже).
Вы можете активировать пересылку пакетов с помощью:
sysctl -w net.ipv4.conf.all.forwarding=1
Добавить net.ipv4.conf.all.forwarding=1
в /etc/sysctl.conf, чтобы настройка закрепилась.
Если вы являются фильтрация на сервере (вы можете проверить это с помощью iptables -nvL
- если цепочка FORWARD имеет политику ACCEPT, которую вы не фильтруете), вам необходимо добавить правила, разрешающие пересылку пакетов между сетями:
iptables -I FORWARD -i eth0 -o wlan0 -s wi.red.net.work/24 -d wire.less.net.work/24 -j ACCEPT
iptables -I FORWARD -i wlan0 -o eth0 -s wire.less.net.work/24 -d wi.red.net.work/24 -j ACCEPT
Если вы не фильтруете, но хотите (кстати, вы тоже должны - см. Комментарий @Red Tux, рекомендуется фильтровать по умолчанию и разрешать только минимум), добавьте предыдущие правила плюс это:
iptables -P FORWARD DROP
Это изменяет политику, поэтому все пакеты, не соответствующие никаким правилам, отбрасываются.
Кроме того, если вы стремитесь к реальной безопасности, вам, вероятно, также следует отфильтровать цепочку INPUT. Эта цепочка обрабатывает запросы, поступающие на ваш маршрутизатор с IP-адресом назначения, который соответствует одному из его собственных, то есть входящие соединения (например, SSH). Разумным значением по умолчанию было бы:
iptables -I INPUT -i eth0 -s allowed.admin.ip.here -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -P INPUT DROP # make sure you've put your IP on the first rule before running this
# or you'll lock you out of the server
Это позволяет использовать SSH только с определенного хоста в проводной сети (обратите внимание на предупреждение), разрешает весь трафик на интерфейсе обратной связи (требуется некоторым программным обеспечением) и отбрасывает все остальное.
Как видите, вы можете разрешить только некоторые порты, используя -p tcp|udp --dport N
. Вам следует подумать о том, чтобы сделать это и в цепочке FORWARD для повышения безопасности.