iptables 学习笔记 (下)
Iptables上机配置
1)查看当前配置
# iptables–L
-v:显示详细信息,包括每条规则的匹配包数量和匹配字节数会显示链中规则的包和流量计数
-x:在 v 的基础上,禁止自动单位换算(K、M)
-n:只显示 IP 地址和端口号码,不显示域名和服务名称
-t:表名:查看相应表的规则
2)清除原有规则
#iptables –F 清除预设表filter中的所有规则链的规则
#iptables –X 清除预设表filter中使用者自定链中的规则
#iptables –Z 将计数器归零
3)设定预设规则
# iptables -p INPUT DROP 默认除表里有规则外,数据包进全部丢弃
# iptables -p OUTPUT ACCEPT 默认数据包出全允许
# iptables -p FORWARD DROP 默认转发全丢弃
# iptables –t nat –PPREROUTING ACCEPT
# iptables –t nat –P POSTROUTING ACCEPT
# iptables –t nat –P OUTPUT ACCEPT
即只允许出去,不允许进来,也不能允许转发
4)添加规则
INPUT链配置(即进入)
启用WEB服务器,开启80端口.
#iptables –A INPUT –p tcp --dport 80 –j ACCEPT
启用邮件服务器,开启25,110端口
#iptables –A INPUT –p tcp --dport 25 –j ACCEPT
#iptables –A INPUT –p tcp --dport 110 –j ACCEPT
启用FTP服务器,开启21端口
#iptables –A INPUT –p tcp --dport 21 –j ACCEPT
#iptables –A INPUT –p tcp --dport 20 –j ACCEPT
启用DNS服务器,开启53端口
#iptables –A INPUT –p tcp --dport 53 –j ACCEPT
启用SSH远程登陆,开启22端口
#iptables –A INPUT –p tcp --dport 22 –j ACCEPT
只允许192.168.1.100的机器进行SSH连接
# iptables -D INPUT -p tcp --dport 22 -j ACCEPT 先删除允许所有22号端口规则
#iptables –A INPUT -s 192.168.1.100 –p tcp --dport22 –j ACCEPT
打开“回环”,以免不必要的麻烦
# iptables –A INPUT -i lo -j ACCEPT
# iptables –A INPUT -i lo -j ACCEPT
OUTPUT配置(即出去)
禁止某些端口出去
#iptables –A OUTPUT –p tcp --sport 1234 –j DROP
FORWARD配置(即转发)
上面FORWARD链的默认已设规则为DROP,
开启转发功能(在做NAT时,必须做)
# iptables -A FORWARD -i eth0 -o eth1 -m state --stateRELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
丢弃坏的TCP包
#iptables -A FORWARD -p TCP !--syn -m state --state NEW -j DROP
禁止访问某个网站或某些IP(例www.baidu.com、192.168.1.0/24)
#iptables –AFORWARD –d www.baidu.com –j DROP
#iptables –AFORWARD –d 192.168.1.0/24 –j DROP
禁止某源ip或某类ip数据包通过(例192.168.1.100,192.168.2.0/24)
#iptables –AFORWARD –s 192.168.1.100 –j DROP
#iptables –AFORWARD -s 192.168.1.2.0/24 –j DROP
禁止192.168.1.0/24的客户机用FTP下载
#iptables –AFORWARD -s 192.168.1.0/24 –p tcp –dport 21 –j DROP
堵:
#iptables –A FORWARD –p tcp –dport xxx –j DROP
#iptables -A FORWARD -p tcp --dport yyy:zzz -j DROP
通:
#iptables -A FORWARD -p tcp --dport xxx -j ACCEPT
#iptables -A FORWARD -p tcp --dport yyy:zzz -j ACCEPT
#iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P FORWARD DROP
Nat表配置
强制所有客户机访问某个网站(www.baidu.com)
#iptables –t nat –A FORWARD –i eth0 –ptcp –dport 80 –j DNAT –to 192.168.1.*
禁止与192.168.1.10的所有连接
# iptables -t nat -A PREROUTING -d 192.168.1.1 -jDROP
禁用FTP(21)端口
# iptables -t nat -A PREROUTING -ptcp --dport 21 -j DROP
发布内网192.168.1.100主机的Web服务,Internet用户通过访问eth1的IP地址即可访问该主机的Web服务
#iptables –t nat –A FORWARD –i eth0 –ptcp –dport 80 –j DNAT –to-destination 192.168.1.100:80
防止外网用内网IP欺骗(禁止私用ip连接)
# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
将内网192.168.0.0/24 的原地址修改为 1.1.1.1用于 NAT
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to1.1.1.1
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to1.1.1.1-1.1.1.10
同上,只不过修改成一个地址池里的 IP
把从 eth0 进来的要访问端口80 的数据包目的地址改为192.168.0.1
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -jDNAT --to 192.168.0.1
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 81 -j DNAT --to 192.168.0.2:80
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.1-192.168.0.10
将源地址是 192.168.0.0/24 的数据包进行地址(伪装动态源地址转换)
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
ADSL 拨号上网
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
按包状态匹配(state)-m state --state 状态
状态:NEW、RELATED、ESTABLISHED、INVALID
NEW: 发出连接请求时,数据包状态为NEW
ESTABLISHED: 连接态,连接建立后
RELATED: 衍生态,与 conntrack 关联(如FTP,21号端口建立连接后用20号或其他端口传送数据,20号端口上传送的数据状态为RELATED)
INVALID: 不能被识别属于哪个连接或没有任何状态,无效数据包
允许所有已经建立连接或与之相关的数据通过
#iptables -AINPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT-m state --state RELATED,ESTABLISHED -jACCEPT
丢弃非法连接
# iptables -A INPUT -mstate --state INVALID -j DROP
# iptables -A OUTPUT -m state --state INVALID -j DROP
# iptables-A FORWARD -m state --state INVALID -j DROP
按来源 MAC 匹配(mac)-m mac --mac-source MAC
阻断来自某 MAC 地址的数据包,通过本机
#iptables -A FORWARD -m --mac-sourcexx:xx:xx:xx:xx:xx -j DROP
按包速率匹配(limit)-m limit --limit 匹配速率 [--burst 缓冲数量]
l用一定速率去匹配数据包
# iptables -A FORWARD -d 192.168.0.1 -m limit--limit 50/s -j ACCEPT
处理IP碎片数量,防止***,允许每秒100个
#iptables -A FORWARD -f -m limit --limit 100/s--limit-burst 100 -j ACCEPT
l设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.
#iptables -A FORWARD -p icmp -m limit --limit 1/s--limit-burst 10 -j ACCEPT
limit 仅仅是用一定的速率去匹配数据包,并非 “限制”
多端口匹配(multiport)
-m multiport <--sports|--dports|--ports> 端口1[,端口2,..,端口n]
一次性匹配多个端口,可以区分源端口,目的端口或不指定端口
# iptables -A INPUT -p tcp -m multiports--ports 21,22,25,80,110 -j ACCEPT
注意:必须与 -p 参数一起使用
将$IP1 通过$IP2:80 访问 $IP3:80
修改目的地址和源地址
1)修改目的地址
#iptables -tnat -A PREROUTING -d $IP2 -p tcp --dport 80 -j DNAT --to-destination $IP3
2)修改源地址
#iptables -tnat -A POSTROUTING -d $IP3 -p tcp --dport 80 -j SNAT --to-source $IP2
3)修改目的地址
#iptables -tnat -A PREROUTING -s $IP3 -p tcp --sport 80 -j DNAT --to-destination $IP1
4)修改源地址
#iptables -tnat -A POSTROUTING -s $IP3 -p tcp --sport 80 -j SNAT --to-source $IP2
保存规则
#iptables save
一些命令
查看链路查看目前的conntrack
#cat/proc/net/ip_conntrack
重启iptables服务
#service iptables restart
启用SYN缓冲
#echo “1” > /proc/sys/net/ipv4/tcp_syncookies
开启ip转发功能(iptable作nat路由器时必须开启)
#echo “1”> /proc/sys/net/ipv4/ip_forward
转载于:https://blog.51cto.com/hiid365/1302335
iptables 学习笔记 (下)相关推荐
- iptables学习笔记:使用NAT实现简单的无线AP
之前使用的是无线路由让手机上网.学习了iptables后,尝试在非openwrt系统的Linux上实现相同功能.本文简单记录一下. 手上有块X86的板子,上面安装了Linux系统.几个月前研究了WIF ...
- Python课程学习笔记 下
笔记目录 Python 学习笔记 上 面向对象和异常 面向对象 基本理论 定义类 根据类实例化对象 属性相关 方法相关 类的补充 属性补充 方法相关补充 描述器 python对象的生命周期 内存管理机 ...
- centos Iptables学习笔记
一.防火墙,iptables和netfilter定义 防火墙:是由软件和硬件设备组合而成的一种隔离技术,它工作于网络或主机的边缘(通信报文的进出口),对于进出本网络或主机的数据包根据事先定义的检测规则 ...
- 摘自ubantuer-Linux防火墙iptables学习笔记(三)iptables命令详解和举例
网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能有所帮助. 网管员的安全意识要比空喊Linux安全重要得多. iptables -F iptables -X iptables ...
- 路由及iptables学习笔记
启动linux路由功能 echo "echo 1 >/proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local 或者 ...
- iptables学习笔记
1.数据包的流向 数据包在主机上有三个流向: a.发往本机:从本机的内核空间流向用户空间(应用程序) b.本机发出:从本机的用户空间流向内核空间,在经过网卡流出 c.转发:从本机的一个网卡进来,从另外 ...
- iptables 学习笔记 二 参数指令
转载http://blog.chinaunix.net/uid-9950859-id-98277.html iptables 指令 语法: iptables [-t table] command [m ...
- iptables学习笔记:端口转发之“外网访问内网”
考虑一种网络拓扑应用情景,一个内部局域网中有多台服务器提供不同的服务,如web服务.FTP服务.ssh.telnet等,通过服务器(或网关.防火墙)连接外部网络,如果外部网络上的主机需要访问这些服务器 ...
- iptables学习笔记:端口转发命令优化
大约一年前,在一个x86板子系统上实现端口转发.现在又出现问题,又要抽空整理整理.虽说是另一同事在另一项目中遇到的,但中秋节前我出差之前老大叫我帮忙协助该同事排查,出差时该同事又call我,出差后老大 ...
最新文章
- FPGA的设计艺术(14)使用函数和任务提升逻辑的可重用性
- 使用ASM进行人脸相关识别的预处理
- 前端那些事之weex
- 《MFC初探》之变量类型
- 组合数学 —— 概述
- Python pip install修改默认下载路径
- python机器学习案例系列教程——GBDT算法、XGBOOST算法
- xstream-0 使用入门
- Sublime Text SFTP 注册码
- 关于VMware的Server版卸载须知
- 尚硅谷-Spring Cloud
- 《全职高手》的全部职业和职业技能(最新版)
- 防火墙结构之屏蔽主机体系结构
- 一个很实用的造数工具—Spawner Data Generator
- R语言笔记:机器学习【K近邻】
- Linux--shel正则表达式
- OEM-ODM-OBM
- 迅雷推阅读产品 市场容不下生力军
- Qt QAxObject操作excel文件过程总结
- nginx日志log
热门文章
- Android Studio 根据屏幕大小缩放图片
- 2020年中国第七次人口普查各省总人口数据可视图(1)
- 常用的嵌入式数据库的比较
- SQL Server将主键索引,改为非聚集索引
- java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100/虚拟机调优
- 计算机语言学国外排名,美国语言学专业排名
- 简要概述服装设计管理
- 白月黑羽python_白月黑羽Python在线教程
- url去重的几种方式
- Mac Terminal (终端) 使用ssh快速登录远程服务器