■ 河南 郭建偉
編者按:在實(shí)際的網(wǎng)絡(luò)管理中,為了提高運(yùn)維效率,管理員會(huì)使用Zabbix,Ansible 等工具,來實(shí)現(xiàn)自動(dòng)管理行為。例如,監(jiān)控服務(wù)器的狀態(tài),部署各種軟件等。但是,這些工具配置和使用起來比較繁瑣,而且在一些特殊的場(chǎng)合并不適用。其實(shí),系統(tǒng)自身已經(jīng)提供了強(qiáng)大的Shell 腳本功能,利用各種簡(jiǎn)單的命令,可以很輕松的實(shí)現(xiàn)各種自動(dòng)化操作。這里就結(jié)合實(shí)例,來說明具體的實(shí)現(xiàn)方法。
自動(dòng)攔截非法攻擊
對(duì)于公網(wǎng)上的服務(wù)器來說,如何提高其安全性,保證其可靠的運(yùn)行,是管理員必須面對(duì)的問題。
對(duì)于頻繁的攻擊行為,如何將其自動(dòng)屏蔽,避免其危害服務(wù)器的運(yùn)行呢?例如很多服務(wù)器開啟了SSH 遠(yuǎn)程訪問服務(wù),在利于管理員工作的同時(shí),也會(huì)招致諸如掃描端口、猜測(cè)密碼和非法登錄等攻擊。
除了設(shè)置復(fù)雜的密碼,啟用SSH 密鑰認(rèn)證的方法外,還可以利用系統(tǒng)NetFilter防火墻,配合Shell 腳本,自動(dòng)屏蔽各種惡意IP,來保護(hù)服務(wù)器的安全。例如,執(zhí)行“tail -fn 100 /var/log/secure”命令,可能會(huì)發(fā)現(xiàn)“Failed pasword”開頭的警告信息,說明系統(tǒng)已經(jīng)記錄了非法的嘗試登錄行為。
執(zhí) 行“vi zdfh.sh”命令,輸入“#!/bin/sh”,“SEC_File=/var/log/secure”,“I P_ADDDR= tail -n 1000 /va r/log/secure } grep "Fail ed password" | egrep -o "([0-9]{1.3}.){3}[0-9]{1.3}" sort -nr |uniq -c |awk ' $1>=3 {print $2}'”,“IPTABLE_CONF=/etc/sysconfig/iptables”,“ech o”,“cat </dev/null”,“if”,“[$? -ne 0];then”,“sed -I "/lo/a -A INPUT -s $im state --state NEW -m tcp -p tco --dport 22 -j DROP "$IPTABLE_CONF" "else”,“echo " 已 經(jīng) 存 在先關(guān)IP 紀(jì)錄信息"”,“fi”,“done”,“/etc/init.d/ipta blesrestart”行。
保存該腳本。
該腳本的原理是從“/var/log/secure”文件中讀取針對(duì)SSH 訪問的非法的登錄信息,這里提取其后1 000行的紀(jì)錄,將所有的可疑IP提取出來,并計(jì)算出其嘗試登錄的次數(shù)。如果其登錄的此時(shí)超過3 次,那么就在防火墻規(guī)則中針對(duì)該IP 添加攔截紀(jì)錄。
例如,“-A INPUT -s x.x.x.x -m state --state NEW -m tcp -dport 22 -j DROP”等。如果在防火墻規(guī)則中已經(jīng)存在該IP 信息,那么僅僅顯示提示信息。當(dāng)配置好防火墻規(guī)則后,重啟防火墻時(shí)規(guī)則生效。除了手工執(zhí)行外,還可以將其和計(jì)劃任務(wù)結(jié)合起來使用。例如,執(zhí)行“crontab -e”命令,輸入“0/2 /opt/data/auto_deny.sh”行,每隔2 h 執(zhí)行一次該腳本。
實(shí)現(xiàn)遠(yuǎn)程復(fù)制和執(zhí)行
在實(shí)際管理網(wǎng)絡(luò)時(shí),經(jīng)常需要批量復(fù)制文件到遠(yuǎn)程服務(wù)器。利用Shell 腳本,可以輕松解決該問題。
執(zhí) 行“vi zdfzfile.sh” 命 令,創(chuàng) 建 名 為“zdfzfile.sh” 的 文件, 輸 入“#!/bin/sh”,“#SRC=/etc/”,“if [! -f ip.txt ];then”,“echo -e "
同德县|
莆田市|
长武县|
根河市|
涟水县|
白河县|
祁门县|
来凤县|
巫山县|
秦安县|
新平|
同德县|
龙里县|
龙陵县|
延长县|
名山县|
夏邑县|
延津县|
新野县|
汝南县|
新兴县|
临武县|
胶州市|
含山县|
阜平县|
托克逊县|
门头沟区|
镇宁|
赤水市|
东山县|
霍州市|
澄城县|
黄浦区|
道真|
钟山县|
盘山县|
清丰县|
衡南县|
余江县|
建宁县|
长子县|