linux 防火墙 iptables 设置 (系统管理员)

来源:互联网 发布:淘宝双11报名时间 编辑:程序博客网 时间:2024/05/17 22:13

简单的介绍iptables的基本设置

# 1:显示您的防火墙的状态

输入以下命令(root):

# iptables – l – n – v

输出:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination

以上输出表示防火墙没有设置任何规则

介绍iptables 命令参数

-L 列出所有规则
-n 显示ip/端口
-v 显示接口名字

# 2:停止/启动/重新启动防火墙

 # service iptables stop

# service iptables start

# service iptables restart

 

如何停止防火墙和删除所有规则:

# iptables -F

# iptables -X

# iptables -t nat -F

# iptables -t nat -X

# iptables -t mangle -F

# iptables -t mangle -X

# iptables -P INPUT ACCEPT

# iptables -P OUTPUT ACCEPT

# iptables -P FORWARD ACCEPT

-F 是删除所有规则

-X  删除链

-t  选择table 删除和刷新规则

-P 设置默认策略(DROP REJECT ACCEPT)

# 3:删除防火墙规则

显示行号以及其他信息

# iptables -L INPUT -n –line-numbers

# iptables -L OUTPUT -n –line-numbers

# iptables -L OUTPUT -n –line-numbers | less

# iptables -L OUTPUT -n –line-numbers | grep 202.54.1.1

根据行号删除指定规则例如

# iptables -D INPUT 4

或者从规则中删除行

# iptables -D INPUT -s 61.152.1.1 -j DROP

-D 选项就是删除指定规则

 

# 4:插入防火墙规则

插入一个或多个规则使用以下语法。首先看看行号,输入:

# iptables – l – n – line-numbers

输出:

Chain INPUT (policy DROP)

num  target     prot opt source               destination

1    DROP       all  –  202.54.1.1           0.0.0.0/0

2    ACCEPT     all  –  0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED

插入规则num 1到 num 2之间,输入:

# iptables -I INPUT 2 -s 202.54.1.2 -j DROP

输入下面命令查看:

# iptables -L INPUT -n –line-numbers

输出:

Chain INPUT (policy DROP) num  target     prot opt source               destination

1    DROP       all  –  202.54.1.1           0.0.0.0/0

2    DROP       all  –  202.54.1.2           0.0.0.0/0

3    ACCEPT     all  –  0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED

# 5:保存防火墙规则

# service iptables save

#或者

#iptables save

在这个例子中,删除一个IP并保存防火墙规则:

# iptables -A INPUT -s 202.5.4.1 -j DROP

# service iptables save

有必要解释下 -A

-A 就是 “–append  -A chain  Append to chain” 添加的意思

如果想把规则备份怎么办呢?

iptables-save 命令可以做到

# iptables-save > /root/my.active.firewall.rules

# cat /root/my.active.firewall.rules

#6: 恢复备份

从一个文件中恢复:

# iptables-restore < /root/my.active.firewall.rules

# service iptables restart

# 7:设置默认的防火墙策略

 # iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARD DROP

# iptables -L -v -n

 

# 8:阻止或允许ICMP Ping请求

# iptables -A INPUT -p icmp –icmp-type echo-request -j DROP

# iptables -A INPUT -i eth1 -p icmp –icmp-type echo-request -j DROP

指定ip 不能ping

# iptables -A INPUT -s 192.168.1.0/24 -p icmp –icmp-type echo-request -j ACCEPT

以下只接受有限的类型的ICMP请求:

 iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT

iptables -A INPUT -p icmp –icmp-type destination-unreachable -j ACCEPT

iptables -A INPUT -p icmp –icmp-type time-exceeded -j ACCEPT

## ** all our server to respond to pings ** ##

iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT

 

# 9:开放端口

使用以下的语法来打开一个端口范围:

iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8000:8080 -j ACCEPT

8000—>8080 之间的端口可以访问

#10:开放范围的IP地址

使用以下的语法来打开一个范围的IP地址:

 iptables -A INPUT -p tcp –destination-port 80 -m iprange –src-range 192.168.1.100-192.168.1.200 -j ACCEPT

192.168.1.100-192.168.1.200 范围的主机可以访问服务器

#11:开放常见的端口

 ## 开放 ssh 22端口##
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 22 -j ACCEPT

##打印服务port 631 for 局域网用户##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp –dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp –dport 631 -j ACCEPT

## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p udp –dport 123 -j ACCEPT

## 开放 25 (smtp) 端口 ##
iptables -A INPUT -m state –state NEW -p tcp –dport 25 -j ACCEPT

# 开放dns server端口##

iptables -A INPUT -m state –state NEW -p udp –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT

##开放 http/https (Apache) server 端口##
iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT

## 开放110 (pop3) 端口 ##
iptables -A INPUT -m state –state NEW -p tcp –dport 110 -j ACCEPT

## 开放143 (imap) 端口##
iptables -A INPUT -m state –state NEW -p tcp –dport 143 -j ACCEPT

##开放Samba 文件服务器端口 ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 445 -j ACCEPT

## 开放代理server 端口 ##

iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 3128 -j ACCEPT

## 开放mysql 3306端口 ##

iptables -I INPUT -p tcp –dport 3306 -j ACCEPT

 #12:阻止一个ip

# iptables -A INPUT -s 1.2.3.4 -j DROP

# iptables -A INPUT -s 192.168.0.0/24 -j DROP

 


原创粉丝点击