回忆之城
生命在于折腾
posts - 575,comments - 9,trackbacks - 0
在上次视频中,我简单的介绍了iptables的工作流程,还有如何
关闭所有端口和开放所有端口。
但是我们在配置服务器时候往往是只打开某个端口,其他的端口全部
关闭来提高我们服务器的安全性。
下面我就用端口22来举个例子如何实现,只允许端口22的访问 其他端口全部
都不能访问的, 端口22就是我们通过ssh来进行远程访问Linux默认端口。
看我现在服务器的情况:
通过命令 netstat -tnl 可以查看当前服务器打开了哪些端口
[root@localhost ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:10000               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 :::80                       :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::443                      :::*                        LISTEN
我这里的端口挺多的,比较常用80(web服务) 22(ssh) 3306(mysql数据库)
再看看我的防火墙设置如何,通过命令:iptables -L -n 可以查看
看到我的防火墙 INPUT FORWARD OUTPUT 三个部分全部是 ACCEPT 的,也就是没有做任何限制
下面我通过 putty.exe 这个软件来链接我的服务器,这个软件通过端口22来访问我们的Linux.
成功链接上去。这是理所当然成功的,以为Linux打开了22端口,而且Linux防火墙iptables 没有
做任何限制。
下面我们关闭所有的端口
]# iptables -P INPUT DROP
]# iptables -P FORWARD DROP
]# iptables -P OUTPUT DROP
再查看一下 iptables -L -n
好成功关闭了所有端口。
再使用 putty.exe 链接上去,验证一下是否真的关闭了。
一直等待状态。好链接失败 Connection timed out 超时,链接不上。
说明已经关闭了端口。
下面我只打开22端口,看我是如何操作的,就是下面2个语句
]# 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端口,用putty.exe测试一下是否可以链接上去。
可以链接上去了,说明没有问题。
最后别忘记了保存 对防火墙的设置
通过命令:service iptables save 进行保存
]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
针对这2条命令进行一些讲解吧
-A 参数就看成是添加一条 INPUT 的规则
-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS
到时我们要配置DNS用到53端口 大家就会发现使用udp协议的
而 --dport 就是目标端口 当数据从外部进入服务器为目标端口
反之 数据从服务器出去 则为数据源端口 使用 --sport
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收
好,视频就到这里, iptables 还有很多参数,还有对数据包的有效性验证 等等,很强的
功能会逐步学习,我们先从简单入手 慢慢建立强大的防火墙。谢谢
posted on 2013-11-25 17:11 回忆之城 阅读(569) 评论(0)  编辑 收藏 引用 所属分类: unix/linux
只有注册用户登录后才能发表评论。