首页
登录 | 注册

netfiler iptables

以下为我自己的 iptables的参考
 
#! /bin/bash
EXTIF="eth0"
INIF="eth1"
INNET="172.21.41.13/24"

PATH=/sbin:/bin:/usr/sbin:/usr/bin

export PATH EXTIF INIF INNET
modprobe ip_tables    > /dev/null 2>&1
modprobe iptable_nat  > /dev/null 2>&1
modprobe ip_nat_ftp   > /dev/null 2>&1
modprobe ip_nat_irc   > /dev/null 2>&1
modprobe ipt_mark    > /dev/null 2>&1
modprobe ip_conntrack     > /dev/null 2>&1
modprobe ip_conntrack_ftp  > /dev/null 2>&1
modprobe ip_conntrack_irc  > /dev/null 2>&1
modprobe ipt_MASQUERADE  > /dev/null 2>&1
 
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
 
####  openvpn设置及内部转发
/sbin/iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
/sbin/iptables -A INPUT -i tun0  -j ACCEPT
/sbin/iptables -A OUTPUT -o tun0  -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $INIF -j SNAT --to-source 172.21.41.13
 
##屏蔽p2p应用
/sbin/iptables -A FORWARD -m iprange --src-range 172.21.41.20-172.21.41.254 -m ipp2p --ipp2p -j DROP
 
##内部计算机每台外部连接30个 防止多进程下载软件
/sbin/iptables -A FORWARD -i $INIF -p tcp --syn -m connlimit --connlimit-above 30 -j DROP

/sbin/iptables -A INPUT -i $INIF -j ACCEPT
/sbin/iptables -A FORWARD -i $INIF -j ACCEPT
 

/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

 /sbin/iptables -A INPUT -p icmp -m limit --limit 3/s -j LOG --log-level INFO --log-prefix "ICMP packet IN: "
 /sbin/iptables -A INPUT -p icmp -m limit --limit 6/m -j ACCEPT
 
/sbin/iptables -N syn-flood
/sbin/iptables -A INPUT -p tcp --syn -j syn-flood
/sbin/iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN
/sbin/iptables -A syn-flood -j REJECT
 

sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null
sysctl -w net.ipv4.ip_conntrack_max=819200 &>/dev/null

/sbin/iptables -A INPUT -i lo -j ACCEPT
if [ "$INIF" != "" ]; then
        /sbin/iptables -A INPUT -i $INIF -j ACCEPT
        echo "1">/proc/sys/net/ipv4/ip_forward
        echo "0">/proc/sys/net/ipv4/icmp_echo_ignore_all
        echo "1">/proc/sys/net/ipv4/conf/eth1/proxy_arp
        echo "819200">/proc/sys/net/ipv4/ip_conntrack_max
        echo "1024">/proc/sys/net/ipv4/neigh/default/gc_thresh1
        echo "2048">/proc/sys/net/ipv4/neigh/default/gc_thresh2
        echo "4096">/proc/sys/net/ipv4/neigh/default/gc_thresh3
 
##squid的透明代理 注意bind的设置要是纯缓存方式的 同时dhcp传递给客户端的nameserver只能是内部服务器的地址 外部dns的地址是通过bind服务器纯缓存到达的 这样才能提高squid的dns效率 同时通过bing解决内部dns解析和外部dns解析之间的矛盾
        /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
 
## 80端口以外转发
        /sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
fi
 
if [ -f /opt/iptables/iptables.allow ]; then
        sh /opt/iptables/iptables.allow
fi
 
 AICMP="0 3 3/4 4 8 11 12 14 16 18"
 for tyicmp in $AICMP; do
        /sbin/iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
 done

/sbin/iptables -A INPUT -p tcp -i $EXTIF -m multiport --dports 22,21,25,80,110,443,3000,9003 -j ACCEPT

相关文章

  • 一,安装并启动防火墙 当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以centos为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/e ...
  • iptables此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.  .语法 iptables [-t table]  -I  chain [rulenum]  rule-spe ...
  • Linux基础优化与安全归纳总结 一名运维工程师在运维岗位上时间久了,就会发现Linux优化的重要性,同时会给运维工作带来很多的便利性.本人逐渐认识到了这一点,所以特意在工作闲暇之余,通过阅读Linux相关书籍及向同事.同行高手咨询,针对L ...
  • 创建用户 1. 创建hadoop用户组 sudo  groupadd hadoop 2. 创建hadoop用户  sudo useradd -g hadoop hadoop 3. 给hadoop用户添加权限,打开/etc/sudoers文件 ...
  • 1.下载地址 http://hadoop.apache.org/releases.html 2.Hadoop的安装分为单机方式.伪分布式方式 和 完全分布式方式.         单机模式是Hadoop的默认模式.解压即可使用单机模式.   ...
  • 一.前言 centos 7 安装 vsftpd的博客很多,这里不详细介绍具体的每一个步骤以及vsftpd的原理,请自行百度.这里只记录个人踩的一些坑,仅做记录用. 二.安装 a.命令: yum -y install vsftpd 说明:   ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.011 s.
京ICP备10005923号