Linux簡単コース設計(ユーザー、デプロイメントサーバー、ファイアウォール[ポート番号])

 コース設計内容:

 

メインのシェル スクリプト ファイル (menu.sh という名前を付ける必要があります) では、ユーザーが選択できる複数の操作オプションを備えたメニューを設計する必要があります。メニューでは、次の機能が自動的に実装されます。

  1. ユーザーオプションを作成します。具体的な要件は、管理者がこのオプションを選択すると、システムによって管理者が「ユーザー名」を入力し、Linux 共通ユーザー (デフォルトのパスワードは @Linux888) を自動的に作成できることです。
  2. 展開サーバーのオプション。具体的な要件は、 yum コマンドを使用して特定のサーバー サービスを自動的に展開することです。展開プロセス中に、インストールされているサーバーのバージョン番号が表示されます。
  3. サーバー構成を変更し、サーバーを使用してテストします。
  4. ファイアウォール構成オプション。具体的な要件は、管理者がこのオプションを選択すると、システムは管理者に「ポート番号」と「オン/オフ」操作を入力させ、システムは管理者の入力に従って指定されたポート番号を開くか閉じることです。
  5. システムオプションを終了します。特定の要件は、管理者がこのオプションを選択した後にシステムが終了することです。

 中国語の要約

この記事では主に、HTTPD サーバーの構成、シェル プログラミング、ファイアウォールの設計、個人のホームページの実現など、いくつかの主要なテクノロジを紹介します。まず、HTTPD サーバーは Web サービスを提供するために使用されるソフトウェアの一種であり、この記事では、HTTPD 構成ファイルの変更方法や HTTPD サービスの開始と停止方法など、HTTPD の構成方法について説明します。次に、この記事では、シェル プログラミングの基本知識と一般的なコマンド、およびシェル スクリプトを使用していくつかの簡単なタスクを実行する方法も紹介します。次に、この記事では、ファイアウォール設計の重要性と、サーバーのセキュリティを保護するために iptables を使用してファイアウォール ルールを構成する方法について説明します。最後に、この記事では、文字「*」に加えて数字や漢字をオプションとして使用して、個人のホームページを実装する方法も紹介します。つまり、この記事は内容が豊富で、多くの主要なテクノロジをカバーしているため、Web サーバーとネットワーク セキュリティについて深く理解したい読者にとって、一定の参考価値があります。

キーワード: HTTPD 構成シェル プログラミング ファイアウォール設計 個人ホームページの実現

 

カリキュラム設計の目的

「Linux オペレーティング システム」は、コンピュータ サイエンスおよびテクノロジー関連の専攻のための専門選択コースです。コースデザインは集中的な実践リンクの1つであり、このコースの学習を完了した後の包括的な総合演習です。その目的は、Linux オペレーティング システムの基本コマンド、シェル プログラミング、主要なサービスの展開と開発、ネットワーク セキュリティなどの理解と応用を深めることです。このため、コース設計には上記のリンクの内容が含まれており、学生は Linux オペレーティング システム プロジェクトの分析、設計、構成、テストの全プロセスを完了する必要があり、最初は Linux オペレーティング システムを使用するための基本的な能力を備えている必要があります。 Linux オペレーティング システム 知識と実践経験を総合的に応用。

 必要な知識の基礎

 シェルコマンドとプログラミングの概要

シェルは、さまざまなシステム コマンドやスクリプトを実行するために使用できるコマンド ライン インタープリターです。シェル プログラミングは、自動化タスクやデータ処理用のスクリプトを作成するために使用できるスクリプト プログラミング言語です。Shell は C 言語で書かれたプログラムで、ユーザーが Linux を使用するための橋渡しをします。シェルはコマンド言語であると同時にプログラミング言語でもあります。シェルとは、ユーザーがオペレーティング システム カーネルのサービスにアクセスするためのインターフェイスを提供するアプリケーション プログラムを指します。

ユーザー管理の概要

Linux ユーザー管理とは、作成、変更、削除、承認などの操作を含む、Linux オペレーティング システムでのユーザー アカウントの管理を指します。Linux システムでは、各ユーザーは固有のユーザー ID (UID) とグループ ID (GID) を持ち、1 つまたは複数のグループに所属することができ、これらの ID に基づいてユーザーの権限とアクセス制御が実装されます。Linux ユーザー管理ツールには、コマンド ライン ツールとグラフィカル インターフェイス ツールが含まれます。最も一般的に使用されるコマンド ライン ツールには、useradd、usermod、userdel、passwd などがあります。これらのコマンドは、ユーザーの作成やユーザー情報の変更など、コマンド ライン パラメータを通じてさまざまな機能を実装できます。 、ユーザーの削除、パスワードの変更など。基本的なユーザー管理に加えて、Linux システムは、より複雑なユーザー認証とアクセス制御スキームを実装するためのアクセス制御と権利管理もサポートしています。

ファイアウォールの概要

ファイアウォールは、ネットワークに出入りするトラフィックを監視および制御するネットワーク セキュリティ デバイスです。ネットワークトラフィックをフィルタリングし、事前に設定されたルールとポリシーに従って特定のトラフィックの通過をブロックまたは許可できます。ファイアウォールは、インターネット ウイルス、ハッキング、マルウェアなどの悪意のある攻撃からコンピューターとネットワークを保護するのに役立ちます。また、企業ネットワークのセキュリティと安定性を維持するために、特定の Web サイトやアプリケーションへのユーザー アクセスを制御するために使用することもできます。ファイアウォールには通常、ハードウェアとソフトウェアの 2 つの形式があり、企業、政府機関、個人ユーザーのネットワーク セキュリティ保護に広く使用されています。

HTTPDサーバーの概要

httpd は、オープンソースの Web サーバー ソフトウェアである Apache HTTP Server の正式名です。これは最も人気のある Web サーバーの 1 つであり、Linux、Windows、macOS などを含む複数のオペレーティング システムをサポートしています。Apache HTTP Server は、HTTP、HTTPS、FTP などの複数のプロトコルをサポートし、高い信頼性、優れたパフォーマンス、強力な拡張性などの利点を備えており、インターネット、企業の内部ネットワーク、個人の Web サイトなどで広く使用されています。同時に、Apache HTTP Server は、リバース プロキシ、ロード バランシング、セキュリティ認証などの高度な機能を実現できるさまざまなモジュールやプラグインもサポートしています。

 システムフローチャート

 

4.3 機能実現

メインメニューページ

図4.3.1 メインメニューマップ

ユーザーを自動作成するには、管理者の権限で 1 を選択します。

図4.3.2 ユーザーマップの作成

2 を選択し、「httpd」と入力すると、httpd サーバーが自動的に展開され、サーバー名とバージョン番号が表示されます (以前にインストールされています)。

図 4.3.2 デプロイメントサーバーの図

 

3を選択し、削除するユーザー名を入力するとユーザーが自動的に削除されます

図4.3.3 ユーザーマップの削除

4 を選択し、httpd のポートを 8080 に変更し、テスト サーバーを再起動して正常かどうかを確認します。

図4.3.4 サーバーマップの変更

5 を選択し、ポート番号を入力し、「on」と入力してポート 8080 を開きます。

 

図4.3.5 ファイアウォール設定図

6 を選択し、システムを終了します

 

図4.3.5 出口系統図

コース設計の概要

このコースの設計後、ユーザー オプションの作成、サーバー オプションの展開、サーバー構成の変更とサーバーの使用のテスト、ファイアウォール構成オプション、および既存のシステム オプションの実装と設定について多くを学びました。

Linux についてある程度理解しておきましょう。Linux が単なるカーネルであることは知っています。現在のLinux オペレーティング システムは、このようなカーネルと他のアプリケーションで構成されています。Linux の最大の特徴は、非常に珍しいオープン ソースです。これが Linux が現在まで存続できている理由の 1 つであり、金融​​、セキュリティ、その他の部門で非常に重要なアプリケーションを持っています。

Linuxを学ぶには、まず基礎から学ぶ必要があります。Linux オペレーティング システムの機能、バージョン、特徴、および Linux システムのインストールとグラフィックス環境について、より包括的に理解します。Linux コマンドは必ず習得する必要があります。Linux デスクトップ アプリケーションは急速に発展していますが、Linux ではコマンドが依然として強力な活力を持っています。Linux はコマンド ラインで構成されるオペレーティング システムです。本質はコマンド ラインにあります。ファイル、ディレクトリ、ファイル システム、プロセスなどの概念を含むシステム コマンドを安全な環境で実行する方法と、対応するコマンドを使用して、ファイル、ディレクトリ、プロセスなどを実行して、問題が発生したときにヘルプ情報を見つける方法を管理および理解します。一般的な Linux コマンドには、echo コマンド、date コマンド、passwd コマンド、file コマンド、ls コマンド、touch コマンドなどが含まれます。

ユーザー オプションの作成、サーバー オプションの展開、サーバー構成の変更とサーバーを使用したテスト、ファイアウォール構成オプション、終了システム オプション

ソースコードの下

#! /bin/bash

function show()
{
clear;
echo "****************************************************************************";
echo "***                       欢迎使用用户管理系统                            ***";
echo "***                    1 : 创建用户                                      ***";
echo "***                    2 : 部署服务器                                    ***";
echo "***                    3 : 删除用户                                      ***";
echo "***                    4 : 修改httpd服务器                               ***";
echo "***                    5 : 防火墙配置                                    ***";
echo "***                    6 : 退出系统                                      ***";
echo "****************************************************************************";
echo "请为您需要的功能选择号码!";
echo "请输入你的选择:";
}

function Create_users()
{
read -p "请输入要创建的用户名:" username

# 判断用户是否已存在
if id "$username" >/dev/null 2>&1; then
    echo "用户 $username 已存在!"
    exit 1
fi

# 创建用户
useradd -m "$username"

# 设置默认密码
echo "$username:@Linux888" | chpasswd

# 输出创建结果
if id "$username" >/dev/null 2>&1; then
    echo "用户 $username 创建成功!默认密码为 @Linux888"
else
    echo "用户 $username 创建失败!"
fi
}

function Deploying_servers()
{
    # 输入要部署的服务名
read -p "请输入要部署的服务名:" service_name

# 使用yum安装服务
yum install -y $service_name

# 显示安装的版本号
version=$(yum list installed $service_name | grep -oP '\d+\.\d+\.\d+')
echo "已安装 $service_name 版本号为 $version"
}

function Delete_a_user()
{
       user="$1"
 
    userdel "$user" # 删除用户
     
    if [[ "$?" == 0 ]];
       then
        echo "已经删除${user}用户"
    fi
}

function Modify_server()
{
# 修改httpd.conf配置文件
sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf

# 重启httpd服务
systemctl restart httpd

# 测试服务器是否正常工作
if curl -s localhost | grep -q 'server is running'; then
  echo "Server is working properly"
else
  echo "Server is not working properly"
fi
}


function Fire_wall(){
# 判断是否为管理员
if [[ $EUID -ne 0 ]]; then
echo "请使用管理员权限运行该脚本!"
exit 1
fi

# 获取管理员输入的端口号和操作(on/off)
read -p "请输入端口号:" port
read -p "请输入操作(on/off):" action

# 判断操作是否合法
if [ $action != "on" ] && [ $action != "off" ]
then
    echo "操作不合法,只能输入 on 或 off"
    exit 1
fi

# 开启或关闭指定的端口号
if [ $action == "on" ]
then
    firewall-cmd --zone=public --add-port=$port/tcp --permanent
    firewall-cmd --reload
    echo "端口号 $port 已开启"
else
    firewall-cmd --zone=public --remove-port=$port/tcp --permanent
    firewall-cmd --reload
    echo "端口号 $port 已关闭"
fi
}

function Quit()
{
                        echo "Bye bye!";
                        exit 0;
}

function main()
{
for i in $(seq 1 100)
do
show;
read choice;
case $choice in
        1)Create_users;;
        2)Deploying_servers;;
        3)
	read -p "请输入需要删除的用户名:" uname
	Delete_a_user "$uname"
	;;
        4)Modify_server;;
        
	5)Fire_wall;;
	6)Quit;;
	*)echo "Incorrect input!";;
esac
read delay;
if [ $i -eq 100 ];
then
        echo "error";
        clear;
        break;
fi
done
}
main;

おすすめ

転載: blog.csdn.net/qq_72505850/article/details/130947888