六月 23rd, 2016

在CentOS/RHEL 7中给一个网卡分配多个ip地址。方法:

首先,让我们找到网卡的IP地址。在我的CentOS 7服务器中,我只使用了一个网卡。

用root特权运行下面的命令:


  1. ip addr

示例输出:


  1. 1: lo: <</span>LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. inet 127.0.0.1/8 scope host lo
  4. valid_lft forever preferred_lft forever
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: enp0s3: <</span>BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8. link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
  10. valid_lft forever preferred_lft forever

如上所见,我的网卡名是enp0s3,ip地址是192.168.1.150。

如你所知,网卡的配置文件存储在 /etc/sysconfig/network-scripts/ 目录下。每个网卡的详细内容将会以不同的名字存储,比如ifcfg-enp0s3

让我们看下ifcfg-enp0s3的细节。


  1. cat /etc/sysconfig/network-scripts/ifcfg-enp0s3

示例输出:


  1. TYPE="Ethernet"
  2. BOOTPROTO="none"
  3. DEFROUTE="yes"
  4. IPV4_FAILURE_FATAL="no"
  5. IPV6INIT="yes"
  6. IPV6_AUTOCONF="yes"
  7. IPV6_DEFROUTE="yes"
  8. IPV6_FAILURE_FATAL="no"
  9. NAME="enp0s3"
  10. UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"
  11. ONBOOT="yes"
  12. HWADDR="08:00:27:80:63:19"
  13. IPADDR0="192.168.1.150"
  14. PREFIX0="24"
  15. GATEWAY0="192.168.1.1"
  16. DNS1="192.168.1.1"
  17. IPV6_PEERDNS="yes"
  18. IPV6_PEERROUTES="yes"

好的,现在我们将在相同的子网中分配多个地址了。

编辑文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3


  1. vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

像下面那样加入额外的IP地址。


  1. TYPE="Ethernet"
  2. BOOTPROTO="none"
  3. DEFROUTE="yes"
  4. IPV4_FAILURE_FATAL="no"
  5. IPV6INIT="yes"
  6. IPV6_AUTOCONF="yes"
  7. IPV6_DEFROUTE="yes"
  8. IPV6_FAILURE_FATAL="no"
  9. NAME="enp0s3"
  10. UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
  11. ONBOOT="yes"
  12. HWADDR="08:00:27:3F:AB:68"
  13. IPADDR0="192.168.1.150"
  14. IPADDR1="192.168.1.151"
  15. IPADDR2="192.168.1.152"
  16. PREFIX0="24"
  17. GATEWAY0="192.168.1.1"
  18. DNS1="192.168.1.1"
  19. IPV6_PEERDNS="yes"
  20. IPV6_PEERROUTES="yes"

如你所见,我已经加了两个IP地址:IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″

类似地,你可以加入更多的ip地址。

最后,保存并退出文件。重启网络服务来使更改生效。


  1. systemctl restart network

现在,让我们检查是否已经加入了ip地址。


  1. ip addr

示例输出:


  1. : lo: <</span>LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. inet 127.0.0.1/8 scope host lo
  4. valid_lft forever preferred_lft forever
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: enp0s3: <</span>BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8. link/ether 08:00:27:3f:ab:68 brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
  10. valid_lft forever preferred_lft forever
  11. inet 192.168.1.151/24 brd 192.168.1.255 scope global secondary enp0s3
  12. valid_lft forever preferred_lft forever
  13. inet 192.168.1.152/24 brd 192.168.1.255 scope global secondary enp0s3
  14. valid_lft forever preferred_lft forever
  15. inet6 fe80::a00:27ff:fe3f:ab68/64 scope link
  16. valid_lft forever preferred_lft forever

如你所见,单个网卡已经有3个ip地址了。

让我们ping一下新增的IP地址:


  1. ping -c 4 192.168.1.151

示例输出:


  1. PING 192.168.1.151 (192.168.1.151) 56(84) bytes of data.
  2. 64 bytes from 192.168.1.151: icmp_seq=1 ttl=64 time=0.048 ms
  3. 64 bytes from 192.168.1.151: icmp_seq=2 ttl=64 time=0.075 ms
  4. 64 bytes from 192.168.1.151: icmp_seq=3 ttl=64 time=0.077 ms
  5. 64 bytes from 192.168.1.151: icmp_seq=4 ttl=64 time=0.077 ms
  6. --- 192.168.1.151 ping statistics ---
  7. 4 packets transmitted, 4 received, 0% packet loss, time 2999ms
  8. rtt min/avg/max/mdev = 0.048/0.069/0.077/0.013 ms


  1. ping -c 4 192.168.1.152

示例输出:


  1. PING 192.168.1.152 (192.168.1.152) 56(84) bytes of data.
  2. 64 bytes from 192.168.1.152: icmp_seq=1 ttl=64 time=0.034 ms
  3. 64 bytes from 192.168.1.152: icmp_seq=2 ttl=64 time=0.075 ms
  4. 64 bytes from 192.168.1.152: icmp_seq=3 ttl=64 time=0.073 ms
  5. 64 bytes from 192.168.1.152: icmp_seq=4 ttl=64 time=0.075 ms
  6. --- 192.168.1.152 ping statistics ---
  7. 4 packets transmitted, 4 received, 0% packet loss, time 2999ms
  8. rtt min/avg/max/mdev = 0.034/0.064/0.075/0.018 ms

如果你想要使用不同的子网,你要改变PREFIX0=24成不同的子网,比如 PREFIX1=16

比如,我想要添加一个A类地址(*比如10.0.0.1)到我的网卡中。


  1. TYPE="Ethernet"
  2. BOOTPROTO="none"
  3. DEFROUTE="yes"
  4. IPV4_FAILURE_FATAL="no"
  5. IPV6INIT="yes"
  6. IPV6_AUTOCONF="yes"
  7. IPV6_DEFROUTE="yes"
  8. IPV6_FAILURE_FATAL="no"
  9. NAME="enp0s3"
  10. UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
  11. ONBOOT="yes"
  12. HWADDR="08:00:27:3F:AB:68"
  13. IPADDR0="192.168.1.150"
  14. IPADDR1="192.168.1.151"
  15. IPADDR2="192.168.1.152"
  16. IPADDR3="10.0.0.1"
  17. PREFIX0="24"
  18. PREFIX1=16
  19. GATEWAY0="192.168.1.1"
  20. DNS1="192.168.1.1"
  21. IPV6_PEERDNS="yes"
  22. IPV6_PEERROUTES="yes"

你可以看到我已经添加一个A类地址(10.0.0.1)并且前缀是16。

保存并退出文件。重启网络服务,接着,ping新增的地址:


  1. ping -c 4 10.0.0.1

示例输出:


  1. PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
  2. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.097 ms
  3. 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.073 ms
  4. 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.074 ms
  5. 64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.075 ms
  6. --- 10.0.0.1 ping statistics ---
  7. 4 packets transmitted, 4 received, 0% packet loss, time 3000ms
  8. rtt min/avg/max/mdev = 0.073/0.079/0.097/0.014 ms

相似地,你可以添加不同的网关。

就是这样。那么问题来了,我一次性添加200个IP,难道也要一个一个复制粘贴吗?谁能给我一次性添加多个IP的方法?

找到一个相对简单的方法,就是结合IP是连续的特征,用exel表格一拉就好了,唉,有一次性添加执行命令就好了。期待中。。。。。
六月 20th, 2016

<1>Win2003系统

步骤:

打开”控制面板”>>”windows防火墙”>>”高级”>>”ICMP设置”,

图片1

图片2

取消以下勾选,即可实现禁ping效果.

图片3

同样,如想允许ping,勾选上即可!

 

 

<2>Win2008、win2012系统

win2008及win2012系统下设置是一样的.

步骤:

打开”控制面板”>>”windows防火墙”>>”高级设置”,

图片4

 

在接下来高级安全Windows防火墙设置的”入站规则”中,找到这样一条规则

图片5

右击”禁用规则”即可!这样就可以起到服务器外,禁止ping该服务器了.

 

若想允许ping,只要再次启用该规则即可!

TAGS: ,
六月 20th, 2016

ping是一个通信协议,是ip协议的一部分,tcp/ip 协议的一部分。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式为:Ping IP地址。但服务启用ping有时候会造成很多麻烦。

因此有时候根据需要(如防止攻击),Linux服务器管理员可限制服务器禁止其它用户Ping。同时又保证Linux服务器又可以Ping其它服务器.

下面介绍几种linux服务器下禁止ping的方法:

 

<1>临时的禁ping方法:

以下2种方式都是临时有效,重启服务器设置将失效.

 

首先登陆服务器终端以下执行:

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

或者

sysctl -w net.ipv4.icmp_echo_ignore_all=1

这样就可以禁ping了;

 

如果想恢复ping可以执行以下命令:

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

或者

sysctl -w net.ipv4.icmp_echo_ignore_all=0

 

以上修改后,均可以通过查看以下文件来查看设置

vi /proc/sys/net/ipv4/icmp_echo_ignore_all

但是,该文件不能直接修改!

 

<2>永久禁ping方法

若想永久实现禁ping,可以修改/etc/sysctl.conf文件,如下:

vi /etc/sysctl.conf

net.ipv4.icmp_echo_ignore_all = 1   //默认设置为0.

 

以上操作,还是有前提的,若主机本身自带防火墙iptables中INPUT、OUTPUT默认策略为ACCEPT,那么主机默认是允许ping.则可以直接做以上修改,即可起到临时或永久禁ping效果.

若iptables中INPUT、OUTPUT默认策略均为DROP时,那么主机本身默认已经禁ping,则无需做以上修改了.

同样,若需要开启ping,则需要添加相应的策略.

如下:

若iptables中INPUT、OUTPUT均为DROP话,则需要添加:

iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT

iptables -A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPT

六月 16th, 2016

客户登陆cpanel后,在cpanel面板通过phpmyadmin登陆数据库,一般是不需要填写用户名和密码,但不也绝对,若遇到这样的情况,我们可以如下操作:

解决方法:

一般情况下让客户提供cpanel 用户名 密码

到这里同步用户名 密码:

图片3

用查找cpanel账户名称,同步为cpanel密码即可。

 

但是如果mysql user 里面查不到cpanel用户名,说明mysql服务器上没有这个账户,需要到登陆mysql用命令添加,命令如下:

Insert into mysql.user (user,host,password) values

(‘ddwseoco_soifong’,’server130.hosteaseservers.com’,’p@ssw0rd’);

图片4

这里比如用户名是test 密码是abc,那么执行:

回车即可添加账户。然后再操作上面那一步骤进行密码重置。

 

附加:

查看MYSQL数据库中所有用户

SELECT DISTINCT CONCAT(‘User: ”’,user,”’@”’,host,”’;’) AS query FROM mysql.user;

增加mysql用户

insert into mysql.user (user,host,password) values (‘test’,’server130.hosteaseservers.com’,’abc’);

查看数据库中具体某个用户的权限

select * from mysql.user where user=’com12244′ \G

查看user表结构 需要具体的项可结合表结构来查询

mysql> desc mysql.user;

删除mysql账户命令:delete from mysql.user where user=’ddwseoco_soifong’;

 

看你的mysql现在已提供什么存储引擎:

mysql> show engines;

 

看你的mysql当前默认的存储引擎:

mysql> show variables like ‘%storage_engine%’;

六月 16th, 2016

前提:

mysql降级从5.6版本变为5.5版本.mysql已启动成功.

但是无论通过WHM>>SQL Services>>phpMyAdmin还是cpanel访问phpMyAdmin均为乱码,且可以模糊看清,提示要输入用户和密码.

 

初步,想到因降级导致密码不同步,尝试重置密码.

mysql密码保存地址:

/root/.my.cnf

复制密码,到WHM>>SQL Services>>MySQL Root Password 中重置root密码.

重置后,重启mysql服务,再次访问phpmyadmin,错误继续.各种尝试无效,只能尝试重装(数据已在降级前备份好).

 

命令:

1.移除mysql5.5
先用命令查看当前安装的包 rpm -qa | grep MySQL55
MySQL55-devel-5.5.48-1.cp1148.x86_64

MySQL55-shared-5.5.48-1.cp1148.x86_64

MySQL55-client-5.5.48-1.cp1148.x86_64

MySQL55-test-5.5.48-1.cp1148.x86_64

MySQL55-server-5.5.48-1.cp1148.x86_64

之后分批移除.
#rpm -e MySQL55-devel-5.5.48-1.cp1148.x86_64

#rpm -e MySQL55-shared-5.5.48-1.cp1148.x86_64

#rpm -e MySQL55-client-5.5.48-1.cp1148.x86_64

#rpm -e MySQL55-test-5.5.48-1.cp1148.x86_64

#rpm -e MySQL55-server-5.5.48-1.cp1148.x86_64

 

移除后,你会发现无法通过命令来重新安装了.但是你可以通过

WHM»Home»Software»MySQL/MariaDB Upgrade

因为你的mysql当前版本已经应用到5.5,直接更新就可以重新下载安装了.

 

等安装完成后,然后用命令执行

scripts/upcp –force或者/scripts/upcp –force升级cPanel即可!

再次重启mysql,然后在WHM或者cpanel中访问phpmyadmin,你会发现已经正常了!

六月 16th, 2016

前提:

cpanel授权用户,mysql版本由5.6降级为5.5版本后,发现mysql无法启动.

查看日志:

[ERROR] /usr/local/mysql-5.5.34/bin/mysqld: Incorrect information in file: ‘./mysql/proxies_priv.frm’

[ERROR] Fatal error: Can’t open and lock privilege tables: Incorrect information in file: ‘./mysql/proxies_priv.frm’

 

检查权限:

发现/var/lib/mysql/mysql 中, proxies_priv.frm 用户及用户组全是root.修改归属关系为mysql.

如下:

cd /var/lib

chown -R mysql:mysql mysql

然后再次重启,失败,错误日志同上.

service mysql start –skip-grant-tables  跳过表进行启动,然后进行优化或修复数据库.

优化数据库

mysqlcheck –all-databases -o       #optimize

修复数据库

mysqlcheck –all-databases -r      #repair

 

TAGS: ,
六月 16th, 2016

升级降级mysql版本前提是提前备份好客户数据库数据,升降级过程中会导致数据库丢失。
升级数据库版本:
这一步在WHM中操作很简单,直接点击Home »Software »MySQL/MariaDB Upgrade

图片1

图片2

降级数据库版本:
cPanel中MySQL数据库的降级比升级要麻烦,默认是允许升级,但是不允许降级。目录前cPanel装好之后默认支持最高版本5.6。如果希望将MySQL从V5.6降级到5.5的话,可以这么操作:
1.移除mysql5.6,否则安装5.5会起冲突
先用命令查看当前安装的包 rpm -qa | grep MySQL56
MySQL56-test-5.6.49-1.cp1156.x86_64
MySQL56-devel-5.6.49-1.cp1156.x86_64
MySQL56-shared-5.6.49-1.cp1156.x86_64
MySQL56-server-5.6.49-1.cp1156.x86_64
MySQL56-client-5.6.49-1.cp1156.x86_64

之后分批移除.
#rpm -e MySQL56-test-5.5.49-1.cp1156.x86_64
#rpm -e MySQL56-devel-5.5.49-1.cp1156.x86_64
#rpm -e MySQL56-shared-5.5.49-1.cp1156.x86_64
#rpm -e MySQL56-server-5.5.49-1.cp1156.x86_64
#rpm -e  MySQL56-client-5.5.49-1.cp1156.x86_64

2.修改cPanel配置,将mysql版本定义为V5.5
vi /var/cpanel/cpanel.config将mysql-version=5.6改成mysql-version=5.5
然后保存。

3.执行/scripts/upcp –force升级cPanel即可,升级完MySQL版本就是V5.5的了;若上面命令无法使用,可以使用/scripts/upcp –force,升级时会自动安装需要的rpm包.

六月 15th, 2016

mysql数据库改名

某项目中有需求要将数据库改个名字,从MySQL的参考手册中发现有rename database的SQL命令,兴冲冲的执行了

mysql> rename database db1 to db2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use n
r ‘database db1 to db2’ at line 1

查了一下,发现这条命令在MySQL 5.1.7的时候被添加进来,5.1.23的时候又被去掉了,查了一下版本:

mysql> select @@version;
| @@version |
+———–+
| 5.5.23 |
+———–+

再想其他办法,查了一些资料以后总结如下:

1、MYISAM引擎把库名字对应的文件夹名改了

1.1、关闭mysqld

1.2、把data目录中的db_name目录重命名为new_db_name

1.3、打开mysqld

2、INNODB引擎分为下面几个步骤:

2.1 按新名字建立一个数据库

2.2 删除原有库中所有表上的触发器

2.3 使用rename table命令将表从原数据库复制到新数据库

2.4 在新数据库上重新创建2.2中被删除的触发器

2.5 在新数据库上重新创建存储过程、自定义函数、Events等

RENAME TABLE命令语法:

RENAME TABLE db_name.table1 TO new_db_name.table1,
db_name.table2 TO new_db_name.table2;

六月 10th, 2016

一、csf防火墙

csf防火墙提供了基于web GUI的管理方式,并且提供 cPanel 插件,而且还可以基于CLI来管理.

1 防止暴力破解密码,自动屏蔽连续登陆失败的IP;

2 管理网络端口,只开放必要的端口;

3 免疫小流量的 DDos 和 CC 攻击;

 

二、csf安装:

<1> 安装依赖包:

# yum -y install perl-libwww-perl perl iptables

<2> 下载并安装csf:

# wget http://www.configserver.com/free/csf.tgz

# tar -xzf csf.tgz

# cd csf

# sh install.sh

 

<3>测试csf是否能正常工作:

# per /etc/csf/csftest.pl

-bash: per: command not found

[root@sqj csf]# perl /etc/csf/csftest.pl

Testing ip_tables/iptable_filter…OK

Testing ipt_LOG…OK

Testing ipt_multiport/xt_multiport…OK

Testing ipt_REJECT…OK

Testing ipt_state/xt_state…OK

Testing ipt_limit/xt_limit…OK

Testing ipt_recent…OK

Testing xt_connlimit…OK

Testing ipt_owner/xt_owner…OK

Testing iptable_nat/ipt_REDIRECT…OK

Testing iptable_nat/ipt_DNAT…OK

 

RESULT: csf should function on this server

 

三、csf的配置:

csf的配置文件是 /etc/csf/csf.conf

参数:

<1>TESTING = “0”  //默认的1(测试模式)修改为0(正式模式;

 

<2>TCP_IN  TCP_OUT

# Allow incoming TCP ports

TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995”

# Allow outgoing TCP ports

TCP_OUT = “20,21,22,25,53,80,110,113,443,587,993,995”

安全起见,可以修改SSH默认端口为其他端口,然后把相应的端口加入TCP_IN TCP_OUT中即可!

某些程序需要打开一定范围的端口,例如Pureftpd的passive mode,可使用30000:35000的方式打开30000-35000范围的端口.同上方式加入.

 

<3>ICMP_IN = “1”

# Allow incoming PING 是否允许别人ping你的服务器,默认为1,允许,0为不允许.

 

<4>免疫小规模ddos攻击

# To disable this feature, set this to 0

CT_LIMIT = “150”    //固定时间内同一个IP请求的次数

 

# Connection Tracking interval. Set this to the the number of seconds between

# connection tracking scans

CT_INTERVAL = “30”   //指上面的固定时间,单位为秒;

 

# Send an email alert if an IP address is blocked due to connection tracking

CT_EMAIL_ALERT = “1”   //是否发送邮件

 

# If you want to make IP blocks permanent then set this to 1, otherwise blocks

# will be temporary and will be cleared after CT_BLOCK_TIME seconds

CT_PERMANENT = “0”    //是否对可以IP采取永久屏蔽,默认为0,即临时性屏蔽.

 

# If you opt for temporary IP blocks for CT, then the following is the interval

# in seconds that the IP will remained blocked for (e.g. 1800 = 30 mins)

CT_BLOCK_TIME = “1800”  //临时性屏蔽时间

 

# If you don’t want to count the TIME_WAIT state against the connection count

# then set the following to “1”

CT_SKIP_TIME_WAIT = “0”  //是否统计TIME_WAIT链接状态

 

<5>CT_PORTS = “”

# Leave this option empty to count all states against CT_LIMIT

CT_STATES = “”  对什么端口进行检测,为空则检测所有.通常只需定义对HTTP服务80端口进行检测.

 

四、黑名单、白名单

配置文件路径: /etc/csf/csf.allow  /etc/csf/csf.deny

若要禁某个IP,可以把对应IP(或IP段)加入csf.deny配置文件,同样可以使用命令csf -d IP.

然后,重启csf. /etc/init.d/csf restart 或者 csf -r 都可以重启.

 

  • 卸载csf

执行以下命令即可卸载csf

#cd /etc/csf

#sh uninstall.sh

TAGS: ,
六月 10th, 2016

一、SSH暴力破解检测方法

如果你CPU/内存异常爆表,连接速度极慢,有异常进程等情况,有可能你的VPS被人扫描破解或者已经沦陷。。
可以用下面方法检测下多少人在“盯着”你的VPS:

# cat /var/log/secure | awk ‘/Failed/{print $(NF-3)}’ | sort | uniq -c | awk ‘{print $2″ = “$1;}’

通过上面的命令可以查看有哪些IP尝试过连接和破解次数,如下所示:

47.88.101.47 = 6

51.254.240.50 = 2

58.218.204.107 = 42

58.218.204.211 = 9

…….

二、DenyHosts安装与配置演示

<1>下载DenyHosts

# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz

# tar -xzf DenyHosts-2.6.tar.gz

# cd DenyHosts-2.6

<2>安装、配置、启动

安装前建议执行

# echo “” > /var/log/secure && service rsyslog restart

清空以前的日志并重启rsyslog.

 

# python setup.py install

因为DenyHosts是基于python的,所以要已安装python,大部分Linux发行版一般都有。默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件

 

# cd /usr/share/denyhosts/

# cp  denyhosts.cfg-dist denyhosts.cfg

# cp  daemon-control-dist daemon-control

默认的设置已经可以适合centos系统环境,你们可以使用vi命令查看一下denyhosts.cfg和daemon-control,里面有详细的解释

接下来用命令启动denyhosts.

# chown root daemon-control

# chmod 700 daemon-control

# ./daemon-control start

 

如果要使DenyHosts自动启动还需做如下设置:

# ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts

# chkconfig  –add denyhosts

# chkconfig –level 2345 denyhosts on

或者执行下面的命令加入开机启动,将会修改/etc/rc.local文件:

echo “/usr/share/denyhosts/daemon-control start” >> /etc/rc.local

 

三、DenyHosts配置文件/usr/share/denyhosts/denyhosts.cfg说明:

SECURE_LOG = /var/log/secure

#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。

 

HOSTS_DENY = /etc/hosts.deny

#控制用户登陆的文件

 

PURGE_DENY = 5m

DAEMON_PURGE = 5m

#过多久后清除已经禁止的IP,如5m(5分钟)、5h(5小时)、5d(5天)、5w(5周)、1y(一年)

 

BLOCK_SERVICE = sshd

#禁止的服务名,可以只限制不允许访问ssh服务,也可以选择ALL

 

DENY_THRESHOLD_INVALID = 5

#允许无效用户失败的次数

 

DENY_THRESHOLD_VALID = 10

#允许普通用户登陆失败的次数

 

DENY_THRESHOLD_ROOT = 5

#允许root登陆失败的次数

 

HOSTNAME_LOOKUP=NO

#是否做域名反解

DAEMON_LOG = /var/log/denyhosts

 

四、为防止自己的IP被屏蔽,可以:

echo “你的IP” >> /usr/share/denyhosts/allowed-hosts 将你的IP加入白名单,再重启DenyHosts:/etc/init.d/denyhosts

如果已经被封,需要先按下面的命令删除被封IP后再加白名单。

如有IP被误封,可以执行下面的命令解封:

wget http://soft.vpser.net/security/denyhosts/denyhosts_removeip.sh && bash denyhost_removeip.sh 要解封的IP

 

五、查看攻击ip 记录

# cat /etc/hosts.deny