- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章VPS常用安全设置(linux)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、修改SSH端口 。
vi /etc/ssh/sshd_config 。
找到其中的#Port 22(第13行),去掉#,修改成Port 3333 。
使用如下命令,重启SSH服务,注:以后用新端口登陆.
service sshd restart 。
2、禁止ROOT登陆 。
先添加一个新帐号80st ,可以自定义:
useradd 80st 。
给weidao 帐号设置密码:
passwd 80st 。
仍旧是修改/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,并把yes改成no,然后,重启SSH服务。以后,先使用weidao 登陆,再su root即可得到ROOT管理权限.
login as: 80st 。
weidao@ip password:***** 。
Last login: Tue Nov 22 15:18:18 2011 from 1.2.3.4 。
su root 。
Password:*********** #注这里输入ROOT的密码 。
3、使用DDos deflate简单防落CC和DDOS攻击 。
使用netstat命令,查看VPS当前链接确认是否受到攻击:
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n 。
IP前面的数字,即为连接数,如果说正常网站,几十到一百都属于正常连接,但出现几百,或上千的就可以垦定这个IP与你的VPS之间可能存在可疑连接现象.
可以使用iptables直接BAN了这个IP的永久访问:
iptables -A INPUT -s 12.34.56.78 -j DROP 。
使用软件DDos deflate来自动检测并直接BAN掉的方法,首先要确认一下iptables服务状态,默认CENTOS就安装的,不看也行.
service iptables status 。
安装DDos deflat:
wget http://www.inetbase.com/scripts/ddos/install.sh 。
chmod +x install.sh 。
./install.sh 。
安装后需要修改/usr/local/ddos/ddos.conf,主要是APF_BAN=1要设置成0,因为要使用iptables来封某些可疑连接,注意EMAIL_TO=”root”,这样BAN哪个IP会有邮件提示:
##### 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 //检查时间间隔,默认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秒,可根据情况调整 。
4、使用iftop查看详细网络状况 。
安装IFTOP软件:
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切换端口服务名称,b切换是否时数流量图形条.
5、升级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 。
6、常用netstat命令:
1.查看所有80端口的连接数 。
netstat -nat|grep -i “80″|wc -l 。
2.对连接的IP按连接数量进行排序 。
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n 。
3.查看TCP连接状态 。
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,”\t”,state[key]}’ 。
netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”\t”,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 。
4.查看80端口连接数最多的20个IP 。
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 。
5.用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 。
6.查找较多time_wait连接 。
netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20 。
7.找查较多的SYN连接 。
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more 。
最后此篇关于VPS常用安全设置(linux)的文章就讲到这里了,如果你想了解更多关于VPS常用安全设置(linux)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在学习 Spring 安全性,但我对它的灵活性感到困惑.. 我知道我可以通过在标签中定义规则来保护网址 然后我看到有一个@secure 注释可以保护方法。 然后还有其他注释来保护域(或 POJO)
假设有一个 key 加密 key 位于内存中并且未写入文件或数据库... byte[] kek = new byte[32]; secureRandom.nextBytes(kek); byte[]
我有 Spring Security 3.2.0 RC1 的问题 我正在使用标签来连接我 这表示“方法‘setF
我正在创建一个使用 Node Js 服务器 API 的 Flutter 应用程序。对于授权,我决定将 JWT 与私钥/公钥一起使用。服务器和移动客户端之间的通信使用 HTTPS。 Flutter 应用
在过去的几年里,我一直在使用范围从 Raphael.js 的 javascript 库。至 D3 ,我已经为自己的教育操纵了来自网络各地的动画。我已经从各种 git 存储库下载了 js 脚本,例如 s
在 python 中实现身份验证的好方法是什么?已经存在的东西也很好。我需要它通过不受信任的网络连接进行身份验证。它不需要太高级,只要足以安全地获取通用密码即可。我查看了 ssl 模块。但那个模块让我
我正在尝试学习“如何在 Hadoop 中实现 Kerberos?”我已经看过这个文档 https://issues.apache.org/jira/browse/HADOOP-4487我还了解了基本的
我有一个带有 apache2、php、mysql 的生产服务器。我现在只有一个站点 (mysite.com) 作为虚拟主机。我想把 phpmyadmin、webalizer 和 webmin 放在那里
前些天在网上看到防火墙软件OPNsense,对其有了兴趣,以前写过一个其前面的一个软件M0n0wall( 关于m0n0wa
我在 Spring Boot 和 oauth2(由 Google 提供)上编写了 rest 后端,在 "/login" 上自动重定向。除了 web 的 oauth 之外,我还想在移动后端进行 Fire
我想调用类 Foo,它的构造函数中有抽象类 Base。我希望能够从派生自 Base 的 Derived 调用 Foo 并使用 Derived覆盖方法而不是 Base 的方法。 我只能按照指示使用原始指
如何提高 session 的安全性? $this->session->userdata('userid') 我一直在为我的 ajax 调用扔掉这个小坏蛋。有些情况我没有。然后我想,使用 DOM 中的
我目前正在为某些人提供程序集编译服务。他们可以在在线编辑器中输入汇编代码并进行编译。然后编译它时,代码通过ajax请求发送到我的服务器,编译并返回程序的输出。 但是,我想知道我可以做些什么来防止对服务
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
目前,我通过将 session 中的 key 与 MySQl 数据库中的相同 key 相匹配来验证用户 session 。我使用随机数重新生成 session ,该随机数在每个页面加载时都受 MD5
Microsoft 模式与实践团队提供了一个很棒的 pdf,称为:“构建安全的 asp.net 应用程序”。 microsoft pdf 由于它是为 .Net 1.0 编写的,所以现在有点旧了。有谁知
在 Lua 中,通常会使用 math.random 生成随机值和/或字符串。 & math.randomseed , 其中 os.time用于 math.randomseed . 然而,这种方法有一个
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们有一个严重依赖 Ajax 的应用程序。确保对服务器端脚本的请求不是通过独立程序而是通过坐在浏览器上的实际用户的好方法是什么 最佳答案 真的没有。 通过浏览器发送的任何请求都可以由独立程序伪造。 归
我正在寻找使用 WebSockets 与我们的服务器通信来实现 web (angular) 和 iPhone 应用程序。在过去使用 HTTP 请求时,我们使用请求数据、url、时间戳等的哈希值来验证和
我是一名优秀的程序员,十分优秀!