[root@linux ~]# /etc/init.d/iptables start
当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以CentOS为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。
1.加载模块
/sbin/modprobe ip_tables
2.查看规则
iptables -L -n -v
3.设置规则
#清除已经存在的规则
iptables -F
iptables -X
iptables -Z
#默认拒绝策略(尽量不要这样设置,虽然这样配置安全性高,但同时会拒绝包括lo环路在内的所#有网络接口,导致出现其他问题。建议只在外网接口上做相应的配置)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#ssh 规则
iptables -t filter -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp –sport 22 -j ACCEPT
#本地还回及tcp握手处理
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#www-dns 规则
iptables -I INPUT -p tcp –sport 53 -j ACCEPT
iptables -I INPUT -p udp –sport 53 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp –sport 80 -j ACCEPT
#ICMP 规则
iptables -A INPUT -p icmp –icmp-type echo-request-j ACCEPT
iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPT
二,添加防火墙规则
1,添加filter表
1.[root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口
出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。
2,添加nat表
1.[root@linux ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
将源地址是 192.168.10.0/24 的数据包进行地址伪装
3,-A默认是插入到尾部的,可以-I来插入到指定位置
1.[root@linux ~]# iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT
2.[root@linux ~]# iptables -L -n --line-number
3.Chain INPUT (policy DROP)
4.num target prot opt source destination
5.1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
6.2 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
7.3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20 //-I指定位置插的
8.4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
9.5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
10.6 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
11.7 DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID,NEW
12.8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 //-A默认插到最后
13.Chain FORWARD (policy ACCEPT)
14.num target prot opt source destination
15.Chain OUTPUT (policy ACCEPT)
16.num target prot opt source destination
三,查下iptable规则
1,查看filter表
1.[root@linux ~]# iptables -L -n --line-number |grep 21 //--line-number可以显示规则序号,在删除的时候比较方便
2.5 ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp dpt:21
如果不加-t的话,默认就是filter表,查看,添加,删除都是的
2,查看nat表
1.[root@linux ~]# iptables -t nat -vnL POSTROUTING --line-number
2.Chain POSTROUTING (policy ACCEPT 38 packets, 2297 bytes)
3.num pkts bytes target prot opt in out source destination
4.1 0 0 MASQUERADE all -- * * 192.168.10.0/24 0.0.0.0/0
四,修改规则
1.[root@linux ~]# iptables -R INPUT 3 -j DROP //将规则3改成DROP
五,删除iptables规则
1.[root@linux ~]# iptables -D INPUT 3 //删除input的第3条规则
2.[root@linux ~]# iptables -t nat -D POSTROUTING 1 //删除nat表中postrouting的第一条规则
3.[root@linux ~]# iptables -F INPUT //清空 filter表INPUT所有规则
4.[root@linux ~]# iptables -F //清空所有规则
5.[root@linux ~]# iptables -t nat -F POSTROUTING //清空nat表POSTROUTING所有规则
六,设置默认规则
1.[root@linux ~]# iptables -P INPUT DROP //设置filter表INPUT默认规则是 DROP
所有添加,删除,修改后都要保存起来,/etc/init.d/iptables save.上面只是一些最基本的 *** 作,要想灵活运用,还要一定时间的实际 *** 作。
iptables配置常规映射及软路由
作用:虚拟化云平台服务器网段192.168.1.0/24 通过一台linux服务器(eth0:192.168.1.1、eth1:10.0.0.5)做软路由达到访问10.0.0.5能访问的网络范围,并且通过iptables的NAT映射提供服务。
NAT 映射网络端口:
效果: 10.0.0.5:2222 —-》 192.168.1.2:22
命令:iptable -t nat -A PREROUTING -D 10.0.0.5 -p tcp –dport 2222 -j DNAT –to-destination 192.168.1.2:22
service iptables save
service iptables restart
注意:1.在192.168.1.2的网络配置上需要将NAT主机的内网ip即192.168.1.1作为默认网关,如果10.0.0.5具有公网访问权限,dns则设置成公网对应dns
2. echo 1 》 /proc/sys/net/ip_forward 在NAT 主机上需要开启转发才能生效
软路由192.168.1.0/24通过10.0.0.5访问外网:
命令:iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT –to-source 10.0.0.5
service iptables save
service iptables restart
我使用的是RED HAT LINUX 9.0 使用文本英文安装。这个就跳过去了安卓 细说了,自己装装就熟悉了。对装LINUX不熟悉的朋友可以先使用中文安装,界面是一样的,用中文安装最大的缺点就是在文本下有时候会出现乱码。安装时,最小化安装,什么软件包都不选,防火墙选择无那个选项。安装完后,使用setup命令,选择system services,服务项里只选择network 和ssh服务,其他的都不要。然后进入网卡文件目录 cd /etc/sysconfig/network-scripts 。在文本模式下,只能添加一个网卡的IP,复制另一个网卡的参数 cp eth0 eth1 修改eth1网卡的参数。vi ./eth1 修改成你的内网IP
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
IP是192.168.0.1
在/etc/rc.d目录下新建一个文件rc.fw 使用命令touch /etc/rc.d/rc.fw,然后将你的脚本添加到rc.fw里 使用vi /etc/rc.d/rc.fw 我使用的下面的脚本
touch /var/lock/subsys/local
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
echo 1 >/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT
ptables -t nat -A PREROUTING -p udp -d 192.168.0.1 --dport 53 -j DNAT --to 61.134.1.9:53
保存退出,编辑/etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/etc/rc.d/rc.fw &
重启后,一个网关服务器就做好了。
再转个全面点的
我们在使用Internet时。特别 时Intranet接入Internet时,经常要用到的代理服务器。代理服务器以其良好的可配置性,对信息的灵活访问机制,对信息的缓存机制,加快网络访问而成为一个常用的服务器。对于我们网吧的系统管理员,应对代理服务器的安装和配置有相当的熟悉和了解。
代理服务器系统结构为Redhat Linux 9.0,使用“网关型”代理结构使网吧的Intranet接入Internet。
代理服务器系统组成规范如下:
一、熟悉作为代理服务器机器设备的硬件配置
确定机器的硬件设备与Linux兼容。可以http://www.redhat.com/support/hardware检查支持的硬件列表(该步骤可以省略)。将主板的CMOS设置中的“病毒检测”项关闭。
二、开始安装Linux(采用本地光盘安装模式)
1. 用Linux安装启动光盘引导机器启动;
2.采用文本安装模式。在boot:提示符后输入text进行文本模式安装,使用Tab,空格,箭头和回车来控制安装界面。
3.开始安装
⑴、Language Selection(语言选择);选择中文
⑵、键盘的配置;
⑶、选择本地光盘安装;
⑷、鼠标的配置;
⑸、选择Custom(定制)系统安装;
⑹、分区(以80GB硬盘,1024MB内存RAM为例);
分区类型 最小空间尺寸 规范空间尺寸
/ 512MB 1024MB
/var 1024MB 2048MB
Swap 1024MB(RAM) 2048MB(2*RAM)
/home 1024MB MAX
⑺、配置LILO;
⑻、配置网络(逐一对所有网络适配器进行设置);
eth0 ***.***.***.*** 外网IP地址
eth(1、2、3..) ***.***.***.*** 内网IP地址
⑼、设置时区;
⑽、设置超级用户(root)口令和设置用户帐号
⑾、安装软件包;取消系统默认的所有安装软件包;选择Custom(定制)安装软件包; ssh(远程访问);
⑿、开始格式化分区和安装软件包;
⒀、创建起动盘,选择不创建;
⒁、安装完成。
4.配置Linux
三、实现网关代理功能
1.编写脚本文件rc.net以实现网关代理作用。次脚本文件保存路径为/etc/rc.d/rc.net。脚本文件内容如下:
#!/bin/sh
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -s 0/0 -j ACCEPT
/sbin/iptables -A FORWARD -d 0/0 -j ACCEPT
echo "1" >/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 445 -j DROP
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 135 -j DROP
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 139 -j DROP
/sbin/iptables -t nat -A PREROUTING -p udp --dport 6612 -j DROP
#IGMP
iptables -A INPUT -p ICMP -d ***.***.***.*** -m limit --limit 1/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#NMAP FIN/URG/PSH
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
#Xmas Tree
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL ALL -j DROP
#Another Xmas Tree
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
#Null Scan(possibly)
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -j DROP
#SYN/RST
iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
#SYN/FIN -- Scan(possibly)
iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
#synfoold
iptables -N synfoold
iptables -A synfoold -p tcp --syn -m limit --limit 1/s -j RETURN
iptables -A synfoold -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m state --state NEW -j synfoold
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo "1" >/proc/sys/net/ipv4/tcp_syncookies
注意:字母区分大小写;其中***.***.***.***为外网IP地址
2.在Linux引导文件/etc/rc.d/rc.local文件中加入命令行:/etc/rc.d/rc.net,使脚本文件在系统启动时能够自动执行。
3.重新启动机器。
四、网线的连接
1.代理服务器eth0网络适配器与Internet接入设备(如光猫)用网线直接连接;注意此网线需要特殊的跳线如下:
一端:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕
一端:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕
2.代理服务器的eth1、eth2…..等网络适配器与主干交换机用网线连接
五、维护
此代理服务器为免维护服务器,为了更好的良好运转,可以每半年时间将此代理服务器重新启动一次。
1网卡多网关的
一块网卡设置多个ip地址很简单
只要把配置文件复制多个
然后修改名字为 eth1:0 eth1:1 等就行了
注意设备文件名也要做相应的修改
问题是500个ip有些多了
一个linux网关带500台的话需要很好的优化才行
另外如果用一块网卡带500台 网卡的负载也很大
建议用多块网卡
Linux学习网收集整理 ,(如果您觉得本站不错,请告诉身边的朋友,或转载到论坛、百度知道、贴吧等,记得带网址哟,不胜感激!)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)