2017-09-26 113 views
0

我開始使用Ansible開發進行了系統iptables的一些動作的劇本。 我有一臺服務器,我想阻止除一個或多個IP以外的所有IP。Ansible劇本阻止所有IP排除一個或多個IP

我真的不知道該怎麼寫使用ansible模塊的iptables規則。我需要:

  1. 丟棄所有傳入流量 (iptables的-P INPUT DROP)
  2. 丟棄所有傳入流量(iptables的-P INPUT DROP)
  3. 丟棄所有轉發的流量(iptables的-P正向壓降)
  4. 允許所有傳出通信(iptables的-P OUTPUT ACCEPT)
  5. 的iptables -A INPUT -p TCP -m TCP -s IPADDRESS --dport 22 -j ACCEPT

到目前爲止,我已經創造了這個劇本:

--- 

    - hosts: localhost 
    remote_user: sysadmin 
    become: true 

    vars: 
     host_name: localhost 

    tasks: 

    # Drop all incoming traffic 
    # iptables -P INPUT DROP 
    - iptables: 
     chain: INPUT 
     protocol: all 
     jump: DROP 
     become: yes 


    # Drop all forwarded traffic 
    # iptables -P FORWARD DROP 
    - iptables: 
     chain: FORWARD 
     source: all 
     jump: DROP 
     become: yes 

    # Allow all outgoing traffic 
    #iptables -P OUTPUT ACCEPT 
    - iptables: 
     chain: OUTPUT 
     source: all 
     jump: ACCEPT 
     become: yes 

    # Allow all outgoing traffic 
    # iptables -A INPUT -p tcp -m tcp -s xx.xx.xx.xx/32 --dport 22 -j ACCEPT 
    - iptables: 
     action: append 
     chain: INPUT 
     protocol: tcp 
     source: ip_address 
     destination_port: 22 
     jump: ACCEPT 
     become: yes 
+0

我想你需要更改任務順序,因爲首先你需要讓你想要的IPS然後放下一切,否則會放下所有的事情,也不會尊重你的允許規則。 –

+0

我認爲你需要更改的任務順序,因爲首先你需要讓你想要的IPS然後放下一切,否則會放下所有的事情,也不會尊重你的允許規則。 –

+0

即使我使用-append選項? – Dandelion

回答

0

我解決了採取不同的措施:

  1. 的iptables -A INPUT -s 2.228.104.210 -j ACCEPT
  2. 的iptables -A OUTPUT - d 2.228.104.210 -j ACCEPT
  3. 的iptables -P INPUT DROP
  4. 的iptables -P OUTPUT DROP

和工作的劇本:

--- 

    - hosts: localhost 
    remote_user: sysadmin 
    become: true 

    vars: 
     host_name: localhost 

    tasks: 

    - iptables: 
     chain: INPUT 
     source: 192.168.1.1 
     jump: ACCEPT 
     become: yes 


    - iptables: 
     chain: OUTPUT 
     destination: 192.168.1.1 
     jump: ACCEPT 
     become: yes 


    - iptables: 
     chain: INPUT 
     policy: DROP 
     become: yes 


    - iptables: 
     chain: OUTPUT 
     policy: DROP 
     become: yes