iptable 基础

iptables

清理防火墙:

iptables -F
iptables -X
iptables -Z

iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。

永久关闭iptables

chkconfig iptables off

删除规则

 -- 查找所有规则
iptables -L INPUT --line-numbers
-- 删除一条规则
iptables -D INPUT 11 (注意,这个11x是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)

规则链名包括:

INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT),路由前。
POSTOUTING链:用于源地址转换(SNAT),路由后。

指令和相关配置文件

启动指令:service iptables start
重启指令:service iptables restart
关闭指令:service iptables stop
然后是相关配置:/etc/sysconfig/iptables
如何操作该配置呢?
vim /etc/sysconfig/iptables

指令用法

-A:指定链名
-p:指定协议类型
-d:指定目标地址
–dport:指定目标端口(destination port 目的端口)
–sport:指定源端口(source port 源端口)
-j:指定动作类型

全局DROP规则

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
这个步骤是把所有不符合自己配置的规则ACCEPT的连接全部DROP掉,执行完以后如果咱SSH还没掉,那么谢天谢地,安全了,重启下iptables后继续下面的配置!

可能有时候需要删除规则,使用指令完成的命令删除规则的方法

语法是: iptables -D chain rulenum [options]
其中: chain 是链的意思,就是INPUT FORWARD 之类的
rulenum 是规则的编号。从1 开始。可以使用 –line-numbers 列出规则的编号
所以,例如上面要删除一个INPUT链的规则的话可以这样:iptables -D INPUT 3
意思是删除第3条规则。

对某IP进行单独开放端口可以如下配置

如果我需要对内网某机器单独开放mysql端口,应该如下配置:
iptables -A INPUT -s 192.168.2.6 -p tcp -m tcp –dport 3306 -j ACCEPT
iptables -A OUTPUT -s 192.168.2.6 -p tcp -m tcp –sport 3306 -j ACCEPT

下面咱就不细说了,具体就是看自己服务器要开放哪些端口或者是要访问哪些端口来做具体的配置,下面是我自己的机器的配置:
/etc/sysconfig/iptables文件配置如下:
# Generated by iptables-save v1.4.7 on Fri Mar 2 19:59:43 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [8:496]
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#ping使用的端口
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#允许服务器自己的SSH(对外部请求来说服务器是目标所以使用–dport)
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
#80端口不用说了吧,服务器网站访问端口
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 11211 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 11212 -j ACCEPT
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
#53端口是DNS相关,TCP和UDP都要配置
-A INPUT -p tcp -m tcp –dport 53 -j ACCEPT
-A INPUT -p udp -m udp –dport 53 -j ACCEPT
#允许服务器SSH到其他机器(使用外部端口就使用–dport)
-A OUTPUT -p tcp -m tcp –dport 22 -j ACCEPT
#允许服务器自己的SSH(自已为源输出就使用–sport)
-A OUTPUT -p tcp -m tcp –sport 22 -j ACCEPT
#访问外部网站80端口(使用外部端口就使用–dport)
-A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
#如果服务器需要访问外部网站,那么OUTPUT也需要配置53端口(使用外部端口就使用–dport)
-A OUTPUT -p tcp -m tcp –dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp –dport 53 -j ACCEPT
#如果有访问外部邮箱,那么打开邮箱相关端口(使用外部端口就使用–dport)
-A OUTPUT -p tcp -m tcp –dport 465 -j ACCEPT
-A OUTPUT -p tcp -m tcp –dport 25 -j ACCEPT
-A OUTPUT -p tcp -m tcp –dport 110 -j ACCEPT
#服务器网站访问端口(自已为源输出就使用–sport)
-A OUTPUT -p tcp -m tcp –sport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp –sport 3306 -j ACCEPT
-A OUTPUT -p tcp -m tcp –sport 11211 -j ACCEPT
-A OUTPUT -p tcp -m tcp –sport 11212 -j ACCEPT
COMMIT
# Completed on Fri Mar 2 19:59:43 2012
======================
说一下上面的 –line-numbers 选项,如下面的命令:
iptables -L INPUT –line-numbers 列出INPUT 链所有的规则
num target prot opt source destination
1 REJECT tcp — anywhere anywhere tcp dpt:microsoft-ds reject-with icmp-port-unreachable
2 REJECT tcp — anywhere anywhere tcp dpt:135 reject-with icmp-port-unreachable
3 REJECT tcp — anywhere anywhere tcp dpt:netbios-ssn reject-with icmp-port-unreachable
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值