原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2664.html https://www.myzhenai.com/thread-18006-1-1.html
关键词: Linux 服务器 安全 系统 配置 端口 权限 漏洞
最近,Windows系统下发生了一个WannaCry勒索者病毒,弄得世界各国政府和商业机构心神不定, 这个就是因为使用了Windows下的漏洞来实现攻击的, 所以说现在社会对电脑的依赖, 同时也会因电脑受到很大的影响, 这就需要我们提高系统安全意识. 尽管Linux的安全系数要比Windows高, 但是因为现在很多商业公司, 大型网站和企业都在使用Linux系统部署商业环境和服务器环境, 对于这一些也需要我们提高意识, 更加重视.
一般来说, 服务器受到的攻击最多的是Ddos(洪水)攻击, 还有就是CC(Challenge Collapsar)对于这两种攻击, 我们除了增强物理防火墙外,好像没有其他更好的办法了, 但是今天我们说的不是抵抗这两种攻击,我们主要说的是针对扫描和入侵的抵抗攻击. 这个除了能保护我们数据安全之外, 同时也能更好的为用户负责, 因为很多针对服务器的入侵, 最多的是挂马,向外发包,垃圾邮件,窃取用户密码数据等……. 以下的方法照样适用于使用Linux系统的个人用户.
服务器被入侵一般都是以下几种情况
一: 漏洞, 又分为服务器环境漏洞和使用程序的漏洞
二: 弱口令, 服务器账号或管理员账号的密码承在简单的弱口令, 被黑客猜解出来了, 如果经常看服务器系统日志的朋友可能会知道, 经常会有陌生的ip在扫描服务器指定的端口,比如21端口
三: 权限设置不合理, 如果权限设置不合理的话, 黑客很容易就能通过一个简单的脚本或几行代码就能进行提权,进行破坏.
以下我们就将这几项一一的进行说明和演示, 虽然说不能将我们的系统设置得固若金汤, 但起码可以增强被坡解的难度. 起到一定的保护作用.
漏洞: 根据自己的系统环境,将以下这些代码保存为.sh文件,然后设置crond(crontabe)定时器里, 就能实现无人值守自动更新系统. 定时之前请手动执行一次脚本,查看有无错误.
请参考: https://www.myzhenai.com.cn/post/2610.html
系统自动更新脚本
RedHat派系,包含 fedora centos
# !/bin/bash e=`yum update -y | grep -e "kernel"` if [ $e == "" ];then echo "no update" else reboot fi
命令注释
# !/bin/bash e=`yum update -y | grep -e "kernel"` #更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核 if [ $e == "" ];then #如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句 echo "no update" else #else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统 reboot #reboot是重新启动系统命令 fi #fi是判断结束语句
# !/bin/bash apt-get update -y e=`apt-get upgrade -y | grep -e "kernel"` if [ $e == "" ];then echo "no update" else reboot fi
命令注释
# !/bin/bash apt-get update -y e=`apt-get upgrade -y | grep -e "kernel"` #更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核 if [ $e == "" ];then #如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句 echo "no update" else #else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统 reboot #reboot是重新启动系统命令 fi #fi是判断结束语句
弱口令:这一块牵扯的有点多, 分账户密码更改和端口更改,我一步一步来解释, 为什么更改了账户密码后还需要更改默认的端口呢, 因为服务器上很多服务或者我们安装的服务都有一个默认的端口,而黑客很多时候就是通过扫描这些端口来实现入侵, 我们通过更改端口后,那么黑客扫描的端口就是不存在的了,即使扫描了也是不会扫描出什么来的.
密码更改:
#passwd user 先输入旧密码,再输入两次相同的新密码,输入的密码不可见, user是用户名,即账户, 比如 passwd root 即是更改root账户的密码,
[RucLinux@localhost ~]$ passwd --help 用法: passwd [选项...] < 帐号名称> -k, --keep-tokens 保持身份验证令牌不过期 -d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作) -l, --lock lock the password for the named account (root only) -u, --unlock unlock the password for the named account (root only) -e, --expire expire the password for the named account (root only) -f, --force 强制执行操作 -x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作) -n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作) -w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作) -i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作) -S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作) --stdin 从标准输入读取令牌(只有根用户才能进行此操作) Help options: -?, --help Show this help message --usage Display brief usage message
端口更改涉及到的端口有很多, 分别代表着不同的服务, 比如 21 22 23 25 80 110 443 445 3306等Linux下常见的端口
请参考: https://www.myzhenai.com.cn/post/1783.html
21端口 FTP服务端口 22端口 Ssh连接端口 23端口 Telnet服务端口 25端口 Smtp邮件发送端口 80端口 Http传输协议端口,这端口最好不要改 110端口 Pop3邮件收取端口 443端口 Https安全超文本传输协议端口 445端口 Linux下这个端口好像没有开启 3306端口 Mysql数据库默认端口
查看端口命令 netstat lsof
[RucLinux@localhost ~]$ netstat --help usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--help} netstat [-vnNcaeol] [ ...] netstat { [-veenNac] -I[ ] | [-veenNac] -i | [-cnNe] -M | -s } [delay] -r, --route display routing table -I, --interfaces= display interface table for -i, --interfaces display interface table -g, --groups display multicast group memberships -s, --statistics display networking statistics (like SNMP) -M, --masquerade display masqueraded connections -v, --verbose be verbose -n, --numeric don't resolve names --numeric-hosts don't resolve host names --numeric-ports don't resolve port names --numeric-users don't resolve user names -N, --symbolic resolve hardware names -e, --extend display other/more information -p, --programs display PID/Program name for sockets -c, --continuous continuous listing -l, --listening display listening server sockets -a, --all, --listening display all sockets (default: connected) -o, --timers display timers -F, --fib display Forwarding Information Base (default) -C, --cache display routing cache instead of FIB -T, --notrim stop trimming long addresses -Z, --context display SELinux security context for sockets : Name of interface to monitor/list. ={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom =Use '-A ' or '-- '; default: inet List of possible address families (which support routing): inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT X.25)
[RucLinux@localhost ~]$ lsof --help lsof: illegal option character: - lsof: -e not followed by a file system path: "lp" lsof 4.82 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s] [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s] [+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names] Defaults in parentheses; comma-separated set (s) items; dash-separated ranges. -?|-h list help -a AND selections (OR) -b avoid kernel blocks -c c cmd c ^c /c/[bix] +c w COMMAND width (9) +d s dir s files -d s select by FD set +D D dir D tree *SLOW?* +|-e s exempt s *RISKY* -i select IPv[46] files -l list UID numbers -n no host names -N select NFS files -o list file offset -O avoid overhead *RISKY* -P no port names -R list paRent PID -s list file size -t terse listing -T disable TCP/TPI info -U select Unix socket -v list version info -V verbose search +|-w Warnings (+) -X skip TCP&UDP* files -Z Z context [Z] -- end option scan +f|-f +filesystem or -file names +|-f[gG] flaGs -F [f] select fields; -F? for help +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0) +m [m] use|create mount supplement +|-M portMap registration (-) -o o o 0t offset digits (8) -p s exclude(^)|select PIDs -S [t] t second stat timeout (15) -T qs TCP/TPI Q,St (s) info -g [s] exclude(^)|select and print process group IDs -i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list] +|-r [t[m]] repeat every t seconds (15); + until no files, - forever. An optional suffix to t is m ; m must separate t from and is an strftime(3) format for the marker line. -s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s). -u s exclude(^)|select login|UID set s -x [fl] cross over +d|+D File systems or symbolic Links names select named files or files on named file systems Anyone can list all files; /dev warnings disabled; kernel ID check disabled.
netstat -ntlp 查看当前所有tcp端口· netstat -ntulp | grep 80 查看所有80端口使用情况· netstat -an | grep 3306 查看所有3306端口使用情况· lsof -i :22 知道22端口被哪个进程占用 lsof -c abc 显示abc进程现在打开的文件 lsof -g gid 显示归属gid的进程情况 lsof -n 不将IP转换为hostname,缺省是不加上-n参数 lsof -p 12 看进程号为12的进程打开了哪些文件 lsof -u username 查看用户打开哪些文件 lsof -i @192.168.1.111 查看远程已打开的网络连接
编辑器 vi vim
[RucLinux@localhost ~]$ vi --help VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34) 用法: vim [参数] [文件 ..] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t tag 编辑 tag 定义处的文件 或: vim [参数] -q [errorfile] 编辑第一个出错处的文件 参数: -- 在这以后只有文件名 -v Vi 模式 (同 "vi") -e Ex 模式 (同 "ex") -E Improved Ex mode -s 安静(批处理)模式 (只能与 "ex" 一起使用) -d Diff 模式 (同 "vimdiff") -y 容易模式 (同 "evim",无模式) -R 只读模式 (同 "view") -Z 限制模式 (同 "rvim") -m 不可修改(写入文件) -M 文本不可修改 -b 二进制模式 -l Lisp 模式 -C 兼容传统的 Vi: 'compatible' -N 不完全兼容传统的 Vi: 'nocompatible' -V[N][fname] Be verbose [level N] [log messages to fname] -D 调试模式 -n 不使用交换文件,只使用内存 -r 列出交换文件并退出 -r (跟文件名) 恢复崩溃的会话 -L 同 -r -A 以 Arabic 模式启动 -H 以 Hebrew 模式启动 -F 以 Farsi 模式启动 -T设定终端类型为 -u 使用 替代任何 .vimrc --noplugin 不加载 plugin 脚本 -P[N] 打开 N 个标签页 (默认值: 每个文件一个) -o[N] 打开 N 个窗口 (默认值: 每个文件一个) -O[N] 同 -o 但垂直分割 + 启动后跳到文件末尾 + 启动后跳到第 行 --cmd 加载任何 vimrc 文件前执行 -c 加载第一个文件后执行 -S 加载第一个文件后执行文件 -s 从文件 读入正常模式的命令 -w 将所有输入的命令追加到文件 -W 将所有输入的命令写入到文件 -x 编辑加密的文件 --startuptime Write startup timing messages to -i 使用 取代 .viminfo -h 或 --help 打印帮助(本信息)并退出 --version 打印版本信息并退出
[RucLinux@localhost ~]$ vim --help VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34) 用法: vim [参数] [文件 ..] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t tag 编辑 tag 定义处的文件 或: vim [参数] -q [errorfile] 编辑第一个出错处的文件 参数: -- 在这以后只有文件名 -v Vi 模式 (同 "vi") -e Ex 模式 (同 "ex") -E Improved Ex mode -s 安静(批处理)模式 (只能与 "ex" 一起使用) -d Diff 模式 (同 "vimdiff") -y 容易模式 (同 "evim",无模式) -R 只读模式 (同 "view") -Z 限制模式 (同 "rvim") -m 不可修改(写入文件) -M 文本不可修改 -b 二进制模式 -l Lisp 模式 -C 兼容传统的 Vi: 'compatible' -N 不完全兼容传统的 Vi: 'nocompatible' -V[N][fname] Be verbose [level N] [log messages to fname] -D 调试模式 -n 不使用交换文件,只使用内存 -r 列出交换文件并退出 -r (跟文件名) 恢复崩溃的会话 -L 同 -r -A 以 Arabic 模式启动 -H 以 Hebrew 模式启动 -F 以 Farsi 模式启动 -T设定终端类型为 -u 使用 替代任何 .vimrc --noplugin 不加载 plugin 脚本 -P[N] 打开 N 个标签页 (默认值: 每个文件一个) -o[N] 打开 N 个窗口 (默认值: 每个文件一个) -O[N] 同 -o 但垂直分割 + 启动后跳到文件末尾 + 启动后跳到第 行 --cmd 加载任何 vimrc 文件前执行 -c 加载第一个文件后执行 -S 加载第一个文件后执行文件 -s 从文件 读入正常模式的命令 -w 将所有输入的命令追加到文件 -W 将所有输入的命令写入到文件 -x 编辑加密的文件 --startuptime Write startup timing messages to -i 使用 取代 .viminfo -h 或 --help 打印帮助(本信息)并退出 --version 打印版本信息并退出
这里要说一下vi和vim的使用方法, 进入编辑模式请按键盘上的 i 键, 否则无法对文档进行编辑, 退出编辑模式请按Esc键. Shift+ZZ键是保存并退出vi或vim, Shift+ZQ键是不保存并退出vi或vim vi /etc/ssh/sshd_config 打开文件并编辑, 如果文件不存在,会创建新的文件.所以请确定路径和文件名再保存
端口更改:
更改ssh端口 vi /etc/ssh/sshd_config Port ** 将port前边的#号删除 **即是你需要的端口号,建议修改个大点的端口,以免和其他端口相冲突. vi /etc/services 22端口都修改成指定的端口,22端口要改成与sshd_config里的端口一致,Tcp和Udp都改成与上边的端口一致 更改Mysql端口 find / -name my.cnf 查找mysql的配置文件,如果你知道mysql的配置文件路径的话,不需要这一步 vi /***/my.cnf /***/是路径,这是打开编辑mysql的配置文件 找到port=这一行,将这一行后边的端口号改成你想要修改为的端口号,必须是维一的,不能和其他服务或端口有冲突. vi /etc/services 3306端口都修改成指定的端口,3306端口要改成与my.cnf里的端口一致,Tcp和Udp都改成与上边的端口一致 更改Ftp端口 这一个需要看你系统里安装的是什么样的Ftp服务,不同的服务有不同的配置文件. 不过我建议你还是不要安装Ftp,用Scp(Linux)或WinScp(windows)来进行数据上传下载 vsftpd find / -name vsftpd.conf 查找vsftpd的配置文件,如果你知道vsftpsd的配置文件路径的话,不需要这一步 vi /****/vsftpd.conf /****/是vsftpd.conf所在目录,在vsftpd.conf中增加 listen_port=*** 最后这个星号这里是自定义的端口号. vi /etc/services 21端口都修改成指定的端口,21端口要改成与vsftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致 proftpd find / -name proftpd.conf 查找proftpd的配置文件,如果你知道proftpd的配置文件路径的话,不需要这一步 vi /***/proftpd.conf port:21 将21改成你需要的端口 vi /etc/services 21端口都修改成指定的端口,21端口要改成与proftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致 pure-ftpd find / -name pure-ftpd.conf 查找pure-ftpd的配置文件,如果你知道pure-ftpd的配置文件路径的话,不需要这一步 vi /****/pure-ftpd.conf /****/是pure-ftpd.conf所在目录,Bind 127.0.0.1,21 Bind 0.0.0.0,*** 将# Bind前的#去掉,并将127替换成0 将21改成你指定的端口 vi /etc/services 21端口都修改成指定的端口,21端口要改成与pure-ftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
关闭端口和服务操作的方法:
注:Centos7和Centos6的方法是不一样的,请搜索Centos7的使用方法, 我们这里以Centos6演示. 关闭端口有两种方法,因为Linux下的端口开放是以服务的启动并监听来实现端口开放的, 我们停止服务也可以做到端口关闭,也可以利用防火墙来关闭端口, Linux下的防火墙是iptables, 在任何操作之后, 都需要执行 service iptables save和service iptables restart
关闭端口
service iptables save 保存操作 service iptables start 启动防火墙 service iptables restart 重启防火墙 service iptables stop 停止防火墙(只是本次停止,如果关联了服务的话,系统重新启动后还会被启动)
[root@localhost RucLinux]# iptables --help iptables v1.4.7 Usage: iptables -[ACD] chain rule-specification [options] iptables -I chain [rulenum] rule-specification [options] iptables -R chain rulenum rule-specification [options] iptables -D chain rulenum [options] iptables -[LS] [chain [rulenum]] [options] iptables -[FZ] [chain] [options] iptables -[NX] chain iptables -E old-chain-name new-chain-name iptables -P chain target [options] iptables -h (print this help information) Commands: Either long or short options are allowed. --append -A chain Append to chain --check -C chain Check for the existence of a rule --delete -D chain Delete matching rule from chain --delete -D chain rulenum Delete rule rulenum (1 = first) from chain --insert -I chain [rulenum] Insert in chain as rulenum (default 1=first) --replace -R chain rulenum Replace rule rulenum (1 = first) in chain --list -L [chain [rulenum]] List the rules in a chain or all chains --list-rules -S [chain [rulenum]] Print the rules in a chain or all chains --flush -F [chain] Delete all rules in chain or all chains --zero -Z [chain [rulenum]] Zero counters in chain or all chains --new -N chain Create a new user-defined chain --delete-chain -X [chain] Delete a user-defined chain --policy -P chain target Change policy on chain to target --rename-chain -E old-chain new-chain Change chain name, (moving any references) Options: [!] --proto -p proto protocol: by number or name, eg. `tcp' [!] --source -s address[/mask][...] source specification [!] --destination -d address[/mask][...] destination specification [!] --in-interface -i input name[+] network interface name ([+] for wildcard) --jump -j target target for rule (may load target extension) --goto -g chain jump to chain with no return --match -m match extended match (may load extension) --numeric -n numeric output of addresses and ports [!] --out-interface -o output name[+] network interface name ([+] for wildcard) --table -t table table to manipulate (default: `filter') --verbose -v verbose mode --line-numbers print line numbers when listing --exact -x expand numbers (display exact values) [!] --fragment -f match second or further fragments only --modprobe=try to insert modules using this command --set-counters PKTS BYTES set the counter during insert/append [!] --version -V print package version.
iptables -I INPUT -p tcp --dport 22 -j DROP 关闭TCP协议下的22端口 iptables -I INPUT -p udp --dport 22 -j DROP 关闭UDP协议下的22端口 iptables -I INPUT 1 -p tcp --dport 80 -m string --string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" --algo bm -j DROP 禁止指定的浏览器UserAgent(UA标识)访问 iptables -I INPUT -s 121.205.215.140 -j DROP---禁止某个IP访问 service iptables save service iptables restart
服务操作方法:
[root@localhost RucLinux]# chkconfig --help chkconfig 版本 1.3.49.5 - 版权 (C) 1997-2000 Red Hat, Inc. 在 GNU 公共许可的条款下,本软件可以被自由发行。 用法: chkconfig [--list] [--type] [name] chkconfig --add chkconfig --del chkconfig --override chkconfig [--level ] [--type ] chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。 chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。 chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。 chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。
chkconfig --list 显示本机所有服务状态 chkconfig --add mysql 将mysql添加为服务 chkconfig --del mysql 将mysql服务删除 chkconfig mysql on 将mysql服务启动 chkconfig mysql off 将mysql服务停止
进程操作
[root@localhost RucLinux]# killall --help Usage: killall [-Z 上下文] [-u 用户名] [ -eIgiqrvw ] [ -信号 ] 程序名... killall -l, --list killall -V, --version -e,--exact 对长名字需要严格匹配 -I,--ignore-case 匹配进程名时忽略大小写 -g,--process-group 杀死进程组而不是进程 -i,--interactive 在杀死进程前要求确认 -l,--list 显示所有的信号名 -q,--quiet 不要打印抱怨信息 -r,--regexp 将 "进程名" 视为扩展正则表达式 -s,--signal 信号 发送 "信号" 而不是 SIGTERM -u,--user 用户 仅杀死 "用户" 的进程 -v,--verbose 信号成功送出时打印信息 -V,--version 显示版本信息 -w,--wait 等待进程死亡 -Z,--context 正则表达式 仅杀死含有指定上下文的进程 (必须在其他参数前使用)
killall -9 mysql 终止mysql进程
权限设置
Linux下的权限设置又分用户组权限和文件所有者权限,还有文件自身权限, 其中文件自身权限还分有 500 644 666 755 777 等权限
cat /etc/group 查看所有用户组 cat /etc/shadow 查看所有用户名 cat /etc/passwd 同上
[root@localhost RucLinux]# adduser --help 用法:adduser [选项] 登录 adduser -D adduser -D [选项] 选项: -b, --base-dir BASE_DIR 新账户的主目录的基目录 -c, --comment COMMENT 新账户的 GECOS 字段 -d, --home-dir HOME_DIR 新账户的主目录 -D, --defaults 显示或更改默认的 useradd 配置 -e, --expiredate EXPIRE_DATE 新账户的过期日期 -f, --inactive INACTIVE 新账户的密码不活动期 -g, --gid GROUP 新账户主组的名称或 ID -G, --groups GROUPS 新账户的附加组列表 -h, --help 显示此帮助信息并推出 -k, --skel SKEL_DIR 使用此目录作为骨架目录 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值 -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库 -m, --create-home 创建用户的主目录 -M, --no-create-home 不创建用户的主目录 -N, --no-user-group 不创建同名的组 -o, --non-unique 允许使用重复的 UID 创建用户 -p, --password PASSWORD 加密后的新账户密码 -r, --system 创建一个系统账户 -R, --root CHROOT_DIR chroot 到的目录 -s, --shell SHELL 新账户的登录 shell -u, --uid UID 新账户的用户 ID -U, --user-group 创建与用户同名的组 -Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
[root@localhost RucLinux]# useradd --help 用法:useradd [选项] 登录 useradd -D useradd -D [选项] 选项: -b, --base-dir BASE_DIR 新账户的主目录的基目录 -c, --comment COMMENT 新账户的 GECOS 字段 -d, --home-dir HOME_DIR 新账户的主目录 -D, --defaults 显示或更改默认的 useradd 配置 -e, --expiredate EXPIRE_DATE 新账户的过期日期 -f, --inactive INACTIVE 新账户的密码不活动期 -g, --gid GROUP 新账户主组的名称或 ID -G, --groups GROUPS 新账户的附加组列表 -h, --help 显示此帮助信息并推出 -k, --skel SKEL_DIR 使用此目录作为骨架目录 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值 -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库 -m, --create-home 创建用户的主目录 -M, --no-create-home 不创建用户的主目录 -N, --no-user-group 不创建同名的组 -o, --non-unique 允许使用重复的 UID 创建用户 -p, --password PASSWORD 加密后的新账户密码 -r, --system 创建一个系统账户 -R, --root CHROOT_DIR chroot 到的目录 -s, --shell SHELL 新账户的登录 shell -u, --uid UID 新账户的用户 ID -U, --user-group 创建与用户同名的组 -Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
[root@localhost RucLinux]# groupadd --help 用法:groupadd [选项] 组 选项: -f, --force 如果组已经存在则成功退出 并且如果 GID 已经存在则取消 -g -g, --gid GID 为新组使用 GID -h, --help 显示此帮助信息并推出 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值 -o, --non-unique 允许创建有重复 GID 的组 -p, --password PASSWORD 为新组使用此加密过的密码 -r, --system 创建一个系统账户 -R, --root CHROOT_DIR chroot 到的目录
[root@localhost RucLinux]# usermod --help 用法:usermod [选项] 登录 选项: -c, --comment 注释 GECOS 字段的新值 -d, --home HOME_DIR 用户的新主目录 -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态 -g, --gid GROUP 强制使用 GROUP 为新主组 -G, --groups GROUPS 新的附加组列表 GROUPS -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户 -h, --help 显示此帮助信息并推出 -l, --login LOGIN 新的登录名称 -L, --lock 锁定用户帐号 -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用) -o, --non-unique 允许使用重复的(非唯一的) UID -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码 -R, --root CHROOT_DIR chroot 到的目录 -s, --shell SHELL 该用户帐号的新登录 shell -u, --uid UID 用户帐号的新 UID -U, --unlock 解锁用户帐号 -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
[root@localhost RucLinux]# groups --help 用法:groups [选项]... [用户名]... 显示每个输入的用户名所在的全部组,如果没有指定用户名则默认为当前进程用户(当用户组数据库发生变更时可能导致差异)。 --help 显示此帮助信息并退出 --version 显示版本信息并退出 请向bug-coreutils@gnu.org 报告groups 的错误
[root@localhost RucLinux]# chown --help 用法:chown [选项]... [所有者][:[组]] 文件... 或:chown [选项]... --reference=参考文件 文件... 更改每个文件的所有者和/或所属组。 当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。 -c, --changes 类似 verbose,但只在有更改时才显示结果 --dereference 受影响的是符号链接所指示的对象,而非符号链接本身 -h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地 (当系统支持更改符号链接的所有者时,此选项才有用) --from=当前所有者:当前所属组 只当每个文件的所有者和组符合选项所指定时才更改所 有者和组。其中一个可以省略,这时已省略的属性就不 需要符合原有的属性。 --no-preserve-root 不特殊对待"/"(默认值) --preserve-root 不允许在"/"上递归操作 -f, --silent, --quiet 去除大部份的错误信息 --reference=参考文件 使用参考文件的所属组,而非指定值 -R, --recursive 递归处理所有的文件及子目录 -v, --verbose 为处理的所有文件显示诊断信息 以下选项是在指定了 -R 选项时被用于设置如何穿越目录结构体系。 如果您指定了多于一个选项,那么只有最后一个会生效。 -H 如果命令行参数是一个通到目录的符号链接,则遍历符号链接 -L 遍历每一个遇到的通到目录的符号链接 -P 不遍历任何符号链接(默认) --help 显示此帮助信息并退出 --version 显示版本信息并退出 如果没有指定所有者,则不会更改。 所属组若没有指定也不会更改,但当加上 ":"时 GROUP 会更改为指定所有者的主要组。所有者和所属组可以是数字或名称。 示例: chown root /u 将 /u 的属主更改为"root"。 chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。 chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为"root"。
[root@localhost RucLinux]# chmod --help 用法:chmod [选项]... 模式[,模式]... 文件... 或:chmod [选项]... 八进制模式 文件... 或:chmod [选项]... --reference=参考文件 文件... 将每个文件的模式更改为指定值。 -c, --changes 类似 --verbose,但只在有更改时才显示结果 --no-preserve-root 不特殊对待根目录(默认) --preserve-root 禁止对根目录进行递归操作 -f, --silent, --quiet 去除大部份的错误信息 -v, --verbose 为处理的所有文件显示诊断信息 --reference=参考文件 使用指定参考文件的模式,而非自行指定权限模式 -R, --recursive 以递归方式更改所有的文件及子目录 --help 显示此帮助信息并退出 --version 显示版本信息并退出 每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。 请向bug-coreutils@gnu.org 报告chmod 的错误
adduser toutiao 创建一个叫toutiao的用户 useradd toutiao 同上 userdel toutiao 删除toutiao用户 groupadd -g 344 toutiao 添加一个ID为344的用户组toutiao usermod -l toutiao1 toutiao 将用户名toutiao为toutiao1 usermod -G root toutiao 将toutiao添加到root用户组 groups RucLinux 查询用户RucLinux在什么用户组里 chown -R root:root /var/www/* 将/var/www/下的所有目录和文件都设置为root用户和root用户组权限 两个root之间有个半角的冒号 chmod 644 /var/www 将/var/www目录的权限设置为644 chmod -R 644 /var/www/* 将/var/www/下的所有目录和文件都设置为644权限
其他安全设置
为自己的系统安装 rootkits和fail2ban
rootkits中文名叫”Rootkit猎手”, 可以发现大约58个已知的rootkits和一些嗅探器和后门程序. 它通过执行一系列的测试脚本来确认你的机器是否已经感染rootkits. 比如检查rootkits使用的基本文件, 可执行二进制文件的错误文件权限, 检测内核模块等等. Rootkit Hunter由Michael Boelen开发, 是开源(GPL)软件.
yum install rkhunter* -y 安装rkhunter
rkhunter -c rkhunter的使用方法
请在我的博客里搜索 rkhunter和fail2ban查阅相关的详细教程
您可能需要的知识点
Linux下生成链条式密码钥匙的脚本 https://www.myzhenai.com.cn/post/2172.html
Linux下使用iptables封锁端口禁止邮件发送 https://www.myzhenai.com.cn/post/2161.html
Linux服务器一键备份脚本解释 https://www.myzhenai.com.cn/post/2636.html
Linux服务器安全之更改默认端口 https://www.myzhenai.com.cn/post/1783.html
Linux下的rootkits检测程序rkhunter https://www.myzhenai.com.cn/post/1763.html
iptables防火墙禁止福建莆田ip地址规则 https://www.myzhenai.com.cn/post/1685.html
Linux下iptables防火墙已停的解决办法 https://www.myzhenai.com.cn/post/1678.html
Linux下使用crontab添加定时任务 https://www.myzhenai.com.cn/post/1628.html
更新clamav病毒库的方法 https://www.myzhenai.com.cn/post/1367.html
Linux下目录无法删除的解决办法 https://www.myzhenai.com.cn/post/1350.html
Centos下删除系统多余旧内核的命令与方法 https://www.myzhenai.com.cn/post/1170.html
Centos6.4编译安装clamav-0.97.8 https://www.myzhenai.com.cn/post/1061.html
Linux VPS服务器管理常用命令 https://www.myzhenai.com.cn/post/815.html
Linux系统编译安装Putty软件 https://www.myzhenai.com.cn/post/802.html
Linux系统使用的远程连接工具 https://www.myzhenai.com.cn/post/793.html
Linux服务器中文文件名无法删除的解决方法 https://www.myzhenai.com.cn/post/787.html
mysql数据库命令行备份方法 https://www.myzhenai.com.cn/post/785.html
Linux命令:改变文件或目录的访问权限 https://www.myzhenai.com.cn/post/658.html
Linux系统根文件系统的目录解释 https://www.myzhenai.com.cn/post/656.html
如何保证Linux系统安全 https://www.myzhenai.com.cn/post/602.html
linux忘记root密码又忘记grub密码的解决方法 https://www.myzhenai.com.cn/post/600.html
Centos6下pure-ftpd1.0.36编译安装和配置 https://www.myzhenai.com.cn/post/1812.html
linux centos 下fail2ban安装与配置 https://www.myzhenai.com.cn/post/1791.html
sicnature ---------------------------------------------------------------------
I P 地 址: 3.238.82.77
区 域 位 置: 美国弗吉尼亚阿什本
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
没有评论