linux一些安全设置

Posted on Posted in 安全
Tips: 本文创建于2014年10月10日,已超过 2 年,内容或图片可能已经失效!
文章目录[隐藏]

目录

  1. 修改ssh端口
  2. 禁止root登录
  3. 使用DDos deflate简单防落CC和DDOS攻击
  4. 使用iftop查看详细网络状况
  5. 升级LNMP中的NGINX到最新版
  6. 常用netstat命令

1、修改ssh端口

  1. root@localhost:~$ vi /etc/ssh/sshd_config  
  2. #Port 22 #去掉这个注释,改为别的端口,范围是0~65535  
  3. root@localhost:~$ service sshd restart  

2、禁止root登录

参考 debian禁止root登录,增加普通用户sudo权限

3、使用DDos deflate简单防落CC和DDOS攻击

使用netstat命令,查看VPS当前链接确认是否受到攻击:

  1. root@localhost:~$ netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n  

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

可以使用iptables直接BAN了这个IP的永久访问:

  1. root@localhost:~$ iptables -A INPUT -s 12.34.56.78 -j DROP  

使用软件DDos deflate来自动检测并直接BAN掉的方法,首先要确认一下iptables服务状态,默认CENTOS就安装的,不看也行。

  1. root@localhost:~$ service iptables status  

安装DDos deflat:也可以在这里下载整包

  1. root@localhost:~$ wget http://www.inetbase.com/scripts/ddos/install.sh  
  2. root@localhost:~$ chmod +x install.sh  
  3. root@localhost:~$ ./install.sh  

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

  1. root@localhost:~$ vim /usr/local/ddos/ddos.conf  
  2. ##### Paths of the script and other files  
  3. PROGDIR="/usr/local/ddos"  
  4. PROG="/usr/local/ddos/ddos.sh"  
  5. IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" //IP地址白名单  
  6. CRON="/etc/cron.d/ddos.cron" //定时执行程序  
  7. APF="/etc/apf/apf"  
  8. IPT="/sbin/iptables"  
  9. ##### frequency in minutes for running the script  
  10. ##### Caution: Every time this setting is changed, run the script with --cron  
  11. ##### option so that the new frequency takes effect  
  12. FREQ=1 //检查时间间隔,默认1分钟  
  13. ##### How many connections define a bad IP? Indicate that below.  
  14. NO_OF_CONNECTIONS=150 //最大连接数,超过这个数IP就会被屏蔽,一般默认即可  
  15. ##### APF_BAN=1 (Make sure your APF version is atleast 0.96)  
  16. ##### APF_BAN=0 (Uses iptables for banning ips instead of APF)  
  17. APF_BAN=1 //使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。  
  18. ##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)  
  19. ##### KILL=1 (Recommended setting)  
  20. KILL=1 //是否屏蔽IP,默认即可  
  21. ##### An email is sent to the following address when an IP is banned.  
  22. ##### Blank would suppress sending of mails  
  23. EMAIL_TO="root" //当IP被屏蔽时给指定邮箱发送邮件,推荐使用,换成自己的邮箱即可  
  24. ##### Number of seconds the banned ip should remain in blacklist.  
  25. BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整  

4、使用iftop查看详细网络状况

  1. root@localhost:~$ yum -y install flex byacc libpcap ncurses ncurses-devel libpcap-devel  
  2. root@localhost:~$ wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz  
  3. root@localhost:~$ tar zxvf iftop-0.17.tar.gz  
  4. root@localhost:~$ cd iftop-0.17  
  5. root@localhost:~$ ./configure  
  6. root@localhost:~$ make && make install  

安装后,使用iftop运行,查看网络情况。TX,发送流量;RX,接收流量;TOTAL,总流量;Cumm,运行iftop期间流量;peak,流量峰值;rates,分别代表2秒、10秒、40秒的平均流量。

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

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

  1. wget http://www.nginx.org/download/nginx-0.8.53.tar.gz  
  2. tar zxvf nginx-0.8.53.tar.gz  
  3. cd nginx-0.8.53  
  4. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module  
  5. make  
  6. mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old  
  7. cd objs/  
  8. cp nginx /usr/local/nginx/sbin/  
  9. /usr/local/nginx/sbin/nginx -t  
  10. kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`  
  11. kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`  
  12. /usr/local/nginx/sbin/nginx -v  
  13. cd ..  
  14. cd ..  
  15. rm -rf nginx-0.8.53  
  16. rm -rf nginx-0.8.53.tar.gz  

6、常用netstat命令:

查看所有80端口的连接数

  1. root@localhost:~$ netstat -nat|grep -i "80"|wc -l  

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

  1. root@localhost:~$ netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n  

查看TCP连接状态

  1. root@localhost:~$ netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn  
  2. root@localhost:~$ netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'  
  3. root@localhost:~$ netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"t",state[key]}'  
  4. root@localhost:~$ netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"t",arr[k]}'  
  5. root@localhost:~$ netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn  
  6. root@localhost:~$ netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c  

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

  1. root@localhost:~$ netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20  
  2. root@localhost:~$ netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20  

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

  1. root@localhost:~$ 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连接

  1. root@localhost:~$ netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20  

找查较多的SYN连接

  1. root@localhost:~$ netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more  

via:LNMP/VPS/独立主机/云主机常用安全设置相关内容

» 转载请注明来源:若我若鱼 » linux一些安全设置

Leave a Reply

Your email address will not be published. Required fields are marked *

5 × 5 =