Я не очень знаком с сетевыми вещами, и мне трудно понять, как работает hay firewalld.
Я разрабатываю службу REST, фактически прослушивая порт 8080, и я хочу иметь возможность отправлять запросы на порт 80, которые будут перенаправлены на 8080.
Для этого в CentOS 6 я использовал iptables и такое правило:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Я перешел на CentOS 7, и даже iptables все еще существует и все еще работает, тот факт, что firewalld является программным обеспечением брандмауэра по умолчанию, заставляет меня думать, что я должен начать использовать это программное обеспечение ... Дело в том, что я не могу понять, как оно работает, и как преобразовать мое единственное правило iptables в правило firewalld. Я знаю, что firewalld "понимает" правила iptables (на самом деле, я использую это правило с firewalld, чтобы продолжать работать), но я хочу знать, как это сделать, и я также хотел бы сделать это правило постоянным.
Спасибо
Использовать --add-forward-port
для настройки переадресации портов.
Из firewall-cmd
страница руководства:
--add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
[--timeout=timeval]
Add the IPv4 forward port for zone. If zone is omitted, default
zone will be used. This option can be specified multiple times. If
a timeout is supplied, the rule will be active for the specified
amount of time and will be removed automatically afterwards.
timeval is either a number (of seconds) or number followed by one
of characters s (seconds), m (minutes), h (hours), for example 20m
or 1h.
The port can either be a single port number portid or a port range
portid-portid. The protocol can either be tcp, udp, sctp or dccp.
The destination address is a simple IP address.
Итак, вы бы сделали что-то вроде:
firewall-cmd --zone=whatever --add-forward-port=port=80:proto=tcp:toport=8080
И если он сделает то, что ты хочешь, сделать это постоянным.
iptables - это инструмент брандмауэра по умолчанию, и вы можете найти его установленным во всех версиях Linux. firewalld - удобный инструмент, поэтому пользователь может взаимодействовать с «правилами iptables», даже не подозревая об этом. Кажется, очень просто использовать команды firewall-cmd ..., поскольку вы можете на лету выбирать заранее определенные зоны и службы (которые автоматически переводятся на определенные порты). Вы можете перезагрузить firewalld.service без перезагрузки или каких-либо неудобств.
Вы все еще можете использовать iptables в CentOS7, но вам нужно отключить firewalld (и замаскировать его еще лучше):
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
Установите iptables-services и iptables-utils:
yum install -y iptables-services iptables-utils
Теперь вы готовы использовать iptables на CentOS7.
Если вам нужно сохранить конфигурацию, чтобы пережить перезагрузку:
iptables-save >/etc/sysconfig/iptables
и если вы хотите изменить последовательность ваших правил iptables, вы можете отредактировать их файл (например, / your_file), а затем:
iptables-restore </your_file
и правила будут восстановлены.
надеюсь, что это поможет тебе