最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
test ALL=(ALL) ALL
表示test可以使用sudo 任意提升权限
(5)更改文件的执行权(参考http://blog.csdn.net/taiyang1987912/article/details/40651623):
要使某个可执行的文件在root账户下也不具备root权限就可以这样:
chmod u+s 可执行文件
(6)apache降权
vi /etc/httpd/conf/httpd.conf
用/user 找到
然后改成你想要的用户,centos7 不能将用户改成root用户
然后重启apache:service httpd restart
apache禁止命令执行:
打开/etc/php.ini文件,
查找到 disable_functions ,添加需禁用的函数名
比如:phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
参考链接如下:
http://www.jb51.net/article/29750.htm
修改之后要重启apache才能生效
apache 禁止某个目录的执行脚本:
在httpd.conf中添加以下内容:(httpd.conf 一般在/etc/httpd/conf/httpd.conf)
<Directory “/var/www/linuxyw/Uploads”>
<Files ~ “.php”>
Order allow,deny
Deny from all
禁止目录浏览
编辑文件:sudo vi /etc/httpd/confhttpd.conf
搜索options
找到 Options Indexes FollowSymLink
去掉 Indexes 之后就好
改为: Options FollowSymLink
以下转自 独自等待的博客:http://www.waitalone.cn/php-web-security-for-linux.html
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo #禁用的函数
expose_php = off #避免暴露PHP信息
display_errors = off #关闭错误信息提示
register_globals = off #关闭全局变量
enable_dl = off #不允许调用dl
allow_url_include = off #避免远程调用文件
session.cookie_httponly = 1 #http only开启
upload_tmp_dir = /tmp #明确定义upload目录
open_basedir = ./:/tmp:/home/wwwroot/ #限制用户访问的目录
(7)
rsync的安全
设置rsync的密码
首先 编辑/etc/rsyncd.conf 命令是:sudo vi /etc/rsyncd.conf
在模块下面添加auth users=用户 (服务器中要有的用户)
然后指定密码文件 secrets file=/etc/rsyncd.secrets
在/etc/ 下面创建一个rsyncd.secrets
内容:
第一个字段是用户名,第二个是密码
(8)redis 密码
在redis.conf中,打开配置文件找到
#requirepass foobared
去掉注释,然后在 requirepass 后面写入自己的密码
然后重启redis,加载配置文件并让其在后台运行(记住不要以root权限运行redis):
.redis-server …/redis.conf &
注:…/redis.conf 是配置文件
&是后台运行
连接就是:redis-cli -h 192.168.31.144 -a heheda
-a后面是密码
如果只是让本地访问redis的话就在在配置文件找到bind,然后在后面添加127.0.0.1
(9)ftp的安全:
[1]安装vsftp:
yum -y install vsftpd
[2]关闭匿名访问:
打开/etc/vsftpd/vsftpd.conf
将anonymous_enable=NO
[3]禁止其他用户访问:
首先建立ftp用户:useradd ftptest -d 指定的家目录路径 -s /sbin/nologin
然后打开/etc/vsftpd/vsftpd.conf 修改:
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
如果userlist_deny=YES的话,那么配置文件/etc/vsftpd/user_list里面的内容就是禁止登陆的用户
Ps:添加禁止ftp登陆用户的小窍门:
sudo awk -F ‘:’ ‘{print $1}’ /etc/passwd > /tmp/user.txt #在终端执行这个命令,将所有的用户保存出来
cp /tmp/user.txt /etc/vsftpd/user_list #复制到/etc/vsftpd/user_list
vi /etc/vsftpd/user_list去掉可以登陆的用户
[4]限制登陆用户在自己的家目录里面:
在配置文件中:/etc/vsftpd/vsftpd.conf
chroot_local_user=YES #这个代表所有用户都限制在家目录里面
allow_writeable_chroot=YES #添加这个选项就可以在家目录里面上传东西
[5]打开日志:
在配置文件中:/etc/vsftpd/vsftpd.conf
xferlog_enable=YES #激活日志文件
xferlog_file=/var/log/xferlog 日志文件位置
最后重启ftp:systemctl restart vsftpd.service
(10)samba 4.2.10配置:
安装samba:
yum install samba samba-client
【1】配置匿名访问
编辑文件:
sudo vi /etc/samba/smb.conf
在里面添加:
[global]
workgroup = WORKGROUP
security = user
guest account = niexinming
[allshare]
path = /home/niexinming/share
comment = share allshare
writeable = yes
browseable = yes
public = yes
guest ok=yes
说明:
[allshare]:是共享的名称
path:是要共享的路径
这个配置文件里面一定要加
guest account = niexinming
这个后面的niexinming是linux里面任意的账户,如果不加这个配置就会出现:
NT_STATUS_ACCESS_DENIED listing \*
这个错误
或者出现:
没有权限访问的错误
【2】基于身份认证的访问:
首先你要在系统中添加一个账户用于smb
sudo useradd smbuser -s /sbin/nologin
sudo passwd smbuser
然后把这个账户加入到smb的账户体系里面
pdbedit –a smbuser #新建Samba账户,必须先存在该系统用户
sudo smbpasswd -a smbuser #新建Samba账户,必须先存在该系统用户
sudo smbpasswd -e smbuser #激活该账户
然后打开:sudo vi /etc/samba/smb.conf 添加:
[work]
path=/home/niexinming/testshare
comment = share allshare
writeable = yes
browseable = yes
public = no
guest=no
valid users = smbuser
admin users=smbuser
说明:
valid users=允许访问该共享的用户
admin users=该共享的管理者
其中valid users是smb用户认证的基础
而缺少admin users则会报错:
NT_STATUS_ACCESS_DENIED listing \*
如果还报这个错就去设置一下selinux 或者 暂时将selinux 关闭:sudo setenforce 0
最后上完整配置文件:
[global]
workgroup = WORKGROUP
security = user
guest account = root
netbios name = workgroup
[allshare]
path = /home/niexinming/share
comment = share allshare
writeable = yes
browseable = yes
public = yes
guest ok=yes
[work]
path=/home/niexinming/testshare
comment = share allshare
writeable = yes
browseable = yes
public = no
guest=no
valid users = smbuser
admin users=smbuser
(11)配置selinux :参考视频(http://www.tudou.com/programs/view/6fX2faGtu0g/)
首先安装semanage:yum -y install policycoreutils-python
检查进程的安全上下文
ps -Z
检查文件与目录的安全上下文
ls -Z
恢复目录文件的上下文访问权限
restorecon -R -v 目录
设置文件的上下文
chcon -t 文件上下文权限 文件
比如/var/www/html 有个文件test.txt不想让httpd访问
就这样设置:
chcon -t user_home_t test.txt
如果是改目录就是
chcon -R -t user_home_t 目录
将某个文件的权限复制到另一个文件上
chcon –reference=源文件 目标文件
(12)linux日志
【1】who:默认输出包括用户名,终端类型,登陆日期及远程主机。使用该命令,系统管理员可以查看当前的系统存在哪些不法用户,从而对其进行审计和处理
【2】users:用单独的一行打印出当前登陆的用户,每个显示的用户名对应一个登陆会话。如果一个用户有不止一个登陆会话,那他的用户名将显示相同的次数。
【3】last:显示以前登陆过的用户。系统管理员可以周期的对这些用户的登陆情况进行审计和考核,从而发现问题。还可以用 last 用户 来查看指定用户历史登陆信息
日志位置在:/var/log/wtmp
【4】lastlog:可以使用该指令检查某特定用户上次登陆的时间,并格式化输出上次登陆的日志/var/log/lastlog的内容。它根据uid排序显示登陆名,端口号和上次登陆的时间,如一个用户从未登陆过,lastlog显示【**从未登陆过**】
【5】apache的访问日志在:/var/log/apache2/access.log
错误日志在:/var/log/apache2/error.log
(12)iptables 配置:
【1】禁止ping(自己能ping出去,别人ping不到你)
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
【2】避免被扫描(检测到扫描之后会禁止这个ip的访问)
将下面的文本保存成scan.sh,然后sudo bash scan.sh
#script is for stoping Portscan and smurf attack
### first flush all the iptables Rules
iptables -F
# INPUT iptables Rules
# Accept loopback input
iptables -A INPUT -i lo -p all -j ACCEPT
# allow 3 way handshake
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
### DROPspoofing packets
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
iptables -A INPUT -d 224.0.0.0/4 -j DROP
iptables -A INPUT -s 240.0.0.0/5 -j DROP
iptables -A INPUT -d 240.0.0.0/5 -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 239.255.255.0/24 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP
![](https://i-blog.csdnimg.cn/blog_migrate/67a7ab1cb477ab52f92c8bd2c7ebcbdf.png)
最全的Linux教程,Linux从入门到精通
======================
1. **linux从入门到精通(第2版)**
2. **Linux系统移植**
3. **Linux驱动开发入门与实战**
4. **LINUX 系统移植 第2版**
5. **Linux开源网络全栈详解 从DPDK到OpenFlow**
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://i-blog.csdnimg.cn/blog_migrate/9e13e8a2c79262a0a58eada81c722347.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://i-blog.csdnimg.cn/blog_migrate/c34b503f3271f358bf4e505ee0f59484.jpeg)
**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**