iptables和sudo

1、详述iptables五链

防火墙

  • 硬件防火墙
  • 软件防火墙
  • iptables服务是firewalld
  • iptables -Lnv查看规则
  • 本机防火墙和网路防火墙两种
  • 5个表,全大写
    • PREROUTING
    • INPUT
    • FORWARD
    • OUTPUT
    • POSTROUTING
  • 4个其他功能
    • raw:关闭连接追踪
    • mangle:修改其他信息,打标
    • nat:网络地址转换
    • filter:过滤
    • 优先级从高到低
  • 4个其他功能表的位置
    • raw:PREROUTING OUTPUT
    • mangle:全
    • nat:PREROUTING INPUT OUTPUT POSTROUTING
    • filter:INPUT FORWARD OUTPUT
  • 3个报文流向
    • 1.PREROUTING→INPUT
    • 2.PREROUTING→FORWARD→OUTROUTING
    • 3.OUTPUT→OUTROUTING

2、举例实现iptables多端口匹配、连接追踪、字符串匹配、时间匹配、并发连接限制、速率匹配、报文状态匹配等应用

显式扩展规则(-m模块)

multiport
  • 离散端口最多15个,逗号,连续端口冒号
  • -m multiport --dports --sports
  • 可以设置能访问外网
[[email protected] ~]# iptables -R INPUT 7 -p tcp -m multiport --sports 80,443 -m state --state RELATED,ESTABLISHED -j ACCEPT
[[email protected] ~]# iptables -I INPUT 8 -p tcp -m multiport --sports 445,139 -m state --state RELATED,ESTABLISHED -j ACCEPT
[[email protected] ~]# iptables -I INPUT 9 -p udp -m multiport --sports 137,138 -m state --state RELATED,ESTABLISHED -j ACCEPT
[[email protected] ~]# iptables -I OUTPUT 5 -p tcp -m multiport --dports 80,443 -j ACCEPT
[[email protected] ~]# iptables -I INPUT -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -j ACCEPT
[[email protected] ~]# iptables -I OUTPUT 7 -d 192.168.1.3 -p tcp -m multiport --dports 445,139 -j ACCEPT
[[email protected] ~]# iptables -I OUTPUT 8 -d 192.168.1.3 -p udp -m multiport --dports 137,138 -j ACCEPT
iprange
  • 连续ip
  • -m iprange --dst-range --src-range
    time
  • -m time --timestart --timstop --weekdays --monthdays --kerneltz
    string
  • -m string --algo kmp --string "gay"
    connlimit
  • 防止DDOS,限制单客户端最大并发
  • -m connlimit --connlimit-upto(above)
[[email protected] ~]# iptables -R INPUT 1 -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -m connlimit --connlimit-upto 100 -j ACCEPT
limit
  • 限速,防止fast ping攻击 syn-flood攻击
  • -m limit --limit-burst(令牌桶) --limit (包速率)
[[email protected] ~]# iptables -R INPUT 2 -p icmp --icmp-type 8 -m limit --limit 120/m --limit-burst 30 -j ACCEPT
[[email protected] ~]# iptables -I INPUT 3 -syn -m limit --limit 5000/s --limit-burst 200 -j ACCEPT
state
  • 连接追踪:conntrack
  • 内核:
    • /proc/net/nf_conntrack
    • /proc/sys/net/nf_conntrack_max 最大追踪连接数,默认65535
    • /proc/sys/net/nf_conntrack_timeout 超时时间
  • 状态
    • NEW 新连接
    • ESTABLISHED 已建立连接
    • UNTRACKED 未追踪连接
    • RELATED 与已建立连接有关系的连接
    • INVALID 不合法的连接
  • 入站:先允许ESTABLISHED,再允许NEW
  • 出站:只允许ESTABLISHED
  • ftp: 内核模块装载modprobe nf_conntrack_ftp ,入站允许ESTABLIESHED和RELATED
    动作
  • ACCEPT DROP REJECT
  • REJECT默认--reject-with icmp-port-unreachable
  • LOG 默认/var/log/messags
  • --log-prefix "标识"
  • -j 自定义链
  • -N 新建自定义链,在INPUT等链上 -j自定义链,-X删除自定义链
    保存
  • centos6 service iptables save
  • centos7 iptables-save > /etc/sysconfig/iptables 保存
  • 重启后恢复 iptables-restore < /etc/sysconfig/iptables

dns服务器

iptables -A INPUT -s 192.168.1.3 -d 192.168.1.10 -p tcp --dport 37777 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp0s3 -j REJECT
iptables -P FORWARD DROP
iptables -A OUTPUT -s 192.168.1.10 -d 192.168.1.3 -p tcp --sport 37777 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -j REJECT
iptables -I INPUT -s 192.168.1.0/24 -d 192.168.1.10 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -s 192.168.1.10 -d 192.168.1.0/24 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT -s 192.168.1.0/24 -d 192.168.1.10 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -s 192.168.1.10 -d 192.168.1.0/24 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 4 -s 192.168.1.10 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 4 -d 192.168.1.10 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 5 -s 192.168.1.10 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -d 192.168.1.10 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT 6 -p icmp --icmp-type 8 -m limit --limit 120/m --limit-burst 30 -j ACCEPT
iptables -I INPUT 7 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 6 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 7 -p icmp --icmp-type 8 -j ACCEPT
iptables -I OUTPUT 5 -s 192.168.1.10 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -d 192.168.1.10 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT

web服务器

iptables -A INPUT -s 192.168.1.3 -d 192.168.1.11 -p tcp --dport 37777 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp0s3 -j REJECT
iptables -P FORWARD DROP
iptables -A OUTPUT -s 192.168.1.11 -d 192.168.1.3 -p tcp --sport 37777 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -j REJECT
iptables -I INPUT -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-upto 100 -j ACCEPT
iptables -I OUTPUT -s 192.168.1.11 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 3 -s 192.168.1.11 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 3 -d 192.168.1.11 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 4 -s 192.168.1.11 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 4 -d 192.168.1.11 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -p icmp --icmp-type 8 -m limit --limit 120/m --limit-burst 30 -j ACCEPT
iptables -I INPUT 6 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 5 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 6 -p icmp --icmp-type 8 -j ACCEPT
iptables -I INPUT 5 -s 192.168.1.3 -d 192.168.1.11 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT 5 -s 192.168.1.11 -d 192.168.1.3 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 4 -s 192.168.1.11 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 4 -d 192.168.1.11 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT

3、举例实现iptables之SNAT源地址修改及DNAT目标地址修改和PNAT端口修改等应用

NAT

  • 网络地址转换
  • 隐藏主机,解决网络地址短缺问题
  • 源地址转换SNAT POSTROUTING 隐藏客户端,内网机器共享上网
  • 目标地址转换 DNAT PREROUTING 隐藏服务端 MASQUERADE 动态ip,端口映射
  • PNAT 端口地址转换
  • REDIRECT 端口映射
    源地址转换
  • 网关开转发 net.ipv4.ip_forward = 1
  • 内网修改为网关
  • SNAT规则
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 192.168.1.9
目标地址转换
[[email protected] ~]# iptables -t nat -A PREROUTING -d 192.168.1.9 -p tcp --dport 443 -j DNAT --to-destination 192.168.10.11:443
[[email protected] ~]# iptables -t nat -A PREROUTING -d 192.168.1.9 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.11:80
本机端口映射
  • REDIRECT
  • -j REDIRECT --to-ports 8080

4、简述sudo安全切换工具,及详细讲解visudo

sudo

  • 使用其他用户的权限来执行命令
  • 配置文件/etc/sudoers visudo命令检查语法
  • who where=(whom) commands
  • users hosts=(runas) commands
  • 默认:root ALL=(ALL) ALL
    • %wheel ALL=(ALL) ALL
  • wheel必须是基本组
  • sudo -k 删除已经保存的密码
  • sudo -l 查看命令列表
  • User_Alias:用户别名大写
  • Cmnd_Alias:命令别名大写
  • NOPASSWD: 不需要输入密码
  • PASSWD: 需要输入密码
    例子

    visudo加入

xlc ALL=(ALL) NOPASSWD: /usr/bin/rsync

原文地址:https://www.cnblogs.com/xuluchuan/p/9465404.html

时间: 2024-10-12 01:26:51

iptables和sudo的相关文章

Linux iptables与sudo

1. 详述iptables五链 Iptables的主要功能是实现网络数据包进出设备及转发的控制,当数据包需要进入设备.从设备中流出或者经该设备转发.路由时,都可以使用iptables进行控制.Netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加.编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则.这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中.在信息包过滤表中,规则被分组放在我们所谓的链(chain)中.Netfil

Centos7.2 启用iptables

一.防火墙iptables 简洁介绍 iptables 和 firewalld 都是工作在用户空间.用来定义规则的工具,本身不是防火墙,他们定义的规则,可以让内核空间当中的netfilter读取,并且实现防火墙工作. netfilter是操作系统核心层内部的一个数据包处理模块,它具有如下功能: 1.网络地址转换 nat 2.数据包内容修改 mangle 3.数据包过滤的防火墙功能 filter centos7.2  默认使用firewalld :iptables默认无法被systemctl控制,

数据包过滤 iptables

sudo iptables -F sudo iptables -I INPUT -p tcp --syn -i eth0 -j DROP

Linux iptables 命令

iptables 是 Linux 管理员用来设置 IPv4 数据包过滤条件和 NAT 的命令行工具.iptables 工具运行在用户态,主要是设置各种规则.而 netfilter 则运行在内核态,执行那些设置好的规则. 查看 iptables 的链和规则 查看规则的命令格式为:iptables [-t tables] [-L] [-nv] -t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的 filter-L :列出某个 table 的所有链或某个链的规则-

zabbix监控iptables时遇到的问题

背景:由于外包人员或者自己有时候关闭iptables,就忘记启用,会造成系统的安全问题,如果被***攻入一台主机,它就能登陆你的其它主机,一般除了跳板机,iptables是不让内网机直接互相登陆;iptables里面的内容,默认一般只开用到的端口.因此监控iptables的启停就很重要. 原理:我用的监控方法是根据网络上借鉴的简单的方法,通过iptables -nL命令来判断命令的行数,iptables关闭时候行数为8,来设置zabbix的触发器报警,zabbix项目和触发器怎么设置在这就不多说

使用iptables将内网ftp服务映射到其他内网服务器上

iptables一般的只需要关注两个表,一个是nat表,一个是filter表,其他表暂时用不到,然后nat表里有三个链,filter表里有三个链,总结两个表,五个链 入站数据流向:数据包到达防火墙后首先被PREROUTING链处理(是否修改数据包地址等),然后进行路由选择(判断数据包发往何处),如果数据包的目标地址是防火墙本机(如:Internet用户访问网关的Web服务端口),那么内核将其传递给INPUT链进行处理(决定是否允许通过等). 转发数据流向:来自外界的数据包到达防火墙后首先被PRE

amazon aws ec云Linux ami上安装配置Nginx+PHP+MySQL环境

1.系统更新和配置 1)更新系统软件$ sudo -s# yum check-update# yum update更新完后reboot一下吧,因为很可能有kernel的更新! 2)安装rz/sz:# wget ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/releases/16/Fedora/i386/os/Packages/lrzsz-0.12.20-29.fc16.i686.rpm# rpm -ivh lrzsz-0.12.20-29.fc16.i6

CentOS 6.7 安装 RabbitMQ

1.下载安装包http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpmhttp://www.rabbitmq.com/releases/erlang/esl-erlang-compat-18.1-1.noarch.rpm 2.安装 Erlangyum localinstall -y erlang-19.0.4-1.el7.centos.x86_64.rpmyum localinstall -y es

计划任务、lsattr、chattr权限

39.计划任务及日志查看 (1)linux每周五早上6点执行 # crontab -e * * * * * #分 时 日 月 周 0 6 * * 5 touch /mnt/file (2)常用日志 40.权限管理 (1)对用户.目录.文件的权限管理 1)win用户dagtlbb.目录d盘.文件的权限只读管理 2)linux用户dagtlbb.目录/home/tlbb.文件的权限只读管理 # useradd tlbb # useradd dagtlbb # chmod o+r /home/tlbb