美文网首页
linux iptables的简单用法

linux iptables的简单用法

作者: HaRun | 来源:发表于2017-06-08 14:56 被阅读0次

    Iptables 是标准的 Linux防火墙应用程序,在没有硬件防火墙的情况下,使用iptables也是一种简单经济的解决方案。本例中如何通过使用iptables限制客户端访问ftp和ssh端口

    <pre>
    service iptables start
    service iptables stop
    service iptables save
    service iptables restart
    service iptables reload
    service iptables status
    chkconfig --list iptables
    </pre>

    备注:调整防火墙随时可能导致不能从远端连接到服务器,所以一定要小心,比较可行的方法是在调试阶段设置一个crontab任务,每隔一段时间关闭防火墙。及时网络不通了,一段时间后又恢复了.

    规则管理命令

    <pre>
    -A:追加,在当前链的最后新增一个规则
    -I num : 插入,把当前规则插入为第几条。
    -I 3 :插入为第三条
    -R num:Replays替换/修改第几条规则
    格式:iptables -R 3 …………
    -D num:删除,明确指定删除第几条规则
    </pre>

    查看管理命令 “-L”

    <pre>
    附加子命令
    -n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。
    -v:显示详细信息
    -vv
    -vvv :越多越详细
    -x:在计数器上显示精确值,不做单位换算
    --line-numbers : 显示规则的行号
    -t nat:显示所有的关卡的信息
    </pre>

    查看当前的防火墙设置
    iptables -L INPUT -n --line-numbers ,通过命令iptables -L也可以查看,本例开通了

    <pre>
    [root@log1 ~]# iptables -L INPUT -n --line-numbers
    Chain INPUT (policy ACCEPT)
    num target prot opt source destination
    1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
    3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
    4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
    5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
    6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
    </pre>

    删除一条策略,例如第4行策略

    iptables -D INPUT 4

    设置策略为drop,默认是accept

    <pre>
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT DROP
    </pre>

    本质上iptables的配置是报错在相关配置文件中

    <pre>
    [root@log1 ~]# cat /etc/sysconfig/iptables

    Generated by iptables-save v1.4.7 on Thu Nov 21 09:36:20 2013

    *filter
    :INPUT DROP [0:0]
    :FORWARD DROP [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -s 192.168.9.0/24 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    -A INPUT -s 192.168.9.0/24 -p tcp -m tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
    </pre>

    简单应用的小例子

    开通ssh
    <pre>
    iptables -A INPUT -p tcp -s 192.168.9.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
    </pre>

    开通ftp端口
    --备注,未支持ftp,由于ftp特殊的联系方法,需要设置特殊的端口和开启相关的服务

    <pre>
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp

    Allow Passive FTP Connections

    iptables -A INPUT -p tcp -s 192.168.9.0/24 --dport 1024 -m state --state NEW,ESTABLISHED -j ACCEPT

    Allow Active FTP Connections

    iptables -A INPUT -p tcp -s 192.168.9.0/24 --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT

    Allow FTP connections @ port 21

    iptables -A INPUT -p tcp -s 192.168.9.0/24 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

    iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 1024 -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
    </pre>

    修改配置

    vim /etc/sysconfig/iptables
    然后进去修改即可,修改完了怎么办?这里很多人会想到/etc/rc.d/init.d/iptables save指令,但是一旦你这么干了你刚才的修改内容就白做了!

    具体方法是:

    只修改/etc/sysconfig/iptables 使其生效的办法是修改好后先service iptables restart,然后才调用/etc/rc.d/init.d/iptables save,
    因为/etc/rc.d/init.d/iptables save会在iptables服务启动时重新加载,要是在重启之前直接先调用了/etc/rc.d/init.d/iptables save那么你的/etc/sysconfig/iptables 配置就回滚到上次启动服务的配置了,这点必须注意!!!

    部分转载自:http://blog.csdn.net/hijk139/article/details/16966601
    部分转载自:http://blog.csdn.net/guochunyang/article/details/49865441
    部分转载自:http://blog.chinaunix.net/uid-26495963-id-3279216.html

    相关文章

      网友评论

          本文标题:linux iptables的简单用法

          本文链接:https://www.haomeiwen.com/subject/yoxtqxtx.html