Linux 网络管理之iptables

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter
netfilter才是防火墙真正的安全框架(framework)netfilter位于内核空间。
iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

语法:

iptables(选项)(参数)

开放指定的端口

iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 443 -j ACCEPT    #允许访问443端口
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT    #允许访问3306端口

屏蔽IP

iptables -I INPUT -s 123.45.6.7 -j DROP    #屏蔽单个IP的命令

清除已有iptables规则

iptables -F
iptables -X
iptables -Z

删除已添加的iptables规则

将所有iptables以序号标记显示,执行:

iptables -L -n --line-numbers
# 会看到
Chain INPUT (policy DROP)
num  target     prot opt source       destination         
1    ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0           
2    ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0    state RELATED,ESTABLISHED
3    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    state NEW tcp dpt:22
4    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    state NEW tcp dpt:80
5    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    state NEW tcp dpt:21
6    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    state NEW tcp dpts:20000:30000
7    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    state NEW tcp dpt:443
8    ACCEPT     icmp --  0.0.0.0/0    0.0.0.0/0    icmptype 8
9    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    tcp dpt:22

Chain FORWARD (policy ACCEPT)
num  target     prot opt source       destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source       destination         
1    ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0    tcp spt:22

Chain syn-flood (0 references)
num  target     prot opt source       destination

比如要删除INPUT里序号为5的规则,执行:

iptables -D INPUT 5

保存规则

iptables-save

保存规则后记得把防火墙重起一下,才能起作用哦!

service iptables restart

详细选项

-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。

详情请查看

Linuxiptables

我来吐槽

*

*

已有 6 条评论

  1. 夏目贵志

    一般用不到吧 2333

    1. Hoe

      一般情况是用不到, 但是在配置新服务器或安装新服务时必不可少哦.

  2. 找果树

    看起来非常厉害的样子,值得学习的地方很多啊,会继续关注博主的

    1. Hoe

      谢谢,相互学习 ^_^

  3. 百度下拉代理

    linux 确实比较有点麻烦的

    1. Hoe

      熟能生巧,熟悉就得心应手了