iptables常见规则使用

发布时间 2023-09-26 21:55:23作者: the1729cranes

练习:
1、搭建一台linux服务器,开启ssh、mysql、nginx服务
2、使用防火墙规则iptables规则,允许 你的windows机器 访问sshd服务
允许 范围IP地址主机 访问本机的8080端口
3、允许 范围IP地址主机 访问mysql服务(3306端口)
4、web服务所有人都可以访问
5、允许ping服务器
6、其他的端口都不允许访问
7、记录所有ping本机的信息到日志信息
8、包装开机自动使用这个脚本里的规则

脚本:

#!/bin/bash
# 以下默认修改filter表
# 清空规则
iptables -F

# 允许windows机器访问服务器22端口
iptables -A INPUT -s 192.168.142.1 -p tcp --dport 22 -j ACCEPT

# 允许IP地址范围在140-141的机器访问服务器8080端口
iptables -A INPUT -m iprange --src-range 192.168.142.140-192.168.142.141 -p tcp --dport 8080 -j ACCEPT

# 允许IP地址范围在1-140的机器访问服务器3306端口
iptables -A INPUT -m iprange --src-range 192.168.142.1-192.168.142.140 -p tcp --dport 3306 -j ACCEPT

# 允许任何机器访问服务器80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 记录向服务器的icmp请求包的日志
iptables -A INPUT -p icmp --icmp 8 -j LOG --log-prefix "<< this is ping >>" --log-level 4
# 允许任何机器向服务器发送icmp请求包
iptables -A INPUT -p icmp --icmp 8 -j ACCEPT
# 允许服务器接受任何机器的响应数据--INPUT链默认策略改为DROP时可以联网
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 修改INPUT链的默认策略为DROP
iptables -P INPUT DROP

# 展示filther表
iptables -nvL --line

2、关闭firewalld服务开启iptables服务
systemctl stop firewalld
systemctl start iptables

3、执行规则脚本
bash iptables.sh

4、保存现有规则
service iptables save
注意事项:
	接端口必须带协议
	每条命令的前后执行顺序是有影响的
	iptables规则存储有两种方式
		第一种:使用firewalld服务提供的iptables
			iptables-save >/etc/iptables/rules.v4
			iptables-restore </etc/iptables/rules.v4
			其中规则文件位置可以自己定义

    	第二种:使用iptables-servers服务,注意两种同时开启只有firewalld服务生效,故要使用iptables-servers需关闭firewalld服务
    		systemctl stop firewalld
    		
    		安装iptables服务
    		yum install iptables-services
    		systemctl enable iptables
    		systemctl start iptables

    		保存现有规则到/etc/sysconfig/iptables文件中
    		service iptables save