中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中實現vsftp虛擬用戶及iptables用法

發布時間:2020-05-19 16:31:54 來源:網絡 閱讀:243 作者:三月 欄目:系統運維

下面講講關于mysql中實現vsftp虛擬用戶及iptables用法,文字的奧妙在于貼近主題相關。所以,閑話就不談了,我們直接看下文吧,相信看完mysql中實現vsftp虛擬用戶及iptables用法這篇文章你一定會有所受益。

vsftp基于mysql創建虛擬用戶

1.首先安裝環境

yum groupinstall -y "Development Tools" "Server PlatformDevelopment"

yum install -y pam-devel mariadb-devel mariadb-server vsftpd lftp ftp
下載最新的pam-mysql
http://pam-mysql.sourceforge.net/
編譯安裝pam-mysql
tar xf  pam_mysql-0.7RC1.tar.gz

cd  pam_mysql-0.7RC1

./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security

make

make install

2  配置vsftp

建立pam認證所需文件

vim /etc/pam.d/vsftpd.mysql

添加如下兩行
auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=centos host=127.0.0.1 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2

account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=centos host=127.0.0.1 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2

建立虛擬用戶映射的系統用戶及對應的目錄

 mkdir /ftproot

 useradd -s /sbin/nologin -d ftproot vuser

創建測試目錄

 mkdir /ftproot/{pub,upload}
 cd /ftproot
 chown vuser:vuser upload

修改vsftpd的配置文件,使其適應mysql認證

vim /etc/vsftpd/vsftpd.conf

修改pam_service_name選項的值如下所示

pam_service_name=vsftpd.mysql

添加以下兩行:

guest_enable=YES

guest_username=vuser

配置虛擬用戶具有不同的訪問權限
創建所需目錄,并為虛擬用戶提供配置文件

mkdir /etc/vsftpd/vusers_conf

cd /etc/vsftpd/vusers_conf

配置虛擬用戶具有不同的訪問權限:

vim tom 寫入如下內容

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

vim jerry

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

3     創建sql中的數據

MariaDB [(none)]> CREATEDATABASE vsftpd;
MariaDB [(none)]>use vsftpd;
MariaDB [vsftpd]> create table user(name char(30),password char(50));
MariaDB [vsftpd]> INSERT INTO vsftpd.user(name,password) VALUES ('tom',PASSWORD('lxq')),('jerry',PASSWORD('lxq'));
MariaDB [(none)]>create user vsftpd@localhost identified by 'centos'
MariaDB [(none)]>grant all privileges on vsftp.user to vsftpd@localhost identified by 'centos';
MariaDB [(none)]>FLUSHPRIVILEGES;

4測試
登陸tom

mysql中實現vsftp虛擬用戶及iptables用法

隨便上傳一個文件
mysql中實現vsftp虛擬用戶及iptables用法

登陸jerry,上傳失敗mysql中實現vsftp虛擬用戶及iptables用法

詳述iptables五鏈

四表五鏈概念

filter表——過濾數據包
Nat表——用于網絡地址轉換(IP、端口)
Mangle表——修改數據包的服務類型、TTL、并且可以配置路由實現QOS
Raw表——決定數據包是否被狀態跟蹤機制處理

INPUT鏈——進來的數據包應用此規則鏈中的策略
OUTPUT鏈——外出的數據包應用此規則鏈中的策略
FORWARD鏈——轉發數據包時應用此規則鏈中的策略
PREROUTING鏈——對數據包作路由選擇前應用此鏈中的規則(所有的數據包進來的時侯都先由這個鏈處理)
POSTROUTING鏈——對數據包作路由選擇后應用此鏈中的規則(所有的數據包出去的時侯都先由這個鏈處理
        #清空iptables規則
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -vnL
Chain INPUT (policy ACCEPT 6 packets, 348 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 5 packets, 380 bytes)
 pkts bytes target     prot opt in     out     source               destination

#安裝所需軟件
[root@localhost ~]#  yum -y install httpd telnet-server samba tftp-server vsftpd mariadb-server

#設置云服務器輸入和輸出默認策略為DROP
[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# iptables -P OUTPUT DROP

(1)多端口匹配

#接收流經22和80端口的報文,即可以正常使用ssh和httpd服務
[root@localhost ~]# iptables -I INPUT  -d 192.168.186.131 -p tcp -m multiport --dports 22,80 -j ACCEPT  
[root@localhost ~]# iptables -I OUTPUT  -s 192.168.186.131 -p tcp -m multiport --sports 22,80 -j ACCEPT 

(2)連接追蹤

#允許指定范圍的ip地址連接23端口
[root@localhost ~]# iptables -I INPUT 3 -d 192.168.186.131 -p tcp --dport 23 -m iprange --src-range 192.168.186.130-192.168.186.135 -j ACCEPT
[root@localhost ~]# iptables -I OUTPUT 3 -s 192.168.186.131 -p tcp --sport 23 -m iprange --dst-range 192.168.186.130-192.168.186.135 -j ACCEPT

(3)字符串匹配

#將默認策略改回ACCEPT
[root@localhost ~]# iptables -P INPUT ACCEPT
[root@localhost ~]# iptables -P OUTPUT ACCEPT

#當數據報文中出現"gaain"就不發送
[root@localhost ~]# iptables -I OUTPUT -s 192.168.186.131 -m string --algo kmp --string "gaain" -j REJECT 

(4)時間匹配

#開放同步時間服務端口
[root@localhost ~]# iptables -I OUTPUT -s 192.168.186.131 -p udp -m multiport --dports 123,323 -j ACCEPT
[root@localhost ~]# iptables -I INPUT -d 192.168.186.131 -p udp -m multiport --sports 123,323 -j ACCEPT

#添加規則
#指定ip在每天16點~23點可以連接23端口
[root@localhost ~]# iptables -I INPUT -d 192.168.186.131 -p tcp --dport 23 -m iprange --src-range 192.168.186.130-192.168.186.135 -m time --timestart 12:00:00 --timestop 23:00:00  -j ACCEPT
[root@localhost ~]# iptables -I OUTPUT -s 192.168.186.131 -p tcp --sport 23 -m iprange --dst-range 192.168.186.130-192.168.186.135 -m time --timestart 12:00:00 --timestop 23:00:00  -j ACCEPT

(5)并發連接限制

[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# mysql
MariaDB [(none)]> CREATE USER 'test'@'192.168.186.%' IDENTIFIED BY '123';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

[root@localhost ~]# vim /etc/my.cnf.d/server.cnf 
[mysqld]
skip_name_resolve=ON

[root@localhost ~]# systemctl restart mariadb.service

#給指定云服務器和客戶端開放3306端口
[root@localhost ~]# iptables -I INPUT -s 192.168.186.0/24 -d 192.168.186.131 -p tcp --dport 3306 -j ACCEPT
[root@localhost ~]# iptables -I OUTPUT -d 192.168.186.0/24 -s 192.168.1186.131 -p tcp --sport 3306 -j ACCEPT

#限制流入報文,同一IP并發連接數據庫不能超過2
[root@localhost ~]# iptables -R INPUT 1 -s 192.168.10.0/24 -d 192.168.10.10 -p tcp --dport 3306 -m connlimit --connlimit-upto 2 -j ACCEPT

(6)速率匹配(報文的發包速率限制)

#每3秒處理一個請求(可用其他主機使用ping測試)
[root@localhost ~]# iptables -I INPUT  -d 192.168.186.131 -p icmp --icmp-type 8 -m limit --limit-burst 5 --limit 20/minute -j ACCEPT
[root@localhost ~]# iptables -I OUTPUT  -s 192.168.186.131 -p icmp --icmp-type 0 -j ACCEPT

(7)報文狀態匹配

報文的五種狀態:

NEW: 新連接請求;
ESTABLISHED:已建立的連接;
INVALID:無法識別的連接;
RELATED:相關聯的連接,當前連接是一個新請求,但附屬于某個已存在的連接;
UNTRACKED:未追蹤的連接;

#允許NEW請求
[root@localhost ~]# iptables -I INPUT -d 192.168.186.131 -p tcp -m multiport --dports 22:23,80,139,445,3306 -m state --state NEW -j ACCEPT

#允許ESTABLISHED請求
[root@localhost ~]# iptables -I INPUT -d 192.168.186.131 -m state --state ESTABLISHED -j ACCEPT

#允許ESTABLISHED請求
[root@localhost ~]# iptables -I OUTPUT -s 192.168.186.131 -m state --state ESTABLISHED -j ACCEPT

3、舉例實現iptables之SNAT源地址修改及DNAT目標地址修改和PNAT端口修改等應用                                                  
一、SNAT源地址修改

在路由器后(POSTROUTING)將內網的ip地址修改為外網網卡的ip地址

#iptables -t nat -I POSTROUTING -o 外網網卡 -s 內網網段 -j SNAT --to-source 外網ip地址  #適用于外網ip地址固定場景
[root@localhost g513452987]# iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o ens32 -j SNAT --to-source 10.23.15.57

二、DNAT目標地址修改

在路由前(PREROUTING)將來自外網訪問網關公網ip及對應端口的目的ip及端口修改為內部云服務器的ip及端口

#iptables -t nat -I PREROUTING -i 外網網卡 -d 外網ip tcp --dport 發布的端口 -j DNAT --to-destination 內網服務ip:端口
[root@localhost g513452987]# iptables -t nat A PREROUING -d 172.16.0.254 -p tcp --dport 80 -j DNAT --to-destination 10.23.12.235

三、PNAT端口修改

REDIRECT:端口映射

iptables -A PREROUTING -t nat -d 內網ip -p 服務 --doprt 發布的端口 -j REDIRECT --to-ports 映射的端口

[root@localhost g513452987]# iptables -A PREROUTING -t nat -d 10.23.12.235 -p tcp --dport 80 -j REDIRECT --to-ports8080   #80端口映射到8080端口

對于以上mysql中實現vsftp虛擬用戶及iptables用法相關內容,大家還有什么不明白的地方嗎?或者想要了解更多相關,可以繼續關注我們的行業資訊板塊。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江山市| 敖汉旗| 三门县| 武安市| 隆化县| 新宁县| 咸阳市| 泸溪县| 临夏县| 拜城县| 理塘县| 宁南县| 平和县| 满城县| 日喀则市| 临桂县| 安新县| 察哈| 铜山县| 阿拉善盟| 普定县| 阿拉尔市| 南汇区| 双流县| 和林格尔县| 西林县| 山阳县| 灯塔市| 哈尔滨市| 临海市| 灵台县| 凌源市| 乌拉特中旗| 名山县| 龙山县| 东平县| 苏州市| 泗水县| 长丰县| 华池县| 南昌县|