phper-linux-gitbook/iptables.md
2018-05-20 11:55:27 +08:00

54 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### iptables 命令
- 防火墙分为__硬件防火墙__和__软件防火墙__
- 防火墙策略一般分为两种__开放__和__屏蔽__
- iptables 是 `Linux` 上常用的__防火墙软件__
- iptables 一共有__四张表__和__五条链__
```
iptables (选项)[表名] (选项)[链名规则] (选项)[动作]
```
__表__
- Raw 负责连接跟踪
- Mangle 负责包处理
- Nat 负责地址转换
- Filter 负责包过滤
__链名规则__
- PREROUTING 数据包作路由选择之前
- INPUT 接收数据包
- FORWARD 在内核空间中,从一个网络接口进入,到另一个网络接口去。转发过滤
- OUTPUT 输出数据包
- POSTROUTING 数据包作路由选择之后
__动作__
- accept接收数据包。
- DROP丢弃数据包。
- REDIRECT重定向、映射、透明代理。
- SNAT源地址转换。
- DNAT目标地址转换。
- MASQUERADEIP伪装NAT用于ADSL。
- LOG日志记录。
__例子__
```
iptables -I INPUT -s ip -j DROP #屏蔽指定 ip 访问
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT #允许 2222 端口访问
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP #屏蔽 icmp 协议,即关闭 ping 服务
iptables -L -n --line-numbers #查看已添加的规则并以序号显示
iptables -D INPUT 8 #删除序号为 8 的规则
```
补充:`-A` 代表追加,`-I` 代表插入,`-D` 代表删掉,`-R` 代表替换,`-L` 代表列表,`-p` 代表协议,` -s` 代表源地址,必须是 IP `-j` 代表动作,`-d` 代表目标地址,`-i` 网卡进入是数据,`-o` 代表网卡输出的数据。