centos7 vps服务器的安全设置

大家都知道centOS7以上的跟centOS6在命令是有很大变化的,未来也是趋势

老钟博客之前服务器安全的分析均是在CentOS6基础上进行,因为习惯了,一般不喜欢去更换系统

但是CentOS7以上基础安全性和运行效果是更加好

那么一款全新的CentOS7应该如何进行初始化的安全设置呢?

方法可以分享一下,仅供参考:

1. 添加用户,修改ssh端口和禁止root登录

添加普通用户 useradd xxx

设置密码 passwd xxx 

vi /etc/ssh/sshd_config

PermitRootLogin no

Port 88888

安装semanage

yum provides semanage

yum -y install policycoreutils-python

semanage port -a -t ssh_port_t -p tcp 88888 

重启SSH

systemctl restart sshd.service

防火墙添加88888端口,删除22端口

systemctl start firewalld 

firewall-cmd –permanent –zone=public –add-port=8888/tcp

firewall-cmd –permanent –zone=public –remove-port=22/tcp

安装DenyHosts

Linux VPS被暴力攻击,破解ROOT登陆密码,linux安全防范DenyHosts

2020 年 7 月 3 日

JAVA转换Unicode与汉字兼容里面位置有字母数字组合

 

最近倒腾一下百度翻译的api,发现返回的信息是unicode代码的,需要转换一下

1
2
3
4
5
6
7
8
/**
* 字符串转unicode
* @param str
* @return
*/
public static String stringToUnicode(String s) {
String str = “”;
for (int i = 0; i < s.length(); i++) {
int ch = (int) s.charAt(i);
if (ch > 255)
// toHexString() 方法返回为无符号整数基数为16的整数参数的字符串表示形式
str += “\\u” + Integer.toHexString(ch);
else
str += “\\” + Integer.toHexString(ch);
}
return str;
}

 

1
2
3
4
5
6
7
8
/**
* unicode转字符串,不转换数字和字母
* @param unicode
* @return
*/
 
public static String unicodeToString(String str) {
Pattern pattern = Pattern.compile(“(\\\\u(\\p{XDigit}{4}))”);
Matcher matcher = pattern.matcher(str);
char ch;
while (matcher.find()) {
ch = (char) Integer.parseInt(matcher.group(2), 16);
str = str.replace(matcher.group(1), ch + “”);
}
return str;
}

 

https://blog.csdn.net/songylwq/article/details/87890361

2020 年 6 月 4 日

CentOS7修改SSH端口

一、修改ssh配置文件sshd_config

[root@bogon ~]# vi /etc/ssh/sshd_config

 

二、防火墙放行

[root@bogon ~]# firewall-cmd –zone=public –add-port=22345/tcp –permanent

[root@bogon ~]# firewall-cmd –reload

 

 

 重启 ssh 服务:

[root@bogon ~]# systemctl restart sshd.service

 

测试成功后,把22端口注释掉即可

原文链接:https://www.cnblogs.com/heqiuyong/p/11072829.html

原文有介绍到需要安装运行semanage,暂时不清楚安装这个服务有什么用,大家可以参看原文

2020 年 5 月 16 日

wordpress外贸站设置contact Form7的google人机认证

目的:有效防止垃圾邮件

途径:Google reCAPTCHA V3

首先我们打开生成密钥网址 https://www.google.com/recaptcha/intro/v3.html
点击 Admin console进入控台

  

2020 年 5 月 13 日

wordpress关于SMTP connect() failed问题记录一下

wordpress程序linode vps服务器,阿里云免费企业邮箱,采用smtp发信失败,提示:

SMTP ERROR: Failed to connect to server: Connection timed out (110)SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

经过多方面测试,发现应该不是邮箱的问题,估计是服务器的设置问题,telnet 邮件服务器地址提示Connection timed out.

网上寻找资料,发现各种问题都有,也有不同的解决办法,但是我们主要还是看报错的链接,里面有详细描述如何排除,一步一步去按照上面的方法操作即可!

主要是这个问题:

SMTP错误:无法连接到SMTP主机

目前我这边的问题是linode限制了邮件端口,是因为防止垃圾邮件;

发Ticket后客服回复的邮件如下:

To help combat spam on our platform, new Linode accounts have SMTP port restrictions in place on all Linodes by default. 

客服开通端口,问题解决~~

 

2020 年 5 月 12 日

CentOS6.5 vps开放端口的命令大全

#清除预设表filter中的所有规则链的规则 iptables -F #清除预设表filter中使用者自定链中的规则 iptables -X #保存iptables配置 service iptables save #重启iptables服务 service iptables restart #查看iptables规则 iptables -L -n #查看iptables规则文件 cat /etc/sysconfig/iptables #设定预设规则 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #开启22端口 iptables -A INPUT -p tcp –dport 22 -j ACCEPT #如果OUTPUT设置成DROP需要添加 iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT #关闭22端口 iptables -D INPUT -p tcp –dport 22 -j ACCEPT #开启常用端口 iptables -A INPUT -p tcp –dport 80 -j ACCEPT iptables -A INPUT -p tcp –dport 3306 -j ACCEPT #iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT #iptables -A OUTPUT -p tcp –sport 3306 -j ACCEPT #iptables -A INPUT -p tcp –dport 20 -j ACCEPT #iptables -A INPUT -p tcp –dport 21 -j ACCEPT #iptables -A INPUT -p tcp –dport 10000 -j ACCEPT #iptables -A INPUT -p tcp –dport 25 -j ACCEPT #iptables -A INPUT -p tcp –dport 110 -j ACCEPT #iptables -A INPUT -p udp –dport 53 -j ACCEPT #允许ping iptables -A INPUT -p icmp -j ACCEPT #如果OUTPUT设置成DROP需要添加 iptables -A OUTPUT -p icmp -j ACCEPT #允许loopback iptables -A INPUT -i lo -p all -j ACCEPT #如果OUTPUT设置成DROP需要添加 iptables -A OUTPUT -o lo -p all -j ACCEPT #屏蔽指定ip #iptables -A INPUT -p tcp -s 192.168.10.1 -j DROP #减少不安全的端口连接 #iptables -A OUTPUT -p tcp –sport 31337 -j DROP #iptables -A OUTPUT -p tcp –dport 31337 -j DROP #允许某个IP远程连接 #iptables -A INPUT -s 192.168.10.1 -p tcp –dport 22 -j ACCEPT #允许某个网段的IP远程连接 iptables -A INPUT -s 192.168.10.0/24 -p tcp –dport 22 -j ACCEPT #允许指定网段通过、指定网口通过SSH连接本机 #iptables -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 –dport 22 -m state –state NEW,ESTABLESHED -j ACCEPT #iptables -A OUTPUT -o eth0 -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT #iptables -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 –dport 22 -m state –state ESTABLESHED -j ACCEPT #iptables -A OUTPUT -o eth0 -p tcp –sport 22 -m state –state NEW,ESTABLISHED -j ACCEPT #开启转发功能 #iptables -A FORWARD -i eth0 -o eth1 -m state –state RELATED,ESTABLISHED -j ACCEPT #iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT #丢弃坏的TCP包 #iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP #处理IP碎片数量,防止攻击,允许每秒100个 #iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT #设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包 #iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT #丢弃非法连接 iptables -A INPUT -m state –state INVALID -j DROP iptables -A OUTPUT -m state –state INVALID -j DROP iptables -A FORWARD -m state –state INVALID -j DROP #允许所有已经建立的和相关的连接 iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT ###############配置NAT表防火墙############### #查看NAT表规则 iptables -t nat -L #清除NAT规则 iptables -F -t nat iptables -X -t nat iptables -Z -t nat #防止外网用内网IP欺骗 #iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP #iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP #iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP #禁止与某个IP的所有连接 #iptables -t nat -A PREROUTING -d 192.168.10.1 -j DROP #禁用80端口 #iptables -t nat -A PREROUTING -p tcp –dport 80 -j DROP #禁用某个IP的80端口 #iptables -t nat -A PREROUTING -p tcp –dport 21 -d 192.168.10.1 -j DROP ###############保存iptables文件,重启服务############### #保存iptables规则 service iptables save #重启iptables服务 service iptables restart

查看开放端口 

[root@localhost ~]# /etc/init.d/iptables status

关闭防火墙 

[root@localhost ~]# /etc/init.d/iptables stop

2020 年 5 月 12 日

解决wordpress抱歉,由于安全原因,这个文件类型不受支持

抱歉,由于安全原因,这个文件类型不受支持

解决方案如下, 在当前主题的functions.php中加入如下内容

1
2
3
4
5
6
7
8
function my_custom_upload_mimes($mimes = array()) {
// 添加mobileconfig类型,如果需要添加其他类型,例如SVG,只需在下面加入一行 $mimes[‘svg’] = “text/svg”;即可
$mimes[‘mobileconfig’] = “text/mobileconfig”;

return $mimes;
}

add_action(‘upload_mimes’, ‘my_custom_upload_mimes’);

 

 

2020 年 5 月 9 日

新建VPS服务器的安全防护设置

0x00 起因

最近我自己的 vps 越来越不稳定,开始还以为是因为我自己在路由器里面添加了透明代理使用的流量大造成的,后来越来越发觉不正常,毕竟我也是用了几年 vps 的老手了,总觉的不正常。后来 iftop 发现我的 vps 即使不用的情况下也经常会有 MB/s 级别的流量通信,再用 nethogs 一看更是心惊,原来是大量的只有 0.02 KB 左右的数据流,这才想起来,这台 vps 自打买来就一直在测试使用,但是没有进行安全防护的详细设置只是进行了一些简单的设置。下面详细说说,vps 在购买之后要做哪些安全类型的设置。当然这些设置对于一般的建站之类的已经足够了,如果是明星站请使用专业的设置方法。下面说几个比较有效的常规方法。

0x01 ssh

ssh 是我们最应该去第一个设置的项目。几乎所有的 linux 服务器的使用者都会用 ssh 来进行服务器的管理,生产环境下没有几个人去使用图形界面连接,那么 ssh 的安全防护就成了第一道重要的关卡。默认 ssh 是使用 22 端口进行连接的。我们需要更改掉这个端口,因为一般的脚本首先扫描的就是 22 端口。然后还要更改掉登录的方式,默认大家的都是账号密码登录,这里我们需要更换为密钥证书登录。下面说说如何去设置,不同版本的 sshd 可能会略有不同,但是思路是一样的。改掉默认的 22 端口,改掉密码登录,这两点是内容是不变的。

1.更改默认端口

vim /etc/ssh/sshd_config 此处例子更改为29888

#Port 22
Port 29888
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

2.更改秘钥登录

2.1 生成密钥

生成密钥对,输入命令以后一路回车

ssh-keygen -t rsa

生成的公私钥对默认保存在~/.ssh/ 
生成两个文件 id_rsa id_rsa.pub 带 pub 的是公钥,上传给服务器公钥

2.2 传输密钥到服务器

可以使用 ssh-copy-id 来一步完成

ssh-copy-id user@serverip 

也可以全手动的当时去做

#在本机上执行此命令,上传公钥
cd .ssh
scp -P id_rsa.pub user@serverip:/tmp
#在服务器上执行此命令,追加到authorized_keys
cd /tmp && cat id_rsa.pub >> ~/.ssh/authorized_keys
#更改权限
chmod 600 ~/.ssh/authorized_keys
2.3 配置sshd开启密钥登录

vim /etc/ssh/sshd_config 以下两项更改为yes,第三项采用.ssh下面的文件认证,注释掉 password认证

RSAAuthentication  yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

# PasswordAuthentication yes

重启sshd, service sshd restart或者systemctl restart sshd.service。sshd服务重启之后,服务器已经支持远程ssh连接了。

我个人建议是密码认证那个先不要注释掉,以防止手抖打错字母造成的问题,能够正常密钥连接以后,再注释掉不迟。

0x02 防火墙

更改了上面的默认的 ssh 登录的端口以后需要在防火墙里面添加对应的规则,只能能够访问这几个端口,其他端口全部不能访问。几乎所有的 linux 发型版本上都会装防火墙软件,常见的有 iptales 和 firewalld,下面分别介绍一下这两个防火墙的设置设置方法。关于防火墙这里不细讲,因为这两个防火墙如果要详细说都是极大的篇幅这里只说需要做哪些。详细的说明以后的博客中可能会讲。

1. iptables 设置

iptables 的原则是在上面的条目先把开放的端口列出来尤其是 ssh 因为一旦设置错误或者忘记填写ssh那么晚就无法连接了,所以ssh必须写在第一位,然后写其他开发的,最后拒绝所有。这样的原则去设置

vim /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 56789 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 11211 -j DROP
-A INPUT -p udp -m udp --dport 11211 -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

上面的 22 改成 ssh 的端口 21 是 ftp 不用可以去掉 80 是 web 不用可以去掉 443 是 https 不用可以去掉 icmp 是 ping 的协议

按 :wq 保存退出后,重启iptables,并设置为开机启动即可

# service iptables restart
# systemctl enable iptables.service

2. firewald 设置

查看现在已开放的端口情况

firewall-cmd --list-all

添加要开放的端口

firewall-cmd --permanent --zone=public --add-port=要开放的端口号/tcp
firewall-cmd --permanent --zone=public --add-port=要开放的端口号/udp

使新规则生效

firewall-cmd --reload

最后再检查一下有没有生效

如果要删除上面开放出来的端口用下面的命令

firewall-cmd --permanent --zone=public --remove-port=前面添加的端口号/tcp
firewall-cmd --permanent --zone=public --remove-port=前面添加的端口号/udp

0x03 fail2ban

默认的防火墙可以阻挡大量的无意义的访问,但是防火墙也有一点不智能的地方在于,一直被扫描,但是全部手动的去添加这些扫描的 ip 过于不方面,如果有智能的方式进行这项工作就好了。fail2ban就是我推荐的一个好工具去完成这个琐碎的工作。 这里推荐一个比较懒的方法,使用一键 lnmp 脚本 tools 文件夹里面的 fail2ban 脚本去自动编译安装,wget http://soft.vpser.net/lnmp/lnmp1.6beta.tar.gz下载后解压开就好了。执行tools 里面的fail2ban.sh

wget http://soft.vpser.net/lnmp/lnmp1.6beta.tar.gz
tar xf lnmp1.6beta.tar.gz
cd ./lnmp/tools
./fail2ban.sh

0x04 ddos

fail2ban 最大的功能在于常规的 sshd 的暴力扫描破解以及 http https 等常见的协议的被暴力扫描可以起到很好的作用。但是对于全部端口的扫描以及 ddos 这样垃圾的数据攻击就没有什么效果了,所以我们还要加装一个 ddos 防护类型的工具。这里条件使用DDoS-Deflate 安装方法 下载

wget http://www.inetbase.com/scripts/ddos/install.sh

添加执行权限

chmod +x install.sh

执行安装

./install.sh

编辑配置文件修改以下内容 vim /usr/local/ddos/ddos.conf

NO_OF_CONNECTIONS = 100
APF_BAN = 0
BAN_PERIOD = 36000
  1. 超过一个 ip 超过 100 个连接就判定为恶意
  2. 使用 iptables 作为拦截的底层功能
  3. 一个 ip 被加入黑名单的时间 当然是越长越好。

0x05 检验效果

俗话说不看价格,看疗效。同理我们做了这么多是时候该查看一下防护的效果了,这里我推荐使用 iftop nethogs 以及 netstat 这 3 个工具来检验我们的防护效果。正常来说使用了这3种方法以后,即使有脚本扫描的行为也会在扫描一段时间以后得不到任何结果就会自动的放弃掉。如果有专业的团队去攻击那上面的方法就起不到特别大的效果了。

首先使用 iftop 查看一下总的实时流量的数据量有多大

                   12.5Kb              25.0Kb              37.5Kb              50.0Kb         62.5Kb
└───────────────────┴───────────────────┴───────────────────┴───────────────────┴────────────────────
ivoivo                               => xxx.xxx.26.21                          7.09Kb  5.33Kb  5.33Kb
                                     <=                                        208b    312b    312b
ivoivo                               => 8.8.8.8                               1.14Kb  1.27Kb  1.27Kb
                                     <=                                        868b   1.13Kb  1.13Kb
ivoivo                               => 8.8.4.4                                868b    722b    722b
                                     <=                                       1.13Kb   722b    722b
239.255.255.250                      => 104.223.22.46                            0b	 0b	 0b
                                     <=                                       1.57Kb  1.18Kb  1.18Kb
239.255.255.250                      => 104.223.12.74                            0b	 0b	 0b
                                     <=                                        808b    808b    808b
239.255.255.250                      => 85.209.162.79                            0b	 0b	 0b
                                     <=                                       1.57Kb   804b    804b
224.0.0.252                          => 155.254.33.175                           0b	 0b	 0b
                                     <=                                       0.98Kb   700b    700b
antitm.info                          => 155.94.158.120.static.quadranet.com    704b    440b    440b
                                     <=                                          0b      0b      0b
239.255.255.250                      => 104.129.12.54                            0b	 0b	 0b
                                     <=                                        804b    402b    402b
239.255.255.250                      => 167.160.187.163                          0b	 0b	 0b
                                     <=                                        796b    398b    398b
antitm.info                          => 144.172.92.116                         352b    352b    352b
                                     <=                                          0b      0b      0b
antitm.info                          => 144.172.92.117                         704b    352b    352b
                                     <=                                          0b	 0b	 0b
155.94.140.255                       => 155.94.140.20                            0b	 0b	 0b
                                     <=                                        312b    312b    312b
239.255.255.250                      => 85.209.162.116                           0b	 0b	 0b
                                     <=                                        516b    258b    258b

─────────────────────────────────────────────────────────────────────────────────────────────────────
TX:             cum:   3.65KB   peak:	9.08Kb                       rates:   9.08Kb  7.31Kb  7.31Kb
RX:                    6.15KB           16.2Kb                                16.2Kb  12.3Kb  12.3Kb
TOTAL:                 9.80KB           25.3Kb                                25.3Kb  19.6Kb  19.6Kb

然后用 nethogs 查看具体的有没有大量的数据量 0.02 KB 做有的数据进出

  PID USER     PROGRAM                                         DEV        SENT      RECEIVED       
      ? root     144.172.92.117:22-118.89.106.252:21666                      0.000	 0.346 KB/sec
      ? root     155.94.158.120:80-93.189.44.132:55733                       0.000	 0.068 KB/sec
      ? root     144.172.92.116:22-58.242.83.30:64217                        0.000	 0.059 KB/sec
  28174 root     sshd: root@pts/0                                eth0        0.480	 0.059 KB/sec
      ? root     144.172.92.116:80-93.189.44.132:48694                       0.000	 0.057 KB/sec
      ? root     144.172.92.117:80-93.189.44.132:36359                       0.000	 0.045 KB/sec
      ? root     104.223.12.19:445-110.137.177.218:65167                     0.000	 0.013 KB/sec
      ? root     96.44.140.222:445-78.188.152.134:55087                      0.000	 0.013 KB/sec
      ? root     96.44.140.219:1500-198.108.67.59:13511                      0.000	 0.011 KB/sec
      ? root     96.44.140.222:23-175.156.143.43:61938                       0.000	 0.011 KB/sec
      ? root     unknown TCP                                                 0.000	 0.000 KB/sec

  TOTAL                                                                      0.480       0.680 KB/sec

最后用 netstat -atu 查看一下有多少 tcp 和 udp 建立的连接

[root@ivoivo ~]# netstat -aut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:33346           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:51183         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:29009           0.0.0.0:*               LISTEN     
tcp        0      0 ivoivo:58132            yx-in-f188.1e10:hpvroom ESTABLISHED
tcp        0      0 ivoivo:33346            xxx.xxx.26.21:59290      ESTABLISHED
tcp        0      0 localhost:51183         localhost:60612         ESTABLISHED
tcp        0      0 ivoivo:29009            xxx.xxx.26.21:55960      ESTABLISHED
tcp        0      0 localhost:60612         localhost:51183         ESTABLISHED
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
tcp6       0      0 [::]:29009              [::]:*                  LISTEN     
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
udp        0      0 0.0.0.0:23926           0.0.0.0:*                          
udp        0      0 0.0.0.0:33346           0.0.0.0:*     

最后感谢互联网上面的先贤们,他们产出的优质的文章供我参考才有的此篇博文

来源:http://ivo-wang.github.io/2019/04/08/vps-%E6%9C%8D%E5%8A%A1%E5%99%A8-%E5%AE%89%E5%85%A8%E9%98%B2%E6%8A%A4%E8%AE%BE%E7%BD%AE/

 

2020 年 5 月 4 日

Nginx服务器安装SSL后全站http跳转https

 网上很多教程关于如何做全站的http转https,我这里只讲述nginx服务器的跳转方法

之前提到过阿里云申请的SSL如何部署到服务器:

lnmp安装阿里云免费SSL,出现welcome to nginx页面,提示403错误解决办法

这里主要讲述如果做全站的http跳转https,在server{}里面添加如下代码,实现功能

#让http请求重定向到https请求  

        if ($server_port = 80) {

                return 301 https://$server_name$request_uri;

        }

        if ($scheme = http) {

                return 301 https://$server_name$request_uri;

        }

        error_page 497 https://$server_name$request_uri;

3 条评论 2018 年 4 月 13 日

VPS安全设置 增强VPS安全性防止被攻破

安全是一个VPS最基本的必备条件,若您的VPS三天两头被人攻破,那么对于网站来说也没什么意义了,所以,在创建了Web服务器之后,您首先要做的事情就是将您的VPS加固,至少让普通黑客没有办法能够攻破您的网站。

用户密码

用户口令是一个非常重要的信息,您在设置您的账户密码时请遵循几点原则来设置:1. 密码不要过于简单,至少要8位以上,且同时拥有大小写字母+数字+特殊字符;2. 密码不要使用统一密码,网站密码一个、VPS密码一个,避免黑客破解其中一个就让您的VPS全盘被破;3. 不要使用生日、电话等个人信息作为密码;4. 定期更换您的密码;5. 不要把您的密码记录在任何别人能够看到的地方,最好记在心里。

删除不使用的用户和用户组

Linux默认自带了一些用户和用户组,而这些用户和用户组在平时我们根本使用不到,所以,删除吧!

userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp #若您需要使用匿名FTP请保留此用户,否则删除
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers

root是Linux下权限最大的一个用户,而也是黑客最喜欢的一个用户,若获取到了root权限,则代表了您的VPS完全陷落,所以,将root用户禁止登录SSH,使用另外一个用户来管理您的VPS将是一个很不错的主意。
首先添加一个用户

useradd iw3c #添加一个用户iw3c

设置密码

passwd iw3c

输入两次密码就OK了。

更改SSH端口

vi /etc/ssh/sshd_config

配置如下

Port 12345 #SSH尽量设置大一点
PermitRootLogin no #禁止root登录
X11Forwarding no #禁止X11转发
PermitEmptyPasswords no #禁止空密码登录
AllowUsers iw3c #设置刚才创建的iw3c可以登录

重启下SSH

service sshd restart (/etc/init.d/sshd restart)

限制su命令

vi /etc/pam.d/su

添加如下两行

auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=isd

执行

 

usermod -G10 iw3c

这样就只有iw3c用户可以使用su命令了

禁止Ping

防止别人Ping通自己的服务器是一个很不错的安全设置,运行命令

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

这样别人Ping自己的服务器时就根本无法Ping通了

启用防火墙

您可以通过设置防火墙来关闭一些不必要的端口,而每一个端口的关闭,就意味着您的服务器更加安全一分
首先清空原有防火墙规则

iptables -F
iptables -X
iptables -Z

配置防火墙

iptables -A INPUT -p tcp -m multiport --dport 12345,80,21,22 -j ACCEPT #允许SSH端口12345、WEB端口80、FTP端口21、22开放
/etc/init.d/iptables save #保存配置规则
service iptables restart #重启防火墙

使用DDOS deflate抵御DDOS攻击

DDOS deflate并不能完全防御DDOS攻击,这东西是专业的硬件防火墙来干的事情,DDOS deflate只能稍微抵御一点点,但一点点也是防护不是?

http://www.inetbase.com/scripts/ddos/install.sh
chmod +x install.sh
./install.sh

这样DDOS deflate就安装好了,剩下的只需要配置一下

vi /usr/local/ddos/ddos.conf

一般来说只需要修改几个配置

APF_BAN=0 #默认为1,改为0
EMAIL_TO="admin@admin" #这里更改为您的邮箱,被攻击时会有邮件发送给我们

好了,基本的一些简单防护已经完成了,至于其他更高深的就得自己去搜索与加固了!

来源:https://www.cnblogs.com/wangluochong/p/6323085.html

1 条评论 2018 年 1 月 17 日

Older Posts