linux软路由
Emperor
|
1#
Emperor 发表于 2007-01-23 00:57
linux软路由
我使用的是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台 网卡的负载也很大 建议用多块网卡 |