
补充回答:
声明:本人主要使用的是debian系统,对于红帽不是非常熟悉,所以在配置文件的路径及命名上和你的实际情况会有出入,请酌情更改!!
首先,你需要更改/etc/sysctl.conf这个文件,找到如下行:
net.ipv4.ip_forward = 0
把0改成1打开内核转发,然后用source命令重读该配置文件。
然后你需要用以下命令打开forward链上所有的转发,这里只给你简单的实现forward,并没实现保护LAN的防火墙功能,请参阅参考资料获得iptables的详细配置方法!
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
service iptables save
service iptables restart
附注:
man iptables
命令格式:
# iptables [-t 表名] 命令 [链] [规则号] [条件] [规则]
说明:⑴ -t 表名指定规则所在的表。表名可以是 filter ,nat ,mangle (小写)
⑵ 命令 (iptables的子命令)
-A在指定链中添加规则
-D在指定链中删除指定规则
-R修改指定链中指定规则
-I 在指定规则前插入规则
-L显示链中的规则
-N建立用户链
-F清空链中的规则
-X删除用户自定义链
-P 设置链的默认规则
-C 用具体的规则链来检查在规则中的数据包
-h显示帮助
⑶ 条件
–i 接口名指定接收数据包接口
-o 接口名指定发送数据包接口
-p [!]协议名 指定匹配的协议 (tcp , udp , icmp , all )
-s [!]ip地址 [/mask]指定匹配的源地址
--sport [!]端口号 [:端口号] 指定匹配的源端口或范围
-d [!]ip地址 [/mask]指定匹配的目标地址
--dport [!]端口号 [:端口号] 指定匹配的目标端口或范围
--icmp –type [!]类型号/类型名指定icmp包的类型
注:8 表示request 0 表示relay (应答)
-m port --multiport 指定多个匹配端口
limit --limit 指定传输速度
mac --mac-source 指定匹配MAC地址
sate --state NEW,ESTABLISHED,RELATED,INVALID 指定包的状态
注:以上选项用于定义扩展规则
-j 规则 指定规则的处理方法
⑷ 规则
ACCEPT :接受匹配条件的数据包(应用于I NPUT ,OUTPUT ,FORWARD )
DROP :丢弃匹配的数据包(应用于INPUT ,OUTPUT ,FORWARD )
REJECT:丢弃匹配的数据包且返回确认的数据包
MASQUERADE :伪装数据包的源地址(应用于POSTROUTING且外网地址
为动态地址,作用于NAT )
REDIRECT :包重定向 (作用于NAT表中PREROUTING ,OUTPUT,使用要加上--to-port 端口号 )
TOS: 设置数据包的TOS字段(应用于MANGLE,要加上--set-tos 值)
SNAT : 伪装数据包的源地址(应用于NAT表中POSTROUTING链,要加上--to-source ip地址 [ip地址] )
DNAT : 伪装数据包的目标地址(应用于NAT表中PREROUTING链,要加上--to-destination ip地址 )
LOG:使用syslog记录的日志
RETURN:直接跳出当前规则链
3. iptables子命令的使用实例
⑴ 添加规则
#iptables –A INPUT –p icmp –-icmp-type 8 –s 192.168.0.3 –j DROP
(拒绝192.168.0.3主机发送icmp请求)
# iptables –A INPUT –p icmp –-icmp-type 8 –s 192.168.0.0/24 –j DROP
(拒绝192.168.0.0网段ping 防火墙主机,但允许防火墙主机ping 其他主机)
# iptables –A OUTPUT –p icmp –-icmp-type 0 –d 192.168.0.0/24 –j DROP
(拒绝防火墙主机向192.168.0.0网段发送icmp应答,等同于上一条指令)
# iptables –A FORWARD –d -j DROP
(拒绝转发数据包到,前提是必须被解析)
# iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j SNAT –-to-source 211.162.11.1
(NAT,伪装内网192.168.0.0网段的的主机地址为外网211.162.11.1,这个公有地址,使内网通过NAT上网,前提是启用了路由转发)
# iptables –t nat –A PREROUTING –p tcp --dport 80 –d 211.162.11.1 –j DNAT -–to-destination 192.168.0.5
(把internet上通过80端口访问211.168.11.1的请求伪装到内网192.168.0.5这台WEB服务器,即在iptables中发布WEB服务器,前提是启用路由转发)
# iptables –A FORWARD –s 192.168.0.4 –m mac --mac-source 00:E0:4C:45:3A:38 –j ACCEPT
(保留IP地址,绑定 IP地址与MAC地址)
⑵删除规则
# iptables –D INPUT 3
# iptables –t nat –D OUTPUT –d 192.168.0.3 –j ACCEPT
⑶插入规则
# iptables –I FORWARD 3 –s 192.168.0.3 –j DROP
# iptables –t nat –I POSTROUTING 2 –s 192.168.0.0/24 –j DROP
⑷修改规则
# iptables –R INPUT 1 –s 192.168.0.2 –j DROP
⑸显示规则
# iptables –L (默认表中的所有规则)
# iptables –t nat –L POSTROUTING
⑹清空规则
# iptables –F
# iptables –t nat –F PREROUTING
⑺设置默认规则
# iptables –P INPUT ACCEPT
# iptables –t nat –P OUTPUT DROP
(注:默认规则可以设置为拒绝所有数据包通过,然后通过规则使允许的数据包通过,这种防火墙称为堡垒防火墙,它安全级别高,但不容易实现;也可以把默认规则设置为允许所有数据包通过,即鱼网防火墙,它的安全级别低,实用性较差。)
⑻建立自定义链
# iptables –N wangkai
⑼删除自定义链
# iptables –X wangkai
⑽应用自定义链
# iptables –A wangkai –s 192.168.0.8 –j DROP
# iptables –A INPUT –j wangkai
(注:要删除自定义链,必须要确保该链不被引用,而且该链必须为空,如要删除上例定义的自定义链方法为:
# iptables –D INPUT –j wangkai
# iptables -F wangkai
# iptables -X wangkai
另外,团IDC网上有许多产品团购,便宜有口碑
实现此的技术原理:在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。
具体的实现过程如下:
明确LINUX服务器内网访问地址端口,确保LINUX服务器正常开启SSH服务,在内网SSH可以正常访问连接。如图所示:
被访问端的Linux主机上使用nat123动态域名解析Linux版本。
在被访问端的Linux服务器安装nat123客户端,并登录使用它。
登录网页,左侧用户中心,添加域名解析,选择动态域名解析并添加确认。
选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。如不理解负载均衡,不要勾选多点登录。
新添加动态解析后,等待几分钟生效。解析生效后,动态解析域名与本地公网IP是保持对应的。可以通过ping下域名核实,返回结果IP地址为本地公网IP地址时,表示动态解析生效正常。
路由器端口映射,路由映射SSH访问22端口。
因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网LINUX服务器访问22端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的LINUX服务器SSH服务端口是默认的22,我内网对应LINUX服务器主机的内网IP地址是192.168.1.29。
外网访问时,使用动态解析域名。
在外网使用SSH访问内网LINUX服务器时,使用动态解析域名进行连接访问。域名是不变的,可以上网即可访问,再也不担心动态公网IP变化的问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)