iptables防火墙

该文介绍了如何使用iptables在Linux系统中实现服务器共享上网,详细讲解了iptables的安装、启动及基本使用方法,包括四表五链的概念和规则设置,如ACCEPT、DROP、REJECT等目标操作。文章还提供了多个示例展示如何添加、删除和查看防火墙规则,以及设置默认规则,帮助读者理解和掌握iptables的网络管理功能。
摘要由CSDN通过智能技术生成

1、使用iptables实现Linux服务器共享上网

https://www.cnblogs.com/LiuChang-blog/p/12342593.html

2、安装并启动iptables

yum -y install iptables iptables-services
systemctl start iptables
systemctl enable iptables
service iptables save
>> /etc/sysconfig/network

3、四表五链

四表:
filter: 数据过滤表
nat:地址转换表
mangle:包标记表
raw:状态跟踪表

五链
INPUT:入站规则
OUTPUT:出站规则
FORWARD:转发规则
PREROUTING:路由前规则
POSTROUTING:路由后规则

基本用法

iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
iptables -t filter -i INPUT -p icmp -j REJECT

tmooc-iptbales网站


filter

源地址源端口目标端口目标地址协议处理规则备注
INPUT1.1.1.180tcpREJECT拒绝拒绝1.1访问本机的80
2.2.2.220,21tcpDROP丢弃丢弃2.2对本机的20,21连接请求
3.3.3.3443httpsACCEPT允许允许3.3访问本机的443
4.4.4.4LOG记录日志/va/log记录4.4访问本机时的日志
8010.10.10.10(本机网卡1-IP)REJECT禁止所有主机访问本机网卡1的80端口
OUTPUY805.5.5.5REJECT出方向拒绝访问5.5.5.5的80
www.baidu.comREJECT禁止访问百度
FORWARD
(转发规则)
基本使用方法

语法格式:
    iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
例如:
    iptables -t filter -I INPUT -p icmp -j ACCEPT
    iptables -I INPUT -p icmp -j REJECT

注意事项与规律
> 可以不指定表,默认为filter表
> 可以不指定链,默认为对应所有的链
> 除非设置默认策略,否则必须指定匹配条件
> 选项/链名/目标操作用大小写字母,其余都小写

目标操作:
> ACCEPT:允许通过/放行
> DROP:直接丢弃,不给出任何回应
> REJECT:拒绝通过,必要时会给出提示
> LOG:记录日志,然后传给下一条规则

类别选项描述
添加规则-A追加一条防火墙到链的末尾位置
-I插入一条规则到链的开头(-I大写,后面加数字代表在第几行添加)
查看规则-L查看iptables所有规则
-n以数字形式显示地址,端口等信息
--line-numbers查看规则时,显示规则的行号
删除规则-D删除链内指定序号(或内容)的一条规则
-F清空所有的规则
默认规则-P为指定的链设置默认规则
案例:
添加规则:
iptables -t filter -A INPUT -p tcp -j ACCEPT  
iptables -I INPUT -p udp -j ACCEPT    //默认为filter表
iptables -I INPUT 2 -p icmp -j ACCEPT    //插入规则到filter表的INPUT链的第2行
iptables -nL INPUT --line-numbers    //注意参数的位置顺序,--line-numbers放在最后边,-n在L前

删除规则
iptables -D INPUT 3    //删除iptables中INPUT链的第3条规则
iptables -F    //清空所有规则
iptables -t nat/mangle/raw -F    //清空指定链的所有规则

默认规则:
iptables -t filter -P INPUT DROP    //设置默认规则
iptables -nL
    CHain INPUT (policy DROP)

类别选项用法
通用配置协议匹配-p 协议名称
地址匹配-s 源地址、-d 目标地址
接口地址-i 接收数据的网卡、-o 发送数据的网卡
隐含匹配端口匹配--sport 源端口号、--dport 目标端口号
ICMP类型匹配--icmp-type ICMP类型
案例
iptables -t filter -I INPUT -p tcp -s 1.1.1.1 --dport 80 -j REJECT    
//拒绝1.1访问本机的80
iptables -I INPUT -p tcp -d 10.10.10.10 --dport 80 -j REJECT   
//拒绝所有IP访问本机的网卡1(10.10)的80端口
iptables -t filter -I OUTPUT -p tcp -d www.baidu.com --dport 80 -j REJECT   
//禁止本机在出方向上访问www.baidu.com的80端口

  • 练习题
禁止所有地址访问80
禁止h62访问本机任何端口
禁止所有地址访问:本机h60:80这个地址
禁止h63访问本机ens192网卡对应的私网IP
禁止h64访问本机80端口
禁止h64访问本机icmp协议
丢弃h20放过本机的所有包
丢弃10.0.10.0/24网络中所有主机发给本机的所有数据包
拒绝114.212.33.12使用tcp协议远程连接本机ssh
# 关机时执行
shell> mkdir -p /etc/network/if-post-down.d/
shell> vim /etc/network/if-post-down.d/iptables
#!/bin/bash
iptables-save > /etc/iptables.rules

# 开机时执行
shell> mkdir -p /etc/network/if-pre-up.d/
shell> vim /etc/network/if-pre-up.d/iptables
#!/bin/bash
iptables-restore < /etc/iptables.rules

shell> chmod +x /etc/network/if-pre-up.d/iptables
shell> chmod +x /etc/network/if-post-down.d/iptables 
  • 设置开机自动加载
shell> /etc/sysconfig/iptables
-I INPUT -p tcp -s 183.129.234.106 --dport 22 -j ACCEPT
-I INPUT -p tcp -s 183.129.234.106 --dport 3306 -j ACCEPT
-I INPUT -p tcp -s 183.129.234.106 --dport 6379 -j ACCEPT

-I INPUT -p tcp -s 192.168.30.10 --dport 3306 -j ACCEPT

FORWORD

iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 192.168.99.130 -j ACCEPT
iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 192.168.99.0/24 -j ACCEPT
iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 192.168.99.131 -j ACCEPT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值