如何利用iptable系统权限

Posted

tags:

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

参考技术A iptables-tnat-APOSTROUTING-d192.168.1.10-ptcp--dport80-jSNAT--to192.168.1.1#一些人经常忘了打开FORWARD链的相关端口,特此增加iptables-AFORWARD-oeth0-d192.168.1.10-ptcp--dport80-jACCEPTiptables-AFORWARD-ieth0-s192.168.1.10-ptcp--sport80-m--stateESTABLISHED-jACCEPT#ftpmodprobeip_nat_ftp###加载ip_nat_ftp模块(若没有编译进内核),以使ftp能被正确NATmodprobeip_conntrack_ftp###加载ip_conntrack_ftp模块#用DNAT作端口映射iptables-tnat-APREROUTING-da.b.c.d-ptcp--dport21-jDNAT--to192.168.1.11iptables-AFORWARD-oeth0-d192.168.1.11-ptcp--dport21-jACCEPTiptables-AFORWARD-ieth0-s192.168.1.11-ptcp--sport21-m--stateESTABLISHED-jACCEPTiptables-AFORWARD-ieth0-s192.168.1.11-ptcp--sport20-m--stateESTABLISHED,RELATED-jACCEPTiptables-AFORWARD-oeth0-d192.168.1.11-ptcp--dport20-m--stateESTABLISHED-jACCEPTiptables-AFORWARD-oeth0-d192.168.1.11-ptcp--dport1024:-m--stateESTABLISHED,RELATED-jACCEPTiptables-AFORWARD-ieth0-s192.168.1.11-ptcp--sport1024:-m--stateESTABLISHED-jACCEPT#用SNAT作源地址转换(关键),以使回应包能正确返回iptables-tnat-APOSTROUTING-d192.168.1.11-ptcp--dport21-ieth0-jSNAT--to192.168.1.1iptables-tnat-APREROUTING-s192.168.1.0/24-ptcp--dport80-ieth0-jREDIRECT--to3128iptables-tnat-APREROUTING-da.b.c.d-ptcp--dport80-jDNAT--to192.168.1.10iptables-tnat-APOSTROUTING-d192.168.1.10-ptcp--dport80-jSNAT--to192.168.1.1A:问题主要在PREROUTING链中REDIRECT和DNAT的顺序,由于先进行了REDIRECT(重定向),则到第二句DNAT时,端口已变为3128,不匹配第二句的目的端口80,DNAT也就不会执行,不能到达正确的目的地。解决的办法有两个:

使用iptables加固系统安全

我的目的是关闭所有对外服务的端口,只允许ssh服务的22端口接受外面的请求。

首先在我的测试服务器上进入root权限,然后用下面的命令查看iptables

[email protected]:~# iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 105 packets, 10480 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
2        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
3        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
4        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24     state RELATED,ESTABLISHED
2        0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0
3        0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0
4        0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
5        0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT 25 packets, 3380 bytes)
num   pkts bytes target     prot opt in     out     source               destination
-v 是输出详细信息

-n 指的是显示地址和端口号

-L 指显示链里面的规则

--line-number参数用来显示行号,删除的时候很有用

从上面的结果可以看到,策略上允许所有的输入连接。

现在先删除所有的规则,预防万一,不一定使用。

iptables -F

然后策略上关闭所有的进入请求

iptables -P INPUT DROP

再添加ssh端口的访问支持

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
试一下从另外一台机器链接,ssh登录没问题,除了开始要等一会儿。

注意,这样的设置会导致不能从这台机器连接外网,有两种方法解决:

1.如果为了绝对的安全,可以临时手动打开策略,用完后再关闭。

iptables -P INPUT ACCEPT

//DO SOMETHING

iptables -P INPUT DROP

2.添加一个规则,允许已经建立的连接接收进来的数据

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
连接是从本机向外发起的,我们的规则没有限制,连接建立后,就可以从外部网络拉取数据。

根据自己的需要再添加其他的端口吧。

如果想限制有限的机器向服务器发起请求,可以用-s参数,比如:

iptables -A INPUT -p tcp -s 10.112.18.0/0 --dport 27017 -j ACCEPT
仅在10.112.18.0/0网段的机器才能连接上本机的27017端口。

如果仅仅想本机访问,用下面的命令:

iptables -A INPUT -p tcp -s 127.0.0.1 --dport 27017 -j ACCEPT

ubuntu下的详细iptables操作可以参考:

https://help.ubuntu.com/community/IptablesHowTo

如何保存规则呢?两步,

1.安装

apt-get install iptables-persistent

2.保存规则文件

service iptables-persistent save

重启即可。

 

鼎峰胡佳雄
QQ.2881064155
[email protected]

以上是关于如何利用iptable系统权限的主要内容,如果未能解决你的问题,请参考以下文章

SSH权限被拒绝(密码)[关闭]

IPTables系列:如何配置Ubuntu 14.04中的IPTables防火墙

系统安全概述

Linux下使用iptables配置防火墙端口转发

使用iptables加固系统安全

Samba服务权限配置案例