首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
Iptables 详解
时间:
2015-07-19 13:17:22
阅读:
99
评论:
0
收藏:
0
[点我收藏+]
标签:
Iptables中的4表5链
四张表:
filter表
、
nat表
、mangle表、raw表
五条链:INPUT OUTPUT FORWARD PREROUTING POSTROUTING
Filter表:访问控制、规则匹配
Nat表:地址转发
Iptables规则组成
数据包访问控制:ACCEPT、DROP、REJECT
数据库改写:SNAT、DNAT
信息记录:LOG
组成部分:四张表 + 五条链 + 规则
解释:
-A:追加一个新规则
-D:删除规则
-L:显示规则情况
-F:清除iptables规则
-P:设置一个默认的iptables
-I:在原有规则上插入一条规则,成为第一条规则
-p tcp:协议
-s:发起源
-d:目标地址
--sport:源端口
--dport:目的端口
--dports:端口段
-m tcp:
state:
multiport:
均指端口补充
Iptables配置
场景一:
规则1:对所有的地址开放本机的tcp(80、22、10-21)端口的访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dports 10:21 -j ACCEPT
规则2:允许所有的地址开放本机的基于ICMP协议的数据包访问
iptables -I INPUT -P ICMP -J ACCEPT
规则3:其他未被允许的端口则禁止访问
iptables -A INPUT -j REJECT
检测端口开放情况
,在其他机器使用nmap端口扫描命令检查:
nmap -sS -p 0-1000 10.10.0.100
删除开放的80端口
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
禁止其他机器访问80端口
iptables -I INPUT -p tcp --dport 80 -j REJECT
iptable -nL 查看iptables设置情况
netstat -luntp | grep 80 检查端口开放情况
场景一存在的问题:
a、本机无法访问本机
b、本级无法访问其他主机
解决:
iptables -I INPUT -i lo -j ACCEPT (所有的数据包可以通过lo网卡)
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT (状态为ESTABLISHED,RELATED的数据包允许通过)
规则4:在场景一基础上,修改iptables,设置
只允许10.10.0.101访问本机的http服务
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 10.10.0.101 --dport 80 -j ACCEPT
场景二:
要求一:在公司内部(10.10.20.0/24,10.10.30.0/24)能访问服务器上的任何服务
要求二:通过VPN链接到公司外网-->拨号到VPN服务器-->内网FTP、SAMBA、SSH、NFS
要求三:公司服务器搭建的网站允许公网访问
配置思路:
允许本地访问、开放SSH
允许已监听状态数据包通过
允许规则中允许的数据包通过
拒绝未被允许的数据包
iptables规则保存成配置文件
实施:
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.10.20.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.30.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT (VPN端口)
iptables -I INPUT -P ICMP -J ACCEPT
iptables -A INPUT -j REJECT
保存iptables设置
使用命令iptables save 或者 将iptables 设置保存到shell脚本中,并设置为开机自启动
iptables 规则中SNAT规则设置
SNAT:源地址转换 出口 POSTROUTING
DNAT:目的地址转换 进口 PREROUTING
SNAT场景模拟:
在NatServer上配置Iptables使Client能访问weServer
修改sysctl.conf,开启net转发
vi /etc/sysctl.conf
修改 net.ipv4.ip_forward = 1 (默认为0)
使其生效
sysctl -p
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232
DNAT场景模拟:
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 -nL
利用iptables防止CC攻击
使用connlimit模块
作用:用于限制每一个客户端ip的并发连接数
参数:-connlimit-above n # 限制并发个数
iptables -I INPUT -p TCP --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT
iptables -I INPUT -p tcp --dport 80 -s 10.10.0.100 -m connlimit --connlimit-above 100 -j REJECT
使用Limit模块
作用:限速、控制流量
例如:iptables -A INPUT -m limit --limit 3/hour
--limit-burst 默认值为5
示例:
iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
Iptables 详解
标签:
原文地址:http://www.cnblogs.com/Mrhuangrui/p/4658184.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!