linux安全配置-将ssh服务隐藏于Internet(端口碰撞)
一:設(shè)備信息
要保護(hù)的服務(wù)器:ubuntu14.04 ? ?192.168.1.38
ssh測(cè)試機(jī):kali2.0 ? ? ? ? ? ? ? ? ? ? ?192.168.1.47
二:配置過(guò)程
1.首先掃描一下未進(jìn)行knockd配置的服務(wù)器的端口狀況:
?由上面可知該服務(wù)器開啟了SSH端口
2.在服務(wù)器(192.168.1.38)下載并配置knockd
1)安裝knockd
#apt-get install update
#apt-get install build_essential -y
#apt-get install knockd -y
2)配置knockd服務(wù):
2.1 配置/etc/knockd.conf。
[options]
#UseSyslog
LogFile = /knock.log ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//可以自定義日志的輸出位置以及文件名
[openSSH]
sequence = 7000,8000,9000 ? ? ? ? ? ? ? ? ? ? //定義順序號(hào),此處是默認(rèn)的,也可以修改
seq_timeout = 30 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //設(shè)置超時(shí)時(shí)間太小的話可能會(huì)出錯(cuò)
command =?/sbin/iptables -I INPUT -s 192.168.1.47 -p tcp --dport 22 -j ACCEPT ? ? ?//-i 命令是將規(guī)則插入到最前面,最先生效,以防止過(guò)濾所有端口的情況將此條規(guī)則吃掉
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000 ? ? ? ? ? ? ? ? ? ?//定義關(guān)門順序號(hào),與開門對(duì)應(yīng),順序相反
seq_timeout = 30?
command = /sbin/iptables -D INPUT -s 192.168.1.47?-p tcp --dport 22 -j ACCEPT ? ?//SSH使用完后,再將22端口“保護(hù)”起來(lái)
tcpflags = syn
? ? ? ? ? ? ??
?
2.2 配置/etc/default/knockd,修改START_KNOCKD=1。
################################################
#
# knockd's default file, for generic sys config
#
################################################
# control if we start knockd at init or not
# 1 = start
# anything else = don't start
#
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1
# command line options
#KNOCKD_OPTS="-i eth1"
? ? ? ? ? ? ?
? ? ?2.3 ? 啟動(dòng)knockd。
? #service knockd start
? ? ? ? ? ? ?重啟knockd
? ? ? ? ? ? ? #service knockd restart
? ? ?2.4 ? 添加適當(dāng)?shù)膇ptables規(guī)則
? ? ? ? ? ? ? 確保服務(wù)器可通過(guò)本地主機(jī)接口與自己對(duì)話:
? ? ? ? ? ? ? ? ?#iptables -A INPUT -s 127.0.0.0/8 ?-j ? ACCEPT
? ? ? ? ? ? ? 本次測(cè)試中,阻塞所有進(jìn)入服務(wù)器的通信:
? ? ? ? ? ? ? ? ?#iptables -A INPUT ?-j ?DROP
? ? ? ? ? ? ? 查看添加到iptables規(guī)則:
? ? ? ? ? ? ? ? ?#?iptables -nvL
? ? ? ? ? ? ?
?
? ? ? ? ? ? ? 此時(shí)再用nmap掃描將看不到22 SSH端口:
? ? ? ? ??
?3.測(cè)試knockd服務(wù)
? ? ?1) 直接在kali測(cè)試機(jī)上使用ssh登錄服務(wù)器:
? ? ? ? ? ?#ssh bask@192.168.1.38
? ? ? ?
? ? ? ?由上面可知,這樣是無(wú)法正常登錄的
? ? ?2) 使用7000/8000/9000隊(duì)列號(hào)敲門登錄:
? ? ? ? ? ?#for x in 7000 8000 9000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x 192.168.1.38; done
? ? ??
? ? ?3) 再次測(cè)試此時(shí)是否能登陸:
? ? ? ???#ssh bask@192.168.1.38
? ? ? ??
? ? ? ?由上面可以看出,此時(shí)是成功登錄的
? ? ? ?這時(shí)服務(wù)器上iptables規(guī)則是有變化的:
? ? ? ?
? ? ? ?當(dāng)指定的這臺(tái)測(cè)試機(jī)使用完SSH服務(wù)后,進(jìn)行相應(yīng)的關(guān)門操作,即可將端口再次“保護(hù)”起來(lái)
? ? ? 4)使用9000/8000/7000隊(duì)列號(hào)關(guān)門
? ? ??for x in 9000 8000 7000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x 192.168.1.38; done
? ? ? 此時(shí)服務(wù)器的iptables規(guī)則恢復(fù)為:
? ? ??
? ? ?此時(shí)將無(wú)法進(jìn)行SSH登錄,必須進(jìn)行開門才可以。
三、總結(jié)
? ? 在實(shí)際應(yīng)用中,我們可以通過(guò)此方法使敏感服務(wù)器達(dá)到隱藏的效果,提高系統(tǒng)的安全性!
轉(zhuǎn)載于:https://www.cnblogs.com/bask/p/9159197.html
總結(jié)
以上是生活随笔為你收集整理的linux安全配置-将ssh服务隐藏于Internet(端口碰撞)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML5 拖拽的简单实践
- 下一篇: Vue.js 2.x笔记:表单绑定(3)