ngingx访问限制和iptables简单使用

| 2014年10月14日

为了方便安装了一个phpmyadmin,结果公司扫描了之后说要做一些安全限制,主要还是用到nginx的访问限制和iptables,这里稍微做一下记录

nginx的限制较为简单,在server中添加对phpmyadmin的限制即可

location ~* /phpmyadmin/ {

allow 192.168.3.0/24;

deny all;
}

主要还是记录一下iptables的简单使用:

1、查看

iptables -vL –line-number

-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到

简单查看也可以使用iptables -L

[root@Helight]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 301 packets, 1767K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      140 11760 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
2        0     0 ACCEPT     tcp  --  eth1   *       192.168.3.0/24        0.0.0.0/0          multiport dports 22
3        0     0 ACCEPT     tcp  --  eth1   *       192.168.1.0/24       0.0.0.0/0           multiport dports 22
4      532 28698 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
5       83 42547 ACCEPT     tcp  --  eth1   *       192.168.1.160         0.0.0.0/0           tcp spt:3306

...
[root@Helight]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  192.168.3.0/24        anywhere            multiport dports 22
ACCEPT     tcp  --  192.168.1.0/24       anywhere            multiport dports 22
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
ACCEPT     tcp  --  192.168.1.160         anywhere            tcp spt:mysql

2、添加

添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。

在INPUT链上添加一条规则到尾部:

[root@Helight]# iptables -A INPUT -s 192.168.3.5 -j DROP

再在OUTPUT链上插入一条规则到第三行,将行数直接写到规则链的后面:

[root@Helight]# iptables -I OUTPUT 3 -s 192.168.3.3 -j DROP

3、删除

删除用-D参数

删除之前添加的规则(iptables -A INPUT -s 192.168.3.5 -j DROP):

[root@Helight]# iptables -D INPUT -s 192.168.3.5 -j DROP

有时候要删除的规则太长,删除时要写一大串,既浪费时间又容易写错,这时我们可以先使用–line-number找出该条规则的行号,再通过行号删除规则。

删除INPUT链上的第4行规则

sh[root@Helight]# iptables -D INPUT 4

4、修改

修改使用-R参数

将INPUT链上的第4条规则改为ACCEPT:

sh[root@test ~]# iptables -R INPUT 4 -j ACCEPT

sh常用的一些规则

1、多端口登录

iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 -m multiport --dport 22,23 -j ACCEPT

iptables -A OUTPUT -o eth1 -p tcp -d 192.168.1.0/24 -m multiport --sport 22,23 -j ACCEPT

2、允许eth1网口上对webserver 端口的TCP访问(如80、443端口)。

iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -o eth1 -p tcp --sport 80 -j ACCEPT

3、允许phpmyadmin对其DB的访问(如DB的ip是10.10.10.10,DB端口是3306)。

iptables -A INPUT -i eth1 -p tcp -s 192.168.1.160 --sport 3306 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -d 192.168.1.160 --dport 3306 -j ACCEPT

4、允许ping

iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

5、禁止来自eth1网口上的其他访问。

iptables -A INPUT -i eth1 -j DROP

iptables -A OUTPUT -o eth1 -j DROP
看完本文有收获?请分享给更多人

关注「黑光技术」,关注大数据+微服务