iptables命令详解
iptables是防火墙,已经集成在内核中(netfilter项目的一部分),所有的Linux发行版都能使用 iptables
. 快捷高效同时也有很好的扩展性.
语法
简短的语法:
1 | iptables (选项) (参数) |
高级命格式:
1 | iptables [-t 表名] {-A|-D|-I|-F|-L|-Z|-P} 规则链名 [规则号] {-i/o 网卡名} -p 协议名 {-s 源IP/源子网} --sport 源端口 {-d 目标IP|目标子网} --dport 目标端口 -j 动作 |
选项:
1 | -t<表>:指定要操纵的表; |
表名包括:
1 | raw:高级功能,如:网址过滤。 |
规则链名包括:
1 | INPUT链:处理输入数据包。 |
动作包括:
1 | accept:接收数据包。 |
在Centos中iptables服务命令:
1 | -- 启动服务 |
在Ubuntu中配置iptables
查看系统是否安装防火墙可以看到:
1 | /# whereis iptables |
如果默认没有安装,请运行此命令安装防火墙 :
1 | apt-get install iptables |
Debian / Ubuntu 上 iptables 是不会保存规则的。需要按如下步骤进行,让网卡关闭保存 iptables 规则,启动时加载 iptables 规则。
开始配置 iptables.rules 文件 (仅供参考):
1 | vim /etc/iptables.rules |
1 | # sample configuration for iptables service |
使防火墙规则生效:
1 | iptables-restore < /etc/iptables.rules |
创建文件,添加以下内容,使防火墙开机启动
1 | vim /etc/network/if-pre-up.d/iptables |
1 | #!/bin/bash |
添加执行权限:
1 | chmod +x /etc/network/if-pre-up.d/iptables |
查看规则是否生效:
1 | iptables -L -n |
常用规则:
1 | #开启80端口 |