站点图标 Liao's blog

Linux系统网络安全检查方案汇总记录

记录一下日常可能用到的系统检测方案及命令

1. 服务器是否被暴力破解
Debian 和 Ubuntu 存储在 /var/log/auth.log
RedHat 和 CentOS 存储在 /var/log/secure

1.查看 root 用户登录成功的IP及次数看看是否有不熟悉的 IP 地址

grep "Accepted password for root" /var/log/secure | awk '{print 11}' | sort | uniq -c | sort -nr | more

2.查看尝试暴力破解 root 账户的IP及次数
 grep "Failed password for root" /var/log/secure | awk '{print11}' | sort | uniq -c | sort -nr | more

3.查看尝试暴力破解用户名的IP及次数
grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr | more
2. 隐藏系统信息

默认情况下,登录提示信息包括Linux发行版的名称、版本、内核版本和主机名等信息,这些信息对于黑客入侵是很有帮助的,因此,出于服务器的安全考虑,需要将这些信息修改或注释掉。应该只显示一个“login:”提示符。
操作时删除 /etc/issue和/etc/issue.net 文件中的内容即可。

[root@localhost ~]# vim  /etc/issue   issue文件是用户从本地登录时看到的提示(注释或删除内容)

[root@localhost ~]# vim  /etc/issue.net   issue.net文件是用户从网络登录(如telnet、ssh)系统时看到的登录提示(注释或删除内容)。

3. 禁ping设置

/etc/rc.d/rc.local 文件增加:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all ,防止别人ping自己的系统,从而增加系统的安全性。

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
4. 防止IP欺骗

/etc/host.conf 文件增加一行:nospoof on,防止IP欺骗。

5. 使用以下命令对系统进行系统安全检查。
# Whoami           当前用户?
# W                所有登录用户包括网络登录的?
# Who              所有登录用户包括网络登录的?
# history          历史命令记录
# clear            清屏
# last             曾经登录的用户
# top              活动进程
# netstat          查看网络状态

6. 定期检查系统中的日志

(1)/var/log/messages 日志文件。检查 /var/log/messages 日志文件,查看外部用户的登录情况。

(2)history文件。检查用户主目录 /home/username 下的历史文件,即 .history 文件。

7. 分区保护

在Linux系统中,可以将不同的应用安装在不同的分区上,每个分区分别进行不同的配置,可以将关键分区设置为只读,这样可以大大提高Linux文件系统的安全。Linux文件系统可以分为几个主要的分区,一般情况下至少需要建立 /boot、/lib、/sbin、/usr/local、/var和/home 等分区。

/usr 可以安装成只读,并且可以被认为是不可修改的,如果 /usr 中有任何文件发生了改变,那么系统将立即发出安全报警。

/boot、/lib和/sbin 的安装和设置也一样,在安装时尽量将它们设为只读。
不过有些分区是不能设为只读的,比如 /var

[root@localhost /]# chattr +i  /usr 加i属性使得root用户也不能在/BIN 创建改变文件

[root@localhost /]# lsattr -d  /usr 验证i属性加成功否?

8. 用户管理
查看用户列表:cat /etc/passwd
查看组列表:cat /etc/group

userdel sync
userdel shutdown
# 需要删除的多余用户共有:sync shutdown halt uucp operator games gopher
groupdel adm
groupdel games
# 需要删除的多余用户组共有:adm lp games dip

Linux中的帐号和口令是依据 /etc/passwd 、/etc/shadow、 /etc/group 、/etc/gshadow 这四个文档的,所以需要更改其权限提高安全性:

chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshado

如果还原,把 +i 改成 -i ,再执行一下上面四条命令。

注:i属性:不允许对这个文件进行修改,删除或重命名,设定连结也无法写入或新增数据!只有 root 才能设定这个属性。

9. 查看当前网络通信IP
#当前网络IP及请求连接数

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

#当前80端口通信IP,排查是否CC攻击

netstat -an|grep ':80' -c

#端口抓包分析
tcpdump -nn port 80 or port 443

10. CentOS7防⽕墙放⾏或限制指定IP和端⼝(firewall)
CentOS7默认没有安装iptables,可以⼿动安装iptables;也可以通过CentOS7已带的firewall配置防⽕墙。
1.查看firewalld.service服务状态
systemctl status firewalld

2.查看firewall运⾏状态
firewall-cmd --state

3.⼿动启动/停⽌/重启firewalld.service服务
# 启动firewalld
service firewalld start
# 停⽌firewalld
service firewalld stop
# 重启firewalld
service firewalld restart

4.展⽰当前配置的firewall规则
firewall-cmd --list-all

5.端⼝(端⼝段)的查询/开放
# 查询端⼝是否开放
firewall-cmd --query-port=8080/tcp
# 新建永久规则,开放8080端⼝(TCP协议)
firewall-cmd --permanent --add-port=8080/tcp
# 移除上述规则
firewall-cmd --permanent --remove-port=8080/tcp
# 新建永久规则,批量开放⼀段端⼝(TCP协议)
firewall-cmd --permanent --add-port=9001-9100/tcp

6.IP(IP段)的开放
# 新建永久规则,开放192.168.1.1单个源IP的访问
firewall-cmd --permanent --add-source=192.168.1.1
# 新建永久规则,开放192.168.1.0/24整个源IP段的访问
firewall-cmd --permanent --add-source=192.168.1.0/24
# 移除上述规则
firewall-cmd --permanent --remove-source=192.168.1.1

7.系统服务的开放
# 开放http服务
firewall-cmd --permanent --add-service=http
# 移除上述规则
firewall-cmd --permanent --remove-service=http

8.⾃定义复杂规则(注意是否与已有规则冲突)
# 允许指定IP访问本机8080端⼝

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept'

# 允许指定IP段访问本机8080-8090端⼝

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept'

# 禁⽌指定IP访问本机8080端⼝

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'

9.任何修改操作,配置完成后,需要重新装载firewall。可重新启动firewalld服务。
firewall-cmd --reload
service firewalld restart

持续更新…..

退出移动版