预计阅读本页时间:-
6.8 iptables简单脚本:Web主机防护脚本
这一节通过编写一个简单的iptables脚本来熟悉iptables的语法规则。网络拓朴很简单,安装iptables的机器IP地址为:192.168.1.204,另一台机器的IP地址为:192.168.1.200,系统均为CentOS 6.4 x86_64。
普通的Web主机防护脚本比较容易实现,Web主机主要开放两个端口:80和22,其他端口则会关闭,另外由于这里没有涉及多少功能,所以模块的载入也很简单,只涉及了iptables的filter表的INPUT链,所以脚本的初始化也很简单。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
可以按照编写iptables的流程顺序来编写脚本,脚本内容如下:
#/bin/bash
iptables -F
iptables -X
iptables -Z
modprobe ip_tables
modprobe nf_nat
modprobe nf_conntrack
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
这里的#iptables-P INPUT DROP符合我们写iptables的习惯,即开启iptables时默认拒绝一切连接,后面再通过-A参数来开放我们需要提供的端口。
iptables脚本开启后,可以用如下命令查看结果:
iptables –
nv -L
此命令显示结果如下:
Chain INPUT (policy DROP 3364 packets, 204K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
84 5372 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
multiport dports 22,80
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
stateRELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 43 packets, 5532 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
iptables防火墙运行后,将尝试启动此机器的postfix服务,打开服务器端口25,然后通过内网在另外一台机器上telnet,命令如下:
telnet 192.168.1.204 25
命令显示结果如下:
Trying 192.168.1.204...
telnet: connect to address 192.168.1.204: Connection refused
最小化安装的CentOS 6.4 x86_64系统默认是没有Nmap的,可以通过yum命令来进行安装,命令如下:
yum -y install nmap
这时,在另一台机器上开启Nmap扫描,发现samba提供服务的端口已经被iptables屏蔽了,命令如下:
nmap -sT 192.168.1.204
此命令显示结果如下:
Starting Nmap 5.51 ( http://nmap.org ) at 2015-10-27 23:43 EDT
Nmap scan report for Fabric (192.168.1.204)
Host is up (0.00074s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 00:16:3E:05:23:85 (Xensource)
Nmap done: 1 IP address (1 host up) scanned in 4.39 seconds