成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Ansible中編寫劇本實現批量服務器安全加固

安全 網站安全
在本章節中, 我將利用Ansible的劇本來實現更實用、更復雜一點的功能。

在上一篇<<初步利用Ansible實現批量服務器自動化管理>>文章中, 我初步實現了通過編寫清單和劇本來實現多臺服務器的自動化管理,在本章節中, 我將利用Ansible的劇本來實現更實用、更復雜一點的功能, 主要功能包括三個:

  • 同時在三臺服務器中增加IP訪問控制,只允許192.168.201.202的IP登錄,其它IP禁止其通過SSH登錄。
  • 修改SSH服務的默認22端口,修改為2222。
  • 啟動防火墻,只允許2222端口訪問, 不允許其它端口訪問。

1.編寫劇本

如果只講原理,沒有實踐, 學習起來會比較枯燥, 所以我會在編寫劇本的過程中邊實踐邊講解劇本的語法。

上篇文章中, 我們已經知道劇本是一個YAML格式文件, 在開頭,我們要加載所有的遠程管理hosts,語法如下:

- hosts: all

還記得在上一章編寫的清單文件inventory.yaml嗎,看看里面的內容:

hosts: all默認會加載這里的所有IP地址, 緊隨其后的命令是:

become: yes

該命令在Ansible中表示提權執行。

默認情況下,Ansible是以普通用戶身份通過SSH連接到遠程主機的。但有些任務需要 root 或 sudo 權限,比如服務的重啟,文件權限的修改等。這時就需要使用become模塊提權, 加上become:yes表示這個劇本中的所有任務都需要提權執行。Ansible會在執行任務時自動切換到root身份或目標用戶身份,然后執行指定的任務。

become模塊非常強大,可以精細控制在劇本中的提權行為,包括:

- 以哪個身份提權(默認root,可以指定其他用戶)- 提權使用的方法(sudo、su等)- 提權的密碼- 僅在某些任務中提權

緊接著就是編寫我們的任務了, 為了方便介紹, 我先給出一個完整的服務劇本,如圖:

- hosts: all
  become: yes

  tasks:
    - name: 修改SSH端口
      lineinfile:
        path: /etc/ssh/sshd_config
        regexp: '^Port'
        line: 'Port 2222'
    - name: 默認開啟防火墻
      ufw:
        state: enabled
    - name: 在防火墻中開啟2222端口
      ufw:
        rule: allow
        port: '2222'
    - name: 防火墻拒絕其它端口連接
      ufw:
        rule: deny
        direction: in
        delete: yes
    - name: 允許指定的IP訪問
      ufw:
        rule: allow
        src: 192.168.201.202
    - name: 拒絕所有其它IP訪問
      ufw:
        rule: deny
        src: 0.0.0.0/0
    - name: 重啟ufw防火墻
      service:
        name: ufw
        state: restarted
    - name: 重啟SSH服務
      service:
        name: sshd
        state: restarted

可以看出, 任務tasks標簽下面有8個子項, 每個子項都有一個name, 這個name表示每個子任務的名字, 方便我們區分子任務。

子任務1: 修改SSH端口

該任務使用了lineinfile模塊, 目的是在路徑/etc/ssh/sshd_config文件中按行搜索, 通過正則regexp匹配Port, 然后將其修改為2222端口。

我們可以打開/etc/ssh/sshd_config文件看一下, 查找到該項:

在ubuntu系統中, Port一般在ssd_config文件的最后一行。

子任務2:默認開啟防火墻

對于ubuntu系統來說,防火墻使用的是ufw, 這里將狀態state始終置為:enabled, 因為大部分剛裝完的系統默認沒有開啟ufw,因此這里需要提前設置狀態, 否則會導致后面操作ufw不成功。

子任務3: 在防火墻中開啟2222端口

在該任務中,我們將之前修改的SSH服務的2222端口添加到防火墻中, 允許外界通過2222端口訪問本機。

子任務4:防火墻拒絕其它端口連接

在該任務中, 我們主要設置了拒絕規則, 在防火墻中,除了2222端口之外的其它所有端口全部刪除屏蔽掉。

子任務5:允許指定的IP訪問

與上面的端口相同,這里設置只允許某一個IP訪問本機,這里是只允許192.168.201.202服務器訪問。

子任務6:拒絕所有其它IP訪問

同上面端口的拒絕規則, 拒絕除192.168.201.202的其它IP地址訪問。

子任務7:重啟ufw防火墻

這里主要使用restarted重啟ufo防火墻,注意,這里不能用reload, 可能會導致防火墻重啟失敗, 用restart比較穩妥。

子任務8:重啟SSH服務

通過設置restarted狀態重啟SSH服務

2.多任務同步執行

編寫完劇本內容之后, 輸入以下命令執行即可:

# ansible-playbook -i inventory.yaml playbook.yaml

如果不出意外, 會看到以下執行結果:

如果在執行過程中出現錯誤, 會看到很醒目的提示,并給出執行狀態, 如圖:

3.結果驗證

首先我們看一下端口修改情況, 發現已經全部將SSH端口修改為2222端口,并可以全部以2222端口登錄, 如圖:

接著我們看一下IP限制情況, 上面登錄的全部是在192.168.201.202機器上登錄,而在我個人電腦上登錄卻失敗,如圖:

我們登錄到三臺機器上看一下防火墻規則, 已經按照劇本要求添加了對應規則,如圖:

責任編輯:趙寧寧 來源: 二進制空間安全
相關推薦

2012-05-08 13:59:23

2018-08-07 14:49:55

2010-11-04 15:32:05

SecSSM服務器安全網神

2015-08-05 09:35:38

Bastille服務器安全

2024-01-09 13:09:00

2021-12-19 22:44:16

Linux安全服務器

2009-02-16 16:13:00

IIS服務器服務器安全

2009-07-24 18:05:31

2019-10-12 13:33:47

Windows服務器主機加固服務器安全

2010-01-15 09:46:24

2018-08-28 09:12:58

LinuxPHP服務器

2010-05-18 16:07:35

2021-08-05 17:40:05

XpanesLinux服務器

2019-07-21 19:40:25

服務器開發 架構

2010-09-14 19:29:00

2021-03-02 06:32:03

Ansible系統運維

2011-06-09 11:24:42

2011-06-24 17:23:18

主服務器從服務器同步

2018-01-31 11:20:48

2021-03-22 16:45:58

服務器命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷丁香在线视频 | 亚洲视频一区在线观看 | 一区二区三区国产在线观看 | 夜夜爽99久久国产综合精品女不卡 | 国产美女自拍视频 | 午夜爱爱网 | 精品美女 | 亚洲欧美中文日韩在线v日本 | 国产精品久久久久久吹潮 | 国产成人jvid在线播放 | 综合伊人| 九色网址 | 国产一区二区精华 | 在线一区| 91视频精选 | 日韩在线综合网 | 一级毛片在线播放 | 久久综合香蕉 | 国产区精品在线观看 | 欧美日韩精选 | 天天玩夜夜操 | 亚洲国产精选 | 亚洲一区二区电影在线观看 | 人人草人人干 | 国产精品美女久久久久aⅴ国产馆 | 91精品国模一区二区三区 | 国产亚洲成av人片在线观看桃 | 久久久久久综合 | 日韩精品一区在线 | 九九久视频 | 国产欧美日韩精品一区 | 久久国产成人 | 国产成人一区二区三区久久久 | 国产精品久久久久久久久 | 国产黄色一级片 | 久久国产精品99久久久久久丝袜 | 97操操 | 亚洲一区二区三区在线视频 | 亚洲福利视频一区二区 | 韩国欧洲一级毛片 | 久久国产精品免费一区二区三区 |