Linux 防火墙

Linux的防火墙,主要是在网络层对TCP/IP数据包进行过滤和限制。防火墙的包过滤机制(netfilter)由操作系统内核实现的,而防火墙管理工具iptables属于“用户态”,为包过滤机制的实现提供规则。

防火墙总共管理4张表(raw,mangle,nat,filter表),每张表又包含多条链,每条链又包含多条自定义的规则。

下面重点研究net表和filter表中的链:

 

在每张表的每一条链中都可以配置很多的rule,用于决定数据包的过滤规则:

iptables -t 表名 命令选项(增删改查) 链名 规则标号 -p tcp -j 动作(DROP/ACCEPT)

1.在Filter表的INPUT链末尾添加一条防护墙规则

iptables -t filter -A INPUT -p tcp -j ACCEPT   (-A 表示append,末尾添加,所以不需要指定编号)

2.查看Filter表的INPUT链中的所有规则

iptables -L INPUT --line-number

3.清空表中的所有rule:

iptables -t filter -F

删除Filter表的INPUT链中的第6条规则

iptables -D INPUT 6

4.允许转发来自192.168.0.0/24网段的数据:

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT   (-s source 源IP地址)

丢弃从外网接口(eth1)进入防火墙本机的源地址为某个特定子网的数据包:

 iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP    (-i 指定数据包从哪块网卡进入)

5.仅允许Administrator从202.13.0.0/16网段使用SSH(端口号为22)方式远程登录防火墙主机:

iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT  (--dport 数据包的IP的目标端口号)

6.禁止其他主机ping防火墙服务器,但是允许防火墙能ping其他主机:

iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP

iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT

iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT

7.对 Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接

iptables -A INPUT -p icmp -i eth0 -j DROP

8.配置端口转发,将 Linux 服务器的某个服务流量转发到另一端口:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

 

posted @ 2018-01-05 13:32  bili111  阅读(206)  评论(0编辑  收藏  举报