1. 安裝iptables防火牆mysql
# 先檢查是否安裝了iptables(若是提示iptables:unrecognized service 則表示系統還沒有安裝)linux
service iptables statusweb
# 安裝iptablessql
yum install iptables數據庫
# 升級iptablesvim
yum update iptables 瀏覽器
# 安裝iptables-services安全
yum install iptables-services服務器
2. 關閉Firewallsession
# 中止firewall 服務
systemctl stop firewalld.service
# 禁用firewall 服務
systemctl mask firewalld.service
# 禁止firewall服務開機啓動
systemctl disable firewalld.service
# 查看firewall服務狀態
firewall-cmd --state
3. 查看Iptables所在目錄與配置文件
#安裝完成後,配置文件默認所在位置
# /etc/sysconfig/iptables
4. 設置現有規則
# 查看iptables現有規則
iptables -L -n
# 先容許全部,否則有可能會杯具
iptables -P INPUT ACCEPT
# 清空全部默認規則
iptables -F
# 清空全部自定義規則
iptables -X
# 全部計數器歸0
iptables -Z
4.1 iptables 規則設置
# 容許來自於lo接口的數據包(本地訪問)
iptables -A INPUT -i lo -j ACCEPT
# 容許本機對外訪問
iptables -A OUTPUT -j ACCEPT
# 容許接受本機請求以後的返回數據 RELATED,是爲FTP設置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 開放22端口(SSH)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 開放2一、20端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# 開放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 開放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 容許ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 10060到10090是Vsftpd被動模式須要的端口,可自定義一段大於1024的tcp端口
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
# 這兩條的意思是在INPUT表和FORWARD表中拒絕全部其餘不符合上述任何一條規則的數據包。
而且發送一條host prohibited的消息給被拒絕的主機。
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
注:防火牆的規則是從上到下解析的
4.2 保存規則設定
# 保存上述規則
service iptables save
# 查看iptables現有規則
iptables -L -n
4.3 開啓iptables服務
# 最後重啓防火牆使配置生效
systemctl restart iptables.service
# 設置防火牆開機啓動
systemctl enable iptables.service
# 查看狀態
systemctl status iptables.service
# 肯定是否enabled
systemctl list-unit-files | grep iptables
2、 關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing # 註釋掉
#SELINUXTYPE=targeted # 註釋掉
SELINUX=disabled # 增長
:wq! # 保存退出
若是在使用setenforce命令設置selinux狀態的時候出現這個提示:setenforce: SELinux is disabled
那麼說明selinux已經被完全的關閉了
若是須要從新開啓selinux,請按下面步驟:
vi /etc/selinux/config
更改成:SELINUX=1
必須重啓linux,不重啓是沒辦法馬上開啓selinux的
3、 安裝vsftpd
# 安裝vsftpd
yum install -y vsftpd
yum -y install ftp vsftpd
# 安裝vsftpd虛擬用戶配置依賴包
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI
# 啓動
systemctl start vsftpd.service
# 查看vsftpd服務的狀態
systemctl status vsftpd.service
systemctl list-unit-files | grep vsftpd.service
# 設置vsftpd開機啓動
systemctl enable vsftpd.service
4、 配置
# 備份默認配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak
# 執行如下命令進行設置
sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
#以後添加下列內容到vsftpd.conf末尾
vim /etc/vsftpd/vsftpd.conf
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300 \
ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd \
nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES \
npasv_min_port=10060\npasv_max_port=10090 \
naccept_timeout=5\nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf
5、 創建虛擬用戶名單文件
touch /etc/vsftpd/virtusers
# 編輯虛擬用戶名單文件:(第一行帳號,第二行密碼,注意:不能使用root作用戶名,系統保留)
vi /etc/vsftpd/virtusers
web1
123456
web2
123456
web3
123456
6、 生成虛擬用戶數據文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
#設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取
chmod 600 /etc/vsftpd/virtusers.db
7、 在/etc/pam.d/vsftpd文件添加如下信息
# 修改前先備份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
# 將auth及account的全部配置行均註釋掉
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
注:若是系統爲32位,上面改成lib,不然配置失敗
8、 新建系統用戶vsftpd,用戶目錄爲/home/vsftpd, 用戶登陸終端設爲/bin/false(即:使之不能登陸系統)
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd
9、 創建虛擬用戶我的Vsftp的配置文件
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch web1 web2 web3 # 這裏建立三個虛擬用戶配置文件
mkdir -p /home/vsftpd/web1/
vi web1 # 編輯用戶web1配置文件,其餘的跟這個配置文件相似
local_root=/home/vsftpd/web1/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
10、 重啓vsftpd服務器
systemctl restart vsftpd.service
# 查看vsftpd服務的狀態
systemctl status vsftpd.service
systemctl list-unit-files | grep vsftpd