- 浏览: 441518 次
- 性别:
- 来自: 无锡
文章分类
最新评论
-
belonghu:
这还和字段是否主键,加索引,有很大关系,我对一个索引的字段查询 ...
MYSQL每日一用:SELECT 语句中比对(between and \ like \ left) -
lqingqingzijin:
好,就是想知道怎样将默认bash修改成nologin
我怎么创建和修改用户帐号,让它有一个nologin shell? -
yangxiutian:
“在jar中添加了字体”是什么意思?
java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:299) -
ljhard_1030:
楼主学习了,以后继续发表这类的文章,会继续光临的。。
刨根问底(Proxool连接池设置) -
RobustTm:
Selenium中使用的貌似是Junit 3.x,上面的例子也 ...
使用Selenium 和Junit 进行WEB功能测试
设置主机的nat服务:
在/etc/rc.d/rc.local文件里设置
#vi /etc/rc.d/rc.local
在文件的最下面,输入:
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
-----------------------------------------------控制某个网段是否可以上网,iptables的规则和执行顺序(匹配一次)-------------------------------------------------------------------------------
网络架构一般是一个外网ip,内网的用的是192.168.0.0/16 段的ip。
在网关的机子上配置好了nat以后,要控制某些人不能上网,咋搞咧?呵呵,我把
我的经验写下来吧,搞公司的电脑,搞了几个小时的成果。
比如网关的内网ip是 192.168.0.1 ,客户机的则是0.2等等啦,现在我想让0.3ip的机子可以上网,其他的都不能上,这么来
iptables -I FORWARD 1 -s 192.168.0.2 -d 0.0.0.0/0 -j ACCEPT
iptables -I FORWARD 2 -s 192.168.0.0/24 -d 0.0.0.0/0 -j DROP
说明一下,第一条命令的意思就是:在filt表里面的FORWARD链的第一行加入允许0.2这个ip地址的机子访问任何ip地址。
第二条命令意思:拒绝局域网内所有的机子访问网络。
为什么非要这么设置呢?(执行规则)
大家注意了,iptables防火墙规则是有先后顺序的,防火墙匹配规则是从第一条开始匹配,如果符合,则不再匹配第二条,如果不符合,则接着匹配第二条,同理,如果匹配了,则结束匹配,如果仍然不匹配,则接着向下,一直到匹配为止。
所以这个顺序是相当重要的。
假如现在有个ip为0.3的机子想访问网络,iptables开始匹配第一行,发现不匹配,则继续匹配第二行,这个时候,匹配了,所以执行drop的动作。
-I -D的区别:一个插入一条规则,一个是添加一条规则
同理,如果还想继续添加可以上网的机子,则应该如下命令
iptables -I FORWARD 2 -s 192.168.0.X -d 0.0.0.0/0 -j ACCEPT
这个地方注意了,为什么序号还是2呢?
这个命令的意思是在Forward链的第二行加入一行,等这个命令执行以后,用iptables -L查看的时候,就会发现
iptables -I FORWARD 2 -s 192.168.0.0/24 -d 0.0.0.0/0 -j DROP 这个命令已经变成第三行了,明白了,-I参数的作用就是插入的意思,以后的依次往后推。
最重要的一点,就是要保证最后的一条就是拒绝所有。
还有一点要注意,控制网络访问权限一定要用forward链,因为input链是控制本机的,forward链则是控制转发的链。
---------------------控制某一个网段--------------------------------------------------------------------
/sbin/iptables -P FORWARD -j ACCEPT
/sbin/iptables -A FORWARD -m iprange --src-range 192.168.0.3-192.168.0.61 -j DROP
低于1.2.4好像无法直接匹配部分IP地址,源地址只能匹配单个IP地址或者IP地址段
只能用个循环来实现了
i=10;
while [ $i -le 50 ]
do
iptables -A FORWARD -s 192.168.0.$i -j DROP
i=`expr $i + 1`
done
---------------------------------添加某条规则--------------------------------------------------------
在某些情况下,我们可能要禁止某个IP或某个网段的计算机上网。
如果要禁止IP地址为192.168.0.3的客户机上网,可以这样设:
/sbin/iptables -A FORWARD -s 192.168.0.3 -j DROP
如果要禁止192.168.0.0这个子网里所以有客户机上网,可以这样设:
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j DROP
其中“/24”表示禁止整个C 类网段访问INTERNET.
不过我发现我们公司的用上面的语法不好用,在别的地方好用。不知是为什么呀。
我们公司的语法是这样的才好用呀。语法如下:
如果要禁止IP地址为192.168.0.3的客户机上网,可以这样设:
/sbin/iptables -t nat -A PREROUTING -s 192.168.0.3 -j DROP
如果要禁止192.168.0.0这个子网里所以有客户机上网,可以这样设:
/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 -j DROP
-------------------------------删除某条规则------------------------------------------------------------
-A 添加一条规则
-D 删除一条规则
-I 插入一条规则
-F 清空一个链
我们可以用两种办法中的任一种删除规则。
首先,因为知道这是INPUT链中唯一的规则,我们用编号删除:
# iptables -D INPUT 1
删除INPUT链中的编号为1的规则
使用--line-numbers参数,列出的表中开头一个是NUM。
然后根据NUM很快删除的。
iptables -D chain rulenum [options]
例如:
列出规则
[root@localhost rc.d]# iptables -L FORWARD --line-numbers
Chain FORWARD (policy DROP)
num target prot opt source destination
1 REJECT tcp -- anywhere anywhere tcp dpt:microsoft-ds reject-with icmp-port-unreachable
2 REJECT tcp -- anywhere anywhere tcp dpt:135 reject-with icmp-port-unreachable
3 REJECT tcp -- anywhere anywhere tcp dpt:netbios-ssn reject-with icmp-port-unreachable
4 REJECT udp -- anywhere anywhere udp dpt:microsoft-ds reject-with icmp-port-unreachable
5 REJECT udp -- anywhere anywhere udp dpt:135 reject-with icmp-port-unreachable
...
...
删除指定行规则:
[root@localhost rc.d]# iptables -D FORWARD 4
第二种办法是 -A 命令的映射,不过用-D替换-A。
当你的链中规则很复杂,而你不想计算它们的编号的时候这就十分有用了。这样的话,我们可以使用:
# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
-D的语法必须和-A(或者-I或者-R)一样精确。如果链中有多个相同的规则,只会删除第一个。
-----------------------置两块网卡时,出现的问题,不听的出现一下信息----------------------------------------------------
http://21nw.com/wk/kernel%3A_martian_source_255.255.255.255
NET: 7 messages suppressed. NET: martian source 192.168.10.255 from 192.168.10.20, on dev eth0 NET: ll header: ff:ff:ff:ff:ff:ff:00:02:55:07:61:fb:08:00 NET: 5 messages suppressed. .......
两块网卡,只设置为同一个网段时,iptables,就会产生以上错误。停止其中一块就不报错了。可能是测试环境才有这样的问题出现。
------------------------------------------DNS的问题----------------------------------------------------------------
其中有一台机器,ACCEPT,可以上网,但是只能上qq msn,网上地址什么都打不开,后来,直接ping ip地址是可以通的,这样就基本确定是dns的问题了,修改了网关的/etc/resolv.conf,添加了相应的nameserver,但是还是不可以。
几经波折,在主机上直接设置DNS,哈哈,可以了。
这应该跟测试环境也有一定的关系。
以下为简单firewall set:
iptables.rule
#!/bin/bash # # ======================================================== # # dos2unix iptables.rule # # chmod 755 iptables.rule # /usr/local/virus/iptables # mkdir -p /usr/local/virus/iptables # mv / /iptables.rule /usr/local/virus/iptables # /usr/local/virus/iptables/iptables.rule # iptables -L -n # /etc/rc.d/rc.local # /usr/local/virus/iptables/iptables.rule # # iptables -F # iptables -X # iptables -t nat -F # iptables -t nat -X # ########################################################################################### # English: Please input your networks parameters ( including your LAN NIC ) EXTIF="eth1" INIF="eth0" INNET="192.168.1.0/24" export EXTIF INIF INNET # These settings is about yourself's paramters. allowname='' allowip="" if [ "$allowname" != "" ]; then for siteiptmp in `echo $allowname` do siteip=`/usr/bin/host $siteiptmp 168.95.1.1 | grep address|tail -n 1 | awk '{print $4}'` testip=`echo $siteip | grep [^0-9.]` if [ "$testip" == "" ]; then allowip="$allowip $siteip" fi done fi export allowip ########################################################## # First, your server's firewall settings. # 1. the kernel's firewall settings. # TCP Flooding's setting. this setting is no good for high loading servers echo "1" > /proc/sys/net/ipv4/tcp_syncookies # unset reply of ping. echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo "1" > $i done # record some problems packets. for i in /proc/sys/net/ipv4/conf/*/log_martians; do echo "1" > $i done # for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo "0" > $i done # for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do echo "0" > $i done # for i in /proc/sys/net/ipv4/conf/*/send_redirects; do echo "0" > $i done # 2. clear rule, set the policy rule and allow lo connect. PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state RELATED -j ACCEPT # 3. other shell scripts, written by VBird. if [ -f /usr/local/virus/iptables/iptables.deny ]; then sh /usr/local/virus/iptables/iptables.deny fi # if [ -f /usr/local/virus/iptables/iptables.allow ]; then sh /usr/local/virus/iptables/iptables.allow fi # if [ -f /usr/local/virus/httpd-err/iptables.http ]; then sh /usr/local/virus/httpd-err/iptables.http fi iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT # 4. allow some types of ICMP # AICMP="0 3 3/4 4 11 12 14 16 18" # for tyicmp in $AICMP # do # iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT # done # 5. # iptables -A INPUT -p TCP -i $EXTIF --dport 22 -j ACCEPT # SSH # iptables -A INPUT -p TCP -i $EXTIF --dport 25 -j ACCEPT # SMTP # iptables -A INPUT -p UDP -i $EXTIF --dport 53 -j ACCEPT # DNS # iptables -A INPUT -p TCP -i $EXTIF --dport 53 -j ACCEPT # DNS # iptables -A INPUT -p TCP -i $EXTIF --dport 80 -j ACCEPT # WWW # iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT # POP3 # iptables -A INPUT -p TCP -i $EXTIF --dport 443 -j ACCEPT # HTTPS ######################################################## # Second, the NAT settings. # 1. loading some good modules of iptables. modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack ip_conntrack_ftp ip_conntrack_irc" for mod in $modules do testmod=`lsmod | grep "^${mod} " | awk '{print $1}'` if [ "$testmod" == "" ]; then modprobe $mod fi done # 2. clean NAT table's rule iptables -F -t nat iptables -X -t nat iptables -Z -t nat iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT # 3. NAT server's settings if [ "$INIF" != "" ]; then iptables -A INPUT -i $INIF -j ACCEPT echo "1" > /proc/sys/net/ipv4/ip_forward if [ "$INNET" != "" ]; then for innet in $INNET do #iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE iptables -t nat -A POSTROUTING -s $innet -j MASQUERADE done fi fi # iptables -A FORWARD -s 192.168.1.195 -d www.sina.com.cn -j ACCEPT # iptables -A FORWARD -s 192.168.1.195 -j DROP iptables -A FORWARD -s 192.168.1.195 -m mac --mac-source 00:E0:4C:77:1B:C8 -m limit --limit 25/s -j ACCEPT # iptables -A FORWARD -m iprange --src-range 192.168.1.196-192.168.1.200 -j DROP i=196; while [ $i -le 200 ]; do iptables -A FORWARD -s 192.168.1.$i -j DROP i=`expr $i + 1` done iptables -A FORWARD -s 192.168.1.0/24 -j DROP # iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu # 4. # iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 -j DNAT --to 192.168.1.210:80 # WWW
iptables.allow
#!/bin/bash #iptables -A INPUT -i $EXTIF -s 140.116.44.0/24 -j ACCEPT
iptables.deny
#!/bin/bash #iptable -A INPUT -i $EXTIF -s 14.116.44.254 -j DROP
发表评论
-
Centos(带宽测试脚本-测试通过)
2010-07-15 18:00 2494#!/bin/bash # test network ... -
linux 安装SVN
2010-07-07 18:09 1594安装配置 svn server+apache ... -
linux 性能检测工具 dstat
2010-07-06 14:40 1785在sentos中,使用yum install dstat ... -
网络监控:带宽、网络情况……
2010-06-25 13:37 1377iftop是LINUX下查看網路流 ... -
Rootkit Hunter
2010-06-04 14:06 1997Rootkit Hunter Description ... -
SSH安全配置
2010-06-04 13:00 01.远程可否重启SSHD服务? 答:实际操作是: ... -
vsftp客户连接常见故障现象
2010-05-24 16:54 1556ftp客户连接常见故障现象 现象0: > ftp ... -
applet 打印的属性和配置
2010-05-18 23:58 2137如果您已经使用过一段 ... -
linux下压缩与解压缩
2010-04-16 13:49 1226linux下压缩与解压缩 对于刚刚接触Lin ... -
linux 出现大量的TIME_WAIT解决办法
2010-04-15 10:11 3600昨天服务器的应用有开 ... -
linux下修改目录权限(chmod)
2010-04-14 16:09 3052指令名称 : chmod 使用权限 : 所有使用者 ... -
批量修改LINUX下的文件或目录权限
2010-04-14 16:01 1878CU里的一个用户用"#chown -R 777 /* ... -
我怎么创建和修改用户帐号,让它有一个nologin shell?
2010-04-13 15:34 15147我怎么创建和修改用户帐号,让它有一个nologin shell ... -
repair filesystem 1 #一般是什么引起的和该怎样解决
2010-04-08 10:40 3308Finding module dependencies; ... -
提高linux ssh访问的安全性
2010-02-25 16:44 1641提高ssh安全性: 鼓励您系统上的所有用户使用 ssh 取 ... -
查看linux硬件信息大全
2010-02-24 10:53 31441, 主板信息 .查看主板的序列号 ------- ... -
网关服务器设置手册(iptables+iptables_logger_v0.4)
2010-01-15 18:03 3204iptables_logger的配置网站: http ... -
添加yum源 :yum install PHP 5.2
2010-01-15 15:37 7527喜欢CentOS 的原因之一他有yum ,有些依赖包安装起来 ... -
tar.bz2解压方法
2010-01-14 13:10 41791. tar -zvxf wine******.tar. ... -
MYSQL: ERROR 2002 (HY000):Can't connect to local MySQL server
2010-01-14 11:58 2806在SentOS 5中: >>yum instal ...
相关推荐
【让Linux操作系统NAT服务器支持UpnP】 在现代的家庭和企业网络环境中,UPnP(Universal Plug and Play)技术已经成为一种重要的设备联网方式。它允许智能设备自动发现并连接到网络,无需用户进行复杂的网络配置。...
### Linux iptables 口袋参考知识点详解 #### 一、Netfilter与iptables简介 Linux内核中的网络数据包处理子系统被称为Netfilter,而iptables则是用于配置Netfilter的主要命令工具。本书涵盖了iptables用户空间工具...
"Linux NAT环境下网络音频视频...本文提出了一种解决Linux NAT环境下网络音频视频的问题的解决方案,该方案基于Tald and H.323协议和iptables技术,能够实现音频视频的传输,并解决Linux NAT环境下网络音频视频的问题。
10. **iptables**:iptables是Linux内核防火墙的用户空间工具,可以实现包过滤、NAT(网络地址转换)和报文速率限制等功能。 11. **tc**:tc是Linux的流量整形和控制工具,它可以设置带宽限制、优先级和服务质量...
3.3. nat 表 3.4. Filter 表 4. 状态机制 4.1. 概述 4.2. conntrack记录 4.3. 数据包在用户空间的状态 4.4. TCP 连接 4.5. UDP 连接 4.6. ICMP 连接 4.7. 缺省的连接操作 4.8. 复杂协议和连接跟踪 5. 保存...
Linux 在其2.4 内核中内置了一个基于网络层解决方案的防火墙系统—Netfilter/Iptables,它使得 用户能够很方便地在网络边界定制对数据包的各种控制,如有状态或无状态的包过滤、各种类型的网 络地址转换、流量控制及...
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz ``` 如果显示结果如上所示,则表明 iptables 已经安装。若未安装,则可以通过以下命令安装: ``` sudo apt-get install ...
ssh client and server scp sshd nfs iptables apache web server squid dns server dhcp server iptables firewall router or firewall packet forwarding packet filtering nat pat snat dnat Samba ping6 ipv4...
sudo iptables -t nat -I POSTROUTING -j MASQUERADE` 开启IP转发和NAT功能。 37. **查看路由信息**:`netstat -rn` 或 `sudo route -n` 显示路由表。 38. **手工增加路由**:`sudo route add -...
描述中提到 "Xtables: TCP, UDP and UDP-Lite match for Linux v2.13.6.",Xtables是iptables的核心框架,用于定义和管理网络数据包过滤、NAT(网络地址转换)和报文标记规则。这里的TCP、UDP和UDP-Lite是网络传输层...
<*> iptables................................. IP firewall administration tool ---> Network ---> < > hostapd................................. IEEE 802.1x Authenticator (full) < > hostapd-common.....
文档中还提到了一个具体例子:“Software: Android-platform-external-iptables7.0.0_r1”,这可能是指某个版本的iptables开源软件,iptables是一个用于配置Linux内核防火墙的工具,通常用于控制数据包过滤和NAT...
Netfilter是Linux内核的一个子系统,用于处理网络包过滤、网络地址转换(NAT)和其他网络相关任务。Netlink是一种在用户空间程序和内核之间交换信息的机制。 描述中提到的“elf-fdpic.h: FDPIC ELF load map.”,指的...
- `iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE`:开启NAT。 - `route -n`:查看路由表。 - `route add -net <destination> netmask <mask> gw <gateway>`:添加路由。 - `macchanger -r <interface>...
4. **上层应用协议和服务模块**:提供SNMP/Httpd/Dhcp/FTP等功能,并支持telnet远程登录以及IPtables/NAT等网络服务。 #### 七、软件模块结构分析 - **AP管理功能模块**:包括字符界面模块、界面接口、配置接口等...