searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

用iptables搭建一套强大的安全防护盾

2023-06-20 07:54:58
19
0
iptables功能:
 
搭建一套防火墙规则
 
进行攻击防护、访问策略
 
进行数据包转发
 
 
 
Netfilter:
 
Linux系统核心层内部的一个数据包处理模块
 
Hook point:(PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING)
 
数据包在Netfilter中的挂载点
 
 
 
iptables规则组成:
 
四张表 + 五条链(Hook point) + 规则
 
四张表:filter表、nat表、mangle表、raw表
 
filter表:访问控制、规则匹配
 
nat表:地址转发
 
数据包访问控制:ACCEPT、DROP、REJECT
 
数据包改写:SNAT、DNAT
 
信息记录:LOG
 
 
 
iptables -nL  #列出已经设置的规则-n不显示主机名
 
iptables -F   #清除之前设置的规则
 
 
 
场景1:
 
对所有的地址开放本机的TCP(80、22、10-21)端口的访问
 
允许对所有的地址开放本机的基于ICMP协议数据包的访问
 
其他未被允许的端口则禁止访问
iptables -F
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT
以上配置存在的问题:① 本机无法访问本机   ② 本机无法访问其他主机   解决如下
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

修改只允许10.103.188.233访问本机的httpd服务

iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 10.103.188.233 --dport 80 -j ACCEPT

 

场景2:

FTP主动模式 iptables 设置:

iptables -F
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j REJECT

FTP被动模式 iptables 设置:

iptables -I INPUT -p tcp --dport 50000:6000 -j ACCEPT

 

场景3:公司常用简单 iptables 规则

员工在公司内部(10.10.155.0/24;10.10.188.0/24)能访问服务器上的任何服务

员工出差上海,通过×××访问

公司有一个网站允许公网访问

iptables -F
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.10.155.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT  #×××访问
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT

 

执行 /etc/init.d/iptables save 命令;iptables的当前配置会保存在 /etc/sysconfig/iptables 文件中
 
 
 
iptables中NAT模式设置
 
SNAT:源地址转换   DNAT:目的地址转换
 
 
 
SNAT规则设置:
 
环境:webserver:10.10.188.173  SNATserver:eth0:10.10.188.232:eth1:10.10.177.232  client:10.10.177.233
 
SNATserver配置:
 
vim /etc/sysctl.conf
 
net.ipv4.ip_forward = 1  #打开此配置
 
sysctl -p  #让此配置生效
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232

client配置:

配置client路由;可以将client的默认网关设为SNATserver;vim /etc/sysconfig/network ; GATEWAY=10.10.177.232

配置完成client可以直接访问webserver:10.10.188.173

 

DNAT规则设置:

环境:webserver:10.10.177.233:80  DNATserver:10.10.177.232 10.10.188.232:80  client:10.10.188.173

DNATserver配置:

iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80
iptables -t nat -L

client测试:curl http://10.10.188.232

client表面访问的是10.10.188.232,实际访问的是10.10.177.233:80

 

iptables防CC攻击

connlimit模块:限制每一个客户端IP的并发连接数

-connlimit-above n  #限制并发个数

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

limit模块:限速、控制流量

iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
0条评论
作者已关闭评论
刘****
2文章数
0粉丝数
刘****
2 文章 | 0 粉丝
刘****
2文章数
0粉丝数
刘****
2 文章 | 0 粉丝
原创

用iptables搭建一套强大的安全防护盾

2023-06-20 07:54:58
19
0
iptables功能:
 
搭建一套防火墙规则
 
进行攻击防护、访问策略
 
进行数据包转发
 
 
 
Netfilter:
 
Linux系统核心层内部的一个数据包处理模块
 
Hook point:(PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING)
 
数据包在Netfilter中的挂载点
 
 
 
iptables规则组成:
 
四张表 + 五条链(Hook point) + 规则
 
四张表:filter表、nat表、mangle表、raw表
 
filter表:访问控制、规则匹配
 
nat表:地址转发
 
数据包访问控制:ACCEPT、DROP、REJECT
 
数据包改写:SNAT、DNAT
 
信息记录:LOG
 
 
 
iptables -nL  #列出已经设置的规则-n不显示主机名
 
iptables -F   #清除之前设置的规则
 
 
 
场景1:
 
对所有的地址开放本机的TCP(80、22、10-21)端口的访问
 
允许对所有的地址开放本机的基于ICMP协议数据包的访问
 
其他未被允许的端口则禁止访问
iptables -F
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT
以上配置存在的问题:① 本机无法访问本机   ② 本机无法访问其他主机   解决如下
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

修改只允许10.103.188.233访问本机的httpd服务

iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 10.103.188.233 --dport 80 -j ACCEPT

 

场景2:

FTP主动模式 iptables 设置:

iptables -F
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j REJECT

FTP被动模式 iptables 设置:

iptables -I INPUT -p tcp --dport 50000:6000 -j ACCEPT

 

场景3:公司常用简单 iptables 规则

员工在公司内部(10.10.155.0/24;10.10.188.0/24)能访问服务器上的任何服务

员工出差上海,通过×××访问

公司有一个网站允许公网访问

iptables -F
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.10.155.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT  #×××访问
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT

 

执行 /etc/init.d/iptables save 命令;iptables的当前配置会保存在 /etc/sysconfig/iptables 文件中
 
 
 
iptables中NAT模式设置
 
SNAT:源地址转换   DNAT:目的地址转换
 
 
 
SNAT规则设置:
 
环境:webserver:10.10.188.173  SNATserver:eth0:10.10.188.232:eth1:10.10.177.232  client:10.10.177.233
 
SNATserver配置:
 
vim /etc/sysctl.conf
 
net.ipv4.ip_forward = 1  #打开此配置
 
sysctl -p  #让此配置生效
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232

client配置:

配置client路由;可以将client的默认网关设为SNATserver;vim /etc/sysconfig/network ; GATEWAY=10.10.177.232

配置完成client可以直接访问webserver:10.10.188.173

 

DNAT规则设置:

环境:webserver:10.10.177.233:80  DNATserver:10.10.177.232 10.10.188.232:80  client:10.10.188.173

DNATserver配置:

iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80
iptables -t nat -L

client测试:curl http://10.10.188.232

client表面访问的是10.10.188.232,实际访问的是10.10.177.233:80

 

iptables防CC攻击

connlimit模块:限制每一个客户端IP的并发连接数

-connlimit-above n  #限制并发个数

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

limit模块:限速、控制流量

iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0