目前我正在更改远程机器的端口。我还必须允许 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