直播源码开发利用iptables防止工具扫描端口
场景:直播源码开发好多人通过nmap等软件恶意扫描别人服务器上的端口,通过其他提权操作攻击服务器等一系列操作
实现:
我们可以通过shell脚本和iptables设置的一系列规则匹配来访问的IP,如果直播源码开发出现异常, 然后将其加入黑名单 实行封禁处理,但是这个在小型网站访问方面可以,大型高并发网站还是建议用防火墙等专业软件来处理
操作步骤如下:
iptables规则设置
新建脚本iptables.sh
vim iptables.sh
IPT="/sbin/iptables"$IPT --delete-chain$IPT --flush#Default Policy$IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP#INPUT Chain$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT$IPT -A INPUT -i lo -j ACCEPT$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT$IPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT$IPT -A INPUT -p tcp --syn -m recent --name portscan --rcheck --seconds 60 --hitcount 10 -j LOG$IPT -A INPUT -p tcp --syn -m recent --name portscan --set -j DROP#OUTPUT Chain$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT$IPT -A OUTPUT -o lo -j ACCEPT$IPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT$IPT -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
保存重启
#iptables saveservice iptables saveservice iptables restart
2、iptables日志位置更改
编辑/etc/syslog.conf,添加:
kern.warning /var/log/iptables.log
重启syslog
/etc/init.d/syslog restart
3、防端口扫描shell脚本
安装inotify:
yum install inotify-tools
保存以下代码为ban-portscan.sh
vim ban-portscan.sh
btime=600 #封ip的时间while true;do while inotifywait -q -q -e modify /var/log/iptables.log;do ip=`tail -1 /var/log/iptables.log | awk -F"[ =]" '{print $13}' | grep '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'` if test -z "`/sbin/iptables -nL | grep $ip`";then; /sbin/iptables -I INPUT -s $ip -j DROP { sleep $btime && /sbin/iptables -D INPUT -s $ip -j DROP } & fi donedone
执行命令开始启用端口防扫描
nohup ./ban-portscan.sh &
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com