一、iptables入门
当今黑客入侵电脑有很多种途径,其中通过端口进行入侵比较普遍。特别是作为服务器的计算机,关闭不必要的端口,这是最简单的也是最常用的防御黑入侵的做法。用Linux作为服务器操作系统,使用Linux自带的iptables可以实现这功能。
1、查看一下iptables策略的组成
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
得知, iptables 策略由3个部分组成:INPUT, FORWARD 和 OUTPUT
a.INPUT 网络数据包流向服务器
b.OUTPUT 网络数据包从服务器流出
c.FORWARD 网络数据包经服务器路由
2、关闭策略
关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT DROP
用命令 iptables -L -n 查看,得到:
[root@localhost ~]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD(policy DROP)
target prot opt source destination
Chain OUTPUT(policy DROP)
target prot opt source destination
这样的设置只是临时的, 重启服务器还是会恢复原来没有设置的状态(policy ACCEPT),要想重启后仍然生效需要
使用service iptables save 进行保存,会提示保存信息到 /etc/sysconfig/iptables,所以我们可以打开文件查看 vi /etc/sysconfig/iptables
DROP 可以这样理解:
当INPUT =DROP,表示防火墙遇到数据就不接受它,不让它进入服务器
当OUTPUT=DROP,表示防火墙阻止从服务器流出的数据
当FORWARD=DROP,表示服务器不允许经服务器路由
3、开启INPUT策略
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
二、只开启某个端口
在配置服务器时候,通常是只打开某个特定的端口(服务需要的端口),关闭不需要的端口来提高服务器的安全性。
下面就用端口22来举个例子如何实现只允许端口22的访问,其他端口全部都不能访问的(端口22是用ssh软件访问Linux的端口)。
a、查看当前服务器端口开启情况:
通过netstat -tnl 查看当前服务器打开了哪些端口
[root@localhost ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:673 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:631 :::* LISTEN
开启的端口挺多的,其中22(ssh)端口也是开启的
b、查看防火墙设置
通过命令:iptables -L -n 查看,得知防火墙 INPUT FORWARD OUTPUT 三个部分全部是 ACCEPT 的,也就是没有做任何限制
通过 SSH软件来链接服务器,可以成功链接上去。
c、关闭所有的端口
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT DROP
稍等会发现SSH链接断开了,说明已经关闭了端口。
d、只打开22端口
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -L -n 查看是否添加上去,
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
现在Linux服务器只打开了22端口,用SSH测试,可以链接上去。
通过命令:service iptables save 进行保存
备注:
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
-A :添加一条 INPUT 的规则
-p :指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS
--dport :目标端口 当数据从外部进入服务器为目标端口
反之 数据从服务器出去 则为数据源端口 使用 --sport
-j :指定是 ACCEPT 接收 或者 DROP 不接收
转自:http://blog.csdn.net/test_me/article/details/5572195
相关推荐
1. 打开ip包转发功能 echo 1 > /proc/sys/...2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则: iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 202.96.134.130:80
rc.firewall是iptables防火墙配置的一个实例,它涉及一系列参数配置、模块加载、/proc设置、规则位置优化、缺省策略设置和自定义链设置。rc.firewall的实际应用包括INPUT链、FORWARD链、OUTPUT链、PREROUTING链和...
查看iptables的规则链和规则可以使用`iptables`命令配合不同的参数。例如,`-t`参数指定表名,如`nat`或`filter`(默认表)。`-L`参数用于列出指定表的所有链或某个链的规则,`-n`用于显示IP地址而不是域名,提高...
### iptables 1.1中文指南知识点概览 #### 一、iptables简介及用途 - **iptables** 是一个用于管理 Linux 内核中 IP 包过滤规则的工具。 - 主要功能包括设置网络规则,控制数据包的流向,以及进行基本的网络安全...
New netfilter match 描述了 iptables -m 中一些常用的模块功能,参数,配置实例,例如: ah-esp condition conntrack fuzzy iplimit ipv4options length nth pkttype u32 等,基本全部模块。