Как настроить компьютер в качестве шлюза из локальной сети в Интернет?
Это дополнительный вопрос к этому вопросу.
Я хочу настроить локальную сеть таким образом, чтобы ее клиенты использовали сервер в качестве шлюза к Интернету.
Операционная система на всех клиентах и сервере - OpenSuse 42.3. Каждый участник может получить доступ к Интернету самостоятельно, и каждый участник может пинговать друг друга.
Я дал серверу два IP-адреса: один для локальной сети и один для Интернета, и включил пересылку ipv4 внутри.
Клиенты используют IP-адрес сервера в качестве стандартного шлюза в Интернет, но я, вероятно, установил некоторые значения неправильно, так как это не работает.
1 ответ
OpenSuse должен иметь пакеты shorewall и shorewall-doc, доступные в менеджере пакетов.
https://software.opensuse.org/package/shorewall
Брандмауэр Shoreline, более известный как "Shorewall", - это брандмауэр на основе Netfilter > (iptables), который можно использовать в выделенной системе брандмауэра, > многофункциональном шлюзе / маршрутизаторе / сервере или в автономной системе GNU/Linux.
Пример Debian
После установки shorewall включите net.ipv4.ip_forward = 1
в /etc/sysctl.conf
и выполнить sysctl -p
Предполагая, что у вас есть два интерфейса Ethernet на вашем шлюзе и вы установили shorewall-doc, нам нужны следующие примеры из / usr / share / doc / shorewall / examples / two-interfaces /
- зон
- Сообщает shorewall, какие зоны (сети) к нему подключены.
- интерфейсы
- Сообщает shorewall, какие интерфейсы он может использовать
- MASQ
- Переведите наш частный диапазон IP-адресов в наш публичный IP
- политика
- Делает широкие и широкие изменения
- правила
- Делает исключение в файле политики
И поместите их все в / etc / shorewall /
Файл зон должен содержать
- брандмауэр fw
- net ipv4
- loc ipv4
Вот пример файла интерфейсов, опция dhcp на eth0 предназначена для получения "динамического" статического адреса от вашего провайдера.
net eth0 dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0
loc eth1 tcpflags,nosmurfs,routefilter,logmartians
Ваш файл masq переводит ваш личный диапазон адресов в ваш публичный адрес, например
eth0 192.168.1.0/24
Файл политики для широких и драматических изменений брандмауэра, и здесь это нормально
- Запретить весь входящий трафик
- Разрешить весь исходящий трафик
Пример политики
loc net ACCEPT
fw all DROP
net all DROP
all all DROP
Файл правил делает исключения для файла политики, поэтому здесь мы, например, хотим разрешить SSH к шлюзу, потому что all all DROP
в противном случае нам следует отказать в отправке любых пакетов в FW
SSH(ACCEPT) loc $FW
Разрешить пакеты ICMP, чтобы мы не отказывали в ICMP PMTU.
ACCEPT all all icmp
Разрешите брандмауэру разрешать DNS-запросы, потому что это заблокировано в политике. в Debian используется для запуска обновления apt-get и установки пакетов.
ACCEPT $FW net tcp,udp 53,80
http://shorewall.net/manpages/ действительно хорошо документирован для всех вариантов выше.
Прежде чем использовать правила брандмауэра, убедитесь, что конфигурация без ошибок, используя shorewall check
и сделать новые изменения вступают в силу с shorewall safe-restart
Когда вы создали конфигурацию, которая работает, и вы счастливы сохранить ваши правила iptables с iptables-save > /root/iptables.txt
и сделать запись в / etc / network / interfaces для загрузки правил до того, как ваши интерфейсы появятся pre-up iptables-restore < /root/iptables.txt
поэтому, если shorewall в какой-то момент не запустится, ваша сеть не будет беззащитной.
Их еще предстоит сделать, чтобы еще больше укрепить вашу сеть, но это только начало.