文章目录

  • 网络参数设置
  • 禁用IP转发
  • 禁止数据包发送重定向
  • 不接收源路由信息包
  • 记录可疑数据包
  • 启用TCO SYN Cookies
  • 禁用ipv6
  • 网络访问控制
  • TCP-Wrappers
  • 禁用不常用的网络协议
  • 禁用DCCP/SCTP/RDS协议
  • 防火墙配置-[iptables]()
  • 默认防火墙拒绝策略
  • 配置环回地址规则
  • 为特定连接配置防火墙



网络参数设置

禁用IP转发

不当路由器!!

配置方法:
在/etc/sysctl.conf或/etc/sysctl.d/*中设置以下参数:
net.ipv4.ip_ forward = 0
运行以下命令来设置活动内核参数:
sysctl -w net.ipv4.ip. forward=0
sysctl -w net.ipv4.route.flush=1
验证:匹配验证

禁止数据包发送重定向

如果没有禁止数据包发送重定向,那么攻击者可以使用受攻击的主机作为跳板将无效的ICMP数据包发送重定向发送到其他路由设备并破坏路由设备,并让用户访问攻击者设置的系统。

加固方法:

数据包一般是默认开启了重定向的,在/etc/sysctl.conf文件中设置

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.defult.send_redirects=0

运行以下命令设置活动内核参数

sysctl -w net.ipv4.conf.all.send_redirects=0

sysctl -w net.ipv4.conf.defult.send_redirects=0

刷新一下路由缓存

sysctl -w net.ipv4.route.flush=1

linux网络安全实验_linux

进行匹配验证网络参数生效和验证内核参数激活

验证内核参数激活

sysctl net.ipv4.conf.all.send_redirects

sysctl net.ipv4.conf.default.send_redirects

匹配验证网络参数生效

grep net.ipv4.conf.all.send_redirects /etc/sysctl.conf

grep net.ipv4.conf.default.send_redirects /etc/sytsctl.conf

不接收源路由信息包

如果允许接受源路由包那么黑客就可以利用其来获取对私有地址系统的访问,因为在正常的情况下非源路由包在网络中的传播路径是由路由决定的,在某些情况下,系统是不可以经过路由或从某些位置访问的(私有地址和Internet路由),但是源路由可以。
配置(与上一个方法类似):
在/etc/sysctl.conf文件中设置
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
设置活动内核参数
sysctl -w ipv4.conf.all.accept_source_route=0
sysctl -w ipv4.conf.default.accept_source_route=0
刷新路由缓存
sysctl -w net.ipv4.route.flush=1
检测方式与上类似
验证内核参数激活
sysctl net.ipv4.conf.all.accept_source_route
sysctl net.ipv4.conf.default.accept_source_route
匹配验证网络参数生效
grep net.ipv4.conf.all.accept_source_route /etc/sysctl.conf
grep net.ipv4.conf.default.accept_source_route /etc/sytsctl.conf

记录可疑数据包

启用这个功能可以记录不是路由发送的源地址的包记录到内核日志中。管理员就可以查询攻击者向其系统发送欺骗包的可能性。
配置:
在/ect/sysctl.conf中设置
net.ipv4.conf.all.log_martains=1
net.ipv4.conf.default.log_martains=1
设置活动内核参数
sysctl -w ipv4.conf.all.log_martains=0
sysctl -w ipv4.conf.default.log_martains=0
刷新路由缓存
sysctl -w net.ipv4.route.flush=1
验证方式与上两个相同,就换个参数就行。
禁止响应ICMP广播请求。
黑客可以进行Smurf攻击:发送发大量带有七篇源地址的ICMP广播消息。所有接收消息并作出响应的主机都将发送echo-reply消息到欺骗地址。当许多主机对数据包做出响应,那么网络通信量就会增加,服务器就无法正常提供服务。
配置方法:vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
刷新路由缓存
sysctl -w net.ipv4.route.flush=1
检测方法相同

启用TCO SYN Cookies

启用SYN Cookies之后,内核可以正常处理TCP SYN数据包,知道半打开的连接队列满了为止,此时SYN Cookie启用。
SYN Cookie将一些本该在本地保存的信息编码返回给客户端的SYN-ACK的初始化序列号或者时间戳里面,握手尚未完成不分配任何资源。等到客户端的ACK到来时再从ACK序列号里面解码出保存的信息,利用此信息建立一个tcp连接,此时握手完成,重新分配资源。这也就i防御了SYN flood攻击。
配置:
在sysctl配置文件中设置:
net.ipv4.tcp_syncookies=1
设置活动内核参数
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.route.flush=1

禁用ipv6

不用就关了。减少一个攻击的可能。

配置:

编辑/etc/default/grub给GRUB_CMDLINE_LINUX变量增加参数。ipv6.disable=1

linux网络安全实验_linux_02

更新grub配置

grub2-mkconfig > /boot/grub2/grub.cfg

linux网络安全实验_网络_03

验证方法:匹配验证。

网络访问控制

/etc/hosts.allow文件指定允许连接到主机的IP地址,/etc/hosts.deny文件指定不允许连接到主机的IP地址,/etc/hosts.allow的设定优先于/etc/hosts.deny,两个文件相互作用。
配置:
基本格式:
程序名列表:主机名/IP地址列表
例如:在host.deny中有:sshd:192.168.10.10则表示禁止用户从192.168.10.10,ssh登录。

TCP-Wrappers

原理:
TCP Wrappers为系统没有内置支持的服务提供了一个很好的简单访问列
表机制。建议所有支持TCP Wrappers的服务都使用它。
描述:
TCP Wrappers为支持它的服务提供了一个简单的访问列表和标准化的日志记录方法。过去,从inetd和xinetd调用的服务支持使用tcp Wrappers.最新版系统上inetd和xinetd已经停止使用,任何支持tcp Wrappers的服务都将使用libwrap.so库和tcp Wrappers相连使用。
配置方法:
使用以下命令安装tcp Wrappers:
yum install tcp_ wrappers
检测方法:
使用以下命令查看是否安装tcp Wrappers和libwrap.so库
rpm -q tcp_ wrappers
rpm -q tcp_ wrappers-libs
配置/etc/hosts.allow文件
原理:
/etc/hosts. allow文件支持通过IP访问控制,并帮助确保只有经过授权的
系统才能连接到系统。
描述:
/etc/hosts. allow文件指定允许连接到主机的IP地址。它将与/etc/hosts
.deny文件一起使用。
配置方法:
使用以下命令创建/etc/hosts. allow文件:echo “ALL: / , / , … > /etc/hosts.allow
其中每个/ (例如,”192.168.1.0/255.255.255.0” )表示
需要访问该系统使用的一个网络块。
检测方法:
运行以下命令并验证/etc/hosts.allow的内容文件:
cat /etc/hosts.allow
配置/etc/hosts.deny文件
原理:
/etc/hosts.deny文件用作故障保险, 帮助确保任何不在/etc/hosts. allow允许的主机不能连接到系统。
描述:
/etc/hosts. deny文件指定不允许连接到主机的IP地址。它将与/etc/hosts.allow文件一起使用。
配置方法:
使用以下命令创建/etc/hosts.deny文件:
echo “ALL: ALL” >> /etc/hosts.deny
检测方法:
运行以下命令并验证/etc/hosts.deny的内容文件:
cat /etc/hosts.deny
配置/etc/hosts.allow和/etc/hosts.deny的权限
确保只有root有写的权限,因为其他的应用程序也会使用网络信息,所以其他的应用程序需要有读取的权限。
chown root:root /etc/hosts.allow
chmod 644 /etc/hosts.allow

禁用不常用的网络协议

禁用DCCP/SCTP/RDS协议

描述:
数据报拥塞控制协议(DCCP)是一种支持流媒体和电话的传输层协议。DCCP
是提供多种拥塞控制机制,无需在应用程序层进行访问。
配置方法:
编辑或创建/etc/modprobe.d/ClS.conf文件并添加
以下内容:
install dccp /bin/true
检测方法:
运行以下命令,验证输出如下:
modprobe -n -V dccp
install /bin/true
Ismod | grep dccp
配置与检测方法相同只是换了个协议名称。

防火墙配置-iptables

默认防火墙拒绝策略

默认防火墙拒绝任何未配置的网络使用。
配置:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FOTWARD DROP
检车:
iptables -L

配置环回地址规则

配置环回地址接受环回流量,其他接口拒绝。
配置:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT
iptables -A INPUT -s 127.0.0.1/8 -j DROP
检测:
iptables -L INPUT -v -n
iptables -L OUTPUT -v -n

为特定连接配置防火墙

为特定客户端IP连接建立制定规则
iptables -A INPUT -s <IP地址/掩码> -p tcp -dport 开放端口 -j ACCEPT
为业务环境开放指定ip连接建立规则
iptables -A INPUT -s <IP地址/掩码> -j ACCEPT
查看一下配置的防火墙规则
iptables -L INPUT -v -n