设为首页 收藏本站
查看: 1205|回复: 0

[经验分享] Linux之iptables

[复制链接]

尚未签到

发表于 2019-2-18 07:24:43 | 显示全部楼层 |阅读模式
  防火墙的主要类别有:
1、netfilter
2、tcp wrappers
3、proxy
  Linux的数据包过滤软件:iptables
//规则的顺序非常重要
  三张表:filter、nat、mangle
五条链:input、output、forward、prerouting、postrouting
  规则的查看与清除

iptables [-t tables] [-L] [-nv]
-t:nat/filter
-L:列出当前的规则
-n:不进行IP的反查,显示速度快
-v:列出更多的信息
iptables-save [-t tables]
#列出完整的防火墙规则
iptables [-t tables] [-FXZ]
-F:清除所有已制定的规则
-X:除掉所有用户自定义的chain(tables)
-Z:清零所有chain的计数和流量统计
  定义默认策略

iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
  语法:

[root@www ~]# iptables [-AI [INPUT|OUTPUT|FOREARD...]] [-io [eth0|eth1...]] \
> [-p [tcp|udp|icmp...]] [-s [sip|net]] [-d [dip|net]] -j [ACCEPT|DROP|REJECT|LOG]
--sport、--dport
[-m state] [--state 状态]
[-m mac] [--mac-source xxx]
  iptables设置脚本:
1、清除已有规则
2、制定默认策略
3、设置各项规则
4、保存

#!/bin/bash
# 请先输入相关参数,不要输入错误
EXTIF="eth0"  # 这个是可以来你上public ip 的网络接口
INIF="eth1"   #内部LAN 的网络连接,若无则写成 INIF=""
INNET="192.168.100.0/24"   # 若无内网络接口,请填写 INNET=""
export EXTIF INIF INNEF
# 第一部分,针对本机的防火墙设置
# 1 . 先设置好内核的网络功能
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4icmp_echo_ignore_broadcasts
for i in /proc/sys/net/ipv4/conf/*/{rp_filter,log_martians}; do
echo "1" > $i
done
for i in /proc/sys/net/ipv4/conf/*/{accept_source_route,accept_redirects,send_redirects}; do
echo "0" > $i
done
# 2 . 清除规则、设置默认策略及开放 lo 与相关的设置值
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 FPRWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -nm state -state RELATED,ESTABLISHED -j ACCEPT
# 3 . 启动额外的防火墙script模块
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/iptables/iptables.http ]; then
sh  /usr/local/virus/iptables/iptables.http
fi
# 4 . 允许某些类型的 ICMP 数据包进入
AICMP ="0 3 3/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 21 --sport 1024:65535 -j ACCEPT # FTP
# iptables -A INPUT -p TCP -i $EXTIF --dport 22 --sport 1024:65535 -j ACCEPT # SSH
# iptables -A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65535 -j ACCEPT # SMTP
# iptables -A INPUT -p TCP -i $EXTIF --dport 53 --sport 1024:65535 -j ACCEPT # DNS
# iptables -A INPUT -p TCP -i $EXTIF --dport 53 --sport 1024:65535 -j ACCEPT # DNS
# iptables -A INPUT -p TCP -i $EXTIF --dport 80 --sport 1024:65535 -j ACCEPT # WWW
# iptables -A INPUT -p TCP -i $EXTIF --dport 110 --sport 1024:65535 -j ACCEPT # POP3
# iptables -A INPUT -p TCP -i $EXTIF --dport 443 --sport 1024:65535 -j ACCEPT # HTTPS
# 第二部分,针对后端主机的防火墙设置
# 1 . 先加载一些有用的模块
modules="ip_tables iptables_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
# 2 . 清除 NAT table 的规则
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 . 若有内部接口的存在(双网卡)开放成为路由器,且为IP分享器
if [ "$INIF" != "" ]; then
iptables -A INPUT -i $INIF -j ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward
if [ "$INIET" != "" ]; then
for innet in $INNET
do
iptables -r nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
done
fi
fi
# 如果你的 MSN 一直无法连接,或者是某些网站 OK 某些网站不 OK ,可能是 MTU 的问题,那可以将下面这行取消批注,来启动 MTU 的范围
iptables -A FORWARD -p tcp  -m tcp --tcp-flags STN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
# 4 . NAT 服务器后端的 LAN 内对外值服务器设置
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 -j DNAT --tp-description 192.168.1.210:80   #WWW
# 5 . 特殊的功能,包括 windows 远程桌面产生的规则,假设桌面主机为 1.2.3.4
# iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --dport 6000 -j DNAT --to-description 192.168.100.10
# iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --sport 3389 -j DNAT --to-description 192.168.100.20
# 6 . 最后将这些功能存储下来
/etc/init.d/iptables save



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673699-1-1.html 上篇帖子: linux下安装ecshop, 下篇帖子: linux安装mpich
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表