标签:Linux

Liunx: 利用SCP让主机间传输数据

通常备份VPS文件需要下载到本地,但是如果需要搬迁vps的话,上传下载比较浪费时间,所以利用SCP让主机间直接传输数据,节省时间。

用法:
复制当前文件/文件夹到远程服务器目录
scp [当前文件] [远程服务器用户@远程服务器IP]:[远程服务器目录]
scp -r [当前服务器网站目录/文件夹] [root@远程服务器IP地址]:[远程服务器目录]
将远程服务器的文件/文件夹拷贝到本地当前服务器
scp [root@远程服务器IP地址]:[远程服务器目录文件] [当前服务器网站目录/文件夹]
scp -r [root@远程服务器IP地址]:[远程服务器目录] [当前服务器网站目录/文件夹]

Linux:自动磁盘挂载工具

来自宝塔出品的小工具,非常实用。

说明:
1:本工具默认将数据盘挂载到/www目录
2:若服务器上已存在/www目录,为了您的数据安全,挂载工具会自动跳过
3:若您的服务器之前安装过Windows系统,需要手动删除NTFS分区,挂载工具会直接跳过NTFS分区
4:若您的磁盘已分区,且未挂载,工具会自动将分区挂载到/www
5:若您的磁盘是新磁盘,工具会自动分区并格式化成ext4文件系统
6:本工具只自动挂载一个分区,若您有多块数据盘,请手动挂载未被自动挂载的磁盘

Centos/Fedora:
yum install wget -y && wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && bash auto_disk.sh
Ubuntu:
wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && sudo bash auto_disk.sh
Debian:
wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && bash auto_disk.sh

Linux iptables & CC

查看所有80端口的连接数

netstat -nat|grep -i “80”|wc -l

对连接的IP按连接数量进行排序

netstat -anp | grep ‘tcp|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
netstat -ntu | awk ‘{print $5}’ | egrep -o “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}” | sort | uniq -c | sort -nr

查看TCP连接状态

netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’
netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,”\t”,state[key]}’
netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”\t”,arr[k]}’
netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]’ | sort | uniq -c

查看80端口连接数最多的20个IP

cat /www/web_logs/waitalone.cn_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
tail -n 10000 /www/web_logs/waitalone.cn_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
cat /www/web_logs/waitalone.cn_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk ‘/:80/{split($5,ip,”:”);++A[ip[1]]}END{for(i in A) print A,i}’ |sort -rn|head -n20

用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4}’ | sort | uniq -c | sort -nr |head -20

查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20

查找较多的SYN连接

netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

linux下实用iptables封ip段的一些常见命令:

封单个IP的命令是:

iptables -I INPUT -s 211.1.0.0 -j DROP

封IP段的命令是:

iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP

封整个段的命令是:

iptables -I INPUT -s 211.0.0.0/8 -j DROP

封几个段的命令是:

iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP
想在服务器启动自运行的话有三个方法:
1、把它加到/etc/rc.local中
2、iptables-save >/etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行。
3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时#自动执行。
后两种更好此,一般iptables服务会在network服务之前启来,更安全。

解封的话:

iptables -D INPUT -s IP地址 -j REJECT
iptables -F #全清掉了

Linux:DDoS Deflate 防御轻量级DDCC

一、检查iptables是否在运行

service iptables status

二、安装DDoS Deflate

wget http://soft.kwx.gd/security/ddos-Deflat.sh

设置权限并运行脚本

chmod +x ddos-Deflat.sh
./ddos-Deflat.sh

三、设置DDoS Deflate
修改指定文件

vim /usr/local/ddos/ddos.conf

根据以下相关说明设置

##### Paths of the script and other files
PROGDIR=”/usr/local/ddos”
PROG=”/usr/local/ddos/ddos.sh”
IGNORE_IP_LIST=”/usr/local/ddos/ignore.ip.list” //IP白名单文件
CRON=”/etc/cron.d/ddos.cron” //定时执行
APF=”/etc/apf/apf”
IPT=”/sbin/iptables”
##### frequency in minutes for running the script
##### Caution: Every time this setting is changed, run the
script with –cron
##### option so that the new frequency takes effect
FREQ=1 //检查网络时间间隔,单位为分钟
##### How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150 //单个IP最大连接数,若超过则执行规则,默认即可
##### APF_BAN=1 (Make sure your APF version is atleast 0.96)
##### APF_BAN=0 (Uses iptables for banning ips instead of APF)
APF_BAN=10
//使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。
##### KILL=0 (Bad IPs are’nt banned, good for interactive execution
of script)
##### KILL=1 (Recommended setting)
KILL=1 //是否屏蔽IP,默认即可
##### An email is sent to the following address when an IP is banned.
##### Blank would suppress sending of mails
EMAIL_TO=”root” //当IP被屏蔽时给指定邮箱发送邮件,若不使用则在前面加“#”屏蔽
##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600 //禁用IP时间,默认600秒