iptables简易使用教程
2024-09-24 23:36:30
iptables是linux里比较常用的防火墙,也是centos7.0之前的版本默认自带的防火墙。
配置防火墙需特别注意一件事情:如果服务器在异地机房,需要谨慎配置端口,以免造成新配置生效后无法远程登录的惨状。
以下简述一下iptables常用的操作和设置方法。
1.查看iptables运行状态
# 不用操作系统下略有不同
service iptables status
或
systemctl | grep "iptables"
2.查看iptables当前使用的规则
iptables --list
3.iptables默认规则
iptables可以分别对 流入 流出 转发 三种数据包进行端口级的默认规则(接受 or 拒绝)
打开iptables配置文件
vim /etc/sysconfig/iptables
找到 *filter 起始的行
样例:
# 丢弃来自所有端口 流入 的数据包
:INPUT DROP [:]
# 接受来自 2至65535 端口 流出 的数据包
:OUTPUT ACCEPT[:]
# 丢弃来自 5至2048端口 转发 的数据包
:FORWARD DROP [:]
接下来就是一般常规的防火墙规则了
一般常用的参数如下:
# -A 添加一条防火墙规则,后面一般接上 INPUT OUTPUT FORWARD
# -i 指定流量进入的网卡,后面接上网卡名称,如:lo eth0 eth1
# -o 指定流量出口的网卡,后面接上网卡名称,如:lo eth0 eth1
# -j 指定规则的行为,后面一般接上 DROP ACCEPT DENY
# -p 指定应用的协议,如 tcp udp icmp http
# --dport 进入数据包的目标端口,后面接上端口名称
# --sport 出口数据包的源端口,后面接上端口名称
# --state 连接的状态,后面一般接上 NEW ESTABLISHED RELATED
# -s 源ip地址,后面接上发起数据的ip地址
# -d 目标ip地址,后面接上数据包的目标ip地址
常用规则示例:
# 允许来自本机(127.0.0.1)的流入流量 流出流量
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # 允许icmp协议的(例如ping,traceroute)数据包,类似ping,不但需要数据流出,也需要数据流入
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
# 另一种写法
-A INPUT -p icmp --state NEW -j ACCEPT # 允许80端口的所有流量
-A INPUT -p tcp --dport -j ACCEPT
-A OUTPUT -p tcp --sport -j ACCEPT # 拒绝3306端口的所有流量
-A INPUT -p tcp --dport -j DROP
-A OUTPUT -p tcp --sport -j DROP # 只允许来自192.168.1.150的ssh(22端口)连接
-A INPUT -p tcp --dport -s 192.168.1.150 -j ACCEPT
-A OUTPUT -p tcp --sport -d 192.168.1.150 -j ACCEPT
4.保存iptables规则
很多人设置完iptables后,没有保存,或者修改完配置文件后直接执行iptables-save其实都是错的,这样会导致你之前的设置丢失,直接使用iptables-save只适用于通过 iptables -A INPUT -p tcp --dport 3306 -j DROP命令行方式添加的规则进行保存。
简单地说,iptables-save是把当前内存中的iptables规则写入至 /etc/sysconfig/iptables 文件而已。
正确方法是:
先重启iptables
# 不同操作系统有不同
service iptables restart
# 或
systemctl restart iptables
再执行保存
iptables-save
或从不执行iptables-save,只修改配置文件,重启iptables
最新文章
- 第二轮冲刺-Runner站立会议07
- Windows安装Scrapy遇坑解决办
- js php json
- Java 容器:Collection 初探之 List
- win8.1右键新建菜单添加新建php文件
- Flex 自动获取焦点 监听全局键盘事件
- SVN记住用户名和密码后如何修改
- 每天一水SGU347
- 平衡搜索树(三) B-Tree
- 【uva10917】Walk Through the Forest (最短路)
- JS数量输入控件
- iOS APP中Versions和build版本区别
- xBIM 应用与学习 (二)
- 史上最全的Spring-Boot-Starter开发手册
- SQLServer2016 之后增加了索引列数的限制 从 16个列 增加到了 32个列
- goto语句
- 纯css3实现的switch开关按钮
- HTML(一)
- 【noip模拟赛4】汽艇 模拟
- Shiro源码分析
热门文章
- 【CDockablePane】关于CDockablePane
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---54
- SaltStack 模块学习之拷贝master服务器上文件和目录到minion服务器
- Day 30 process&;thread_2
- java通过反射获取私有的构造方法,及反射擦除泛型数据类型约束
- Codeforces Gym101473 E.Dangerous Dive (2013-2014 ACM-ICPC Brazil Subregional Programming Contest)
- BZOJ 3881 COCI 2015 Divljak
- https的实现原理
- OpenSSL使用2(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12概念说明)(转)
- centos7.5更换docker-ce镜像源