整理linux.docx
《整理linux.docx》由会员分享,可在线阅读,更多相关《整理linux.docx(24页珍藏版)》请在冰豆网上搜索。
整理linux
1、安装vmwaretools
2、安装本地yum软件仓库,路径为/root/rhel
Cd/media
Ls
Cd/RHEL+tab
CdPackages/
(1)Lsdeltarpm*
(2)Lspython-deltarpm*
(3)Lscreaterepo*
rpm-ivh
(1)
(2)(3)
Mkdir/root/rhel6
Cd..
Pwd
Cp-r*/root/rhel6
Createrepo/root/rhel6
Cd/etc/yum.repos.d/
Ls
Vimrhel.repo
Pwd
.使用yum安装gcc服务。
yuminstall-ygcc
Yun源配置文件
[rhel6]
name=RedHatEnterpriseLinux6
baseurl=file:
///root/rhel6
enable=1
gpgcheck=1
gpgkey=file:
///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3、新建工作目录/data。
Mkdir/data
4、切换至工作目录/data,找到/etc下权限为777的文件复制到当前目录。
Find/etc/*-perm777-execcp-r{}./\;
5、查找二进制命令service的绝对路径
whereisservice
service:
/sbin/service/usr/share/man/man8/service.8.gz
6.查找/etc/rc.d下文件为rc文件并复制到当前目录
find/etc/rc.d-name"rc"-execcp{}/tmp/mydir\;
7、查找/etc/fstab并复制到当前目录使用gzip压缩当前fstab
find/etc-namefstab-execcp{}./\;
gzipfstab
5、在/tmp下打包压缩/etc所有文件。
压缩后的文件名为etc.tar.bz2。
cd/tmp
tarzcvfetc.tar.bz2/etc
6、从/etc/inittab找到含有tty的行复制到文件file9
greptty/etc/inittab>file9
6、查找所有属于用户student的gb文件,并保存查找结果
Find/-name/student/gb>student1
7、统计系统当前所有用户个数。
Cut-d`:
`-f1/etc/passwd|wc-l
8、统计系统所有进程个数。
Ls/proc|wc-l
9、显示当前系统cpu信息。
Cat/proc/cpuinfo
查看cpu信息:
#grep“modelname”/proc/cpuinfo
#more/proc/cpuinfo
10、显示系统内核版本以及内存使用情况。
及主机名(hostname)
查看系统內核版本:
#uname-a
查看內存使用情況:
#free
查看內存的信息:
#more/proc/meminfo
查看系统资源使用情況:
(每5秒刷新一次)#vmstat5
查看BIOS:
#dmidecode-sbios-version
查看网卡:
#kudzu--probe--class=network
查看HBA卡:
#cd/sys/class/scsi_host/host
查看系统版本:
#more/etc/redhat-release
查看內核版本GCC版本:
#more/proc/version
查看cpu的位数:
#getconfLONG_BIT
查看linux进程:
#top
查看磁盘i/o:
(每2秒刷新一次)#iostat-d-x/dev/sdc32
查看用戶磁盘权限:
#quota[-u]
查看其他硬件信息:
#dmidecode|more
11、安装telnet服务,并由外部主机telnet远程登录虚拟机。
12、查看vsftpd服务的当前以及启动时状态,修改vsftpd的引导启动状态为关闭。
Servicevsftpdstatus
Servicevsftpdstart
Servicevsftpdstop
13、安装vsftpd服务,并由外部主机使用匿名用户远程登录虚拟机。
rpm–qa|grepvsftpd
mount/dev/cdrom/mnt/cdrom
cd/mnt/cdrom/RedHat/RPMS
rpm–ivhvsftpd-1.1.3.i386.rpm
umount/dev/cdrom
Servicevsftpdstart
登陆:
telnetIP
14、使用yum安装vsftpd软件包,并启动它。
Yum-yinstsllvsftpd
servicevsftpdstart(启动vsftpd)
pstree|grepvsfptd(检查vsftpd是否已运行)
15、安装vsftpd软件包,并启动vsftpd服务,验证从外部主机ftp匿名用户登录虚拟机。
16、查看vsftpd服务的当前以及启动时状态,修改vsftpd的引导启动状态为关闭。
Servicevsftpdstatus
Servicevsftpdstart
Servicevsftpdstop
17、查看atd、crond服务的当前以及启动时状态,修改atd的引导启动状态为关闭。
Chkconfig--listatd
Chkconfig--listcrond
Serviceatdstop{chkconfig--level0123456atdoff}
18、安装vsftpd服务,并通过外部主机使用匿名用户验证。
19、将/etc转换成ISO文件。
Mkisofs--r-oetc.ISO/etc
20、为当前虚拟机系统配置网络接口卡配置多个ip地址:
第一个地址为192.168.1.10x,第二个地址为172.16.10.x,其中x为外部windowsip地址。
21、设置虚拟机ip地址,虚拟机网络接口卡设置为桥接。
虚拟机ip地址与外部windowsip地址关系为:
外部主机为192.168.1.x,虚拟机为192.168.1.10x。
要求外部主机能够联通内部主机。
22、定义iptables防火墙如下规则:
a)禁止外部主机ping本机。
iptables–AINPUT–picmp–jDROP
b)禁止ftp服务。
iptables–AINPUT–ptcp-mmultiport20,21–jDROP
c)禁止所有本机从eth0进入并转发的数据包。
iptables–AFORWARD-ieth0–jDROP
d)允许本机所有的输出数据包。
iptables-AOUTPUT–jACCEPT
e)禁止所有输入本机的tcp连接
iptables–AINPUT–ptcp–jDROP
f)允许访问本机http服务,禁止smtp服务
iptables–AINPUT–ptcp–dport80–jACCEPT
iptables–AINPUT–ptcp--dport25–jDROP
g)禁止所有源地址是172.16.4.17的数据包
iptables–AINPUT–s172.16.4.17-jDROP
h)允许所有udp数据报
iptables–AINPUT–pudp–jACCEPT
iptables–AOUTPUT–pudp–jACCEPT
i)对所有访问本机pop3端口的访问放行但要记录日志。
23、#iptables-AINPUT-s127.0.0.1-picmp-jLOG--log-prefix"iptablesicmp-localhost"←保存从eth0进入的packet纪录
a)
Iptables-AINPUT-ptcp--dport110-jACCEPT
Iptables-NLOGGING
Iptables-AINPUT-jLOGGING
Iptables-ALOGGING-jACCEPT
b)默认规则为拒绝
iptables–PINPUTDROP
Iptables-save>iptables.bak
Iptables-F
24、完成以下脚本
(1)在上午8:
30删除/account目录下的全部子目录和全部文件;
(2)从早8:
00~下午6:
00每小时读取/account目录下x1文件全部数据加入到/backup目录下的bak01.txt文件内;
(3)每逢星期一下午6:
30将/data目录下的所有目录和文件归档并压缩为文件:
backup.tar.gz;
(4)在下午6:
25将IDE接口的移动设备卸载(假设设备名为hdc);
14.有如下单路由的屏蔽子网防火墙体系,需满足以下数据包过滤要求。
222.177.209.155
1)dmz222.177.209.154主机提供Http服务,222.177.209.155主机提供ftp服务,要求要求外网主机及内网主机均可访问http服务,ftp服务只向内网主机开放。
iptables-save>iptablesrule.bak
iptables–F
iptables-AINPUT–ptcp–dport80-d222.177.209.154–jACCEPT
iptables-AINPUT–ptcp-mmultiport20,21-s192.168.1.2-d222.177.209.155–jACCEPT
2)外网主机221.236.12.137不可访问内网192.168.1.2主机,但是内网主机192.168.1.2可以访问外网221.236.12.137的http服务。
iptables-AINPUT-s222.177.209.137-d192.168.1.2–jDROPiptables-AINPUT-s192.168.1.2-d222.177.209.137–ptcp–dport80–jACCEPT
3)内网主机192.168.1.2ping其他主机,但其拒绝其他所有主机ping本机。
防火墙使用iptbales/netfilter,写出过滤规则,要求从清除已有规则开始。
iptables–AINPUT–picmp-d192.168.1.2–jDROP
iptables–AINPUT–picmp-s192.168.1.2–jACCEPT
iptables-PDROP
1、设置本机ip地址(netconfig)或者ifconfig
2、重启网络服务(servicenetworkrestart)
3、启动vsftpd服务servicevsftpdstart
4、测试ftp服务:
ftp本机ip
25、新建一组名称g1,gid125
Groupadd-g125g1
26、新建用户名称user,要求:
uid125,gid125,注释信息:
thisismyuser,主目录/user。
Groupadd-u125-g125-c“thisismyuser”-d/useruser
27、新建组group1,新建用户user1的扩展组为group1。
groupadd–ggroup1groupname
useradd[–ggroup1]–Ggroupuser1
28、在/tmp/test下新建一文件filetest,修改该文件的组为group1。
设定该文件权限为用户有所有权限,同组用户、其他用户无任何权限。
mkdir/tmp/test/filetest
chgrp/tmp/test/filetestgroup1
touch/home/users/tmp/test/filetest
chmod700/tmp/test/filetest
29、使得group1组中只有用户user1可以对filetest读写。
Setfacl–mg:
group1u:
user1:
rwfiletest
Getfacl-cfile
30、批量添加用户user1,use2,user3,user4;它们的登录口令分别为111111,222222,333333,444444,验证user1、user2、user3、use4的登录。
31、熟悉使用useradd的参数:
:
x
32、写一个脚本,计算所有位置参数之和。
count=0
while[$#!
=0]
do
count=$(($count+$1))
#count=`expr$count+$1`
shift
done
echocountis$count
33、求ax2+bx+c=0的根,结果保留两位小数。
clear
echo“inputabc”
readabc
echo“$a”x”^2+$b”x”+$c=0解得:
”(给x加引号是把x当作字符来输出)
if[$a-eq0]
thenif[$b-eq0]
thenecho“无解”
elsex=`echo“scale=2;-$c/$b”|bc`
echo“x1=x2=$x”
fi
eliftest$(($b*$b-4*$a*$c))-lt0
thenecho“无解”
eliftest$(($b^2-4*$a*$c))-eq0
thenx=`echo“scale=2;-$b/(2*$a)”|bc`
echo“x1=x2=$x”
elsex1=`echo“scale=2;((-$b+sqrt($b*$b-4*$a*$c))/(2*$a))”|bc`
x2=`echo“scale=2;((-$b-sqrt($b*$b-4*$a*$c))/(2*$a))”|bc`
echo“x1=$x1,x2=$x2”
fi
34、完成以下脚本:
设计一系统管理菜单根据不同选项实现以下功能:
1)、新建用户:
批量新建30个用户账号,id不限,所有新建用户只允许在主目录工作。
2)、判断用户合法性:
键盘读入刚才新建的用户账号,判断其是否合法,若合法,显示用户主目录信息并显示“你是合法用户”,否则,显示“你是非法用户,不能登录”
3)、用户账号管理:
指定用户(键盘输入)禁止登陆(锁定)及解锁。
并给出相应信息。
4)、备份日志文件:
备份/var/log下所有文件,文件名为log_tar.gz,备份结束后删除/var/log下所有文件。
5)、清理临时用户:
删除新建的用户并执行账号合法性检查。
6)、退出
35、在当前系统时间5分钟后,复制/etc/inittab至/tmp
1、有如下要求:
利用循环自动新建50个用户名,用户名命名规则为user01-usrer50,uid1000-1050。
需要新建一工作组groupc,gid1000。
以上新建用户均属于groupc。
使用for循环以及while循环分别实现。
(1)for
groupadd-g1000groupc
for((i=1;i<=50;i++))
do
iftest$i-lt10
then
useradd-u$((1000+$i))-ggroupcuser0$i
else
useradd-u$((1000+$i))-ggroupcuser$i
fi
done
(2)while
groupadd-g1000groupc
i=1
whiletest$i-le50
do
iftest$i-lt10
then
useradd-u$((1000+$i))-ggroupcuser0$i
else
useradd-u$((1000+$i))-ggroupcuser$i
fi
i=$(($i+1))
done
2、使用程序删除上题中50个用户。
i=1
whiletest$i-le50
do
iftest$i-lt10
then
userdel-ruser0$i
else
userdel-ruser$i
fi
i=$(($i+1))
done
groupdelgroupc
3、在/userdata目录下建立50个目录,即user01~user50,并设置每个目录的权限,其中其他用户的权限为:
读;文件所有者的权限为:
读、写、执行;文件所有者所在组的权限为:
读、执行。
i=1
whiletest$i-le50
do
iftest$i-lt10
then
mkdir/userdata/uear0$i
chmodu=rwx,g=rx,o=rx/userdata/user0$i
else
mkdir/userdata/user$i
chmodu=rwx,g=rx,o=rx/userdata/user$i
fi
i=$(($i+1))
done
4、判断一文件是不是字符设备文件,如果是将其拷贝到/dev目录下。
echo"Inputafile"
read$file
iftest-e$file
then
if[-c$file]
then
cp$file/dev
else
echo"$fileisnotCharacterdevicefile."
fi
else
echo"$fileisnotfound."
fi
4、计算1.5*4+0.025**3/7-1.25的值,结果保留3位小数。
a=‘echo“scale=3 ;1.5*4+0.025*3*3/7-1.25”|bc’
echo$asc
5、编制脚本完成以下功能:
5-1:
键盘读入四个数字a,b,c,d
要求输入时有提示
计算四个数字的平房和并输出结果,结果保留4位小数。
echo"inputabcd"
readabcd
e=`echo"scale=4;$a^2+$b^2+$c^2+$d^2"|bc`
echo"a^2+b^2+c^2+d^2=$e"
IPTABLES-AINPUT-ilo-pall-jACCEPT(如果是INPUTDROP)
IPTABLES-AOUTPUT-olo-pall-jACCEPT(如果是OUTPUTDROP
#iptables-AINPUT-s127.0.0.1-picmp-jLOG--log-prefix"iptablesicmp-localhost"←保存从eth0进入的packet纪录
[root@tp~]#serviceiptablesrestart
2.iptables的工作机制
从上面的发展我们知道了作者选择了5个位置,来作为控制的地方,但是你有没有发现,其实前三个位置已经基本上能将路径彻底封锁了,但是为什么已经在进出的口设置了关卡之后还要在内部卡呢?
由于数据包尚未进行路由决策,还不知道数据要走向哪里,所以在进出口是没办法实现数据过滤的。
所以要在内核空间里设置转发的关卡,进入用户空间的关卡,从用户空间出去的关卡。
那么,既然他们没什么用,那我们为什么还要放置他们呢?
因为我们在做NAT和DNAT的时候,目标地址转换必须在路由之前转换。
所以我们必须在外网而后内网的接口处进行设置关卡。
这五个位置也被称为五个钩子函数(hookfunctions),也叫五个规则链。
1.PREROUTING(路由前)
2.INPUT(数据包流入口)
3.FORWARD(转发管卡)
4.OUTPUT(数据包出口)
5.POSTROUTING(路由后)
这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。
3.防火墙的策略
防火墙策略一般分为两种,一种叫“通”策略,一种叫“堵”策略,通策略,默认门是关着的,必须要定义谁能进。
堵策略则是,大门是洞开的,但是你必须有身份认证,否则不能进。
所以我们要定义,让进来的进来,让出去的出去,所以通,是要全通,而堵,则是要选择。
当我们定义的策略的时候,要分别定义多条功能,其中:
定义数据包中允许或者不允许的策略,filter过滤的功能,而定义地址转换的功能的则是nat选项。
为了让这些功能交替工作,我们制定出了“表”这个定义,来定义、区分各种不同的工作功能和处理方式。
我们现在用的比较多个功能有3个:
1.filter定义允许或者不允许的
2.nat定义地址转换的
3.mangle功能:
修改报文原数据
我们修改报文原数据就是来修改TTL的。
能够实现将数据包的元数据拆开,在里面做标记/修改内容的。
而防火墙标记,其实就是靠mangle来实现的。
小扩展:
对于filter来讲一般只能做在3个链上:
INPUT,FORWARD,OUTPUT
对于nat来讲一般也只能做在3个链上:
PREROUTING,OUTPUT,POSTROUTING
而mangle则是5个链都可以做:
PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
iptables/netfilter(这款软件)是工作在用户空间的,它可以让规则进行生效的,本身不是一种服务,而且规则是立即生效的。
而我们iptables现在被做成了一个服务,可以进行启动,停止的。
启动,则将规则直接生效,停止,则将规则撤销。
iptables还支持自己定义链。
但是自己定义的链,必须是跟某种特定的链关联起来的。
在一个关卡设定,指定当有数据的时候专门去找某个特定的链来处理,当那个链处理完之后,再返回。
接着在特定的链中继续检查。
注意:
规则的次序非常关键,谁的规则越严格,应该