列出所有 ESTABLISHED 状态的连接:
1 | netstat -nta | fgrep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7 | head -25 |
列出所有连接状态的统计:
1 | netstat -nta | fgrep ":" | cut -b 77-90 | sort | uniq -c |
或
1 | netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
简单将攻击IP列入iptables 限制范围:
1 | netstat -an | grep -v LISTEN | awk '{print $5}' |grep -v 127.0.0.1|grep -v 本机ip|sed "s/::ffff://g"|awk 'BEGIN { FS=":" } { Num[$1]++ } END { for(i in Num) if(Num[i]>8) { print i} }' |grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'| xargs -i[] iptables -I INPUT -s [] -j DROP |
Num[i]>8部分是设置阀值,这条shell句子会自动将netstat -an中查到的来自同一ip的超过阀值的连接的列入iptables禁止
将命令中的“本机ip”改成你的服务器的ip地址
一个ip限制30个pop连接:
1 | iptables -I INPUT -p tcp --syn --dport 110 -m connlimit --connlimit-above 30 -j REJECT |
将192.168.4.139上的/data0目录同步到本机:
1 | rsync -avLP -e 'ssh' --delete 192.168.4.139:/data0 / 1>>/opt/out.txt 2>>/opt/err.txt |
修改目标地址,用于在防火墙后端的web服务器(DNAT):
1 | iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80 |
开启路由(SNAT):
1 | echo "1" > /proc/sys/net/ipv4/ip_forward #开启转发 |
或
1 | iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 199.15.116.12 #不使用伪装,修改源地址为公网地址199.15.116.12 |
将公钥传到其他服务器:
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub user@remoteServer |
获取本机所有ip及其对应的mac地址:
1 | ifconfig|grep HWaddr -A 1|awk -v RS="--" '{sub(/addr:/,"",$7); print $7,$5}' |
- -v:赋值一个用户定义变量
- RS:记录分隔符(默认是一个换行符)
- FS:字段分隔符(默认是任何空格)
- NF: 当前记录中的字段数
- NR:当前记录数
- sub(/addr:/,””,$7):将第7段中的addr:替换成空
查找当前目录下的所有文件,并将文件中的cszhi.com替换成test.cn:
1 | find . -type f -exec sed -i 's/cszhi\.com/test\.cn/g' {} \; |
不转义点号也可:
1 | find . -type f -exec sed -i 's/cszhi.com/test.cn/g' {} \; |
ssh交互式登陆脚本
1 | #!/usr/bin/expect |
set timeout 30命令把超时时值设定为30秒
spawn命令激活一个Unix程序来进行交互式的运行
send命令向进程发送字符串
同步时间:
1 | ntpdate -s -b ntp.aliyun.com |
不断更新中。。。。。。