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<网络接口>:指定数据包要离开本机所使用的网络接口。
一般用不到吧 2333
一般情况是用不到, 但是在配置新服务器或安装新服务时必不可少哦.
看起来非常厉害的样子,值得学习的地方很多啊,会继续关注博主的
谢谢,相互学习 ^_^
linux 确实比较有点麻烦的
熟能生巧,熟悉就得心应手了