Ansible 在 iptables 上开放端口

Ansible 在 iptables 上开放端口

目前我正在更改远程机器的端口。我还必须允许 Centos 6.9 上的防火墙规则。以下是我在 sshd 上打开端口 2222 的命令。我不知道如何使用 ansible 在 iptables 上打开端口 2222。有人可以帮忙吗?

- hosts: web

  tasks:
   - name: Change The default Port for SSH

     lineinfile: dest=/etc/ssh/sshd_config

                 regexp="#Port 22"
                 line="Port 2222"
                 state=present
   - name: Restart sshd
     service: 

        name: 'sshd'
        state: 'restarted'

答案1

与往常一样,在 ansible 上有几种方法可以实现特定目标,iptables 规则也不例外。但是在这里,我将为您提供一种在 iptables 上打开端口 2222 的方法

- iptables_raw:
    name: allow_tcp_2222
    rules: '-A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT'

答案2

如果您的防火墙由 system-config-firewall 管理,那么您可以使用它lokkit来打开防火墙端口。例如:

- name: Open nonstandard ssh port in system-config-firewall
  command: lokkit -p 2222:tcp
  when: ansible_os_family == 'RedHat' and ansible_distribution_major_version|int == 6

- name: Open standard ssh port in system-config-firewall
  command: lokkit -s ssh
  when: ansible_os_family == 'RedHat' and ansible_distribution_major_version|int == 6

相关内容