Linux系统加固

iptables

初始化

> iptables -F   #清空所有的链
> iptables -X  #清空所有自定义的链
关掉全部端口

> iptables -P INPUT DROP
> iptables -P OUTPUT DROP
开启端口第一步

iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
允许icmp包进入
iptables -A INPUT -s localhost -d localhost -j ACCEPT
允许本地的数据包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许已经建立和相关的数据包进入
iptables -A OUTPUT -p icmp --icmp any -j ACCEPT
允许icmp包出去
iptables -A OUTPUT -s localhost -d localhost -j ACCEPT
允许本地数据包
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许已经建立和相关的数据包出去
关闭端口号

iptables -I INPUT -i eth0 -p tcp --dport 81 -j DROP
iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j DROP
打开端口号

iptables -I INPUT -i eth0 -p tcp --dport 81 -j ACCEPT
iptables  -I OUTPUT -o eth0 -p tcp --sport 81 -j ACCEPT

网络服务安全

禁止ping

 # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 开启
 # echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all  关闭

访问控制

为不同的管理员分配不同的账户

cat /etc/passwd
useradd username
passwd password
增加新用户
chmod 777 目录
去除不需要的帐号、修改默认帐号的shell变量

cat /etc/passwd
cat /etc/shadow
删除不需要的账户
userdel username
groupdel username

设置shell
usermod -s /dev/hull username
对系统账号进行登陆限制

禁止某用户登陆
example:
bin:x:2:2:bin:/bin:/bin/bash
=>
bin:x:2:2:bin:/bin:/bin/nologin
禁用bin用户登陆

touch /etc/nologin
禁止除root以外所有用户登陆
建议禁掉的用户:daemon   bin  sys  adm  lp   uucp   nuucp  smmsp等
设置关键目录的权限

关键目录:
chmod 644 /etc/passwd 
chmod 600 /etc/shadow 
chmod 644 /etc/group
设置目录权限

ls -l查看权限
权限前边的ld为d是目录文件,l是链接文件
chmod -R 750 /etc/init.d/*
设置关键文件的属性

身份鉴别

为空口令用户设置密码

cat /etc/passwd
    注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 
    查看是否存在空口令用户(X为存在密码,*为被封禁)
passwd 空口令用户名
缺省密码长度限制

vim /etc/login.defs 
查看PASS_MIN_LEN选项值
PASS_MIN_LEN  8
设置密码长度最短为8
缺省密码生存周期限制

vim /etc/login.defs 
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
设置帐户口令的生存期不长于90 天
口令过期提醒

vim /etc/login.defs
PASS_WARN_AGE 7
口令到期前多少天开始通知用户口令即将到期
限制超级管理员远程登录

vim /etc/ssh/sshd_config
把PermitRootLogin yes修改为no
service sshd restart
重启sshd服务
如果遇到sshd: unrecognized service错误
尝试一下service ssh restart
用ps -ef | grep sshd查看一下服务是否启动

 

转载于:https://www.cnblogs.com/test404/p/6486841.html

Linux系统中,系统加固是确保系统安全的重要步骤。以下是一些常见的Linux系统加固实践代码和命令: ### 1. 更新系统 首先,确保系统最新的,以修补已知的安全漏洞。 ```bash sudo apt update && sudo apt upgrade -y ``` ### 2. 禁用不必要的服务 禁用不必要的服务和启动项,以减少攻击面。 ```bash sudo systemctl disable <service_name> sudo systemctl stop <service_name> ``` ### 3. 配置防火墙 使用`ufw`(Uncomplicated Firewall)来配置防火墙规则。 ```bash sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw enable ``` ### 4. 增强SSH安全性 修改SSH配置文件以增强安全性,例如禁用root登录和更改默认端口。 ```bash sudo nano /etc/ssh/sshd_config ``` 在文件中进行以下更改: ```plaintext PermitRootLogin no Port <new_port_number> PasswordAuthentication no ``` 保存并退出文件,然后重启SSH服务: ```bash sudo systemctl restart sshd ``` ### 5. 安装和配置Fail2Ban Fail2Ban可以防止暴力破解攻击。 ```bash sudo apt install fail2ban -y sudo nano /etc/fail2ban/jail.local ``` 在文件中添加以下内容: ```plaintext [sshd] enabled = true port = <new_port_number> filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600 ``` 保存并退出文件,然后重启Fail2Ban服务: ```bash sudo systemctl restart fail2ban ``` ### 6. 启用SELinux或AppArmor 根据发行版不同,启用SELinux或AppArmor以提供额外的安全层。 #### 启用SELinux ```bash sudo setenforce 1 ``` #### 启用AppArmor ```bash sudo systemctl enable apparmor sudo systemctl start apparmor ``` ### 7. 文件系统权限 确保关键文件和目录的权限设置正确。 ```bash sudo chmod -R go-w /etc sudo chmod -R go-rw /var/log ``` ### 8. 定期审计和监控 使用工具如`Lynis`进行系统审计。 ```bash sudo apt install lynis -y sudo lynis audit system ``` ### 9. 日志管理 配置系统日志以确保日志文件的完整性和安全性。 ```bash sudo nano /etc/rsyslog.conf ``` 确保以下行未被注释: ```plaintext $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 ``` 保存并退出文件,然后重启rsyslog服务: ```bash sudo systemctl restart rsyslog ``` 通过这些步骤,可以显著提高Linux系统的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值