七月学习之Iptables场景示例
  eHipUjOuzYYH 2023年11月02日 29 0

10、Iptables场景示例

10.1、iptables场景一

场景描述
1、对所有的地址开放本机的tcp(80、22、8080-9090)端口的访问
2、允许对所有的地址开放本机的基于ICMP协议的数据包访问
3、其他未被允许的端口禁止访问

实现思路
1、先允许端口、协议
2、配置拒绝规则
#INPUT
iptables -F
iptables -t filter -I INPUT -p tcp -m multiport --dport 22,80,8080:9090 -m state --state "NEW,ESTABLISHED,RELATED" -j ACCEPT
iptables -t filter -I INPUT -p icmp -j ACCEPT
iptables -t filter -I INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -j DROP

#OUTPUT
iptables -t filter -I OUTPUT -p tcp -m multiport --sport 22,80,8080:9090 -m state --state "NEW,ESTABLISHED,RELATED" -j ACCEPT
iptables -t filter -I OUTPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -j DROP

10.2、iptables场景二

场景描述:
1、员工在公司内部(10.0.0.0/24、10.8.0.0/24)能访问服务器上任何服务
2、当员工出差外地,通过vpn连接到公司,也可以访问内部上的任何服务
3、公司有门户网站需要允许公网用户访问http 80/tcp、https 443/tcp

实现思路
1、允许本地lo访问
2、允许10.0.0.0、10.8.0.0网段访问任何服务
3、允许其他网段主机可以访问80、443
4、允许已建立的数据包通过(ESTABLISHED)
5、拒绝所有未允许的数据包

iptables -F
iptables -t filter -I INPUT -i lo -j ACCEPT
iptables -t filter -I INPUT -s 10.0.0.0/24 -j ACCEPT
iptables -t filter -I INPUT -s 10.8.0.0/24 -j ACCEPT
iptables -t filter -I INPUT -m state --state "ESTABLISHED" -j ACCEPT
#外网用户仅能访问80和443
iptables -t filter -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
iptables -t filter -A INPUT -p tcp -j DROP

10.3、iptables场景三

ftp服务一般有主动和被动两个模式,那么针对这两个模式该如何配置iptables呢

10.3.1、ftp主动模式规则配置

通常ftp主动模式监听在21端口,然后由20端口作为数据传输端口,向客户端发送数据
1、vsftpd服务端配置支持主动模式
yum install vsftpd -y
vim /etc/vsftpd/vsftpd.conf
port_enable=YES
connect_from_port_20=YES

systemctl restart vsftpd

2、ftp客户端连接模式默认为被动模式,需要通过passive命令切换到主动式
yum install ftp -y
ftp server_address
ftp> passive
Passive mode off  #提示被动模式关闭

3、登录服务端,查看客户端与服务端的连接的状态(服务端20端口主动向客户端随机端口发送数据)
netstat -an |grep -i estab

4、配置防火墙,放行20、21端口,以及建立连接后的数据传输
iptables -F
iptables -A INPUT -p tcp -m state --state "NEW,ESTABLISHED,RELATED" -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 20,21,22 -j ACCEPT
iptables -A INPUT -j DROP

#OUTPUT放行从20、21出去新建的连击,以及已建立的连接,至于ssh就相应建立的连接即可
iptables -t filter -I OUTPUT -p tcp -m multiport --sport 22 -m state --state "ESTABLISHED" -j ACCEPT
iptables -t filter -I OUTPUT -p tcp -m multiport --sport 20,21 -m state --state "NEW,ESTABLISHED,RELATED" -j ACCEPT
iptables -t filter -A OUTPUT -j DROP

10.3.2、ftp被动模式规则配置

ftp被动模式监听在21端口,然后由随机端口作为数据传输端口,向客户端发送数据
由于是随机就没办法指定端口,所以可以配置vsftpd控制随机端口范围

1.修改vsftpd服务端传输数据时的随机端口
vim /etc/vsftpd/vsftpd.conf
pasv_min_port=50000
pasv_max_port=60000
systemctl restart vsftpd

2.配置iptables规则:
# INPUT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 21,50000:60000 -m state --state "NEW,ESTABLISHED,RELATED" -j ACCEPT
iptables -A INPUT -j DROP

# OUTPUT
iptables -I OUTPUT -p tcp --sport 22 -m state --state "ESTABLISHED" -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 21,50000:60000 -m state --state "ESTABLISHED" -j ACCEPT
iptables -A OUTPUT -j DROP
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月11日   37   0   0 nginx客户端服务端
  jnZtF7Co41Wg   2023年12月09日   29   0   0 客户端服务端数据
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS
  aYmIB3fiUdn9   2023年12月08日   51   0   0 客户端IPNATlvs