埠掃瞄器:
python
的第三方模組python-nmap
可以實現高效的埠掃瞄。比如伺服器的22,21,3389
,3306
等高危埠是否暴露在了網際網路上。python-nmap
是linux
命令nmap
的封裝在python
安裝了nmap
後執行**:
nm=nmap.portscanner()
nm.scan('192.168.0.8','22,80')
報如下的錯誤,提示nmap
不在path
內traceback (most recent call last):
file "/home/zhf/zhf/python_prj/auto_manintance/chapter4.py", line 1, in
from namp import *
importerror: no module named namp
[finished in 0.1s with exit code 1]
[shell_cmd: python -u "/home/zhf/zhf/python_prj/auto_manintance/chapter4.py"]
[dir: /home/zhf/zhf/python_prj/auto_manintance]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
在/usr/bin
中搜尋namp
發現原來是系統沒有安裝nmap
。由於python-nmap
是nmap
命令的封裝,因此必須先安裝nmap
執行命令apt-get install nmap
後,在usr/bin
後可以找到nmap
程式。
nm=nmap.portscanner()
nm.scan('192.168.0.1-10','2280')
print nm.command_line()
print nm.scaninfo()
print nm.all_hosts()
for host in nm.all_hosts():
print host,,nm[host].state(),nm[host].all_protocols(),nm[host].all_tcp()
得到的結果如下:
nmap
-ox - -p 2280 -sv 192.168.0.1-10
}['192.168.0.1',
'192.168.0.2', '192.168.0.6', '192.168.0.8']
192.168.0.1
up ['tcp'] [22, 80]
192.168.0.2
up ['tcp'] [22, 80]
192.168.0.6
up ['tcp'] [22, 80]
192.168.0.8
up ['tcp'] [22, 80]
nm.command_line()
:列印出對應的linux
的namp
命令nm.scaninfo()
:得到nm
的掃瞄資訊。包括使用的協議,埠以及方法。從結果中可以看到掃瞄使用的是tcp
協議,採用的是syn
的方式。
nm.all_hosts()
nm[host].state()
:得到各個主機的狀態,分為up
和down
nm[host].all_protocols()
:返回掃瞄的協議
nm[host].all_tcp()
:返回掃瞄的埠
下面來看乙個完整的埠掃瞄程式
import nmap
def nmap_function():
nm=nmap.portscanner()
nm.scan('192.168.0.1-10','22,80')
for host in nm.all_hosts():
print host,nm[host].hostname()
print nm[host].state()
for proto in nm[host].all_protocols():
print proto
lport=nm[host][proto].keys()
lport.sort()
for port in lport:
print port,nm[host][proto][port]['state']
if __name__=="__main__":
nmap_function()
執行結果如下:可以看到192.168.0.1
的22埠關閉,但是80
埠開啟。192.168.0.8
的22和80
埠都關閉
192.168.0.1
uptcp
22 closed
80 open
192.168.0.8
uptcp
22 closed
80 closed
先看下192.168.0.1
的報文。通過wireshark
抓包可以看到發出的syn
報文,對於目的位址各傳送了2
條訊息。原因在於需要掃瞄2
個埠。80埠
22埠但是從上面的結果可以看出。當掃瞄80
埠的時候tcp
三次握手完成,而在掃瞄22
埠的時候對端傳送了rst
報文終止鏈結。所以192.168.0.1
的80埠是正常工作,而22
埠是沒有開啟的
再來看192.168.0.8
的報文:22
埠和80
埠對端都回覆了rst
報文,由此證明對應的埠並沒有開啟
22埠:
80埠
ansible自動化運維(四)
劇本檔案 字尾都是 yml 乙個劇本有多個paly 劇本的格式 yaml格式 1.plybook 使用空格字元來表示結構 處於層次結構中同一級別的資料元素必須具有相同的縮排量 執行劇本 使用ansble playbook example.yml ansible playbook example.ym...
運維自動化
1,cobbler安裝環境準備 安裝epel epel release 6 8.noarch.rpm x86 64 epel release 6 8.noarch.rpm x86 安裝系列依賴環境 要是區域網用,建議關閉iptables 或是放行25151 80 69埠 和關閉selinux 檢視狀...
自動化運維
考慮的因素 源 打包為映象 發布到映象庫 利用k8s發布到物理機器執行,以服務的形式對外提供服務 目前的做法 0 建立乙個執行遠端命令的框架 1 每個應用建立乙個部署檔案指令碼 a 指定元 位址 c 同步源 到目標主機 d 接受指令碼引數 vername 2 版本號,映象tag fromport 3...