马哥第七次作业
系统的INPUT和OUTPUT默认策略为DROP,请完成以下关于iptables的题目;
1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;
答:
iptables -A INPUT -d 192.168.2.35 -p tcp --dport 80 -m time --weekdays Mon -m limit --limit 100/second -m string --algo kmp --string "admin" -j DROP
iptables -A OUTPUT -m state --state ESTABLISED -j ACCEPT
2、在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给172.16.0.0网络中的主机访问;数据下载请求的次数每分钟不得超过5个;
答:
# iptables -A INPUT -s 172.16.0.0/16 -p tcp --dport 21 -m time --timestart 08:30 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -m limit --limit 5/minute -j ACCEPT
# iptables -A OUTPUT -d 172.16.0.0/16 -p tcp --sport 20 -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3、开放本机的ssh服务给172.16.x.1-172.16.x.100中的主机,x为你的座位号,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务端口离开本机;
答:
# iptables -A INPUT -d 172.16.6.10 -p tcp --dport 22 -m iprange --src-range 172.16.6.1-192.168.6.100 -m limit --limit 2/min -j ACCEPT
# iptables -A OUTPUT -s 172.16.6.10 -p tcp --sport 22 -m iprange --dst-range 172.16.6.1-192.168.6.100 -m state --state ESTABLISHED -j ACCEPT
4、拒绝TCP标志位全部为1及全部为0的报文访问本机;
答:
#iptables -A INPUT -d 192.168.2.35 -p tcp --tcp-flags ALL ALL -j DROP
#iptables -A INPUT -d 192.168.2.35 -p tcp --tcp-flags ALL NONE -j DROP
5、允许本机ping别的主机;但不开放别的主机ping本机;
答:
#iptables -A OUTPUT -s 192.168.2.35 -p icmp --icmp-type 8 -j ACCEPT
#iptables -A INPUT -d 192.168.2.35 -p icmp --icmp-type 0 -j DROP
6、判断下述规则的意义:
答:
# iptables -N clean_in
创建自定义链 clean_in
# iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
丢弃ICMP的广播报文
# iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP
丢弃172.16.0.0/16网段的ICMP的广播报文
# iptables -A clean_in -p tcp ! --syn -m state --state NEW -j DROP
丢弃TCP报文中syn标志不为1,链接状态为新建链接的包
# iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP
丢弃tcp报文中标志位全部为1的报文
# iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP
丢弃tcp报文中标志位全部为0的报文
# iptables -A clean_in -d 172.16.100.7 -j RETURN
在结束clean_in链过滤后回到主链
# iptables -A INPUT -d 172.16.100.7 -j clean_in
目标为172.16.100.7的报文交给clean_in处理
# iptables -A INPUT -i lo -j ACCEPT
指定流入报文接口为本地回环
# iptables -A OUTPUT -o lo -j ACCEPT
指定流出报文接口为本地回环
# iptables -A INPUT -i eth0 -m multiport -p tcp --dports 53,113,135,137,139,445 -j DROP
丢弃从eth0接口进入,目标端口为:53,113,135,137,139,445的TCP报文
# iptables -A INPUT -i eth0 -m multiport -p udp --dports 53,113,135,137,139,445 -j DROP
丢弃从eth0接口进入,目标端口为:53,113,135,137,139,445的UDP报文
# iptables -A INPUT -i eth0 -p udp --dport 1026 -j DROP
丢弃从eth0接口进入,目标端口为1026的UDP报文
# iptables -A INPUT -i eth0 -m multiport -p tcp --dports 1433,4899 -j DROP
丢弃从eth0接口进入,目标端口为:1433,4899的TCP报文
# iptables -A INPUT -p icmp -m limit --limit 10/second -j ACCEPT
限定ping速率为每秒10次
7、通过tcp_wrapper控制vsftpd仅允许172.16.0.0/255.255.0.0网络中的主机访问,但172.16.100.3除外;对所被被拒绝的访问尝试都记录在/var/log/tcp_wrapper.log日志文件中;
答:
[root@ns1 ~]# vim /etc/hosts.allow
vsftpd:172.16.0.0/255.255.0.0 EXCEPT 172.16.100.3
[root@ns1 ~]# vim /etc/hosts.deny
vsftpd:ALL :spawn /bin/echo `date` login attempt from %c to %s, %d >> /var/log/tcp_wrapper.log
8、删除/boot/grub/grub.conf文件中所有行的行首的空白字符;
答:
查看文件内容:
[root@www grub]# cat grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=a55b9a39-c9a3-4908-aaed-2b930a8344cc rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img
使用sed命令删除grub.conf文件中所有行的行首的空白字符(使用 -i选项可直接修原文件,此处只作演示。)
[root@www grub]# sed 's@^[[:space:]]\+@@' grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=a55b9a39-c9a3-4908-aaed-2b930a8344cc rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img
9、删除/etc/fstab文件中所有以#开头,后跟至少一个空白字符的行的行首的#和空白字符;
答:
查看文件内容:
[root@www etc]# cat fstab
#
# /etc/fstab
# Created by anaconda on Tue Mar 28 19:48:55 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=a55b9a39-c9a3-4908-aaed-2b930a8344cc / ext4 defaults 1 1
UUID=53a40663-7787-4f8d-8aea-424359f4267e /boot ext4 defaults 1 2
UUID=5e15512e-d152-4e2e-ba1a-8f1235466b70 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
使用sed命令删除:
[root@www etc]# sed 's@^#[[:space:]]\+@@' fstab
#
/etc/fstab
Created by anaconda on Tue Mar 28 19:48:55 2017
#
Accessible filesystems, by reference, are maintained under '/dev/disk'
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=a55b9a39-c9a3-4908-aaed-2b930a8344cc / ext4 defaults 1 1
UUID=53a40663-7787-4f8d-8aea-424359f4267e /boot ext4 defaults 1 2
UUID=5e15512e-d152-4e2e-ba1a-8f1235466b70 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
10、把/etc/fstab文件的奇数行另存为/tmp/fstab.3;
答:
[root@www etc]# sed 'n;d' fstab > /tmp/fstab.3
[root@www etc]# cat /tmp/fstab.3
# /etc/fstab
#
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
UUID=a55b9a39-c9a3-4908-aaed-2b930a8344cc / ext4 defaults 1 1
UUID=5e15512e-d152-4e2e-ba1a-8f1235466b70 swap swap defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
11、echo一个文件路径给sed命令,取出其基名;进一步地,取出其路径名;
答:
取出其基名:
[root@www ~]# echo "/usr/local/sbin" | sed 's#/.*/##'
sbin
取出其路径名:
[root@www ~]# echo "/usr/local/sbin" | sed 's#[^/]\+/\?$##'
/usr/local/
12、统计当前系统上所有tcp连接的各种状态的个数;
答:
[root@www ~]# netstat -nat | awk 'FNR>2{print $NF}' | sort | uniq -c
3 ESTABLISHED
10 LISTEN
13、统计指定的web访问日志中各ip的资源访问次数:
答:
[root@localhost ~]# cat /var/log/httpd/www2.access | cut -d' ' -f1 | sort | uniq -c
119 192.168.1.102
2 192.168.1.106
14、授权centos用户可以运行fdisk命令完成磁盘管理,以及使用mkfs或mke2fs实现文件系统管理;
答:
[root@www etc]# visudo
centos ALL=(root) /sbin/fdisk, /sbin/mke2fs
15、授权gentoo用户可以运行逻辑卷管理的相关命令;
答:
[root@www etc]# visudo
gentoo ALL=(root) /sbin/lvm
16、基于pam_time.so模块,限制用户通过sshd服务远程登录只能在工作时间进行;
答:
[root@www ~]# vim /etc/pam.d/sshd
在account required pam_nologin.so上插入一行:
account required pam_time.so
[root@www ~]# vim /etc/security/time.conf
*;*;*;MoTuWeThFr0800-1700
17、基于pam_listfile.so模块,定义仅某些用户,或某些组内的用户可登录系统;
答:
[root@www ~]# vim /etc/AllowedUser
[root@www ~]# chmod 600 /etc/AllowedUser
再编辑/etc/pam.d/sshd文件,加入以下一行内容:
auth required pam_listfile.so item=user sense=allow file=/etc/AllowedUser onerr=succeed
转载于:https://blog.51cto.com/2834473/1916476
相关文章:
Strategy_Pattern
以下代码是“策略模式”的第四个例子:

JAVA-基础(Class对象及反射)
JAVA-基础(Class对象及反射) 1.(1)什么是class对象? 首先,java有两种对象,第一种是实例对象,第二种是Class对象,每一个类运行的类型信息就是用Class对象表示的࿰…

当年学生的一件事,心情很难过
当年学生的一件事,心情很难过 今天同一个以前的学生聊天,搞得心情很难过。那年是刚毕业,带了几个学生的毕业论文,其中有一个,只是第一次见过一面,最后答辩前见一两天以及答谢见过一面。他从来不同我联系&am…

while循环中,break,continue,return的差别
break 结束循环,跳出循环体;continue 结束本次循环。进行下次循环;return 跳出循环体所在的方法,相当于跳出循环体。
Strategy_Level2
以下代码是“策略模式”的第五个例子:

自制绘图之坐标轴
写代码之前得先了解坐标轴的一些属性,坐标轴有范围,每隔多少显示一条数值信息。然而间隔信息有时并不确定,一旦设置不准确,图形会乱掉。最好的方法是使用另一个参数:分隔符总数。这样可以利用坐标范围计算出间隔。 首先…

DotNET(C#) Socket基本编程 (1)
Socket基本编程 服务端: using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; Thread mythread ; Socket socket; // 清理所有正在使用的资源。 protected override void Dispose( bool disposing ) { try { socket.Clos…

CC2540 OSAL 学习其中原理,以及 给任务 添加 一个事件(定时发送串口消息)
参考学习大神博客: http://blog.csdn.net/feilusia/article/details/51083953 : http://blog.csdn.net/xiaoleiacmer/article/details/41723583 1、TI 的 CC2540跑了一个 OSAL (Operating System Abstraction Layer) 心得:大概 就是 一个循…
Strategy_Level3
以下代码是“策略模式”的第六个例子:

SDK开发日积月累(二)
WM_NOTIFY消息和WM_COMMAND消息在一个对话框中,子控件可以有两种方式与父对话框通信。1.向父对话框发送WM_COMMAND消息,但这种消息传递的信息量比较少。2.向父对话框发送WM_NOTIFY消息,信息量比较大。idCtrl (int) wParam; pnmh (LPNMHDR) …

关于IP地址的分类
我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在INTERNET上这个庞大的网间网中,每个网络也有自己的标识符。这与我们日常生活中的电…
Visual Studio UML Activity Diagram(1)
数理系LSGO软件技术团队能够存活下来,并形成战斗力的根本原因,归结为我们的价值观。我们“只问收获,不问耕耘”,对知识是贪婪的,我们会把所学的知识放到场景中去应用,我们一定要做出成品。我们强调“要构建…

VMware 克隆Linux后找不到eth0
VMware 克隆Linux,ifconfig 不出现eth0解决方案:1)删除 /etc/udev/rules.d/70-persistent-net.rules/rm -rf /etc/udev/rules.d/70-persistent-net.rules2)重启init 6 3)ifconfig 查看转载于:https://blog.51cto.com/ictedu/1917185

笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)
议题:二分查找树性能分析(Binary Search Tree Performance Analysis) 分析: 二叉搜索树(Binary Search Tree,BST)是一颗典型的二叉树,同时任何节点的键值大于等于该节点左子树中的所…

定义自定义的异常
首先我们建立自己的异常类CustomException,它要继承自ApplicationException类(这是一个在发生非致命的应用程序错误时抛出的通用异常,它又继承于更为通用的Exception类),将其用作为应用程序定义的任何自定义异常的基类…

python3 的 round 函数的 练习
python3 的 round 函数感觉很别扭,其运算结果与习惯不相符。特记录下来: 代码 python 3的 round 函数 是“四舍六入五成双”的https://www.zhihu.com/question/20128906print(python 3的 round 函数:四舍六入五成双)print(\nround(-3.5) , …
Visual Studio UML Activity Diagram(2)
昨天的图文介绍了Visual Studio UML Activity Diagram中所涉及的对象,今天图文我们来介绍这些对象的属性部分并给出UML关于Activity Diagram的元模型类图。通常情况下,我们在做一套软件系统的时候,对甲方业务流程并不熟悉,如果直接…

Go 语言中手动内存管理
2019独角兽企业重金招聘Python工程师标准>>> Go 语言是自带GC的, 相对C语言等的手动内存管理省事很多, 弊端便是会消耗更多的内存, 以及在GC时导致整个程序的停顿. 在某些特殊场合, 如果能够可选地手动进行内存管理, 效果会好不少. Go 目前的 GC 实现比较简单(mark-…
依赖倒转原则(Dependency Inversion Principle,DIP)
前面两篇图文介绍了“开闭原则”和“里氏替换原则”。开发出对扩展开放,对修改封闭的系统是程序员的目标,而今天所介绍的“依赖倒转原则”正是实现这一目标的途径之一,而“里氏替换原则”为这一途径提供了保证。大家或许发现,我写…

细说浏览器特性检测(2)-通用事件检测
在上一篇中介绍了jQuery1.4版本新增的几个浏览器特性检测方案和具体的目的,本文将以事件为中心,介绍一个较为完整、通用的事件检测方案。 事件检测,即检测某一事件在不同的浏览器中是否存在(可用),这在编写…

robot简单功能测试脚本设计(例子)
以学生管理系统的添加一个学生信息为例子页面对象:editbox(姓名),button(添加)数据要求:1 姓名不能为空2 姓名不能重复程序结构1 点button,弹出对话框“姓名不能为空”2 输入姓名,点…
里氏替换原则(Liskov Substitution Principle,LSP)
昨天图文介绍了软件设计的一个基本原则“开闭原则”,而“开闭原则”的核心就是通过抽象把需求变化进行隔离,这种想法可以通过“里氏替换原则”进行保证。理解“里氏替换原则”也是理解面向对象中“运行时多态”的关键。希望大家仔细体会。

在IIS7里配置 ISAPI,运行dll程序,总提示下载dll
在IIS7里配置 ISAPI,运行dll程序,总提示下载dll,只需要把对应站点应用程序池里面的高级设置里的启用32位应用程序,设为“true"即可。

MySQL数据库高可用集群搭建-PXC集群部署
Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法。集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。 PXC原理描述: 分布式系统的CAP理论: C:一致…

搭建Jupyter学习环境
python notebook是一个基于浏览器的python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。jupyter是它的升级版,它的安装也非常方便,一般Anaconda安装包中会自带。安装好以后直接输入jupyter notebook便可…

[转贴]2006十大经典语句
1. 骑白马的不一定是王子,他可能是唐僧; 2. 带翅膀的也不一定是天使,他可能是鸟人。 3. 站的更高,尿的更远。 4. 穿别人的鞋,走自己的路,让他们找去吧, 5. 我不是随便的人。我随便起来不是人 6.…
开放-封闭原则(The Open-Closed Principle,OCP)
自己设计的软件系统“易于维护”、“扩展性好”、“可重用”、“具有灵活性”,这是每位程序员所追求的目标。“开闭原则”为我们指明了方向,即我们所设计的软件尽量满足“开闭原则–对扩展开放,对修改关闭”,这样就能降低需求不断…

Interesting visualization tools for profiling.
Interesting visualization tools for profiling. http://dtrace.org/blogs/brendan/2012/03/17/linux-kernel-performance-flame-graphs/ http://dtrace.org/blogs/brendan/2013/07/01/detecting-outliers/转载于:https://www.cnblogs.com/kungfupanda/p/3245651.html

javascript网页开发 第二章
HTML高级部分 2.1. 表格标签 2.1.1 <table></table> Bgcolor 设置表格的背景色 Border 设置边框的宽度 Bordercolor 设置边框的颜色 Bordercolorlight 设置边框明亮部分的颜色 Bordercolordark 设置边框昏暗部分的颜色 Cellspacing 设置单元格之间的间隔大小 Cel…

ORACLE JET BASIC TABLE
转载于:https://blog.51cto.com/feitai/1917581