iptables

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables相关的知识,希望对你有一定的参考价值。

防火墙 RHEL6 操作系统防火墙服务iptables
iptables 的组成:内核态:集成在内核里的功能
用户态:安装服务的软件包后提供的管理命令

[[email protected] ~]# rpm -q iptables
iptables-1.4.7-16.el6.x86_64

]# service iptables start|status|stop

]# chkconfig iptables on

]# which iptables
/sbin/iptables
[[email protected] ~]# man iptables

iptables 命令的功能 : 查看/修改/删除/添加规则

iptables 命令格式:
]#iptables -t 表名 管理选项 链名 匹配规则 -j 处理动作

iptables服务的功能:
功能 表
ip包过滤 filter
网络地址转换 nat
对ip包打标记 mangle
做状态跟踪 raw

ip包传输的路径(方向)(以防护墙主机位参照物)
方向 链
进入防火墙主机的 INPUT
从防火墙本机出去 OUTPUT
经过防火墙主机的 FORWARD
路由前 PREROUTING
路由后 POSTROUTING

管理选项 -L -F -D -A -I -P

查看指定表中有哪些链?
iptables -t 表 -L

]# iptables -t filter -L
]# iptables -t nat -L
]# iptables -t mangle -L
]# iptables -t raw -L

查看表中指定链的所有规则并给规则加编号
]# iptables -t filter -nL INPUT --line-numbers

查看链中规则是显示行号
]# iptables -t filter -nL --line-numbers

删除表中指定链的某1条规则
]# iptables -t filter -D INPUT 2
]# iptables -t filter -nL --line-numbers

删除表中指定链的所有规则
]# iptables -t filter -F INPUT

删除表中所有链的规则
]# iptables -t filter -F

让设置永久生效
]# service iptables save
]# cat /etc/sysconfig/iptables //保存到的文件

处理动作
ACCEPT 允许
DROP 丢弃
REJECT 拒绝

修改链的默认规则 (ACCEPT 或丢弃 DROP)
]#iptables -t filter -P INPUT DROP
]#iptables -t filter -L INPUT

匹配条件选项
-p 协议 udp tcp

--sport 源端口号
--dport 目标端口
--source / -s 源地址
--destination / -d 目标地址

主机型防火墙 (自己保护自己)
]#iptables -t filter -P INPUT DROP

]#iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

]#iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

]#iptables -t filter -Ln INPUT --line-numbers
]#service iptables save

]# iptables -t filter -I INPUT 1 --source 192.168.4.104 -p tcp --dport 22 -j DROP

]#iptables -t filter -Ln INPUT --line-numbers

]# iptables -t filter -I INPUT 1 --source 192.168.4.254 -p tcp --dport 22 -j ACCEPT

]#iptables -t filter -Ln INPUT --line-numbers
]#iptables -t filter -D INPUT 2
]#iptables -t filter -Ln INPUT --line-numbers
]#iptables -t filter -D INPUT 2
]#service iptables save

]#iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

在108主机上设置如下防火墙规则。并在客户端测试。
允许所有主机访问本机的网站服务,只允许从254主机连接本机的ssh服务,可以ping其他主机,其他主机不可以ping 自己。INPUT链默认策略是DROP.

108:
]#service iptables start ; chkconfig iptables on
]#iptables -t filter -nL --line-numbers
]#iptables -t filter -F
]#service iptables save

]#iptables -t filter -P INPUT DROP

]#iptables -t filter -A INPUT -s 192.168.4.254 -p tcp --dport 22 -j ACCEPT

]#iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

]#iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

]#service iptables save

]#iptables -t filter -nL --line-numbers
++++++++++++++++++++++++++++++++++++++++
网络型防火墙 (架设在2个网络之间的服务器,提供防火墙服务。保护内网网络)

iptables 103:
#eth0 192.168.4.103
#eth1 192.168.2.103
#sed -i ‘7s/0/1/‘ /etc/sysctl.conf
#sysctl -p
]#iptables -t filter -P INPUT ACCEPT
]#iptables -F
]#service iptables save

host250 :
ifdown eth0
eth1 192.168.2.250
route add default gw 192.168.2.103

host104
eth0 192.168.4.104
route add default gw 192.168.4.103

host250 : ping -c 2 192.168.4.104
host104 : ping -c 2 192.168.2.250

103 编写防火墙规则
]#iptables -t filter -P FORWARD DROP

]#iptables -t filter -A FORWARD -p tcp --dport 22 -j ACCEPT
]#iptables -t filter -A FORWARD -p tcp --sport 22 -j ACCEPT

]#iptables -t filter -A FORWARD -p tcp --dport 80 -j ACCEPT
]#iptables -t filter -A FORWARD -p tcp --sport 80 -j ACCEPT

host105
eth0 192.168.4.105
route add default gw 192.168.4.103
yum -y install elinks
elinks --dump http://192.168.2.250/test.html

iptables 103 : 不允许105主机访问 250主机上的web服务
]# iptables -nL FORWARD --line-numbers

]# iptables -t filter -I FORWARD 3 -s 192.168.4.105 -p tcp --dport 80 -j DROP

+++++++++++++++++++++++++++++++++++++
]#iptables -F
iptables -t filter -P FORWARD ACCEPT
service iptables save

nat表 (转换源地址 转换目标地址)

转换源地址:让内网所有主机共享一个公网ip地址上网

host250 #yum -y install httpd

echo web250 > /var/www/html/test.html

           #service  httpd  start  ;chkconfig  httpd  on
           tail   -1   /etc/httpd/log/access.log

iptables103
//允许192.168.4.0/24网段的所有主机上网。(思考:但 不允许主机192.168.4.105上网)

#iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -p tcp --dport 80 -o eth1 -j SNAT --to-source 192.168.2.103

]# iptables -t nat -nL POSTROUTING --line-numbers

]#service iptables save

host104/105
#route add default gw 192.168.4.103

elinks --dump http://192.168.2.250/test.html

+++++++++++++++++++++++++++++++++++++++++++
转换目标地址,发布内网服务器。

104/105 是内网网站服务器

iptables103]#
]# service httpd stop
]# chkconfig httpd off

//编写转换80端口的请求规则
]# iptables -t nat -A PREROUTING
-i eth1 -d 192.168.2.103 -p tcp --dport 80
-j DNAT --to-destination 192.168.4.104

]# iptables -t nat -nL PREROUTING --line-numbers

]#service iptables save
思考:编写转换22222端口的请求给192.168.4.104 主机的规则

]#iptables -t nat -A PREROUTING -i eth1 -d 192.168.2.103 -p tcp --dport 22222 -j DNAT --to-destination 192.168.4.104

]#service iptables save

host250]# elinks --dump http://192.168.2.103/test.html

host250]# ssh -p 22222 192.168.2.103 //可以连接到104主机

以上是关于iptables的主要内容,如果未能解决你的问题,请参考以下文章

CentOS中iptables防火墙 开放80端口方法

Iptables 网络安全

iptables防火墙

iptables基础知识

Linux中iptables防火墙指定端口范围

iptables防火墙