vps安全设置-飞外

仍旧是改动/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,并把yes改成no。然后,重新启动SSH服务。

以后,先使用vpsmm登陆。再su root就可以得到ROOT管理权限。


IP前面的数字,即为连接数。假设说正常站点,几十到一百都属于正常连接,但出现几百,或上千的就能够垦定这个IP与你的VPS之间可能存在可疑连接现象。

能够使用iptables直接BAN了这个IP的永久訪问:


今天介绍给大家一种方法,是使用软件DDos deflate来自己主动检測并直接BAN掉的方法,首先我们要确认一下iptables服务状态。默认CENTOS就安装的,不看也行。


安装后须要改动/usr/local/ddos/ddos.conf,主要是APF_BAN=1要设置成0,由于要使用iptables来封某些可疑连接,注意EMAIL_TO=“root”,这样BAN哪个IP会有邮件提示:


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 //检查时间间隔,默认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=1 //使用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秒。可依据情况调整
yum -y install flex byacc libpcap ncurses ncurses-devel libpcap-devel
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make make install
安装后,使用iftop执行,查看网络情况。TX,发送流量。RX,接收流量;TOTAL,总流量;Cumm,执行iftop期间流量。peak。流量峰 ;rates,分别代表2秒、10秒、40秒的平均流量。

快捷键:h帮助,n切换显示IP主机名,s是否显示本机信息,d是否显示远端信息,N切换port服务名称,b切换是否时数流量图形条。

五、每日备份你的VPS上传到FTP空间

六、升级LNMP中的NGINX到最新版

如今最新版是0.8.53,假设以后出新版。仅仅要更新版本就能够,在SSH里执行:


wget http://www.nginx.org/download/nginx-0.8.53.tar.gz
tar zxvf nginx-0.8.53.tar.gz
cd nginx-0.8.53
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cd objs/
cp nginx /usr/local/nginx/sbin/
/usr/local/nginx/sbin/nginx -t
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
/usr/local/nginx/sbin/nginx -v
cd ..
cd ..
rm -rf nginx-0.8.53
rm -rf nginx-0.8.53.tar.gz
netstat -nat |awk '{print $$6}'|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, ,state[key]}'
netstat -n | awk '/^tcp/ { arr[$$NF]};END {for(k in arr) print k, ,arr[k]}'
netstat -n |awk '/^tcp/ {print $$NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $$NF}' | grep -v '[a-z]' | sort | uniq -c
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 -i eth0 -tnn dst port 80 -c 1000 | awk -F . '{print $$1 . $$2 . $$3 . $$4}' | sort | uniq -c | sort -nr |head -20
netstat -an | grep SYN | awk '{print $$5}' | awk -F: '{print $$1}' | sort | uniq -c | sort -nr | more