CentOS 下的安全策略-防火墙 iptables 配置, fail2ban 配置

18 12月

如今很多个人服务器都是云服务器, 比如阿里云, 腾讯云, AWS 等等. 他们也提供了自己的安全策略, 但是免费的功能很有限制. 所以自己动手吧, 丰衣足食:

CentOS 安全

安全 = 最小的权限 + 最少的服务.

新系统会有很多的用户以及用户分组, 建议注释掉(不删除的原因是如果有需要可以重新打开).

特别提醒: 修改任何文件, 请备份, 比如: cp /etc/passwd /etc/passwd.back

用户和用户组

vi /etc/passwd

前面加上#, 注释掉以下用户:

adm lp sync shutdown halt uucp operator games gopher ftp

vi /etc/group

注释掉以下用户组:

adm lp uucp games dip

系统服务

用下面的命令关闭不用的系统服务, 以及取消开机启动,( serviceName 替换为要关闭的服务名称)

service {serviceName} stop chkconfig {serviceName} off

不需要的系统服务有这些:

(你可以使用 service {serviceName} start chkconfig {serviceName} on 恢复)

用户权限

chmod -R 700 /etc/rc.d/init.d/* 禁止非 root用户使用init.d下面的命令(默认是777权限)

用chattr +i {feilName} 给下面的文件加上不可更改的属性

(可以用 -i 取消锁定的设置, lsattr {fileName} 可以查看文件属性)

文件权限

.bash_history 文件可以记录操作日志, 攻击者往往会删除或者重定向到空文件,用下面的命令可以防止操作:

下面的文件是我们常用的命令, 也是攻击者最爱替换的命令, 防止他们更改,

chmod 700 {fileName} 更改以下文件权限 (括号内是原有的权限):

 

最后 chmod 500 /bin/ps 这个文件原有系统权限也是755

禁止危险操作

vi /etc/inittab

注释掉下面这一行, 可以防止 Ctrl + Alt + Del重启

禁止升级系统内核

vi /etc/yum.conf

在[main]的最后添加 exclude=kernel*

(使用 yum 升级的时候可以手动加上, 防止升级内核 yum –exclude=kernel* update)

cat /etc/issue 查看系统版本

uname -a 查看内核版本

chkconfig –list yum-updatesd 查看系统状态 (centos 自动更新)

yum-updatesd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

可以用 service yum-updatesd stop 关闭自动升级

chkconfig yum-updatesd off 关闭开机启动

其他 

vi /etc/inittab

注释掉不需要的多余的虚拟控制台, 比如

vi /etc/profile

找到 HISTSIZE 可以更改 history命令记录数

禁止服务器被 ping:

vi /etc/rc.d/rc.local 在最末尾加上下面这一行即可:

( 0 表示允许 1表示禁止)

防火墙iptables 配置

假如我们允许自己ping别人,但是别人ping自己ping不通如何实现呢?
分析:对于ping这个协议,进来的为8(ping),出去的为0(响应).我们为了达到目的,需要8出去,允许0进来

在出去的端口上:iptables -A OUTPUT -p icmp –icmp-type 8 -j ACCEPT
在进来的端口上:iptables -A INPUT -p icmp –icmp-type 0 -j ACCEPT

小扩展:对于127.0.0.1比较特殊,我们需要明确定义它
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

废话不多说, 直接贴上我自己的配置:
vi /etc/sysconfig/iptables

Fail2ban 配置

fail2ban 是一个监控日志, 并条件过滤后, 对访问 IP 进行限制等操作的工具, 常用来监控 Nginx 日志/ 系统登录日志, 把非法访问的 IP 拉黑

安装

关键文件列表:

/etc/fail2ban/fail2ban.conf 主要配置文件

/etc/fail2ban/jail.conf 阻挡设定文件

/etc/fail2ban/filter.d/ 过滤规则目录

/etc/fail2ban/action.d/ 检查到条件对象后的操作目录

如果没有发现 fail2ban 的安装包, 在/etc/yum.repos.d/CentOS-Base.repo 文件最后加入

vi /etc/fail2ban/fail2ban.conf:

vi /etc/fail2ban/jail.conf

更改 ssh 处 email 设置

增加 (注意替换{}内容}):

vi /etc/fail2ban/filter.d/nginx-{yourRuleName}.conf

写入你想监控的关键 url:

最后 service fail2ban restart 就可以了

One Reply to “CentOS 下的安全策略-防火墙 iptables 配置, fail2ban 配置”

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注